@webex/media-helpers 3.0.0-stream-classes.4 → 3.0.1

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/README.md CHANGED
@@ -31,20 +31,16 @@ Noise reduction (e.g., background noise removal)
31
31
  The virtual background effect provides a virtual background for video calling. The virtual background may be an image, an mp4 video, or the user's background with blur applied.
32
32
 
33
33
  **Applying the effect**
34
- 1. Create a new camera track instance by using LocalCameraTrack() method.
34
+ 1. Create a new camera stream instance by using createCameraStream() method.
35
35
  2. Create a VirtualBackgroundEffect instance by passing appropriate constraints.
36
- 3. Use addEffect() method on cameraTrack to apply effect on it.
37
- 4. Enable the effect after adding it to cameraTrack using enable() method available on effect. Effect will be enabled on cameraTrack.
36
+ 3. Use addEffect() method on cameraStream to apply effect on it.
37
+ 4. Enable the effect after adding it to cameraStream using enable() method available on effect. Effect will be enabled on cameraStream.
38
38
 
39
39
  ```javascript
40
- import {LocalCameraTrack, VirtualBackgroundEffect} from '@webex/media-helpers';
40
+ import {createCameraStream, VirtualBackgroundEffect} from '@webex/media-helpers';
41
41
 
42
- // Create a new video stream by a getting user's video media.
43
- const stream = await navigator.mediaDevices.getUserMedia({ video: { width, height } });
44
-
45
- const videoTrackFromLocalStream = stream.getVideoTracks()[0];
46
-
47
- const cameraTrack = new LocalCameraTrack(new MediaStream([videoTrackFromLocalStream]));
42
+ // Create a new video stream.
43
+ const cameraStream = createCameraStream(optionalVideoConstraints);
48
44
 
49
45
  // Create the effect.
50
46
  const effect = new VirtualBackgroundEffect({
@@ -54,10 +50,10 @@ const effect = new VirtualBackgroundEffect({
54
50
  quality: `LOW`,
55
51
  });
56
52
 
57
- // add the effect on the input camera track.
58
- await cameraTrack.addEffect("background-blur", effect);
53
+ // add the effect on the input camera stream.
54
+ await cameraStream.addEffect(effect);
59
55
 
60
- //enable the effect once it is added to the track
56
+ //enable the effect once it is added to the stream
61
57
  await effect.enable()
62
58
  ```
63
59
 
@@ -65,20 +61,16 @@ await effect.enable()
65
61
  The noise reduction effect removes background noise from an audio stream to provide clear audio for calling.
66
62
 
67
63
  **Applying the effect**
68
- 1. Create a new microphone track instance by using LocalMicrophoneTrack() method.
64
+ 1. Create a new microphone stream instance by using createMicrophoneStream() method.
69
65
  2. Create a NoiseReductionEffect instance by passing appropriate constraints.
70
- 3. Use addEffect() method on microphoneTrack to apply effect on it.
71
- 4. Enable the effect after adding it to microphoneTrack using enable() method available on effect. Effect will be enabled on microphoneTrack.
66
+ 3. Use addEffect() method on microphoneStream to apply effect on it.
67
+ 4. Enable the effect after adding it to microphoneStream using enable() method available on effect. Effect will be enabled on microphoneStream.
72
68
 
