diff --git a/README.md b/README.md
index 6399156..6bb2de3 100644
--- a/README.md
+++ b/README.md
@@ -1,34 +1,19 @@
# Dyte <> Symbl.ai transcriptions
-## How to test this?
-
-Go to terminal
-
-Install the packages.
-`npm install`
-
-Run it locally
-`npm run dev`
-
-It will run a server on localhost:3000 serving the HTML containing the sample integration from index.html.
-
-Use the following URL to test.
-`
-http://localhost:3000/?authToken=PUT_DYTE_PARTICIPANT_AUTH_TOKEN_HERE&symblAccessToken=PUT_SYMBL_ACCESS_TOKEN_HERE
-`
+A quick and easy solution to integrate Symbl.ai's transcriptions and conversational AI services with Dyte's SDK.
## How to use it with Dyte?
-Find the Dyte integration logic in your codebase which may look like this
+1. Please find the Dyte integration logic in your codebase which may look like the following.
-```
+```js
// Somewhere in your codebase
const meeting = await DyteClient.init(...)
```
-On top of the file where integration was found, import this package.
+2. On top of the file where integration was found, import this package.
-```
+```js
import {
activateTranscriptions,
deactivateTranscriptions,
@@ -37,18 +22,26 @@ import {
} from '@dytesdk/symbl-transcription';
```
-Now you can activate Symbl transcriptions.
-```
+3. Now you can activate Symbl transcriptions.
+
+```js
activateTranscriptions({
meeting: meeting, // From DyteClient.init
symblAccessToken: 'ACCESS_TOKEN_FROM_SYMBL_AI',
+ connectionId: 'SOME_ARBITRARY_CONNECTION_ID', // optional,
+ speakerUserId: 'SOME_ARBITRARY_USER_ID_FOR_SPEAKER', // optional
});
```
-This would ensure that your audio gets translated and resultant transcriptions get sent to all participants including `self` being referred by `meeting.self`.
+This method internally connects with Symbl using Websocket connection & automatically forwards the audio to them, while your Mic is on. On receiving transcriptions from Symbl, we broadcast those transcriptions to all the participants of the meeting, including the speaker, being referred by `meeting.self` .
+
+`connectionId` field is optional. If not passed, value of `meeting.meta.roomName` will be used as `connectionId`.
+
+`speakerUserId` field is optional. If not passed, value of `meeting.self.clientSpecificId` will be used as `speakerUserId`.
+
-If you want to show transcriptions to a participant or for `self`, you can do so using the following snippet.
+4. If you want to show transcriptions to a participant or for `self`, you can do so using the following snippet.
```
addTranscriptionsListener({
@@ -58,6 +51,11 @@ addTranscriptionsListener({
})
```
+Above code snippet helps you segregate speakers from listeners.
+
+For example, If you know that a participant is only meant to act as a listener, you can avoid calling `activateTranscriptions` and simply only call `addTranscriptionsListener` that runs solely over Dyte, thus reducing concurrent connections to Symbl thus giving you a potential cost benefit.
+
+
Using `transcriptionsCallback` you can populate the transcriptions in your app/website at any desired place.
NOTE: For every partial or complete sentence, `transcriptionsCallback` will be called, with all formatted transcriptions.
@@ -67,10 +65,9 @@ Once meeting is over, deactivate the transcription generation.
```
deactivateTranscriptions({
meeting: meeting, // From DyteClient.init
- symblAccessToken: 'ACCESS_TOKEN_FROM_SYMBL_AI',
});
```
-In similar fashion, remove the transcriptions listener, once the meeting is over.
+In a similar fashion, remove the transcriptions listener, once the meeting is over.
```
removeTranscriptionsListener({meeting: meeting});
@@ -93,3 +90,36 @@ curl -k -X POST "https://api.symbl.ai/oauth2/token:generate" \
"appSecret": "YOUR_APP_SECRET"
}'
```
+
+# How to subscribe to transcriptions of this conversation?
+
+Please pass a unique `connectionId` for this meeting and a unique `speakerUserId` for the speaker while activating treanscriptions using `activateTranscriptions` method.
+
+This would help you use subscribe API of Symbl, located at https://docs.symbl.ai/reference/subscribe-api along with better control over the speakers.
+
+# How to test Symbl integration quickly without having to integrate Dyte beforehand?
+
+To see the demo or to test the Symbl integration, please go to https://github.com/dyte-in/symbl-transcription and clone the repo and run the npm script named `dev`.
+
+```sh
+git clone https://github.com/dyte-in/symbl-transcription.git
+cd symbl-transcription
+npm install
+npm run dev
+```
+
+It will run a server on localhost:3000 serving the HTML containing the sample integration from index.html.
+
+Please use the following URL to see the Default Dyte Meeting interface.
+
+```text
+http://localhost:3000/?authToken=PUT_DYTE_PARTICIPANT_AUTH_TOKEN_HERE&symblAccessToken=PUT_SYMBL_ACCESS_TOKEN_HERE
+
+```
+
+In case you are still using v1 meetings, please use the following URL.
+```text
+http://localhost:3000/?authToken=PUT_DYTE_PARTICIPANT_AUTH_TOKEN_HERE&symblAccessToken=PUT_SYMBL_ACCESS_TOKEN_HERE&roomName=PUT_DYTE_ROOM_NAME_HERE
+```
+
+Once the Dyte UI is loaded, please turn on the Mic and grant permissions, if asked. Post that, try speaking sentences in English (default) to see the transcriptions.
diff --git a/demo/index.ts b/demo/index.ts
new file mode 100644
index 0000000..8b5831e
--- /dev/null
+++ b/demo/index.ts
@@ -0,0 +1,85 @@
+import DyteClient from '@dytesdk/web-core';
+import { defineCustomElements } from '@dytesdk/ui-kit/loader/index.es2017';
+import {
+ activateTranscriptions,
+ addTranscriptionsListener,
+ deactivateTranscriptions,
+ removeTranscriptionsListener,
+} from '../src/index';
+
+defineCustomElements();
+
+const init = async () => {
+ try {
+ const params = new URLSearchParams(window.location.search);
+ const roomName = params.get('roomName') || '';
+ const authToken = params.get('authToken') || '';
+ const symblAccessToken = params.get('symblAccessToken') || '';
+
+ if (!authToken || (roomName && !authToken)) {
+ alert('Please pass authToken (and roomName, if you are using v1 APIs) in query params');
+ return;
+ }
+ if (!symblAccessToken) {
+ alert('Please pass symblAccessToken in query params');
+ return;
+ }
+
+ const meeting = await DyteClient.init({
+ authToken,
+ roomName,
+ apiBase: 'https://api.dyte.io',
+ defaults: {
+ audio: false,
+ video: false,
+ },
+ });
+
+ (document.getElementById('my-meeting') as any).meeting = meeting;
+ Object.assign(window, { meeting });
+
+ // Initialize speech client
+ await activateTranscriptions({
+ meeting,
+ languageCode: 'en-US',
+ symblAccessToken,
+ });
+
+ await addTranscriptionsListener({
+ meeting,
+ noOfTranscriptionsToCache: 200,
+ transcriptionsCallback: (transcriptions) => {
+ const transcription = document.getElementById('dyte-transcriptions') as HTMLDivElement;
+ const list = transcriptions.slice(-3);
+ transcription.innerHTML = '';
+ list.forEach((item) => {
+ const speaker = document.createElement('span');
+ speaker.classList.add('dyte-transcription-speaker');
+ speaker.innerText = `${item.displayName}: `;
+
+ const text = document.createElement('span');
+ text.classList.add('dyte-transcription-text');
+ text.innerText = item.text.toString().trim() !== '' ? item.text.toString().trim() : '...';
+
+ const container = document.createElement('span');
+ container.classList.add('dyte-transcription-line');
+ container.appendChild(speaker);
+ container.appendChild(text);
+
+ transcription.appendChild(container);
+ });
+ },
+ });
+
+ meeting.self.on('roomLeft', () => {
+ const transcriptionsDiv = document.getElementById('dyte-transcriptions') as HTMLDivElement;
+ transcriptionsDiv.innerHTML = '';
+ deactivateTranscriptions({ meeting });
+ removeTranscriptionsListener({ meeting });
+ });
+ } catch (e) {
+ console.log(e);
+ }
+};
+
+init();
diff --git a/index.html b/index.html
index ad48de5..807fc38 100644
--- a/index.html
+++ b/index.html
@@ -1,109 +1,44 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Transcription Demo
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 5723134..bb52f6e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,8 @@
"devDependencies": {
"@commitlint/cli": "^13.1.0",
"@commitlint/config-conventional": "^13.1.0",
- "@dytesdk/web-core": ">=0.26.0",
+ "@dytesdk/ui-kit": "^1.59.0",
+ "@dytesdk/web-core": "1.20.0",
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/commit-analyzer": "^8.0.1",
"@semantic-release/exec": "^5.0.0",
@@ -589,6 +590,18 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz",
+ "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==",
+ "dev": true,
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/template": {
"version": "7.16.7",
"dev": true,
@@ -902,62 +915,80 @@
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
- "node_modules/@dytesdk/mediasoup-client": {
- "version": "3.6.51",
- "resolved": "https://registry.npmjs.org/@dytesdk/mediasoup-client/-/mediasoup-client-3.6.51.tgz",
- "integrity": "sha512-2vrlVv5glRAef+GH9v9uszedqN6kCSH6MOJ2Gi+JePniYwKIZ5lKUlS399GehEgagASbjNUqlxBcfgk1Ylehcg==",
+ "node_modules/@dyteinternals/awaitqueue": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@dyteinternals/awaitqueue/-/awaitqueue-3.0.1.tgz",
+ "integrity": "sha512-KooI+0lfAu13gUMuVtYlW//ti6MEvhqU8PP3jCXFqU2FSETOKHdtpBfHmBCE/Ass6+EStsDiVKLyh5XHNh+hsg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@dyteinternals/mediasoup-client": {
+ "version": "3.6.86",
+ "resolved": "https://registry.npmjs.org/@dyteinternals/mediasoup-client/-/mediasoup-client-3.6.86.tgz",
+ "integrity": "sha512-DewaQkewxCYnQJ+ZdbpCtE4gBP4lmbq5TUigKSTYaTXbJwI+KFideciPju1bxszgSW+V3yNE6uoUy5RMzfPTsg==",
"dev": true,
"dependencies": {
+ "@dyteinternals/awaitqueue": "^3.0.1",
"@types/debug": "^4.1.7",
- "@types/events": "^3.0.0",
- "awaitqueue": "^2.3.3",
"bowser": "^2.11.0",
- "debug": "^4.3.3",
+ "debug": "^4.3.4",
"events": "^3.3.0",
- "fake-mediastreamtrack": "^1.1.6",
"h264-profile-level-id": "^1.0.1",
- "sdp-transform": "^2.14.1",
- "supports-color": "^9.2.1"
+ "queue-microtask": "^1.2.3",
+ "sdp-transform": "^2.14.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mediasoup"
}
},
- "node_modules/@dytesdk/mediasoup-client/node_modules/supports-color": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz",
- "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==",
+ "node_modules/@dyteinternals/utils": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/@dyteinternals/utils/-/utils-1.12.0.tgz",
+ "integrity": "sha512-RlLLIgicE24SP2/lpJIfeLXhvlSTIs5JmJmyNSfYCYJvbEKtCzFeKMn6E0TuF+mFVJZyVC6QTNCma+PEkX/1jA==",
"dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
+ "dependencies": {
+ "axios": "^0.25.0",
+ "lodash-es": "^4.17.21"
+ }
+ },
+ "node_modules/@dytesdk/ui-kit": {
+ "version": "1.59.0",
+ "resolved": "https://registry.npmjs.org/@dytesdk/ui-kit/-/ui-kit-1.59.0.tgz",
+ "integrity": "sha512-fqzx2fZSFMPO9aaAK9Wc0ZG4aEtdZGQybuCQB0l/RUlDps5AEbulNfXrUHA7IuZphN6AZ5qMvwZ3PY6ejPbKlg==",
+ "dev": true,
+ "dependencies": {
+ "@floating-ui/dom": "^1.1.0",
+ "@stencil/core": "^2.20.0",
+ "hark": "^1.2.3",
+ "lodash-es": "^4.17.21",
+ "resize-observer-polyfill": "^1.5.1"
}
},
"node_modules/@dytesdk/web-core": {
- "version": "0.28.2",
- "resolved": "https://registry.npmjs.org/@dytesdk/web-core/-/web-core-0.28.2.tgz",
- "integrity": "sha512-ghR4NInhDE1l91lkfNKw8/OghqD4cMZrRzku9SE/jPsQ4F0bcO7Yi4Alc2FZfRKJx4A41BTEXxKc0OtjHDIcVA==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/@dytesdk/web-core/-/web-core-1.20.0.tgz",
+ "integrity": "sha512-sY3dgTJPCrJqskh+qkAtcV55FtGslY2M5un8EkV2YG3KCLEheLIKhmNovfWpryUyEbXoNoJP2kyCZ3N5kDuf+A==",
"dev": true,
"dependencies": {
- "@dytesdk/mediasoup-client": "^3.6.51",
- "@opentelemetry/api": "^1.1.0",
- "@opentelemetry/context-zone": "^1.3.1",
- "@opentelemetry/exporter-trace-otlp-http": "^0.29.2",
- "@opentelemetry/resources": "^1.3.1",
- "@opentelemetry/sdk-trace-base": "^1.3.1",
- "@opentelemetry/sdk-trace-web": "^1.3.1",
- "@opentelemetry/semantic-conventions": "^1.3.1",
+ "@dyteinternals/mediasoup-client": "3.6.86",
+ "@dyteinternals/utils": "^1.10.0",
+ "@protobuf-ts/runtime": "^2.7.0",
+ "awaitqueue": "^3.0.1",
"axios": "^0.25.0",
"bowser": "^2.11.0",
- "loglevel": "^1.8.0",
- "socket.io-client": "^4.4.1",
- "uuid": "^8.3.2"
+ "sdp-transform": "^2.14.1",
+ "socket.io-client": "4.6.2",
+ "uuid": "^8.3.2",
+ "worker-timers": "7.0.60"
}
},
"node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": {
@@ -1045,6 +1076,31 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz",
+ "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==",
+ "dev": true,
+ "dependencies": {
+ "@floating-ui/utils": "^0.1.3"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
+ "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
+ "dev": true,
+ "dependencies": {
+ "@floating-ui/core": "^1.4.2",
+ "@floating-ui/utils": "^0.1.3"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
+ "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==",
+ "dev": true
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.5.0",
"dev": true,
@@ -1582,197 +1638,11 @@
"@octokit/openapi-types": "^11.2.0"
}
},
- "node_modules/@opentelemetry/api": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.1.0.tgz",
- "integrity": "sha512-hf+3bwuBwtXsugA2ULBc95qxrOqP2pOekLz34BJhcAKawt94vfeNyUKpYc0lZQ/3sCP6LqRa7UAdHA7i5UODzQ==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/@opentelemetry/api-metrics": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.29.2.tgz",
- "integrity": "sha512-yRdF5beqKuEdsPNoO7ijWCQ9HcyN0Tlgicf8RS6gzGOI54d6Hj7yKquJ6+X9XV+CSRbRWJYb+lOsXyso7uyX2g==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/api": "^1.0.0"
- },
- "engines": {
- "node": ">=8.12.0"
- }
- },
- "node_modules/@opentelemetry/context-zone": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone/-/context-zone-1.3.1.tgz",
- "integrity": "sha512-ttE6+gW1NWTySRgSxUNnza1VXC5CP4t5PiMSwjtd/VgnbF8l1euzImApobD0gf4Yn7m+4AFmVe+g7mjWGM6Ygw==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/context-zone-peer-dep": "1.3.1",
- "zone.js": "^0.11.0"
- },
- "engines": {
- "node": ">=8.12.0"
- }
- },
- "node_modules/@opentelemetry/context-zone-peer-dep": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-1.3.1.tgz",
- "integrity": "sha512-Be6Nc2R/mFaS37f1ccaUlZoNBJqf5cvoAKFkieZ7AIePJ7FIugtFDSu3mTAgXfyOpIgDAHyDSAJ3FEJqsFDzvQ==",
- "dev": true,
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.2.0",
- "zone.js": "^0.10.2 || ^0.11.0"
- }
- },
- "node_modules/@opentelemetry/core": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.3.1.tgz",
- "integrity": "sha512-k7lOC86N7WIyUZsUuSKZfFIrUtINtlauMGQsC1r7jNmcr0vVJGqK1ROBvt7WWMxLbpMnt1q2pXJO8tKu0b9auA==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/semantic-conventions": "1.3.1"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.2.0"
- }
- },
- "node_modules/@opentelemetry/exporter-trace-otlp-http": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.29.2.tgz",
- "integrity": "sha512-cCKF00/+H06LDFJwdU4ga4MNZAwpgzPF6Rp5gDJwl2cP9h/QnKWjXNlWYqJZ8dPeNt373HH4iF4HOmEBdE4sUQ==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/otlp-exporter-base": "0.29.2",
- "@opentelemetry/otlp-transformer": "0.29.2",
- "@opentelemetry/resources": "1.3.1",
- "@opentelemetry/sdk-trace-base": "1.3.1"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.0.0"
- }
- },
- "node_modules/@opentelemetry/otlp-exporter-base": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.29.2.tgz",
- "integrity": "sha512-tTK+v2ER9Rv7YQXLrCvZpPdNdvZx8TGdZtlK7TKnzpyMRBIf7lqV1Jl0VaHFml+cgVJcGtow/ER6k5uJ5W4kUQ==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/core": "1.3.1"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.0.0"
- }
- },
- "node_modules/@opentelemetry/otlp-transformer": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.29.2.tgz",
- "integrity": "sha512-Y6dJj+rhRGynxhLlgEJkdkXuLHdFG8igcSBv6oy3m3GHSSvZkyNV34dVjtZJ586mUXsbFuAf6uqjzteobewO1g==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/api-metrics": "0.29.2",
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/resources": "1.3.1",
- "@opentelemetry/sdk-metrics-base": "0.29.2",
- "@opentelemetry/sdk-trace-base": "1.3.1"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.2.0"
- }
- },
- "node_modules/@opentelemetry/resources": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.3.1.tgz",
- "integrity": "sha512-X8bl3X0YjlsHWy0Iv0KUETtZuRUznX4yr1iScKCtfy8AoRfZFc2xxWKMDJ0TrqYwSapgeg4YwpmRzUKmmnrbeA==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/semantic-conventions": "1.3.1"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.2.0"
- }
- },
- "node_modules/@opentelemetry/sdk-metrics-base": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.29.2.tgz",
- "integrity": "sha512-7hhhZ/6YRRgAXOUTeCsbe6SIk3wZAdAHnEwGGp7aiVH5AOyioHyHInw4EHtowlD6dbLxUWURjh6k+Geht2zbxg==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/api-metrics": "0.29.2",
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/resources": "1.3.1",
- "lodash.merge": "4.6.2"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.0.0"
- }
- },
- "node_modules/@opentelemetry/sdk-trace-base": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.3.1.tgz",
- "integrity": "sha512-Or95QZ+9QyvAiwqj+K68z8bDDuyWF50c37w17D10GV1dWzg4Ezcectsu/GB61QcBxm3Y4br0EN5F5TpIFfFliQ==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/resources": "1.3.1",
- "@opentelemetry/semantic-conventions": "1.3.1"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.2.0"
- }
- },
- "node_modules/@opentelemetry/sdk-trace-web": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.3.1.tgz",
- "integrity": "sha512-O88Uoh3I02CFPVkHDh5GQ60E2jR7msMR6QRLEIRHIJ10Xz/xwoo3HONS0a3On1SXTEkZiXjHjw17fT+ojBQyFg==",
- "dev": true,
- "dependencies": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/sdk-trace-base": "1.3.1",
- "@opentelemetry/semantic-conventions": "1.3.1"
- },
- "engines": {
- "node": ">=8.12.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.2.0"
- }
- },
- "node_modules/@opentelemetry/semantic-conventions": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz",
- "integrity": "sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA==",
- "dev": true,
- "engines": {
- "node": ">=8.12.0"
- }
+ "node_modules/@protobuf-ts/runtime": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.3.tgz",
+ "integrity": "sha512-nivzCpg/qYD0RX2OmHOahJALb8ndjGmUhNBcTJ0BbXoqKwCSM6vYA+vegzS3rhuaPgbyC7Ec8idlnizzUfIRuw==",
+ "dev": true
},
"node_modules/@semantic-release/changelog": {
"version": "5.0.1",
@@ -2014,6 +1884,19 @@
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==",
"dev": true
},
+ "node_modules/@stencil/core": {
+ "version": "2.22.3",
+ "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz",
+ "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==",
+ "dev": true,
+ "bin": {
+ "stencil": "bin/stencil"
+ },
+ "engines": {
+ "node": ">=12.10.0",
+ "npm": ">=6.0.0"
+ }
+ },
"node_modules/@tootallnate/once": {
"version": "1.1.2",
"dev": true,
@@ -2080,9 +1963,9 @@
}
},
"node_modules/@types/debug": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
- "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"dev": true,
"dependencies": {
"@types/ms": "*"
@@ -2171,9 +2054,9 @@
"license": "MIT"
},
"node_modules/@types/ms": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
+ "version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
"dev": true
},
"node_modules/@types/node": {
@@ -2830,12 +2713,15 @@
}
},
"node_modules/awaitqueue": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-2.4.0.tgz",
- "integrity": "sha512-9nTnPxVuxiuKFTHslm9ltnekUECJidOQ5kE6JpZUH77KrKqStQuWUW7JPB2GJZ7rOwWLcbToHiIXle/nJe1VpQ==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-3.0.2.tgz",
+ "integrity": "sha512-AVAtRwmf0DNSesMdyanFKKejTrOnjdKtz5LIDQFu2OTUgXvB/CRTYMrkPAF/2GCF9XBtYVxSwxDORlD41S+RyQ==",
"dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
"engines": {
- "node": ">=8.0.0"
+ "node": ">=16"
}
},
"node_modules/axios": {
@@ -4438,22 +4324,22 @@
}
},
"node_modules/engine.io-client": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
- "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz",
+ "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==",
"dev": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
- "ws": "~8.2.3",
+ "ws": "~8.11.0",
"xmlhttprequest-ssl": "~2.0.0"
}
},
"node_modules/engine.io-client/node_modules/ws": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -4472,9 +4358,9 @@
}
},
"node_modules/engine.io-parser": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.7.tgz",
+ "integrity": "sha512-P+jDFbvK6lE3n1OL+q9KuzdOFWkkZ/cMV9gol/SbVfpyqfvrfrFTOFJ6fQm2VC3PZHlU3QPhVwmbsCnauHF2MQ==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -5145,15 +5031,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
@@ -5230,16 +5107,6 @@
"node": ">=4"
}
},
- "node_modules/fake-mediastreamtrack": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/fake-mediastreamtrack/-/fake-mediastreamtrack-1.1.6.tgz",
- "integrity": "sha512-lcoO5oPsW57istAsnjvQxNjBEahi18OdUhWfmEewwfPfzNZnji5OXuodQM+VnUPi/1HnQRJ6gBUjbt1TNXrkjQ==",
- "dev": true,
- "dependencies": {
- "event-target-shim": "^5.0.1",
- "uuid": "^8.1.0"
- }
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"dev": true,
@@ -5270,6 +5137,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fast-unique-numbers": {
+ "version": "8.0.12",
+ "resolved": "https://registry.npmjs.org/fast-unique-numbers/-/fast-unique-numbers-8.0.12.tgz",
+ "integrity": "sha512-Z4AJueNDnuC/sLxeQqrHP4zgqcBIeQQLbQ0hEx1a7m6Wf7ERrdAyR7CkGfoEFWm9Qla7dpLt0eWPyiO18gqj0A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.23.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.1.0"
+ }
+ },
"node_modules/fast-url-parser": {
"version": "1.1.3",
"dev": true,
@@ -5825,12 +5705,12 @@
"license": "ISC"
},
"node_modules/h264-profile-level-id": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.1.tgz",
- "integrity": "sha512-D3Rln/jKNjKDW5ZTJTK3niSoOGE+pFqPvRHHVgQN3G7umcn/zWGPUo8Q8VpDj16x3hKz++zVviRNRmXu5cpN+Q==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.2.tgz",
+ "integrity": "sha512-bsSv/bHq4eIUt4iMycA9rn1C28gtXwrKLAkbpzuZmkQp4u3M6QlF5y6DlTMy5fGDkVGbMLxFGeL7Ra8JKMm4Dg==",
"dev": true,
"dependencies": {
- "debug": "^4.1.1"
+ "debug": "^4.3.4"
},
"engines": {
"node": ">=8.0.0"
@@ -5864,6 +5744,15 @@
"node": ">=6"
}
},
+ "node_modules/hark": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/hark/-/hark-1.2.3.tgz",
+ "integrity": "sha512-u68vz9SCa38ESiFJSDjqK8XbXqWzyot7Cj6Y2b6jk2NJ+II3MY2dIrLMg/kjtIAun4Y1DHF/20hfx4rq1G5GMg==",
+ "dev": true,
+ "dependencies": {
+ "wildemitter": "^1.2.0"
+ }
+ },
"node_modules/has": {
"version": "1.0.3",
"dev": true,
@@ -7756,6 +7645,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "dev": true
+ },
"node_modules/lodash.camelcase": {
"version": "4.3.0",
"dev": true,
@@ -7831,19 +7726,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/loglevel": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz",
- "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- },
- "funding": {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/loglevel"
- }
- },
"node_modules/longest": {
"version": "2.0.1",
"dev": true,
@@ -16782,6 +16664,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==",
+ "dev": true
+ },
"node_modules/regexp.prototype.flags": {
"version": "1.4.3",
"dev": true,
@@ -16855,6 +16743,12 @@
"lodash": "^4.17.14"
}
},
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
+ "dev": true
+ },
"node_modules/resolve": {
"version": "1.22.0",
"dev": true,
@@ -17550,24 +17444,24 @@
}
},
"node_modules/socket.io-client": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz",
- "integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.2.tgz",
+ "integrity": "sha512-OwWrMbbA8wSqhBAR0yoPK6EdQLERQAYjXb3A0zLpgxfM1ZGLKoxHx8gVmCHA6pcclRX5oA/zvQf7bghAS11jRA==",
"dev": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.2.1",
- "socket.io-parser": "~4.2.0"
+ "engine.io-client": "~6.4.0",
+ "socket.io-parser": "~4.2.4"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz",
- "integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
"dev": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
@@ -18533,9 +18427,10 @@
}
},
"node_modules/tslib": {
- "version": "2.4.0",
- "dev": true,
- "license": "0BSD"
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
},
"node_modules/tsutils": {
"version": "3.21.0",
@@ -18917,6 +18812,12 @@
"node": ">=4"
}
},
+ "node_modules/wildemitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/wildemitter/-/wildemitter-1.2.1.tgz",
+ "integrity": "sha512-UMmSUoIQSir+XbBpTxOTS53uJ8s/lVhADCkEbhfRjUGFDPme/XGOb0sBWLx5sTz7Wx/2+TlAw1eK9O5lw5PiEw==",
+ "dev": true
+ },
"node_modules/word-wrap": {
"version": "1.2.3",
"dev": true,
@@ -18950,6 +18851,40 @@
"node": ">=0.10.0"
}
},
+ "node_modules/worker-timers": {
+ "version": "7.0.60",
+ "resolved": "https://registry.npmjs.org/worker-timers/-/worker-timers-7.0.60.tgz",
+ "integrity": "sha512-kom5j7+JQU0uuJAqAeFvxPpKlp21BH09YLMU/JLKA+0Zs3WTGk7WSBFYjdR3G+kjXr6qWD7zIcenv3oXaWBJzw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.20.6",
+ "tslib": "^2.4.1",
+ "worker-timers-broker": "^6.0.80",
+ "worker-timers-worker": "^7.0.46"
+ }
+ },
+ "node_modules/worker-timers-broker": {
+ "version": "6.0.99",
+ "resolved": "https://registry.npmjs.org/worker-timers-broker/-/worker-timers-broker-6.0.99.tgz",
+ "integrity": "sha512-MZPqEQrJH4gN6Q9ipPieTY5jXQpB0nUEJEpE/KyR88Fc8mRVmqzJjiNPkqLHyd1KDUAr7AlcKSPKceWxS6CV+A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.23.5",
+ "fast-unique-numbers": "^8.0.12",
+ "tslib": "^2.6.2",
+ "worker-timers-worker": "^7.0.63"
+ }
+ },
+ "node_modules/worker-timers-worker": {
+ "version": "7.0.63",
+ "resolved": "https://registry.npmjs.org/worker-timers-worker/-/worker-timers-worker-7.0.63.tgz",
+ "integrity": "sha512-6CdgnG4ldY2Oowp+kJFydslyUzDXzG6PeWMTFeAhSWIofw/8FnvxHV4W6CDtKLMZXWByMTA+mqwVYasWuefTOw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.23.5",
+ "tslib": "^2.6.2"
+ }
+ },
"node_modules/wrap-ansi": {
"version": "7.0.0",
"dev": true,
@@ -19148,15 +19083,6 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
- },
- "node_modules/zone.js": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz",
- "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.3.0"
- }
}
},
"dependencies": {
@@ -19472,6 +19398,15 @@
"@babel/helper-plugin-utils": "^7.17.12"
}
},
+ "@babel/runtime": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz",
+ "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.14.0"
+ }
+ },
"@babel/template": {
"version": "7.16.7",
"dev": true,
@@ -19690,51 +19625,70 @@
}
}
},
- "@dytesdk/mediasoup-client": {
- "version": "3.6.51",
- "resolved": "https://registry.npmjs.org/@dytesdk/mediasoup-client/-/mediasoup-client-3.6.51.tgz",
- "integrity": "sha512-2vrlVv5glRAef+GH9v9uszedqN6kCSH6MOJ2Gi+JePniYwKIZ5lKUlS399GehEgagASbjNUqlxBcfgk1Ylehcg==",
+ "@dyteinternals/awaitqueue": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@dyteinternals/awaitqueue/-/awaitqueue-3.0.1.tgz",
+ "integrity": "sha512-KooI+0lfAu13gUMuVtYlW//ti6MEvhqU8PP3jCXFqU2FSETOKHdtpBfHmBCE/Ass6+EStsDiVKLyh5XHNh+hsg==",
"dev": true,
"requires": {
+ "debug": "^4.3.4"
+ }
+ },
+ "@dyteinternals/mediasoup-client": {
+ "version": "3.6.86",
+ "resolved": "https://registry.npmjs.org/@dyteinternals/mediasoup-client/-/mediasoup-client-3.6.86.tgz",
+ "integrity": "sha512-DewaQkewxCYnQJ+ZdbpCtE4gBP4lmbq5TUigKSTYaTXbJwI+KFideciPju1bxszgSW+V3yNE6uoUy5RMzfPTsg==",
+ "dev": true,
+ "requires": {
+ "@dyteinternals/awaitqueue": "^3.0.1",
"@types/debug": "^4.1.7",
- "@types/events": "^3.0.0",
- "awaitqueue": "^2.3.3",
"bowser": "^2.11.0",
- "debug": "^4.3.3",
+ "debug": "^4.3.4",
"events": "^3.3.0",
- "fake-mediastreamtrack": "^1.1.6",
"h264-profile-level-id": "^1.0.1",
- "sdp-transform": "^2.14.1",
- "supports-color": "^9.2.1"
- },
- "dependencies": {
- "supports-color": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz",
- "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==",
- "dev": true
- }
+ "queue-microtask": "^1.2.3",
+ "sdp-transform": "^2.14.1"
+ }
+ },
+ "@dyteinternals/utils": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/@dyteinternals/utils/-/utils-1.12.0.tgz",
+ "integrity": "sha512-RlLLIgicE24SP2/lpJIfeLXhvlSTIs5JmJmyNSfYCYJvbEKtCzFeKMn6E0TuF+mFVJZyVC6QTNCma+PEkX/1jA==",
+ "dev": true,
+ "requires": {
+ "axios": "^0.25.0",
+ "lodash-es": "^4.17.21"
+ }
+ },
+ "@dytesdk/ui-kit": {
+ "version": "1.59.0",
+ "resolved": "https://registry.npmjs.org/@dytesdk/ui-kit/-/ui-kit-1.59.0.tgz",
+ "integrity": "sha512-fqzx2fZSFMPO9aaAK9Wc0ZG4aEtdZGQybuCQB0l/RUlDps5AEbulNfXrUHA7IuZphN6AZ5qMvwZ3PY6ejPbKlg==",
+ "dev": true,
+ "requires": {
+ "@floating-ui/dom": "^1.1.0",
+ "@stencil/core": "^2.20.0",
+ "hark": "^1.2.3",
+ "lodash-es": "^4.17.21",
+ "resize-observer-polyfill": "^1.5.1"
}
},
"@dytesdk/web-core": {
- "version": "0.28.2",
- "resolved": "https://registry.npmjs.org/@dytesdk/web-core/-/web-core-0.28.2.tgz",
- "integrity": "sha512-ghR4NInhDE1l91lkfNKw8/OghqD4cMZrRzku9SE/jPsQ4F0bcO7Yi4Alc2FZfRKJx4A41BTEXxKc0OtjHDIcVA==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/@dytesdk/web-core/-/web-core-1.20.0.tgz",
+ "integrity": "sha512-sY3dgTJPCrJqskh+qkAtcV55FtGslY2M5un8EkV2YG3KCLEheLIKhmNovfWpryUyEbXoNoJP2kyCZ3N5kDuf+A==",
"dev": true,
"requires": {
- "@dytesdk/mediasoup-client": "^3.6.51",
- "@opentelemetry/api": "^1.1.0",
- "@opentelemetry/context-zone": "^1.3.1",
- "@opentelemetry/exporter-trace-otlp-http": "^0.29.2",
- "@opentelemetry/resources": "^1.3.1",
- "@opentelemetry/sdk-trace-base": "^1.3.1",
- "@opentelemetry/sdk-trace-web": "^1.3.1",
- "@opentelemetry/semantic-conventions": "^1.3.1",
+ "@dyteinternals/mediasoup-client": "3.6.86",
+ "@dyteinternals/utils": "^1.10.0",
+ "@protobuf-ts/runtime": "^2.7.0",
+ "awaitqueue": "^3.0.1",
"axios": "^0.25.0",
"bowser": "^2.11.0",
- "loglevel": "^1.8.0",
- "socket.io-client": "^4.4.1",
- "uuid": "^8.3.2"
+ "sdp-transform": "^2.14.1",
+ "socket.io-client": "4.6.2",
+ "uuid": "^8.3.2",
+ "worker-timers": "7.0.60"
}
},
"@endemolshinegroup/cosmiconfig-typescript-loader": {
@@ -19790,6 +19744,31 @@
}
}
},
+ "@floating-ui/core": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz",
+ "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==",
+ "dev": true,
+ "requires": {
+ "@floating-ui/utils": "^0.1.3"
+ }
+ },
+ "@floating-ui/dom": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
+ "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
+ "dev": true,
+ "requires": {
+ "@floating-ui/core": "^1.4.2",
+ "@floating-ui/utils": "^0.1.3"
+ }
+ },
+ "@floating-ui/utils": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
+ "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==",
+ "dev": true
+ },
"@humanwhocodes/config-array": {
"version": "0.5.0",
"dev": true,
@@ -20179,130 +20158,10 @@
"@octokit/openapi-types": "^11.2.0"
}
},
- "@opentelemetry/api": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.1.0.tgz",
- "integrity": "sha512-hf+3bwuBwtXsugA2ULBc95qxrOqP2pOekLz34BJhcAKawt94vfeNyUKpYc0lZQ/3sCP6LqRa7UAdHA7i5UODzQ==",
- "dev": true
- },
- "@opentelemetry/api-metrics": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.29.2.tgz",
- "integrity": "sha512-yRdF5beqKuEdsPNoO7ijWCQ9HcyN0Tlgicf8RS6gzGOI54d6Hj7yKquJ6+X9XV+CSRbRWJYb+lOsXyso7uyX2g==",
- "dev": true,
- "requires": {
- "@opentelemetry/api": "^1.0.0"
- }
- },
- "@opentelemetry/context-zone": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone/-/context-zone-1.3.1.tgz",
- "integrity": "sha512-ttE6+gW1NWTySRgSxUNnza1VXC5CP4t5PiMSwjtd/VgnbF8l1euzImApobD0gf4Yn7m+4AFmVe+g7mjWGM6Ygw==",
- "dev": true,
- "requires": {
- "@opentelemetry/context-zone-peer-dep": "1.3.1",
- "zone.js": "^0.11.0"
- }
- },
- "@opentelemetry/context-zone-peer-dep": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-1.3.1.tgz",
- "integrity": "sha512-Be6Nc2R/mFaS37f1ccaUlZoNBJqf5cvoAKFkieZ7AIePJ7FIugtFDSu3mTAgXfyOpIgDAHyDSAJ3FEJqsFDzvQ==",
- "dev": true,
- "requires": {}
- },
- "@opentelemetry/core": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.3.1.tgz",
- "integrity": "sha512-k7lOC86N7WIyUZsUuSKZfFIrUtINtlauMGQsC1r7jNmcr0vVJGqK1ROBvt7WWMxLbpMnt1q2pXJO8tKu0b9auA==",
- "dev": true,
- "requires": {
- "@opentelemetry/semantic-conventions": "1.3.1"
- }
- },
- "@opentelemetry/exporter-trace-otlp-http": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.29.2.tgz",
- "integrity": "sha512-cCKF00/+H06LDFJwdU4ga4MNZAwpgzPF6Rp5gDJwl2cP9h/QnKWjXNlWYqJZ8dPeNt373HH4iF4HOmEBdE4sUQ==",
- "dev": true,
- "requires": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/otlp-exporter-base": "0.29.2",
- "@opentelemetry/otlp-transformer": "0.29.2",
- "@opentelemetry/resources": "1.3.1",
- "@opentelemetry/sdk-trace-base": "1.3.1"
- }
- },
- "@opentelemetry/otlp-exporter-base": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.29.2.tgz",
- "integrity": "sha512-tTK+v2ER9Rv7YQXLrCvZpPdNdvZx8TGdZtlK7TKnzpyMRBIf7lqV1Jl0VaHFml+cgVJcGtow/ER6k5uJ5W4kUQ==",
- "dev": true,
- "requires": {
- "@opentelemetry/core": "1.3.1"
- }
- },
- "@opentelemetry/otlp-transformer": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.29.2.tgz",
- "integrity": "sha512-Y6dJj+rhRGynxhLlgEJkdkXuLHdFG8igcSBv6oy3m3GHSSvZkyNV34dVjtZJ586mUXsbFuAf6uqjzteobewO1g==",
- "dev": true,
- "requires": {
- "@opentelemetry/api-metrics": "0.29.2",
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/resources": "1.3.1",
- "@opentelemetry/sdk-metrics-base": "0.29.2",
- "@opentelemetry/sdk-trace-base": "1.3.1"
- }
- },
- "@opentelemetry/resources": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.3.1.tgz",
- "integrity": "sha512-X8bl3X0YjlsHWy0Iv0KUETtZuRUznX4yr1iScKCtfy8AoRfZFc2xxWKMDJ0TrqYwSapgeg4YwpmRzUKmmnrbeA==",
- "dev": true,
- "requires": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/semantic-conventions": "1.3.1"
- }
- },
- "@opentelemetry/sdk-metrics-base": {
- "version": "0.29.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.29.2.tgz",
- "integrity": "sha512-7hhhZ/6YRRgAXOUTeCsbe6SIk3wZAdAHnEwGGp7aiVH5AOyioHyHInw4EHtowlD6dbLxUWURjh6k+Geht2zbxg==",
- "dev": true,
- "requires": {
- "@opentelemetry/api-metrics": "0.29.2",
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/resources": "1.3.1",
- "lodash.merge": "4.6.2"
- }
- },
- "@opentelemetry/sdk-trace-base": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.3.1.tgz",
- "integrity": "sha512-Or95QZ+9QyvAiwqj+K68z8bDDuyWF50c37w17D10GV1dWzg4Ezcectsu/GB61QcBxm3Y4br0EN5F5TpIFfFliQ==",
- "dev": true,
- "requires": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/resources": "1.3.1",
- "@opentelemetry/semantic-conventions": "1.3.1"
- }
- },
- "@opentelemetry/sdk-trace-web": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.3.1.tgz",
- "integrity": "sha512-O88Uoh3I02CFPVkHDh5GQ60E2jR7msMR6QRLEIRHIJ10Xz/xwoo3HONS0a3On1SXTEkZiXjHjw17fT+ojBQyFg==",
- "dev": true,
- "requires": {
- "@opentelemetry/core": "1.3.1",
- "@opentelemetry/sdk-trace-base": "1.3.1",
- "@opentelemetry/semantic-conventions": "1.3.1"
- }
- },
- "@opentelemetry/semantic-conventions": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz",
- "integrity": "sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA==",
+ "@protobuf-ts/runtime": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.3.tgz",
+ "integrity": "sha512-nivzCpg/qYD0RX2OmHOahJALb8ndjGmUhNBcTJ0BbXoqKwCSM6vYA+vegzS3rhuaPgbyC7Ec8idlnizzUfIRuw==",
"dev": true
},
"@semantic-release/changelog": {
@@ -20475,6 +20334,12 @@
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==",
"dev": true
},
+ "@stencil/core": {
+ "version": "2.22.3",
+ "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz",
+ "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==",
+ "dev": true
+ },
"@tootallnate/once": {
"version": "1.1.2",
"dev": true
@@ -20529,9 +20394,9 @@
}
},
"@types/debug": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
- "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"dev": true,
"requires": {
"@types/ms": "*"
@@ -20607,9 +20472,9 @@
"dev": true
},
"@types/ms": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
+ "version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
"dev": true
},
"@types/node": {
@@ -20981,10 +20846,13 @@
"dev": true
},
"awaitqueue": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-2.4.0.tgz",
- "integrity": "sha512-9nTnPxVuxiuKFTHslm9ltnekUECJidOQ5kE6JpZUH77KrKqStQuWUW7JPB2GJZ7rOwWLcbToHiIXle/nJe1VpQ==",
- "dev": true
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-3.0.2.tgz",
+ "integrity": "sha512-AVAtRwmf0DNSesMdyanFKKejTrOnjdKtz5LIDQFu2OTUgXvB/CRTYMrkPAF/2GCF9XBtYVxSwxDORlD41S+RyQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4"
+ }
},
"axios": {
"version": "0.25.0",
@@ -22059,31 +21927,31 @@
}
},
"engine.io-client": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
- "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz",
+ "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==",
"dev": true,
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
- "ws": "~8.2.3",
+ "ws": "~8.11.0",
"xmlhttprequest-ssl": "~2.0.0"
},
"dependencies": {
"ws": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"dev": true,
"requires": {}
}
}
},
"engine.io-parser": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.7.tgz",
+ "integrity": "sha512-P+jDFbvK6lE3n1OL+q9KuzdOFWkkZ/cMV9gol/SbVfpyqfvrfrFTOFJ6fQm2VC3PZHlU3QPhVwmbsCnauHF2MQ==",
"dev": true
},
"enquirer": {
@@ -22522,12 +22390,6 @@
"version": "2.0.3",
"dev": true
},
- "event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "dev": true
- },
"events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
@@ -22579,16 +22441,6 @@
"tmp": "^0.0.33"
}
},
- "fake-mediastreamtrack": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/fake-mediastreamtrack/-/fake-mediastreamtrack-1.1.6.tgz",
- "integrity": "sha512-lcoO5oPsW57istAsnjvQxNjBEahi18OdUhWfmEewwfPfzNZnji5OXuodQM+VnUPi/1HnQRJ6gBUjbt1TNXrkjQ==",
- "dev": true,
- "requires": {
- "event-target-shim": "^5.0.1",
- "uuid": "^8.1.0"
- }
- },
"fast-deep-equal": {
"version": "3.1.3",
"dev": true
@@ -22612,6 +22464,16 @@
"version": "2.0.6",
"dev": true
},
+ "fast-unique-numbers": {
+ "version": "8.0.12",
+ "resolved": "https://registry.npmjs.org/fast-unique-numbers/-/fast-unique-numbers-8.0.12.tgz",
+ "integrity": "sha512-Z4AJueNDnuC/sLxeQqrHP4zgqcBIeQQLbQ0hEx1a7m6Wf7ERrdAyR7CkGfoEFWm9Qla7dpLt0eWPyiO18gqj0A==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.23.5",
+ "tslib": "^2.6.2"
+ }
+ },
"fast-url-parser": {
"version": "1.1.3",
"dev": true,
@@ -22966,12 +22828,12 @@
"dev": true
},
"h264-profile-level-id": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.1.tgz",
- "integrity": "sha512-D3Rln/jKNjKDW5ZTJTK3niSoOGE+pFqPvRHHVgQN3G7umcn/zWGPUo8Q8VpDj16x3hKz++zVviRNRmXu5cpN+Q==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.2.tgz",
+ "integrity": "sha512-bsSv/bHq4eIUt4iMycA9rn1C28gtXwrKLAkbpzuZmkQp4u3M6QlF5y6DlTMy5fGDkVGbMLxFGeL7Ra8JKMm4Dg==",
"dev": true,
"requires": {
- "debug": "^4.1.1"
+ "debug": "^4.3.4"
}
},
"handlebars": {
@@ -22989,6 +22851,15 @@
"version": "2.1.0",
"dev": true
},
+ "hark": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/hark/-/hark-1.2.3.tgz",
+ "integrity": "sha512-u68vz9SCa38ESiFJSDjqK8XbXqWzyot7Cj6Y2b6jk2NJ+II3MY2dIrLMg/kjtIAun4Y1DHF/20hfx4rq1G5GMg==",
+ "dev": true,
+ "requires": {
+ "wildemitter": "^1.2.0"
+ }
+ },
"has": {
"version": "1.0.3",
"dev": true,
@@ -24215,6 +24086,12 @@
"version": "4.17.21",
"dev": true
},
+ "lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "dev": true
+ },
"lodash.camelcase": {
"version": "4.3.0",
"dev": true
@@ -24275,12 +24152,6 @@
"version": "4.7.0",
"dev": true
},
- "loglevel": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz",
- "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==",
- "dev": true
- },
"longest": {
"version": "2.0.1",
"dev": true
@@ -30755,6 +30626,12 @@
}
}
},
+ "regenerator-runtime": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==",
+ "dev": true
+ },
"regexp.prototype.flags": {
"version": "1.4.3",
"dev": true,
@@ -30797,6 +30674,12 @@
"lodash": "^4.17.14"
}
},
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
+ "dev": true
+ },
"resolve": {
"version": "1.22.0",
"dev": true,
@@ -31242,21 +31125,21 @@
}
},
"socket.io-client": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz",
- "integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.2.tgz",
+ "integrity": "sha512-OwWrMbbA8wSqhBAR0yoPK6EdQLERQAYjXb3A0zLpgxfM1ZGLKoxHx8gVmCHA6pcclRX5oA/zvQf7bghAS11jRA==",
"dev": true,
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.2.1",
- "socket.io-parser": "~4.2.0"
+ "engine.io-client": "~6.4.0",
+ "socket.io-parser": "~4.2.4"
}
},
"socket.io-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz",
- "integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
"dev": true,
"requires": {
"@socket.io/component-emitter": "~3.1.0",
@@ -31889,7 +31772,9 @@
}
},
"tslib": {
- "version": "2.4.0",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
"dev": true
},
"tsutils": {
@@ -32138,6 +32023,12 @@
"string-width": "^2.1.1"
}
},
+ "wildemitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/wildemitter/-/wildemitter-1.2.1.tgz",
+ "integrity": "sha512-UMmSUoIQSir+XbBpTxOTS53uJ8s/lVhADCkEbhfRjUGFDPme/XGOb0sBWLx5sTz7Wx/2+TlAw1eK9O5lw5PiEw==",
+ "dev": true
+ },
"word-wrap": {
"version": "1.2.3",
"dev": true
@@ -32160,6 +32051,40 @@
}
}
},
+ "worker-timers": {
+ "version": "7.0.60",
+ "resolved": "https://registry.npmjs.org/worker-timers/-/worker-timers-7.0.60.tgz",
+ "integrity": "sha512-kom5j7+JQU0uuJAqAeFvxPpKlp21BH09YLMU/JLKA+0Zs3WTGk7WSBFYjdR3G+kjXr6qWD7zIcenv3oXaWBJzw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.20.6",
+ "tslib": "^2.4.1",
+ "worker-timers-broker": "^6.0.80",
+ "worker-timers-worker": "^7.0.46"
+ }
+ },
+ "worker-timers-broker": {
+ "version": "6.0.99",
+ "resolved": "https://registry.npmjs.org/worker-timers-broker/-/worker-timers-broker-6.0.99.tgz",
+ "integrity": "sha512-MZPqEQrJH4gN6Q9ipPieTY5jXQpB0nUEJEpE/KyR88Fc8mRVmqzJjiNPkqLHyd1KDUAr7AlcKSPKceWxS6CV+A==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.23.5",
+ "fast-unique-numbers": "^8.0.12",
+ "tslib": "^2.6.2",
+ "worker-timers-worker": "^7.0.63"
+ }
+ },
+ "worker-timers-worker": {
+ "version": "7.0.63",
+ "resolved": "https://registry.npmjs.org/worker-timers-worker/-/worker-timers-worker-7.0.63.tgz",
+ "integrity": "sha512-6CdgnG4ldY2Oowp+kJFydslyUzDXzG6PeWMTFeAhSWIofw/8FnvxHV4W6CDtKLMZXWByMTA+mqwVYasWuefTOw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.23.5",
+ "tslib": "^2.6.2"
+ }
+ },
"wrap-ansi": {
"version": "7.0.0",
"dev": true,
@@ -32280,15 +32205,6 @@
"yocto-queue": {
"version": "0.1.0",
"dev": true
- },
- "zone.js": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz",
- "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==",
- "dev": true,
- "requires": {
- "tslib": "^2.3.0"
- }
}
}
}
diff --git a/package.json b/package.json
index acca48e..2f3a9ea 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,11 @@
"types": "./types/index.d.ts"
}
},
+ "files": [
+ "dist",
+ "types",
+ "README.md"
+ ],
"repository": {
"type": "git",
"url": "git+https://github.com/dyte-in/symbl-transcription.git"
@@ -30,19 +35,21 @@
"lint": "eslint . --ext .ts",
"lint:fix": "eslint . --ext .ts --ext .js --fix",
"build": "tsc && vite build && vite build -c vite.umd.config.ts",
- "dev": "VITE_DEV=true vite",
"prepare": "is-ci || husky install",
"prepublishOnly": "cp package.json package.json.bak && node prepublish.js",
- "postpublish": "mv package.json.bak package.json"
+ "postpublish": "mv package.json.bak package.json",
+ "dev": "vite"
},
"peerDepdendencies": {
"@dytesdk/web-core": ">=0.26.0"
},
- "dependencies": {},
+ "dependencies": {
+ },
"devDependencies": {
- "@dytesdk/web-core": ">=0.26.0",
"@commitlint/cli": "^13.1.0",
"@commitlint/config-conventional": "^13.1.0",
+ "@dytesdk/ui-kit": "^1.59.0",
+ "@dytesdk/web-core": "1.20.0",
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/commit-analyzer": "^8.0.1",
"@semantic-release/exec": "^5.0.0",
diff --git a/src/audio_middleware.ts b/src/audio_middleware.ts
index 3a5c669..4d40387 100644
--- a/src/audio_middleware.ts
+++ b/src/audio_middleware.ts
@@ -1,26 +1,69 @@
import { getWebSocket } from './transcriptions_building_blocks';
+function isAudioInputSilent(inputData: Float32Array) {
+ let isSilent = true;
+ for (let index = 0; index < inputData.length; index += 1) {
+ if (inputData[index] !== 0) {
+ isSilent = false;
+ break;
+ }
+ }
+ return isSilent;
+}
+
+function downsampleBuffer(buffer: AudioBuffer, outSampleRate: number) {
+ const sampleRateRatio = buffer.sampleRate / outSampleRate;
+ const newLength = Math.round(buffer.length / sampleRateRatio);
+ const result = new Int16Array(newLength);
+ let offsetResult = 0;
+ let offsetBuffer = 0;
+ const inputData = buffer.getChannelData(0);
+
+ while (offsetResult < result.length) {
+ const nextOffsetBuffer = Math.round((offsetResult + 1) * sampleRateRatio);
+ let accum = 0;
+ let count = 0;
+ for (let i = offsetBuffer; i < nextOffsetBuffer && i < buffer.length; i += 1) {
+ accum += inputData[i];
+ count += 1;
+ }
+
+ result[offsetResult] = Math.min(1, accum / count) * 0x7fff;
+ offsetResult += 1;
+ offsetBuffer = nextOffsetBuffer;
+ }
+ return result.buffer;
+}
+
// Actual middleware to apply on Dyte
async function audioTranscriptionMiddleware(audioContext: AudioContext) {
const processor = audioContext.createScriptProcessor(1024, 1, 1);
- processor.onaudioprocess = (e) => {
- const inputData = e.inputBuffer.getChannelData(0) || new Float32Array(this.bufferSize);
- const outputData = e.outputBuffer.getChannelData(0);
+ processor.onaudioprocess = (audioProcessingEvent) => {
+ const inputData = (
+ audioProcessingEvent.inputBuffer.getChannelData(0)
+ || new Float32Array(this.bufferSize)
+ );
+
+ // Stale processors might be floating around, do nothing for stale processors.
+ if (isAudioInputSilent(inputData)) {
+ return;
+ }
+
+ const outputData = audioProcessingEvent.outputBuffer.getChannelData(0);
// Output to the buffer to not halt audio output
inputData.forEach((val, index) => {
outputData[index] = val;
});
-
- const targetBuffer = new Int16Array(inputData.length);
- for (let index = inputData.length; index > 0; index -= 1) {
- targetBuffer[index] = 32767 * Math.min(1, inputData[index]);
- }
// Send audio stream to websocket.
const ws = getWebSocket();
if (ws?.readyState === WebSocket.OPEN) {
- ws.send(targetBuffer.buffer);
+ const downsampledBuffer = downsampleBuffer(
+ audioProcessingEvent.inputBuffer,
+ 16000,
+ );
+ ws.send(downsampledBuffer);
}
};
diff --git a/src/env.d.ts b/src/env.d.ts
deleted file mode 100644
index b3913c9..0000000
--- a/src/env.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-interface ImportMetaEnv extends Readonly> {
- readonly DEV: string,
-}
-
-interface ImportMeta {
- readonly env: ImportMetaEnv
-}
diff --git a/src/index.ts b/src/index.ts
index be9275c..9b8ddd3 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -53,16 +53,3 @@ export {
removeTranscriptionsListener,
getTranscriptions,
};
-
-const isLocal = import.meta.env.DEV;
-if (isLocal) {
- Object.assign(window, {
- Symbl: {
- activateTranscriptions,
- deactivateTranscriptions,
- addTranscriptionsListener,
- removeTranscriptionsListener,
- getTranscriptions,
- },
- });
-}
diff --git a/src/param_types.ts b/src/param_types.ts
index 816d3aa..d5553fe 100644
--- a/src/param_types.ts
+++ b/src/param_types.ts
@@ -1,10 +1,12 @@
-import DyteClient from '@dytesdk/web-core/types/client/DyteClient';
-import { BroadcastMessagePayload } from '@dytesdk/web-core/types/client/DyteParticipants';
+import type DyteClient from '@dytesdk/web-core';
+import type { BroadcastMessagePayload } from '@dytesdk/web-core/';
export interface ActivateTranscriptionsConfig {
meeting: DyteClient,
symblAccessToken: string,
languageCode?: string,
+ connectionId?: string,
+ speakerUserId?: string,
}
export interface DeactivateTranscriptionsConfig {
diff --git a/src/symbl_transcriptions.ts b/src/symbl_transcriptions.ts
index 657222a..83e225d 100644
--- a/src/symbl_transcriptions.ts
+++ b/src/symbl_transcriptions.ts
@@ -19,13 +19,15 @@ async function activateTranscriptions({
meeting,
symblAccessToken,
languageCode,
+ connectionId,
+ speakerUserId,
}: ActivateTranscriptionsConfig) {
// As a fail-safe, deactivateTranscriptions if activateTranscriptions function is called twice
// eslint-disable-next-line no-use-before-define
deactivateTranscriptions({ meeting });
- const uniqueMeetingId = meeting.meta.roomName;
- const symblEndpoint = `wss://api.symbl.ai/v1/streaming/${uniqueMeetingId}?access_token=${symblAccessToken}`;
+ const symblConnectionId = connectionId || meeting.meta.roomName;
+ const symblEndpoint = `wss://api.symbl.ai/v1/streaming/${symblConnectionId}?access_token=${symblAccessToken}`;
const ws = new WebSocket(symblEndpoint);
setWebSocket(ws);
@@ -103,12 +105,15 @@ async function activateTranscriptions({
languageCode, // Symbl has bug. This field is not honoured
speechRecognition: {
encoding: 'LINEAR16',
- sampleRateHertz: 44100,
+ sampleRateHertz: 16000,
},
},
speaker: {
- peerId: meeting.self.id, // this if has email, gets transcription at the end
+ // if speaker has email key, transcription gets sent at the end
+ // speaker supports all arbitary values
+ userId: speakerUserId || meeting.self.clientSpecificId || meeting.self.id,
name: meeting.self.name,
+ peerId: meeting.self.id,
},
}));
};
diff --git a/src/transcriptions_building_blocks.ts b/src/transcriptions_building_blocks.ts
index 0db486e..1320771 100644
--- a/src/transcriptions_building_blocks.ts
+++ b/src/transcriptions_building_blocks.ts
@@ -1,4 +1,4 @@
-import { BroadcastMessagePayload } from '@dytesdk/web-core/types/client/DyteParticipants';
+import type { BroadcastMessagePayload } from '@dytesdk/web-core';
let ws: WebSocket;
diff --git a/src/transcripts_listener.ts b/src/transcripts_listener.ts
index 73d8309..7ac25c8 100644
--- a/src/transcripts_listener.ts
+++ b/src/transcripts_listener.ts
@@ -4,7 +4,7 @@
* This is being done to propagate User Name against their transcriptions.
*/
-import { BroadcastMessagePayload } from '@dytesdk/web-core/types/client/DyteParticipants';
+import type { BroadcastMessagePayload } from '@dytesdk/web-core';
import {
AddTranscriptionsListenerConfig,
RemoveTranscriptionsListenerConfig,