mediasfu-shared 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -4
- package/README.md +145 -131
- package/dist/consumers/connectIps.d.ts.map +1 -1
- package/dist/consumers/index.cjs +1 -1
- package/dist/consumers/index.js +1 -1
- package/dist/{getParticipantMedia-DC_Nca8S.cjs → getParticipantMedia-AwwtMCTz.cjs} +4 -4
- package/dist/getParticipantMedia-AwwtMCTz.cjs.map +1 -0
- package/dist/{getParticipantMedia-Bu_aZlxe.js → getParticipantMedia-CyaOk2oD.js} +4 -4
- package/dist/getParticipantMedia-CyaOk2oD.js.map +1 -0
- package/dist/index.cjs +36 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +37 -8
- package/dist/index.js.map +1 -1
- package/dist/index.native.cjs +3 -3
- package/dist/index.native.js +3 -3
- package/dist/{joinLocalRoom-7ibqv7zZ.js → joinLocalRoom-Bu3gz27d.js} +2 -2
- package/dist/{joinLocalRoom-7ibqv7zZ.js.map → joinLocalRoom-Bu3gz27d.js.map} +1 -1
- package/dist/{joinLocalRoom-BJBDvTYh.cjs → joinLocalRoom-Cii5D5IG.cjs} +2 -2
- package/dist/{joinLocalRoom-BJBDvTYh.cjs.map → joinLocalRoom-Cii5D5IG.cjs.map} +1 -1
- package/dist/methods/recording/startRecording.d.ts.map +1 -1
- package/dist/methods/utils/headless/virtualBackground.d.ts +13 -1
- package/dist/methods/utils/headless/virtualBackground.d.ts.map +1 -1
- package/dist/methods/utils/virtualBackgroundCompositor.d.ts +4 -0
- package/dist/methods/utils/virtualBackgroundCompositor.d.ts.map +1 -1
- package/dist/sockets/SocketManager.d.ts +0 -27
- package/dist/sockets/SocketManager.d.ts.map +1 -1
- package/dist/types/index.cjs +2 -2
- package/dist/types/index.js +2 -2
- package/dist/{updateParticipantAudioDecibels-C_MygF6q.js → updateParticipantAudioDecibels-CnEXJBmc.js} +85 -13
- package/dist/updateParticipantAudioDecibels-CnEXJBmc.js.map +1 -0
- package/dist/{updateParticipantAudioDecibels-bZ6R8WHj.cjs → updateParticipantAudioDecibels-QZyahisU.cjs} +85 -13
- package/dist/updateParticipantAudioDecibels-QZyahisU.cjs.map +1 -0
- package/package.json +1 -1
- package/src/consumers/connectIps.ts +46 -7
- package/src/methods/recording/startRecording.ts +7 -1
- package/src/methods/utils/headless/virtualBackground.ts +34 -2
- package/src/methods/utils/virtualBackgroundCompositor.ts +18 -1
- package/src/sockets/SocketManager.ts +54 -7
- package/dist/getParticipantMedia-Bu_aZlxe.js.map +0 -1
- package/dist/getParticipantMedia-DC_Nca8S.cjs.map +0 -1
- package/dist/updateParticipantAudioDecibels-C_MygF6q.js.map +0 -1
- package/dist/updateParticipantAudioDecibels-bZ6R8WHj.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startRecording.d.ts","sourceRoot":"","sources":["../../../src/methods/recording/startRecording.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEvE,MAAM,WAAW,wBACf,SAAQ,0BAA0B,EAChC,2BAA2B;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACzD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,qBAAqB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACjD,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,eAAe,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,oBAAoB,CAAA;IAC5B,mBAAmB,EAAE,iCAAiC,CAAA;IACtD,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;IACnD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,GAAG,CAAA;CAChB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,MAAM,MAAM,iCAAiC,GAAG,CAAC,OAAO,EAAE;IACxD,UAAU,EAAE,GAAG,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,wBAAwB,CAAA;CACrC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"startRecording.d.ts","sourceRoot":"","sources":["../../../src/methods/recording/startRecording.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEvE,MAAM,WAAW,wBACf,SAAQ,0BAA0B,EAChC,2BAA2B;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACzD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,qBAAqB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACjD,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,eAAe,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,oBAAoB,CAAA;IAC5B,mBAAmB,EAAE,iCAAiC,CAAA;IACtD,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;IACnD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,GAAG,CAAA;CAChB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,MAAM,MAAM,iCAAiC,GAAG,CAAC,OAAO,EAAE;IACxD,UAAU,EAAE,GAAG,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,wBAAwB,CAAA;CACrC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,eAAO,MAAM,cAAc,EAAE,kBAyI5B,CAAA"}
|
|
@@ -23,6 +23,11 @@ export interface ApplyVirtualBackgroundOptions extends HeadlessOptions {
|
|
|
23
23
|
* A trailing slash is added if missing.
|
|
24
24
|
*/
|
|
25
25
|
assetPath?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Blur the area behind the segmented person by this many pixels. When this
|
|
28
|
+
* is greater than zero it takes precedence over `image`. Defaults to 0.
|
|
29
|
+
*/
|
|
30
|
+
blurPixels?: number;
|
|
26
31
|
}
|
|
27
32
|
export type ApplyVirtualBackgroundType = (options: ApplyVirtualBackgroundOptions) => Promise<HeadlessActionResult & {
|
|
28
33
|
stream: MediaStream | null;
|
|
@@ -55,9 +60,16 @@ export type ApplyVirtualBackgroundType = (options: ApplyVirtualBackgroundOptions
|
|
|
55
60
|
* await clearVirtualBackground({ parameters });
|
|
56
61
|
* ```
|
|
57
62
|
*/
|
|
58
|
-
export declare function applyVirtualBackground({ parameters, image, frameRate, modelSelection, publish, assetPath, }: ApplyVirtualBackgroundOptions): Promise<HeadlessActionResult & {
|
|
63
|
+
export declare function applyVirtualBackground({ parameters, image, frameRate, modelSelection, publish, assetPath, blurPixels, }: ApplyVirtualBackgroundOptions): Promise<HeadlessActionResult & {
|
|
59
64
|
stream: MediaStream | null;
|
|
60
65
|
}>;
|
|
66
|
+
export interface ApplyBackgroundBlurOptions extends Omit<ApplyVirtualBackgroundOptions, 'image'> {
|
|
67
|
+
/** Blur strength in CSS pixels. Defaults to 16. */
|
|
68
|
+
blurPixels?: number;
|
|
69
|
+
}
|
|
70
|
+
/** Apply person-aware background blur through the standard processed-track lifecycle. */
|
|
71
|
+
export declare function applyBackgroundBlur({ blurPixels, ...options }: ApplyBackgroundBlurOptions): ReturnType<ApplyVirtualBackgroundType>;
|
|
72
|
+
export type ApplyBackgroundBlurType = typeof applyBackgroundBlur;
|
|
61
73
|
export type ClearVirtualBackgroundType = (options: HeadlessOptions) => Promise<HeadlessActionResult>;
|
|
62
74
|
/**
|
|
63
75
|
* Remove the virtual background and go back to the raw camera.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualBackground.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/virtualBackground.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"virtualBackground.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/virtualBackground.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAmCrD,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC5D,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,6BAA6B,KACnC,OAAO,CAAC,oBAAoB,GAAG;IAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,EACV,KAAK,EACL,SAAc,EACd,cAAkB,EAClB,OAAc,EACd,SAAyB,EACzB,UAAc,GACf,EAAE,6BAA6B,GAAG,OAAO,CAAC,oBAAoB,GAAG;IAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC,CA4IhG;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAC9F,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yFAAyF;AACzF,wBAAgB,mBAAmB,CAAC,EAClC,UAA2C,EAC3C,GAAG,OAAO,EACX,EAAE,0BAA0B,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAMrE;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,mBAAmB,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuBjD;AAED,wEAAwE;AACxE,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD"}
|
|
@@ -9,6 +9,10 @@ export interface CompositeVirtualBackgroundFrameOptions {
|
|
|
9
9
|
repeatPattern?: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
|
|
10
10
|
blurFallbackPixels?: number;
|
|
11
11
|
}
|
|
12
|
+
/** Stable room-state value used by every web UI surface for background blur. */
|
|
13
|
+
export declare const VIRTUAL_BACKGROUND_BLUR = "blur";
|
|
14
|
+
export declare const DEFAULT_BACKGROUND_BLUR_PIXELS = 16;
|
|
15
|
+
export declare function isVirtualBackgroundBlur(value: unknown): boolean;
|
|
12
16
|
/**
|
|
13
17
|
* Paint the segmented person over a replacement background.
|
|
14
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualBackgroundCompositor.d.ts","sourceRoot":"","sources":["../../../src/methods/utils/virtualBackgroundCompositor.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,sCAAsC;IACrD,GAAG,EAAE,wBAAwB,CAAC;IAC9B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,eAAe,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,EAC9C,GAAG,EACH,gBAAgB,EAChB,WAAW,EACX,eAAsB,EACtB,KAAK,EACL,MAAM,EACN,aAAwB,EACxB,kBAAsB,GACvB,EAAE,sCAAsC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"virtualBackgroundCompositor.d.ts","sourceRoot":"","sources":["../../../src/methods/utils/virtualBackgroundCompositor.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,sCAAsC;IACrD,GAAG,EAAE,wBAAwB,CAAC;IAC9B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,eAAe,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,EAC9C,GAAG,EACH,gBAAgB,EAChB,WAAW,EACX,eAAsB,EACtB,KAAK,EACL,MAAM,EACN,aAAwB,EACxB,kBAAsB,GACvB,EAAE,sCAAsC,GAAG,IAAI,CAgC/C"}
|
|
@@ -28,33 +28,6 @@ export interface DisconnectSocketOptions {
|
|
|
28
28
|
export type ConnectSocketType = (options: ConnectSocketOptions) => Promise<Socket>;
|
|
29
29
|
export type DisconnectSocketType = (options: DisconnectSocketOptions) => Promise<boolean>;
|
|
30
30
|
export type ConnectLocalSocketType = (options: ConnectLocalSocketOptions) => Promise<ResponseLocalConnection>;
|
|
31
|
-
/**
|
|
32
|
-
* Connects to a media socket using the provided connection options.
|
|
33
|
-
*
|
|
34
|
-
* @param {ConnectSocketOptions} options - The connection options.
|
|
35
|
-
* @param {string} options.apiUserName - The API username.
|
|
36
|
-
* @param {string} [options.apiKey] - The API key (optional if apiToken is provided).
|
|
37
|
-
* @param {string} [options.apiToken] - The API token (optional if apiKey is provided).
|
|
38
|
-
* @param {string} options.link - The socket link.
|
|
39
|
-
*
|
|
40
|
-
* @returns {Promise<Socket>} A promise that resolves to the connected socket.
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* const options = {
|
|
45
|
-
* apiUserName: 'user123',
|
|
46
|
-
* apiKey: 'yourApiKeyHere',
|
|
47
|
-
* link: 'https://socketlink.com',
|
|
48
|
-
* };
|
|
49
|
-
*
|
|
50
|
-
* try {
|
|
51
|
-
* const socket = await connectSocket(options);
|
|
52
|
-
* console.log('Connected to socket:', socket);
|
|
53
|
-
* } catch (error) {
|
|
54
|
-
* console.error('Failed to connect to socket:', error);
|
|
55
|
-
* }
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
31
|
declare function connectSocket({ apiUserName, apiKey, apiToken, link }: ConnectSocketOptions): Promise<Socket>;
|
|
59
32
|
/**
|
|
60
33
|
* Connects to a local media socket using the provided connection options.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketManager.d.ts","sourceRoot":"","sources":["../../src/sockets/SocketManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe9C,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,2BAA2B,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AACnF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1F,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SocketManager.d.ts","sourceRoot":"","sources":["../../src/sockets/SocketManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe9C,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,2BAA2B,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AACnF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1F,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAkC9G,iBAAe,aAAa,CAC1B,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,oBAAoB,GAC5D,OAAO,CAAC,MAAM,CAAC,CAkHjB;AAGD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iBAAe,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAuBvG;AAED;;;;;;;;;;;;;;;;;GAiBG;AAEH,iBAAe,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAKrF;AAED,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/types/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const joinLocalRoom = require("../joinLocalRoom-
|
|
4
|
-
const updateParticipantAudioDecibels = require("../updateParticipantAudioDecibels-
|
|
3
|
+
const joinLocalRoom = require("../joinLocalRoom-Cii5D5IG.cjs");
|
|
4
|
+
const updateParticipantAudioDecibels = require("../updateParticipantAudioDecibels-QZyahisU.cjs");
|
|
5
5
|
const joinRoomOnMediaSFU = require("../joinRoomOnMediaSFU-CC8RVJgr.cjs");
|
|
6
6
|
exports.addVideosGrid = joinLocalRoom.addVideosGrid;
|
|
7
7
|
exports.breakoutRoomUpdated = joinLocalRoom.breakoutRoomUpdated;
|
package/dist/types/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a, b, d, c, e, f, j, m, p, u } from "../joinLocalRoom-
|
|
2
|
-
import { Y, Z, a as a2, _, $, b as b2, W, d as d2, e as e2, f as f2, g, h, i, j as j2, k, l, m as m2, c as c2, a0, n, o, p as p2, q, r, s, a1, a2 as a22, a3, t, X, T, v, U, w, x, y, V, C, G, z, A, a4, B, D, E, F, a5, N, H, I, J, K, L, M, O, P, Q, R, S, u as u2, a6, a7 } from "../updateParticipantAudioDecibels-
|
|
1
|
+
import { a, b, d, c, e, f, j, m, p, u } from "../joinLocalRoom-Bu3gz27d.js";
|
|
2
|
+
import { Y, Z, a as a2, _, $, b as b2, W, d as d2, e as e2, f as f2, g, h, i, j as j2, k, l, m as m2, c as c2, a0, n, o, p as p2, q, r, s, a1, a2 as a22, a3, t, X, T, v, U, w, x, y, V, C, G, z, A, a4, B, D, E, F, a5, N, H, I, J, K, L, M, O, P, Q, R, S, u as u2, a6, a7 } from "../updateParticipantAudioDecibels-CnEXJBmc.js";
|
|
3
3
|
import { e as e3, a as a8, c as c3, b as b3, d as d3, h as h2, t as t2 } from "../joinRoomOnMediaSFU-y6vJ1OBo.js";
|
|
4
4
|
export {
|
|
5
5
|
a as addVideosGrid,
|
|
@@ -765,6 +765,7 @@ async function validateApiKeyToken(value) {
|
|
|
765
765
|
}
|
|
766
766
|
return true;
|
|
767
767
|
}
|
|
768
|
+
const CONNECT_TIMEOUT_MS = 12e3;
|
|
768
769
|
async function connectSocket({ apiUserName, apiKey, apiToken, link }) {
|
|
769
770
|
if (!apiUserName) {
|
|
770
771
|
throw new Error("API username required.");
|
|
@@ -808,7 +809,21 @@ async function connectSocket({ apiUserName, apiKey, apiToken, link }) {
|
|
|
808
809
|
}
|
|
809
810
|
});
|
|
810
811
|
}
|
|
811
|
-
|
|
812
|
+
let settled = false;
|
|
813
|
+
let timeoutHandle;
|
|
814
|
+
const cleanupHandshake = () => {
|
|
815
|
+
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
816
|
+
socket.off("connection-success", handleConnectionSuccess);
|
|
817
|
+
socket.off("connect_error", handleConnectError);
|
|
818
|
+
socket.off("disconnect", handleDisconnectBeforeReady);
|
|
819
|
+
};
|
|
820
|
+
const settle = (action) => {
|
|
821
|
+
if (settled) return;
|
|
822
|
+
settled = true;
|
|
823
|
+
cleanupHandshake();
|
|
824
|
+
action();
|
|
825
|
+
};
|
|
826
|
+
const handleConnectionSuccess = ({ socketId }) => {
|
|
812
827
|
let conn = "media";
|
|
813
828
|
try {
|
|
814
829
|
if (link.includes("mediasfu.com") && (link.match(/c/g)?.length ?? 0) > 1) {
|
|
@@ -817,11 +832,35 @@ async function connectSocket({ apiUserName, apiKey, apiToken, link }) {
|
|
|
817
832
|
} catch {
|
|
818
833
|
}
|
|
819
834
|
console.log(`Connected to ${conn} socket with ID: ${socketId}`);
|
|
820
|
-
resolve(socket);
|
|
821
|
-
}
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
835
|
+
settle(() => resolve(socket));
|
|
836
|
+
};
|
|
837
|
+
const handleConnectError = (error) => {
|
|
838
|
+
settle(() => {
|
|
839
|
+
socket.disconnect();
|
|
840
|
+
reject(new Error("Error connecting to media socket: " + error.message));
|
|
841
|
+
});
|
|
842
|
+
};
|
|
843
|
+
const handleDisconnectBeforeReady = (reason) => {
|
|
844
|
+
settle(
|
|
845
|
+
() => reject(
|
|
846
|
+
new Error(
|
|
847
|
+
"Media socket closed before the room was ready (" + reason + ")."
|
|
848
|
+
)
|
|
849
|
+
)
|
|
850
|
+
);
|
|
851
|
+
};
|
|
852
|
+
socket.on("connection-success", handleConnectionSuccess);
|
|
853
|
+
socket.on("connect_error", handleConnectError);
|
|
854
|
+
socket.on("disconnect", handleDisconnectBeforeReady);
|
|
855
|
+
timeoutHandle = setTimeout(() => {
|
|
856
|
+
settle(() => {
|
|
857
|
+
try {
|
|
858
|
+
socket.disconnect();
|
|
859
|
+
} catch {
|
|
860
|
+
}
|
|
861
|
+
reject(new Error("Timed out connecting to media socket."));
|
|
862
|
+
});
|
|
863
|
+
}, CONNECT_TIMEOUT_MS);
|
|
825
864
|
});
|
|
826
865
|
}
|
|
827
866
|
async function connectLocalSocket({ link }) {
|
|
@@ -1193,10 +1232,19 @@ const joinConsumeRoom = async ({
|
|
|
1193
1232
|
};
|
|
1194
1233
|
const pendingConsumeConnections = /* @__PURE__ */ new WeakMap();
|
|
1195
1234
|
const normalizeConsumeEndpoint = (ip) => ip.trim().toLowerCase().replace(/\.$/, "");
|
|
1196
|
-
const hasConsumeEndpoint = (consumeSockets, endpoint) =>
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1235
|
+
const hasConsumeEndpoint = (consumeSockets, endpoint) => {
|
|
1236
|
+
for (let index = consumeSockets.length - 1; index >= 0; index -= 1) {
|
|
1237
|
+
const socketObj = consumeSockets[index];
|
|
1238
|
+
const ip = Object.keys(socketObj)[0];
|
|
1239
|
+
if (!ip || normalizeConsumeEndpoint(ip) !== endpoint) continue;
|
|
1240
|
+
const socket = socketObj[ip];
|
|
1241
|
+
if (socket?.connected && socket.id) return true;
|
|
1242
|
+
socket?.removeAllListeners?.();
|
|
1243
|
+
socket?.disconnect?.();
|
|
1244
|
+
consumeSockets.splice(index, 1);
|
|
1245
|
+
}
|
|
1246
|
+
return false;
|
|
1247
|
+
};
|
|
1200
1248
|
async function reserveConsumeEndpoint(consumeSockets, ip, reservationOwner = consumeSockets) {
|
|
1201
1249
|
const endpoint = normalizeConsumeEndpoint(ip);
|
|
1202
1250
|
if (!endpoint || endpoint === "none") return null;
|
|
@@ -1220,6 +1268,9 @@ async function reserveConsumeEndpoint(consumeSockets, ip, reservationOwner = con
|
|
|
1220
1268
|
return (didConnect = false) => {
|
|
1221
1269
|
if (pendingForSockets?.get(endpoint) === reservation) {
|
|
1222
1270
|
pendingForSockets.delete(endpoint);
|
|
1271
|
+
if (pendingForSockets.size === 0) {
|
|
1272
|
+
pendingConsumeConnections.delete(reservationOwner);
|
|
1273
|
+
}
|
|
1223
1274
|
}
|
|
1224
1275
|
resolvePending(didConnect === true);
|
|
1225
1276
|
};
|
|
@@ -1256,8 +1307,9 @@ const connectIps = async ({
|
|
|
1256
1307
|
);
|
|
1257
1308
|
if (!releaseReservation) continue;
|
|
1258
1309
|
let connected = false;
|
|
1310
|
+
let remote_sock = null;
|
|
1259
1311
|
try {
|
|
1260
|
-
|
|
1312
|
+
remote_sock = await connectSocket({ apiUserName, apiKey, apiToken, link: `https://${ip}.mediasfu.com` });
|
|
1261
1313
|
if (remote_sock.id) {
|
|
1262
1314
|
if (!roomRecvIPs.includes(ip)) {
|
|
1263
1315
|
roomRecvIPs.push(ip);
|
|
@@ -1288,16 +1340,36 @@ const connectIps = async ({
|
|
|
1288
1340
|
parameters
|
|
1289
1341
|
});
|
|
1290
1342
|
if (!data.rtpCapabilities) {
|
|
1291
|
-
return
|
|
1343
|
+
throw new Error(`Consume room ${ip} did not return RTP capabilities.`);
|
|
1292
1344
|
}
|
|
1293
1345
|
}
|
|
1294
1346
|
consume_sockets.push({ [ip]: remote_sock });
|
|
1295
1347
|
updateConsume_sockets(consume_sockets);
|
|
1296
1348
|
connected = true;
|
|
1349
|
+
remote_sock.on("disconnect", () => {
|
|
1350
|
+
const socketIndex = consume_sockets.findIndex(
|
|
1351
|
+
(socketObj) => socketObj[ip] === remote_sock
|
|
1352
|
+
);
|
|
1353
|
+
if (socketIndex >= 0) {
|
|
1354
|
+
consume_sockets.splice(socketIndex, 1);
|
|
1355
|
+
updateConsume_sockets(consume_sockets);
|
|
1356
|
+
}
|
|
1357
|
+
const recvIndex = roomRecvIPs.indexOf(ip);
|
|
1358
|
+
if (recvIndex >= 0) {
|
|
1359
|
+
roomRecvIPs.splice(recvIndex, 1);
|
|
1360
|
+
updateRoomRecvIPs(roomRecvIPs);
|
|
1361
|
+
}
|
|
1362
|
+
remote_sock?.removeAllListeners?.();
|
|
1363
|
+
remote_sock?.disconnect();
|
|
1364
|
+
});
|
|
1297
1365
|
}
|
|
1298
1366
|
} catch (error) {
|
|
1299
1367
|
console.log("connectIps error", error);
|
|
1300
1368
|
} finally {
|
|
1369
|
+
if (!connected && remote_sock) {
|
|
1370
|
+
remote_sock.removeAllListeners?.();
|
|
1371
|
+
remote_sock.disconnect();
|
|
1372
|
+
}
|
|
1301
1373
|
releaseReservation(connected);
|
|
1302
1374
|
}
|
|
1303
1375
|
}
|
|
@@ -5429,4 +5501,4 @@ export {
|
|
|
5429
5501
|
processConsumerTransportsAudio as y,
|
|
5430
5502
|
readjust as z
|
|
5431
5503
|
};
|
|
5432
|
-
//# sourceMappingURL=updateParticipantAudioDecibels-
|
|
5504
|
+
//# sourceMappingURL=updateParticipantAudioDecibels-CnEXJBmc.js.map
|