73
69
  ```javascript
74
- import {LocalMicrophoneTrack, NoiseReductionEffect} from '@webex/media-helpers';
75
-
76
- // Create a new audio stream by getting a user's audio media.
77
- const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
78
-
79
- const audioTrackFromLocalStream = stream.getAudioTracks()[0];
70
+ import {createMicrophoneStream, NoiseReductionEffect} from '@webex/media-helpers';
80
71
 
81
- const microphoneTrack = new LocalMicrophoneTrack(new MediaStream([audioTrackFromLocalStream]));
72
+ // Create a new audio stream.
73
+ const microphoneStream = createMicrophoneStream(optionalAudioConstraints);
82
74
 
83
75
  // Create the effect.
84
76
  const effect = new NoiseReductionEffect({
@@ -86,8 +78,8 @@ const effect = new NoiseReductionEffect({
86
78
  mode: 'WORKLET', // or 'LEGACY'
87
79
  });
88
80
 
89
- // add the effect on microphone track.
90
- await microphoneTrack.addEffect("background-noise-removal", effect);
81
+ // add the effect on microphone stream.
82
+ await microphoneStream.addEffect(effect);
91
83
 
92
84
  //enable the effect once it is added to the track
93
85
  await effect.enable()
@@ -0,0 +1,13 @@
1
+ {
2
+ "presets": [
3
+ [
4
+ "@babel/preset-env",
5
+ {
6
+ "targets": {
7
+ "node": "current"
8
+ }
9
+ }
10
+ ],
11
+ "@babel/preset-typescript"
12
+ ],
13
+ }
@@ -0,0 +1,13 @@
1
+ import { VideoDeviceConstraints } from '@webex/internal-media-core';
2
+ export declare enum FacingMode {
3
+ user = "user",
4
+ environment = "environment"
5
+ }
6
+ export declare enum DisplaySurface {
7
+ browser = "browser",
8
+ monitor = "monitor",
9
+ window = "window"
10
+ }
11
+ export declare const PresetCameraConstraints: {
12
+ [key: string]: VideoDeviceConstraints;
13
+ };
package/dist/constants.js CHANGED
@@ -1,24 +1,21 @@
1
1
  "use strict";
2
2
 
3
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
- _Object$defineProperty(exports, "__esModule", {
3
+ Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.PresetCameraConstraints = exports.FacingMode = exports.DisplaySurface = void 0;
8
- var FacingMode; // can be used later on when we add constraints in create display track
9
- exports.FacingMode = FacingMode;
10
- (function (FacingMode) {
7
+ let FacingMode = exports.FacingMode = /*#__PURE__*/function (FacingMode) {
11
8
  FacingMode["user"] = "user";
12
9
  FacingMode["environment"] = "environment";
13
- })(FacingMode || (exports.FacingMode = FacingMode = {}));
14
- var DisplaySurface;
15
- exports.DisplaySurface = DisplaySurface;
16
- (function (DisplaySurface) {
10
+ return FacingMode;
11
+ }({}); // can be used later on when we add constraints in create display track
12
+ let DisplaySurface = exports.DisplaySurface = /*#__PURE__*/function (DisplaySurface) {
17
13
  DisplaySurface["browser"] = "browser";
18
14
  DisplaySurface["monitor"] = "monitor";
19
15
  DisplaySurface["window"] = "window";
20
- })(DisplaySurface || (exports.DisplaySurface = DisplaySurface = {}));
21
- var PresetCameraConstraints = {
16
+ return DisplaySurface;
17
+ }({});
18
+ const PresetCameraConstraints = exports.PresetCameraConstraints = {
22
19
  '1080p': {
23
20
  frameRate: 30,
24
21
  width: 1920,
@@ -55,5 +52,4 @@ var PresetCameraConstraints = {
55
52
  height: 120
56
53
  }
57
54
  };
58
- exports.PresetCameraConstraints = PresetCameraConstraints;
59
55
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FacingMode","DisplaySurface","PresetCameraConstraints","frameRate","width","height"],"sources":["constants.ts"],"sourcesContent":["import {VideoDeviceConstraints} from '@webex/internal-media-core';\n\nexport enum FacingMode {\n user = 'user',\n environment = 'environment',\n}\n\n// can be used later on when we add constraints in create display track\nexport enum DisplaySurface {\n browser = 'browser',\n monitor = 'monitor',\n window = 'window',\n}\n\nexport const PresetCameraConstraints: {[key: string]: VideoDeviceConstraints} = {\n '1080p': {frameRate: 30, width: 1920, height: 1080},\n\n '720p': {frameRate: 30, width: 1280, height: 720},\n\n '480p': {frameRate: 30, width: 640, height: 480},\n\n '360p': {frameRate: 30, width: 640, height: 360},\n\n '240p': {frameRate: 30, width: 320, height: 240},\n\n '180p': {frameRate: 30, width: 320, height: 180},\n\n '120p': {frameRate: 30, width: 160, height: 120},\n};\n"],"mappings":";;;;;;;IAEYA,UAAU,EAKtB;AAAA;AAAA,WALYA,UAAU;EAAVA,UAAU;EAAVA,UAAU;AAAA,GAAVA,UAAU,0BAAVA,UAAU;AAAA,IAMVC,cAAc;AAAA;AAAA,WAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;AAAA,GAAdA,cAAc,8BAAdA,cAAc;AAMnB,IAAMC,uBAAgE,GAAG;EAC9E,OAAO,EAAE;IAACC,SAAS,EAAE,EAAE;IAAEC,KAAK,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAI,CAAC;EAEnD,MAAM,EAAE;IAACF,SAAS,EAAE,EAAE;IAAEC,KAAK,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAG,CAAC;EAEjD,MAAM,EAAE;IAACF,SAAS,EAAE,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAG,CAAC;EAEhD,MAAM,EAAE;IAACF,SAAS,EAAE,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAG,CAAC;EAEhD,MAAM,EAAE;IAACF,SAAS,EAAE,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAG,CAAC;EAEhD,MAAM,EAAE;IAACF,SAAS,EAAE,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAG,CAAC;EAEhD,MAAM,EAAE;IAACF,SAAS,EAAE,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAG;AACjD,CAAC;AAAC"}
1
+ null
@@ -0,0 +1,4 @@
1
+ export { getDevices, LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStream, type ServerMuteReason, LocalMicrophoneStreamEventNames, LocalCameraStreamEventNames, LocalMicrophoneStream, LocalCameraStream, createMicrophoneStream, createCameraStream, createDisplayStream, createDisplayStreamWithAudio, type VideoContentHint, } from './webrtc-core';
2
+ export { NoiseReductionEffect, VirtualBackgroundEffect } from '@webex/web-media-effects';
3
+ export type { NoiseReductionEffectOptions, VirtualBackgroundEffectOptions, } from '@webex/web-media-effects';
4
+ export { FacingMode, DisplaySurface, PresetCameraConstraints } from './constants';
package/dist/index.js CHANGED
@@ -1,126 +1,125 @@
1
1
  "use strict";
2
2
 
3
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
- _Object$defineProperty(exports, "__esModule", {
3
+ Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- _Object$defineProperty(exports, "DisplaySurface", {
6
+ Object.defineProperty(exports, "DisplaySurface", {
8
7
  enumerable: true,
9
- get: function get() {
8
+ get: function () {
10
9
  return _constants.DisplaySurface;
11
10
  }
12
11
  });
13
- _Object$defineProperty(exports, "FacingMode", {
12
+ Object.defineProperty(exports, "FacingMode", {
14
13
  enumerable: true,
15
- get: function get() {
14
+ get: function () {
16
15
  return _constants.FacingMode;
17
16
  }
18
17
  });
19
- _Object$defineProperty(exports, "LocalCameraStream", {
18
+ Object.defineProperty(exports, "LocalCameraStream", {
20
19
  enumerable: true,
21
- get: function get() {
20
+ get: function () {
22
21
  return _webrtcCore.LocalCameraStream;
23
22
  }
24
23
  });
25
- _Object$defineProperty(exports, "LocalCameraStreamEventNames", {
24
+ Object.defineProperty(exports, "LocalCameraStreamEventNames", {
26
25
  enumerable: true,
27
- get: function get() {
26
+ get: function () {
28
27
  return _webrtcCore.LocalCameraStreamEventNames;
29
28
  }
30
29
  });
31
- _Object$defineProperty(exports, "LocalDisplayStream", {
30
+ Object.defineProperty(exports, "LocalDisplayStream", {
32
31
  enumerable: true,
33
- get: function get() {
32
+ get: function () {
34
33
  return _webrtcCore.LocalDisplayStream;
35
34
  }
36
35
  });
37
- _Object$defineProperty(exports, "LocalMicrophoneStream", {
36
+ Object.defineProperty(exports, "LocalMicrophoneStream", {
38
37
  enumerable: true,
39
- get: function get() {
38
+ get: function () {
40
39
  return _webrtcCore.LocalMicrophoneStream;
41
40
  }
42
41
  });
43
- _Object$defineProperty(exports, "LocalMicrophoneStreamEventNames", {
42
+ Object.defineProperty(exports, "LocalMicrophoneStreamEventNames", {
44
43
  enumerable: true,
45
- get: function get() {
44
+ get: function () {
46
45
  return _webrtcCore.LocalMicrophoneStreamEventNames;
47
46
  }
48
47
  });
49
- _Object$defineProperty(exports, "LocalStream", {
48
+ Object.defineProperty(exports, "LocalStream", {
50
49
  enumerable: true,
51
- get: function get() {
50
+ get: function () {
52
51
  return _webrtcCore.LocalStream;
53
52
  }
54
53
  });
55
- _Object$defineProperty(exports, "LocalStreamEventNames", {
54
+ Object.defineProperty(exports, "LocalStreamEventNames", {
56
55
  enumerable: true,
57
- get: function get() {
56
+ get: function () {
58
57
  return _webrtcCore.LocalStreamEventNames;
59
58
  }
60
59
  });
61
- _Object$defineProperty(exports, "LocalSystemAudioStream", {
60
+ Object.defineProperty(exports, "LocalSystemAudioStream", {
62
61
  enumerable: true,
63
- get: function get() {
62
+ get: function () {
64
63
  return _webrtcCore.LocalSystemAudioStream;
65
64
  }
66
65
  });
67
- _Object$defineProperty(exports, "NoiseReductionEffect", {
66
+ Object.defineProperty(exports, "NoiseReductionEffect", {
68
67
  enumerable: true,
69
- get: function get() {
68
+ get: function () {
70
69
  return _webMediaEffects.NoiseReductionEffect;
71
70
  }
72
71
  });
73
- _Object$defineProperty(exports, "PresetCameraConstraints", {
72
+ Object.defineProperty(exports, "PresetCameraConstraints", {
74
73
  enumerable: true,
75
- get: function get() {
74
+ get: function () {
76
75
  return _constants.PresetCameraConstraints;
77
76
  }
78
77
  });
79
- _Object$defineProperty(exports, "RemoteStream", {
78
+ Object.defineProperty(exports, "RemoteStream", {
80
79
  enumerable: true,
81
- get: function get() {
80
+ get: function () {
82
81
  return _webrtcCore.RemoteStream;
83
82
  }
84
83
  });
85
- _Object$defineProperty(exports, "StreamEventNames", {
84
+ Object.defineProperty(exports, "StreamEventNames", {
86
85
  enumerable: true,
87
- get: function get() {
86
+ get: function () {
88
87
  return _webrtcCore.StreamEventNames;
89
88
  }
90
89
  });
91
- _Object$defineProperty(exports, "VirtualBackgroundEffect", {
90
+ Object.defineProperty(exports, "VirtualBackgroundEffect", {
92
91
  enumerable: true,
93
- get: function get() {
92
+ get: function () {
94
93
  return _webMediaEffects.VirtualBackgroundEffect;
95
94
  }
96
95
  });
97
- _Object$defineProperty(exports, "createCameraStream", {
96
+ Object.defineProperty(exports, "createCameraStream", {
98
97
  enumerable: true,
99
- get: function get() {
98
+ get: function () {
100
99
  return _webrtcCore.createCameraStream;
101
100
  }
102
101
  });
103
- _Object$defineProperty(exports, "createDisplayStream", {
102
+ Object.defineProperty(exports, "createDisplayStream", {
104
103
  enumerable: true,
105
- get: function get() {
104
+ get: function () {
106
105
  return _webrtcCore.createDisplayStream;
107
106
  }
108
107
  });
109
- _Object$defineProperty(exports, "createDisplayStreamWithAudio", {
108
+ Object.defineProperty(exports, "createDisplayStreamWithAudio", {
110
109
  enumerable: true,
111
- get: function get() {
110
+ get: function () {
112
111
  return _webrtcCore.createDisplayStreamWithAudio;
113
112
  }
114
113
  });
115
- _Object$defineProperty(exports, "createMicrophoneStream", {
114
+ Object.defineProperty(exports, "createMicrophoneStream", {
116
115
  enumerable: true,
117
- get: function get() {
116
+ get: function () {
118
117
  return _webrtcCore.createMicrophoneStream;
119
118
  }
120
119
  });
121
- _Object$defineProperty(exports, "getDevices", {
120
+ Object.defineProperty(exports, "getDevices", {
122
121
  enumerable: true,
123
- get: function get() {
122
+ get: function () {
124
123
  return _webrtcCore.getDevices;
125
124
  }
126
125
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export {\n getDevices,\n LocalStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalStreamEventNames,\n StreamEventNames,\n RemoteStream,\n type ServerMuteReason,\n LocalMicrophoneStreamEventNames,\n LocalCameraStreamEventNames,\n LocalMicrophoneStream,\n LocalCameraStream,\n createMicrophoneStream,\n createCameraStream,\n createDisplayStream,\n createDisplayStreamWithAudio,\n type VideoContentHint,\n} from './webrtc-core';\n\nexport {NoiseReductionEffect, VirtualBackgroundEffect} from '@webex/web-media-effects';\nexport type {\n NoiseReductionEffectOptions,\n VirtualBackgroundEffectOptions,\n} from '@webex/web-media-effects';\n\nexport {FacingMode, DisplaySurface, PresetCameraConstraints} from './constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAoBA;AAMA"}
1
+ null
@@ -0,0 +1,58 @@
1
+ import { AudioDeviceConstraints, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream as WcmeLocalMicrophoneStream, LocalCameraStream as WcmeLocalCameraStream, VideoDeviceConstraints } from '@webex/internal-media-core';
2
+ import { TypedEvent, WithEventsDummyType } from '@webex/ts-events';
3
+ export { getDevices, LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStream, type VideoContentHint, } from '@webex/internal-media-core';
4
+ export type ServerMuteReason = 'remotelyMuted' | 'clientRequestFailed' | 'localUnmuteRequired';
5
+ export declare enum LocalMicrophoneStreamEventNames {
6
+ ServerMuted = "muted:byServer"
7
+ }
8
+ export declare enum LocalCameraStreamEventNames {
9
+ ServerMuted = "muted:byServer"
10
+ }
11
+ interface LocalMicrophoneStreamEvents {
12
+ [LocalMicrophoneStreamEventNames.ServerMuted]: TypedEvent<(muted: boolean, reason: ServerMuteReason) => void>;
13
+ }
14
+ interface LocalCameraStreamEvents {
15
+ [LocalMicrophoneStreamEventNames.ServerMuted]: TypedEvent<(muted: boolean, reason: ServerMuteReason) => void>;
16
+ }
17
+ declare class _LocalMicrophoneStream extends WcmeLocalMicrophoneStream {
18
+ private unmuteAllowed;
19
+ [LocalMicrophoneStreamEventNames.ServerMuted]: TypedEvent<(muted: boolean, reason: ServerMuteReason) => void>;
20
+ /**
21
+ * @returns true if user is allowed to unmute the track, false otherwise
22
+ */
23
+ isUnmuteAllowed(): boolean;
24
+ setMuted(muted: boolean): void;
25
+ }
26
+ declare class _LocalCameraStream extends WcmeLocalCameraStream {
27
+ private unmuteAllowed;
28
+ [LocalCameraStreamEventNames.ServerMuted]: TypedEvent<(muted: boolean, reason: ServerMuteReason) => void>;
29
+ /**
30
+ * @returns true if user is allowed to unmute the track, false otherwise
31
+ */
32
+ isUnmuteAllowed(): boolean;
33
+ setMuted(muted: boolean): void;
34
+ }
35
+ export declare const createMicrophoneStream: (constraints?: AudioDeviceConstraints) => Promise<{
36
+ on<K extends LocalMicrophoneStreamEventNames.ServerMuted, E extends LocalMicrophoneStreamEvents[K] extends infer T ? T extends LocalMicrophoneStreamEvents[K] ? T extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K, handler: E): void;
37
+ once<K_1 extends LocalMicrophoneStreamEventNames.ServerMuted, E_1 extends LocalMicrophoneStreamEvents[K_1] extends infer T_1 ? T_1 extends LocalMicrophoneStreamEvents[K_1] ? T_1 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_1, handler: E_1): void;
38
+ off<K_2 extends LocalMicrophoneStreamEventNames.ServerMuted, E_2 extends LocalMicrophoneStreamEvents[K_2] extends infer T_2 ? T_2 extends LocalMicrophoneStreamEvents[K_2] ? T_2 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_2, handler: E_2): void;
39
+ } & _LocalMicrophoneStream>;
40
+ export declare const createCameraStream: (constraints?: VideoDeviceConstraints) => Promise<{
41
+ on<K extends LocalMicrophoneStreamEventNames.ServerMuted, E extends LocalCameraStreamEvents[K] extends infer T ? T extends LocalCameraStreamEvents[K] ? T extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K, handler: E): void;
42
+ once<K_1 extends LocalMicrophoneStreamEventNames.ServerMuted, E_1 extends LocalCameraStreamEvents[K_1] extends infer T_1 ? T_1 extends LocalCameraStreamEvents[K_1] ? T_1 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_1, handler: E_1): void;
43
+ off<K_2 extends LocalMicrophoneStreamEventNames.ServerMuted, E_2 extends LocalCameraStreamEvents[K_2] extends infer T_2 ? T_2 extends LocalCameraStreamEvents[K_2] ? T_2 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_2, handler: E_2): void;
44
+ } & _LocalCameraStream>;
45
+ export declare const createDisplayStream: () => Promise<LocalDisplayStream>;
46
+ export declare const createDisplayStreamWithAudio: () => Promise<[LocalDisplayStream, LocalSystemAudioStream]>;
47
+ export declare const LocalMicrophoneStream: (new (...args: any[]) => {
48
+ on<K extends LocalMicrophoneStreamEventNames.ServerMuted, E extends LocalMicrophoneStreamEvents[K] extends infer T ? T extends LocalMicrophoneStreamEvents[K] ? T extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K, handler: E): void;
49
+ once<K_1 extends LocalMicrophoneStreamEventNames.ServerMuted, E_1 extends LocalMicrophoneStreamEvents[K_1] extends infer T_1 ? T_1 extends LocalMicrophoneStreamEvents[K_1] ? T_1 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_1, handler: E_1): void;
50
+ off<K_2 extends LocalMicrophoneStreamEventNames.ServerMuted, E_2 extends LocalMicrophoneStreamEvents[K_2] extends infer T_2 ? T_2 extends LocalMicrophoneStreamEvents[K_2] ? T_2 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_2, handler: E_2): void;
51
+ }) & typeof _LocalMicrophoneStream;
52
+ export type LocalMicrophoneStream = _LocalMicrophoneStream & WithEventsDummyType<LocalMicrophoneStreamEvents>;
53
+ export declare const LocalCameraStream: (new (...args: any[]) => {
54
+ on<K extends LocalMicrophoneStreamEventNames.ServerMuted, E extends LocalCameraStreamEvents[K] extends infer T ? T extends LocalCameraStreamEvents[K] ? T extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K, handler: E): void;
55
+ once<K_1 extends LocalMicrophoneStreamEventNames.ServerMuted, E_1 extends LocalCameraStreamEvents[K_1] extends infer T_1 ? T_1 extends LocalCameraStreamEvents[K_1] ? T_1 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_1, handler: E_1): void;
56
+ off<K_2 extends LocalMicrophoneStreamEventNames.ServerMuted, E_2 extends LocalCameraStreamEvents[K_2] extends infer T_2 ? T_2 extends LocalCameraStreamEvents[K_2] ? T_2 extends TypedEvent<infer X extends (...args: any[]) => void> ? X : never : never : never>(eventName: K_2, handler: E_2): void;
57
+ }) & typeof _LocalCameraStream;
58
+ export type LocalCameraStream = _LocalCameraStream & WithEventsDummyType<LocalCameraStreamEvents>;
@@ -1,243 +1,148 @@
1
1
  "use strict";
2
2
 
3
- var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
- var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
- _Object$defineProperty(exports, "__esModule", {
3
+ Object.defineProperty(exports, "__esModule", {
7
4
  value: true
8
5
  });
9
6
  exports.LocalCameraStreamEventNames = exports.LocalCameraStream = void 0;
10
- _Object$defineProperty(exports, "LocalDisplayStream", {
7
+ Object.defineProperty(exports, "LocalDisplayStream", {
11
8
  enumerable: true,
12
- get: function get() {
9
+ get: function () {
13
10
  return _internalMediaCore.LocalDisplayStream;
14
11
  }
15
12
  });
16
13
  exports.LocalMicrophoneStreamEventNames = exports.LocalMicrophoneStream = void 0;
17
- _Object$defineProperty(exports, "LocalStream", {
14
+ Object.defineProperty(exports, "LocalStream", {
18
15
  enumerable: true,
19
- get: function get() {
16
+ get: function () {
20
17
  return _internalMediaCore.LocalStream;
21
18
  }
22
19
  });
23
- _Object$defineProperty(exports, "LocalStreamEventNames", {
20
+ Object.defineProperty(exports, "LocalStreamEventNames", {
24
21
  enumerable: true,
25
- get: function get() {
22
+ get: function () {
26
23
  return _internalMediaCore.LocalStreamEventNames;
27
24
  }
28
25
  });
29
- _Object$defineProperty(exports, "LocalSystemAudioStream", {
26
+ Object.defineProperty(exports, "LocalSystemAudioStream", {
30
27
  enumerable: true,
31
- get: function get() {
28
+ get: function () {
32
29
  return _internalMediaCore.LocalSystemAudioStream;
33
30
  }
34
31
  });
35
- _Object$defineProperty(exports, "RemoteStream", {
32
+ Object.defineProperty(exports, "RemoteStream", {
36
33
  enumerable: true,
37
- get: function get() {
34
+ get: function () {
38
35
  return _internalMediaCore.RemoteStream;
39
36
  }
40
37
  });
41
- _Object$defineProperty(exports, "StreamEventNames", {
38
+ Object.defineProperty(exports, "StreamEventNames", {
42
39
  enumerable: true,
43
- get: function get() {
40
+ get: function () {
44
41
  return _internalMediaCore.StreamEventNames;
45
42
  }
46
43
  });
47
44
  exports.createMicrophoneStream = exports.createDisplayStreamWithAudio = exports.createDisplayStream = exports.createCameraStream = void 0;
48
- _Object$defineProperty(exports, "getDevices", {
45
+ Object.defineProperty(exports, "getDevices", {
49
46
  enumerable: true,
50
- get: function get() {
47
+ get: function () {
51
48
  return _internalMediaCore.getDevices;
52
49
  }
53
50
  });
54
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
55
- var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
56
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
57
- var _get2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/get"));
58
- var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
59
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
60
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
61
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
62
51
  var _internalMediaCore = require("@webex/internal-media-core");
63
52
  var _tsEvents = require("@webex/ts-events");
64
- var _LocalMicrophoneStrea, _LocalCameraStreamEve;
65
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
66
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
+ /* eslint-disable @typescript-eslint/no-misused-new */
54
+ /* eslint-disable valid-jsdoc */
55
+ /* eslint-disable require-jsdoc */
67
56
  // server forced the client to be unmuted
68
57
  // these events are in addition to WCME events. This will be properly typed once webrtc-core event types inheritance is fixed
69
- var LocalMicrophoneStreamEventNames; // these events are in addition to WCME events. This will be properly typed once webrtc-core event types inheritance is fixed
70
- exports.LocalMicrophoneStreamEventNames = LocalMicrophoneStreamEventNames;
71
- (function (LocalMicrophoneStreamEventNames) {
58
+ let LocalMicrophoneStreamEventNames = exports.LocalMicrophoneStreamEventNames = /*#__PURE__*/function (LocalMicrophoneStreamEventNames) {
72
59
  LocalMicrophoneStreamEventNames["ServerMuted"] = "muted:byServer";
73
- })(LocalMicrophoneStreamEventNames || (exports.LocalMicrophoneStreamEventNames = LocalMicrophoneStreamEventNames = {}));
74
- var LocalCameraStreamEventNames;
75
- exports.LocalCameraStreamEventNames = LocalCameraStreamEventNames;
76
- (function (LocalCameraStreamEventNames) {
60
+ return LocalMicrophoneStreamEventNames;
61
+ }({}); // these events are in addition to WCME events. This will be properly typed once webrtc-core event types inheritance is fixed
62
+ let LocalCameraStreamEventNames = exports.LocalCameraStreamEventNames = /*#__PURE__*/function (LocalCameraStreamEventNames) {
77
63
  LocalCameraStreamEventNames["ServerMuted"] = "muted:byServer";
78
- })(LocalCameraStreamEventNames || (exports.LocalCameraStreamEventNames = LocalCameraStreamEventNames = {}));
79
- _LocalMicrophoneStrea = LocalMicrophoneStreamEventNames.ServerMuted;
80
- var _LocalMicrophoneStream = /*#__PURE__*/function (_WcmeLocalMicrophoneS) {
81
- (0, _inherits2.default)(_LocalMicrophoneStream, _WcmeLocalMicrophoneS);
82
- var _super = _createSuper(_LocalMicrophoneStream);
83
- function _LocalMicrophoneStream() {
84
- var _this;
85
- (0, _classCallCheck2.default)(this, _LocalMicrophoneStream);
86
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
87
- args[_key] = arguments[_key];
88
- }
89
- _this = _super.call.apply(_super, [this].concat(args));
90
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "unmuteAllowed", true);
91
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), _LocalMicrophoneStrea, new _tsEvents.TypedEvent());
92
- return _this;
64
+ return LocalCameraStreamEventNames;
65
+ }({});
66
+ class _LocalMicrophoneStream extends _internalMediaCore.LocalMicrophoneStream {
67
+ unmuteAllowed = true;
68
+ [LocalMicrophoneStreamEventNames.ServerMuted] = new _tsEvents.TypedEvent();
69
+
70
+ /**
71
+ * @internal
72
+ */
73
+ setUnmuteAllowed(allowed) {
74
+ this.unmuteAllowed = allowed;
93
75
  }
94
- (0, _createClass2.default)(_LocalMicrophoneStream, [{
95
- key: "setUnmuteAllowed",
96
- value:
97
- /**
98
- * @internal
99
- */
100
- function setUnmuteAllowed(allowed) {
101
- this.unmuteAllowed = allowed;
102
- }
103
76
 
104
- /**
105
- * @returns true if user is allowed to unmute the track, false otherwise
106
- */
107
- }, {
108
- key: "isUnmuteAllowed",
109
- value: function isUnmuteAllowed() {
110
- return this.unmuteAllowed;
111
- }
112
- }, {
113
- key: "setMuted",
114
- value: function setMuted(muted) {
115
- if (!muted) {
116
- if (!this.isUnmuteAllowed()) {
117
- throw new Error('Unmute is not allowed');
118
- }
77
+ /**
78
+ * @returns true if user is allowed to unmute the track, false otherwise
79
+ */
80
+ isUnmuteAllowed() {
81
+ return this.unmuteAllowed;
82
+ }
83
+ setMuted(muted) {
84
+ if (!muted) {
85
+ if (!this.isUnmuteAllowed()) {
86
+ throw new Error('Unmute is not allowed');
119
87
  }
120
- return (0, _get2.default)((0, _getPrototypeOf2.default)(_LocalMicrophoneStream.prototype), "setMuted", this).call(this, muted);
121
88
  }
89
+ return super.setMuted(muted);
90
+ }
122
91
 
123
- /**
124
- * @internal
125
- */
126
- }, {
127
- key: "setServerMuted",
128
- value: function setServerMuted(muted, reason) {
129
- if (muted !== this.muted) {
130
- this.setMuted(muted);
131
- this[LocalMicrophoneStreamEventNames.ServerMuted].emit(muted, reason);
132
- }
133
- }
134
- }, {
135
- key: "toJSON",
136
- value: function toJSON() {
137
- var _this$inputTrack;
138
- return {
139
- id: this.id,
140
- enabled: (_this$inputTrack = this.inputTrack) === null || _this$inputTrack === void 0 ? void 0 : _this$inputTrack.enabled,
141
- label: this.label,
142
- readyState: this.readyState,
143
- numEnabledEffects: this.getAllEffects().filter(function (item) {
144
- return item.effect.isEnabled;
145
- }).length
146
- };
147
- }
148
- }]);
149
- return _LocalMicrophoneStream;
150
- }(_internalMediaCore.LocalMicrophoneStream);
151
- _LocalCameraStreamEve = LocalCameraStreamEventNames.ServerMuted;
152
- var _LocalCameraStream = /*#__PURE__*/function (_WcmeLocalCameraStrea) {
153
- (0, _inherits2.default)(_LocalCameraStream, _WcmeLocalCameraStrea);
154
- var _super2 = _createSuper(_LocalCameraStream);
155
- function _LocalCameraStream() {
156
- var _this2;
157
- (0, _classCallCheck2.default)(this, _LocalCameraStream);
158
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
159
- args[_key2] = arguments[_key2];
92
+ /**
93
+ * @internal
94
+ */
95
+ setServerMuted(muted, reason) {
96
+ if (muted !== this.muted) {
97
+ this.setMuted(muted);
98
+ this[LocalMicrophoneStreamEventNames.ServerMuted].emit(muted, reason);
160
99
  }
161
- _this2 = _super2.call.apply(_super2, [this].concat(args));
162
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "unmuteAllowed", true);
163
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), _LocalCameraStreamEve, new _tsEvents.TypedEvent());
164
- return _this2;
165
100
  }
166
- (0, _createClass2.default)(_LocalCameraStream, [{
167
- key: "setUnmuteAllowed",
168
- value:
169
- /**
170
- * @internal
171
- */
172
- function setUnmuteAllowed(allowed) {
173
- this.unmuteAllowed = allowed;
174
- }
101
+ }
102
+ class _LocalCameraStream extends _internalMediaCore.LocalCameraStream {
103
+ unmuteAllowed = true;
104
+ [LocalCameraStreamEventNames.ServerMuted] = new _tsEvents.TypedEvent();
175
105
 
176
- /**
177
- * @returns true if user is allowed to unmute the track, false otherwise
178
- */
179
- }, {
180
- key: "isUnmuteAllowed",
181
- value: function isUnmuteAllowed() {
182
- return this.unmuteAllowed;
183
- }
184
- }, {
185
- key: "setMuted",
186
- value: function setMuted(muted) {
187
- if (!muted) {
188
- if (!this.isUnmuteAllowed()) {
189
- throw new Error('Unmute is not allowed');
190
- }
191
- }
192
- return (0, _get2.default)((0, _getPrototypeOf2.default)(_LocalCameraStream.prototype), "setMuted", this).call(this, muted);
193
- }
106
+ /**
107
+ * @internal
108
+ */
109
+ setUnmuteAllowed(allowed) {
110
+ this.unmuteAllowed = allowed;
111
+ }
194
112
 
195
- /**
196
- * @internal
197
- */
198
- }, {
199
- key: "setServerMuted",
200
- value: function setServerMuted(muted, reason) {
201
- if (muted !== this.muted) {
202
- this.setMuted(muted);
203
- this[LocalCameraStreamEventNames.ServerMuted].emit(muted, reason);
113
+ /**
114
+ * @returns true if user is allowed to unmute the track, false otherwise
115
+ */
116
+ isUnmuteAllowed() {
117
+ return this.unmuteAllowed;
118
+ }
119
+ setMuted(muted) {
120
+ if (!muted) {
121
+ if (!this.isUnmuteAllowed()) {
122
+ throw new Error('Unmute is not allowed');
204
123
  }
205
124
  }
206
- }, {
207
- key: "toJSON",
208
- value: function toJSON() {
209
- var _this$inputTrack2;
210
- return {
211
- id: this.id,
212
- enabled: (_this$inputTrack2 = this.inputTrack) === null || _this$inputTrack2 === void 0 ? void 0 : _this$inputTrack2.enabled,
213
- label: this.label,
214
- readyState: this.readyState,
215
- numEnabledEffects: this.getAllEffects().filter(function (item) {
216
- return item.effect.isEnabled;
217
- }).length
218
- };
125
+ return super.setMuted(muted);
126
+ }
127
+
128
+ /**
129
+ * @internal
130
+ */
131
+ setServerMuted(muted, reason) {
132
+ if (muted !== this.muted) {
133
+ this.setMuted(muted);
134
+ this[LocalCameraStreamEventNames.ServerMuted].emit(muted, reason);
219
135
  }
220
- }]);
221
- return _LocalCameraStream;
222
- }(_internalMediaCore.LocalCameraStream);
223
- var createMicrophoneStream = function createMicrophoneStream(constraints) {
224
- return (0, _internalMediaCore.createMicrophoneStream)(LocalMicrophoneStream, constraints);
225
- };
136
+ }
137
+ }
138
+ const createMicrophoneStream = constraints => (0, _internalMediaCore.createMicrophoneStream)(LocalMicrophoneStream, constraints);
226
139
  exports.createMicrophoneStream = createMicrophoneStream;
227
- var createCameraStream = function createCameraStream(constraints) {
228
- return (0, _internalMediaCore.createCameraStream)(LocalCameraStream, constraints);
229
- };
140
+ const createCameraStream = constraints => (0, _internalMediaCore.createCameraStream)(LocalCameraStream, constraints);
230
141
  exports.createCameraStream = createCameraStream;
231
- var createDisplayStream = function createDisplayStream() {
232
- return (0, _internalMediaCore.createDisplayStream)(_internalMediaCore.LocalDisplayStream);
233
- };
142
+ const createDisplayStream = () => (0, _internalMediaCore.createDisplayStream)(_internalMediaCore.LocalDisplayStream);
234
143
  exports.createDisplayStream = createDisplayStream;
235
- var createDisplayStreamWithAudio = function createDisplayStreamWithAudio() {
236
- return (0, _internalMediaCore.createDisplayStreamWithAudio)(_internalMediaCore.LocalDisplayStream, _internalMediaCore.LocalSystemAudioStream);
237
- };
144
+ const createDisplayStreamWithAudio = () => (0, _internalMediaCore.createDisplayStreamWithAudio)(_internalMediaCore.LocalDisplayStream, _internalMediaCore.LocalSystemAudioStream);
238
145
  exports.createDisplayStreamWithAudio = createDisplayStreamWithAudio;
239
- var LocalMicrophoneStream = (0, _tsEvents.AddEvents)(_LocalMicrophoneStream);
240
- exports.LocalMicrophoneStream = LocalMicrophoneStream;
241
- var LocalCameraStream = (0, _tsEvents.AddEvents)(_LocalCameraStream);
242
- exports.LocalCameraStream = LocalCameraStream;
146
+ const LocalMicrophoneStream = exports.LocalMicrophoneStream = (0, _tsEvents.AddEvents)(_LocalMicrophoneStream);
147
+ const LocalCameraStream = exports.LocalCameraStream = (0, _tsEvents.AddEvents)(_LocalCameraStream);
243
148
  //# sourceMappingURL=webrtc-core.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LocalMicrophoneStreamEventNames","LocalCameraStreamEventNames","ServerMuted","_LocalMicrophoneStream","TypedEvent","allowed","unmuteAllowed","muted","isUnmuteAllowed","Error","reason","setMuted","emit","id","enabled","inputTrack","label","readyState","numEnabledEffects","getAllEffects","filter","item","effect","isEnabled","length","WcmeLocalMicrophoneStream","_LocalCameraStream","WcmeLocalCameraStream","createMicrophoneStream","constraints","wcmeCreateMicrophoneStream","LocalMicrophoneStream","createCameraStream","wcmeCreateCameraStream","LocalCameraStream","createDisplayStream","wcmeCreateDisplayStream","LocalDisplayStream","createDisplayStreamWithAudio","wcmeCreateDisplayStreamWithAudio","LocalSystemAudioStream","AddEvents"],"sources":["webrtc-core.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-misused-new */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable require-jsdoc */\nimport {\n AudioDeviceConstraints,\n createCameraStream as wcmeCreateCameraStream,\n createDisplayStream as wcmeCreateDisplayStream,\n createDisplayStreamWithAudio as wcmeCreateDisplayStreamWithAudio,\n createMicrophoneStream as wcmeCreateMicrophoneStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalMicrophoneStream as WcmeLocalMicrophoneStream,\n LocalCameraStream as WcmeLocalCameraStream,\n VideoDeviceConstraints,\n} from '@webex/internal-media-core';\nimport {AddEvents, TypedEvent, WithEventsDummyType} from '@webex/ts-events';\n\nexport {\n getDevices,\n LocalStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalStreamEventNames,\n StreamEventNames,\n RemoteStream,\n type VideoContentHint,\n} from '@webex/internal-media-core';\n\nexport type ServerMuteReason =\n | 'remotelyMuted' // other user has remotely muted us\n | 'clientRequestFailed' // client called setMuted() but server request failed\n | 'localUnmuteRequired'; // server forced the client to be unmuted\n\n// these events are in addition to WCME events. This will be properly typed once webrtc-core event types inheritance is fixed\nexport enum LocalMicrophoneStreamEventNames {\n ServerMuted = 'muted:byServer',\n}\n\n// these events are in addition to WCME events. This will be properly typed once webrtc-core event types inheritance is fixed\nexport enum LocalCameraStreamEventNames {\n ServerMuted = 'muted:byServer',\n}\n\ninterface LocalMicrophoneStreamEvents {\n [LocalMicrophoneStreamEventNames.ServerMuted]: TypedEvent<\n (muted: boolean, reason: ServerMuteReason) => void\n >;\n}\n\ninterface LocalCameraStreamEvents {\n [LocalMicrophoneStreamEventNames.ServerMuted]: TypedEvent<\n (muted: boolean, reason: ServerMuteReason) => void\n >;\n}\n\nclass _LocalMicrophoneStream extends WcmeLocalMicrophoneStream {\n private unmuteAllowed = true;\n\n [LocalMicrophoneStreamEventNames.ServerMuted] = new TypedEvent<\n (muted: boolean, reason: ServerMuteReason) => void\n >();\n\n /**\n * @internal\n */\n setUnmuteAllowed(allowed) {\n this.unmuteAllowed = allowed;\n }\n\n /**\n * @returns true if user is allowed to unmute the track, false otherwise\n */\n isUnmuteAllowed() {\n return this.unmuteAllowed;\n }\n\n setMuted(muted: boolean): void {\n if (!muted) {\n if (!this.isUnmuteAllowed()) {\n throw new Error('Unmute is not allowed');\n }\n }\n\n return super.setMuted(muted);\n }\n\n /**\n * @internal\n */\n setServerMuted(muted: boolean, reason: ServerMuteReason) {\n if (muted !== this.muted) {\n this.setMuted(muted);\n this[LocalMicrophoneStreamEventNames.ServerMuted].emit(muted, reason);\n }\n }\n\n toJSON() {\n return {\n id: this.id,\n enabled: this.inputTrack?.enabled,\n label: this.label,\n readyState: this.readyState,\n numEnabledEffects: this.getAllEffects().filter((item) => item.effect.isEnabled).length,\n };\n }\n}\n\nclass _LocalCameraStream extends WcmeLocalCameraStream {\n private unmuteAllowed = true;\n\n [LocalCameraStreamEventNames.ServerMuted] = new TypedEvent<\n (muted: boolean, reason: ServerMuteReason) => void\n >();\n\n /**\n * @internal\n */\n setUnmuteAllowed(allowed) {\n this.unmuteAllowed = allowed;\n }\n\n /**\n * @returns true if user is allowed to unmute the track, false otherwise\n */\n isUnmuteAllowed() {\n return this.unmuteAllowed;\n }\n\n setMuted(muted: boolean): void {\n if (!muted) {\n if (!this.isUnmuteAllowed()) {\n throw new Error('Unmute is not allowed');\n }\n }\n\n return super.setMuted(muted);\n }\n\n /**\n * @internal\n */\n setServerMuted(muted: boolean, reason: ServerMuteReason) {\n if (muted !== this.muted) {\n this.setMuted(muted);\n this[LocalCameraStreamEventNames.ServerMuted].emit(muted, reason);\n }\n }\n\n toJSON() {\n return {\n id: this.id,\n enabled: this.inputTrack?.enabled,\n label: this.label,\n readyState: this.readyState,\n numEnabledEffects: this.getAllEffects().filter((item) => item.effect.isEnabled).length,\n };\n }\n}\n\nexport const createMicrophoneStream = (constraints?: AudioDeviceConstraints) =>\n wcmeCreateMicrophoneStream(LocalMicrophoneStream, constraints);\n\nexport const createCameraStream = (constraints?: VideoDeviceConstraints) =>\n wcmeCreateCameraStream(LocalCameraStream, constraints);\n\nexport const createDisplayStream = () => wcmeCreateDisplayStream(LocalDisplayStream);\n\nexport const createDisplayStreamWithAudio = () =>\n wcmeCreateDisplayStreamWithAudio(LocalDisplayStream, LocalSystemAudioStream);\n\nexport const LocalMicrophoneStream = AddEvents<\n typeof _LocalMicrophoneStream,\n LocalMicrophoneStreamEvents\n>(_LocalMicrophoneStream);\n\nexport type LocalMicrophoneStream = _LocalMicrophoneStream &\n WithEventsDummyType<LocalMicrophoneStreamEvents>;\n\nexport const LocalCameraStream = AddEvents<typeof _LocalCameraStream, LocalCameraStreamEvents>(\n _LocalCameraStream\n);\n\nexport type LocalCameraStream = _LocalCameraStream & WithEventsDummyType<LocalCameraStreamEvents>;\n"],"mappings":"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"}
1
+ null
package/jest.config.js ADDED
@@ -0,0 +1,6 @@
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = {
4
+ ...config,
5
+ testEnvironment: 'jsdom',
6
+ };
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@webex/media-helpers",
3
- "version": "3.0.0-stream-classes.4",
4
- "description": "",
3
+ "description": "Package that provides helper functions for media related activities.",
5
4
  "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
6
5
  "main": "dist/index.js",
7
6
  "devMain": "src/index.ts",
@@ -13,10 +12,19 @@
13
12
  "engines": {
14
13
  "node": ">=16"
15
14
  },
15
+ "scripts": {
16
+ "build": "yarn run -T tsc --declaration true --declarationDir ./dist",
17
+ "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps && yarn run -T tsc --declaration true --declarationDir ./dist",
18
+ "test:broken": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
19
+ "test:browser": "webex-legacy-tools test --integration --runner karma",
20
+ "test:style": "eslint 'src/**/*.ts' --fix",
21
+ "test:unit": "webex-legacy-tools test --unit --runner jest",
22
+ "deploy:npm": "yarn npm publish"
23
+ },
16
24
  "dependencies": {
17
- "@webex/internal-media-core": "2.0.3",
25
+ "@webex/internal-media-core": "2.2.9",
18
26
  "@webex/ts-events": "^1.1.0",
19
- "@webex/web-media-effects": "^2.8.0"
27
+ "@webex/web-media-effects": "^2.15.6"
20
28
  },
21
29
  "browserify": {
22
30
  "transform": [
@@ -25,8 +33,15 @@
25
33
  ]
26
34
  },
27
35
  "devDependencies": {
28
- "@webex/test-helper-chai": "workspace:^",
29
- "@webex/test-helper-mock-webex": "workspace:^",
36
+ "@babel/preset-typescript": "7.22.11",
37
+ "@webex/babel-config-legacy": "0.0.0",
38
+ "@webex/eslint-config-legacy": "0.0.0",
39
+ "@webex/jest-config-legacy": "0.0.0",
40
+ "@webex/legacy-tools": "0.0.0",
41
+ "@webex/test-helper-chai": "3.0.0",
42
+ "@webex/test-helper-mock-webex": "3.0.0",
43
+ "eslint": "^8.24.0",
30
44
  "sinon": "^9.2.4"
31
- }
32
- }
45
+ },
46
+ "version": "3.0.1"
47
+ }
@@ -63,7 +63,7 @@ class _LocalMicrophoneStream extends WcmeLocalMicrophoneStream {
63
63
  /**
64
64
  * @internal
65
65
  */
66
- setUnmuteAllowed(allowed) {
66
+ setUnmuteAllowed(allowed: boolean) {
67
67
  this.unmuteAllowed = allowed;
68
68
  }
69
69
 
@@ -93,16 +93,6 @@ class _LocalMicrophoneStream extends WcmeLocalMicrophoneStream {
93
93
  this[LocalMicrophoneStreamEventNames.ServerMuted].emit(muted, reason);
94
94
  }
95
95
  }
96
-
97
- toJSON() {
98
- return {
99
- id: this.id,
100
- enabled: this.inputTrack?.enabled,
101
- label: this.label,
102
- readyState: this.readyState,
103
- numEnabledEffects: this.getAllEffects().filter((item) => item.effect.isEnabled).length,
104
- };
105
- }
106
96
  }
107
97
 
108
98
  class _LocalCameraStream extends WcmeLocalCameraStream {
@@ -115,7 +105,7 @@ class _LocalCameraStream extends WcmeLocalCameraStream {
115
105
  /**
116
106
  * @internal
117
107
  */
118
- setUnmuteAllowed(allowed) {
108
+ setUnmuteAllowed(allowed: boolean) {
119
109
  this.unmuteAllowed = allowed;
120
110
  }
121
111
 
@@ -145,16 +135,6 @@ class _LocalCameraStream extends WcmeLocalCameraStream {
145
135
  this[LocalCameraStreamEventNames.ServerMuted].emit(muted, reason);
146
136
  }
147
137
  }
148
-
149
- toJSON() {
150
- return {
151
- id: this.id,
152
- enabled: this.inputTrack?.enabled,
153
- label: this.label,
154
- readyState: this.readyState,
155
- numEnabledEffects: this.getAllEffects().filter((item) => item.effect.isEnabled).length,
156
- };
157
- }
158
138
  }
159
139
 
160
140
  export const createMicrophoneStream = (constraints?: AudioDeviceConstraints) =>
@@ -11,7 +11,7 @@ import {
11
11
  createMicrophoneStream,
12
12
  createDisplayStream,
13
13
  createDisplayStreamWithAudio,
14
- } from '../../../src/webrtc-core';
14
+ } from '@webex/media-helpers';
15
15
  import * as wcmestreams from '@webex/internal-media-core';
16
16
 
17
17
  describe('media-helpers', () => {
@@ -32,7 +32,6 @@ describe('media-helpers', () => {
32
32
  spyFn: 'createMicrophoneStream',
33
33
  },
34
34
  ];
35
-
36
35
  classesToTest.forEach(({className, title, event, createFn, spyFn}) =>
37
36
  describe(title, () => {
38
37
  const fakeStream = {
@@ -41,6 +40,7 @@ describe('media-helpers', () => {
41
40
  label: 'fake track',
42
41
  id: 'fake track id',
43
42
  enabled: true,
43
+ muted: false,
44
44
  addEventListener: sinon.stub(),
45
45
  },
46
46
  ]),
@@ -57,7 +57,7 @@ describe('media-helpers', () => {
57
57
  });
58
58
 
59
59
  it('rejects setMute(false) if unmute is not allowed', async () => {
60
- stream.setUnmuteAllowed(false);
60
+ await stream.setUnmuteAllowed(false);
61
61
 
62
62
  assert.equal(stream.isUnmuteAllowed(), false);
63
63
  const fn = () => stream.setMuted(false);
@@ -65,7 +65,7 @@ describe('media-helpers', () => {
65
65
  });
66
66
 
67
67
  it('resolves setMute(false) if unmute is allowed', async () => {
68
- stream.setUnmuteAllowed(true);
68
+ await stream.setUnmuteAllowed(true);
69
69
 
70
70
  assert.equal(stream.isUnmuteAllowed(), true);
71
71
  await stream.setMuted(false);
@@ -73,7 +73,7 @@ describe('media-helpers', () => {
73
73
 
74
74
  it('returns a reasonable length string from JSON.stringify()', () => {
75
75
  assert.isBelow(JSON.stringify(stream).length, 200);
76
- })
76
+ });
77
77
 
78
78
  describe('#setServerMuted', () => {
79
79
  afterEach(() => {
@@ -120,7 +120,7 @@ describe('media-helpers', () => {
120
120
  const constraints = {deviceId: 'abc'};
121
121
 
122
122
  const spy = sinon.stub(wcmestreams, spyFn).returns('something');
123
- const result = createFn(constraints);
123
+ const result = await createFn(constraints);
124
124
 
125
125
  assert.equal(result, 'something');
126
126
  assert.calledOnceWithExactly(spy, className, constraints);
@@ -132,16 +132,16 @@ describe('media-helpers', () => {
132
132
  describe('createDisplayStream', () => {
133
133
  it('checks createDisplayStream', async () => {
134
134
  const spy = sinon.stub(wcmestreams, 'createDisplayStream').returns('something');
135
- const result = createDisplayStream();
135
+ const result = await createDisplayStream();
136
136
  assert.equal(result, 'something');
137
137
  assert.calledOnceWithExactly(spy, LocalDisplayStream);
138
138
  });
139
139
  });
140
-
140
+
141
141
  describe('createDisplayStreamWithAudio', () => {
142
142
  it('checks createDisplayStreamWithAudio', async () => {
143
143
  const spy = sinon.stub(wcmestreams, 'createDisplayStreamWithAudio').returns('something');
144
- const result = createDisplayStreamWithAudio();
144
+ const result = await createDisplayStreamWithAudio();
145
145
  assert.equal(result, 'something');
146
146
  assert.calledOnceWithExactly(spy, LocalDisplayStream, LocalSystemAudioStream);
147
147
  });
package/tsconfig.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "include": [
4
+ "src"
5
+ ],
6
+ }