@webex/media-helpers 3.7.0-next.2 → 3.7.0-next.20

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/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { getDevices, LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStream, RemoteStreamEventNames, type ServerMuteReason, LocalMicrophoneStreamEventNames, LocalCameraStreamEventNames, LocalMicrophoneStream, LocalCameraStream, createMicrophoneStream, createCameraStream, createDisplayStream, createDisplayStreamWithAudio, type VideoContentHint, } from './webrtc-core';
1
+ export { getDevices, LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStream, RemoteStreamEventNames, type ServerMuteReason, LocalMicrophoneStreamEventNames, LocalCameraStreamEventNames, LocalMicrophoneStream, LocalCameraStream, createMicrophoneStream, createCameraStream, createCameraAndMicrophoneStreams, createDisplayStream, createDisplayStreamWithAudio, createDisplayMedia, type VideoContentHint, type StreamState, } from './webrtc-core';
2
2
  export { NoiseReductionEffect, VirtualBackgroundEffect } from '@webex/web-media-effects';
3
3
  export type { NoiseReductionEffectOptions, VirtualBackgroundEffectOptions, } from '@webex/web-media-effects';
4
4
  export { FacingMode, DisplaySurface, PresetCameraConstraints } from './constants';
package/dist/index.js CHANGED
@@ -100,12 +100,24 @@ _Object$defineProperty(exports, "VirtualBackgroundEffect", {
100
100
  return _webMediaEffects.VirtualBackgroundEffect;
101
101
  }
102
102
  });
103
+ _Object$defineProperty(exports, "createCameraAndMicrophoneStreams", {
104
+ enumerable: true,
105
+ get: function get() {
106
+ return _webrtcCore.createCameraAndMicrophoneStreams;
107
+ }
108
+ });
103
109
  _Object$defineProperty(exports, "createCameraStream", {
104
110
  enumerable: true,
105
111
  get: function get() {
106
112
  return _webrtcCore.createCameraStream;
107
113
  }
108
114
  });
115
+ _Object$defineProperty(exports, "createDisplayMedia", {
116
+ enumerable: true,
117
+ get: function get() {
118
+ return _webrtcCore.createDisplayMedia;
119
+ }
120
+ });
109
121
  _Object$defineProperty(exports, "createDisplayStream", {
110
122
  enumerable: true,
111
123
  get: function get() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_webrtcCore","require","_webMediaEffects","_constants"],"sources":["index.ts"],"sourcesContent":["export {\n getDevices,\n LocalStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalStreamEventNames,\n StreamEventNames,\n RemoteStream,\n RemoteStreamEventNames,\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,IAAAA,WAAA,GAAAC,OAAA;AAqBA,IAAAC,gBAAA,GAAAD,OAAA;AAMA,IAAAE,UAAA,GAAAF,OAAA"}
1
+ {"version":3,"names":["_webrtcCore","require","_webMediaEffects","_constants"],"sources":["index.ts"],"sourcesContent":["export {\n getDevices,\n LocalStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalStreamEventNames,\n StreamEventNames,\n RemoteStream,\n RemoteStreamEventNames,\n type ServerMuteReason,\n LocalMicrophoneStreamEventNames,\n LocalCameraStreamEventNames,\n LocalMicrophoneStream,\n LocalCameraStream,\n createMicrophoneStream,\n createCameraStream,\n createCameraAndMicrophoneStreams,\n createDisplayStream,\n createDisplayStreamWithAudio,\n createDisplayMedia,\n type VideoContentHint,\n type StreamState,\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,IAAAA,WAAA,GAAAC,OAAA;AAwBA,IAAAC,gBAAA,GAAAD,OAAA;AAMA,IAAAE,UAAA,GAAAF,OAAA"}
@@ -1,6 +1,6 @@
1
- import { AudioDeviceConstraints, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream as WcmeLocalMicrophoneStream, LocalCameraStream as WcmeLocalCameraStream, VideoDeviceConstraints } from '@webex/internal-media-core';
1
+ import { AudioDeviceConstraints, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream as WcmeLocalMicrophoneStream, LocalCameraStream as WcmeLocalCameraStream, VideoContentHint, VideoDeviceConstraints } from '@webex/internal-media-core';
2
2
  import { TypedEvent, WithEventsDummyType } from '@webex/ts-events';
3
- export { getDevices, LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStream, RemoteStreamEventNames, type VideoContentHint, } from '@webex/internal-media-core';
3
+ export { getDevices, LocalStream, LocalDisplayStream, LocalSystemAudioStream, LocalStreamEventNames, StreamEventNames, RemoteStream, RemoteStreamEventNames, type VideoContentHint, type StreamState, } from '@webex/internal-media-core';
4
4
  export type ServerMuteReason = 'remotelyMuted' | 'clientRequestFailed' | 'localUnmuteRequired';
5
5
  export declare enum LocalMicrophoneStreamEventNames {
6
6
  ServerMuted = "muted:byServer"
@@ -32,6 +32,18 @@ declare class _LocalCameraStream extends WcmeLocalCameraStream {
32
32
  isUnmuteAllowed(): boolean;
33
33
  setUserMuted(muted: boolean): void;
34
34
  }
35
+ export declare const LocalMicrophoneStream: (new (...args: any[]) => {
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
+ }) & typeof _LocalMicrophoneStream;
40
+ export type LocalMicrophoneStream = _LocalMicrophoneStream & WithEventsDummyType<LocalMicrophoneStreamEvents>;
41
+ export declare const LocalCameraStream: (new (...args: any[]) => {
42
+ on<K extends LocalCameraStreamEventNames.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;
43
+ once<K_1 extends LocalCameraStreamEventNames.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;
44
+ off<K_2 extends LocalCameraStreamEventNames.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;
45
+ }) & typeof _LocalCameraStream;
46
+ export type LocalCameraStream = _LocalCameraStream & WithEventsDummyType<LocalCameraStreamEvents>;
35
47
  export declare const createMicrophoneStream: (constraints?: AudioDeviceConstraints) => Promise<{
36
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;
37
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;
@@ -42,17 +54,31 @@ export declare const createCameraStream: (constraints?: VideoDeviceConstraints)
42
54
  once<K_1 extends LocalCameraStreamEventNames.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
55
  off<K_2 extends LocalCameraStreamEventNames.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
56
  } & _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[]) => {
57
+ export declare const createCameraAndMicrophoneStreams: (constraints?: {
58
+ video?: VideoDeviceConstraints;
59
+ audio?: AudioDeviceConstraints;
60
+ }) => Promise<[{
54
61
  on<K extends LocalCameraStreamEventNames.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
62
  once<K_1 extends LocalCameraStreamEventNames.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
63
  off<K_2 extends LocalCameraStreamEventNames.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>;
64
+ } & _LocalCameraStream, {
65
+ 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;
66
+ 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;
67
+ 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;
68
+ } & _LocalMicrophoneStream]>;
69
+ export declare const createDisplayStream: (videoContentHint?: VideoContentHint) => Promise<LocalDisplayStream>;
70
+ export declare const createDisplayStreamWithAudio: (videoContentHint?: VideoContentHint) => Promise<[LocalDisplayStream, LocalSystemAudioStream]>;
71
+ export declare const createDisplayMedia: (options?: {
72
+ video: {
73
+ constraints?: VideoDeviceConstraints;
74
+ videoContentHint?: VideoContentHint;
75
+ preferCurrentTab?: boolean;
76
+ selfBrowserSurface?: 'include' | 'exclude';
77
+ surfaceSwitching?: 'include' | 'exclude';
78
+ monitorTypeSurfaces?: 'include' | 'exclude';
79
+ };
80
+ audio?: {
81
+ constraints?: AudioDeviceConstraints;
82
+ systemAudio?: 'include' | 'exclude';
83
+ };
84
+ }) => Promise<[LocalDisplayStream, LocalSystemAudioStream]>;
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
4
9
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
10
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
11
  _Object$defineProperty(exports, "__esModule", {
@@ -50,7 +55,7 @@ _Object$defineProperty(exports, "StreamEventNames", {
50
55
  return _internalMediaCore.StreamEventNames;
51
56
  }
52
57
  });
53
- exports.createMicrophoneStream = exports.createDisplayStreamWithAudio = exports.createDisplayStream = exports.createCameraStream = void 0;
58
+ exports.createMicrophoneStream = exports.createDisplayStreamWithAudio = exports.createDisplayStream = exports.createDisplayMedia = exports.createCameraStream = exports.createCameraAndMicrophoneStreams = void 0;
54
59
  _Object$defineProperty(exports, "getDevices", {
55
60
  enumerable: true,
56
61
  get: function get() {
@@ -71,6 +76,8 @@ var _LocalMicrophoneStrea, _LocalCameraStreamEve;
71
76
  /* eslint-disable @typescript-eslint/no-misused-new */
72
77
  /* eslint-disable valid-jsdoc */
73
78
  /* eslint-disable require-jsdoc */
79
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
80
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
74
81
  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); }; }
75
82
  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; } }
76
83
  // server forced the client to be unmuted
@@ -199,18 +206,34 @@ var _LocalCameraStream = /*#__PURE__*/function (_WcmeLocalCameraStrea) {
199
206
  }]);
200
207
  return _LocalCameraStream;
201
208
  }(_internalMediaCore.LocalCameraStream);
209
+ var LocalMicrophoneStream = exports.LocalMicrophoneStream = (0, _tsEvents.AddEvents)(_LocalMicrophoneStream);
210
+ var LocalCameraStream = exports.LocalCameraStream = (0, _tsEvents.AddEvents)(_LocalCameraStream);
202
211
  var createMicrophoneStream = exports.createMicrophoneStream = function createMicrophoneStream(constraints) {
203
212
  return (0, _internalMediaCore.createMicrophoneStream)(LocalMicrophoneStream, constraints);
204
213
  };
205
214
  var createCameraStream = exports.createCameraStream = function createCameraStream(constraints) {
206
215
  return (0, _internalMediaCore.createCameraStream)(LocalCameraStream, constraints);
207
216
  };
208
- var createDisplayStream = exports.createDisplayStream = function createDisplayStream() {
209
- return (0, _internalMediaCore.createDisplayStream)(_internalMediaCore.LocalDisplayStream);
217
+ var createCameraAndMicrophoneStreams = exports.createCameraAndMicrophoneStreams = function createCameraAndMicrophoneStreams(constraints) {
218
+ return (0, _internalMediaCore.createCameraAndMicrophoneStreams)(LocalCameraStream, LocalMicrophoneStream, constraints);
210
219
  };
211
- var createDisplayStreamWithAudio = exports.createDisplayStreamWithAudio = function createDisplayStreamWithAudio() {
212
- return (0, _internalMediaCore.createDisplayStreamWithAudio)(_internalMediaCore.LocalDisplayStream, _internalMediaCore.LocalSystemAudioStream);
220
+ var createDisplayStream = exports.createDisplayStream = function createDisplayStream(videoContentHint) {
221
+ return (0, _internalMediaCore.createDisplayStream)(_internalMediaCore.LocalDisplayStream, videoContentHint);
222
+ };
223
+ var createDisplayStreamWithAudio = exports.createDisplayStreamWithAudio = function createDisplayStreamWithAudio(videoContentHint) {
224
+ return (0, _internalMediaCore.createDisplayStreamWithAudio)(_internalMediaCore.LocalDisplayStream, _internalMediaCore.LocalSystemAudioStream, videoContentHint);
225
+ };
226
+ var createDisplayMedia = exports.createDisplayMedia = function createDisplayMedia() {
227
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
228
+ video: {}
229
+ };
230
+ return (0, _internalMediaCore.createDisplayMedia)({
231
+ video: _objectSpread({
232
+ displayStreamConstructor: _internalMediaCore.LocalDisplayStream
233
+ }, options === null || options === void 0 ? void 0 : options.video),
234
+ audio: options !== null && options !== void 0 && options.audio ? _objectSpread({
235
+ systemAudioStreamConstructor: _internalMediaCore.LocalSystemAudioStream
236
+ }, options.audio) : undefined
237
+ });
213
238
  };
214
- var LocalMicrophoneStream = exports.LocalMicrophoneStream = (0, _tsEvents.AddEvents)(_LocalMicrophoneStream);
215
- var LocalCameraStream = exports.LocalCameraStream = (0, _tsEvents.AddEvents)(_LocalCameraStream);
216
239
  //# sourceMappingURL=webrtc-core.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_internalMediaCore","require","_tsEvents","_LocalMicrophoneStrea","_LocalCameraStreamEve","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","LocalMicrophoneStreamEventNames","exports","LocalCameraStreamEventNames","ServerMuted","_LocalMicrophoneStream","_WcmeLocalMicrophoneS","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","TypedEvent","_createClass2","key","value","setUnmuteAllowed","allowed","unmuteAllowed","isUnmuteAllowed","setUserMuted","muted","Error","_get2","setServerMuted","reason","userMuted","emit","WcmeLocalMicrophoneStream","_LocalCameraStream","_WcmeLocalCameraStrea","_super2","_this2","_len2","_key2","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 RemoteStreamEventNames,\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 setUserMuted() 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 [LocalCameraStreamEventNames.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: boolean) {\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 setUserMuted(muted: boolean): void {\n if (!muted) {\n if (!this.isUnmuteAllowed()) {\n throw new Error('Unmute is not allowed');\n }\n }\n\n return super.setUserMuted(muted);\n }\n\n /**\n * @internal\n */\n setServerMuted(muted: boolean, reason: ServerMuteReason) {\n if (muted !== this.userMuted) {\n this.setUserMuted(muted);\n this[LocalMicrophoneStreamEventNames.ServerMuted].emit(muted, reason);\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: boolean) {\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 setUserMuted(muted: boolean): void {\n if (!muted) {\n if (!this.isUnmuteAllowed()) {\n throw new Error('Unmute is not allowed');\n }\n }\n\n return super.setUserMuted(muted);\n }\n\n /**\n * @internal\n */\n setServerMuted(muted: boolean, reason: ServerMuteReason) {\n if (muted !== this.userMuted) {\n this.setUserMuted(muted);\n this[LocalCameraStreamEventNames.ServerMuted].emit(muted, reason);\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
+ {"version":3,"names":["_internalMediaCore","require","_tsEvents","_LocalMicrophoneStrea","_LocalCameraStreamEve","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","LocalMicrophoneStreamEventNames","exports","LocalCameraStreamEventNames","ServerMuted","_LocalMicrophoneStream","_WcmeLocalMicrophoneS","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","TypedEvent","_createClass2","key","value","setUnmuteAllowed","allowed","unmuteAllowed","isUnmuteAllowed","setUserMuted","muted","Error","_get2","setServerMuted","reason","userMuted","emit","WcmeLocalMicrophoneStream","_LocalCameraStream","_WcmeLocalCameraStrea","_super2","_this2","_len2","_key2","WcmeLocalCameraStream","LocalMicrophoneStream","AddEvents","LocalCameraStream","createMicrophoneStream","constraints","wcmeCreateMicrophoneStream","createCameraStream","wcmeCreateCameraStream","createCameraAndMicrophoneStreams","wcmeCreateCameraAndMicrophoneStreams","createDisplayStream","videoContentHint","wcmeCreateDisplayStream","LocalDisplayStream","createDisplayStreamWithAudio","wcmeCreateDisplayStreamWithAudio","LocalSystemAudioStream","createDisplayMedia","options","undefined","video","wcmeCreateDisplayMedia","displayStreamConstructor","audio","systemAudioStreamConstructor"],"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 createCameraAndMicrophoneStreams as wcmeCreateCameraAndMicrophoneStreams,\n createDisplayMedia as wcmeCreateDisplayMedia,\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 VideoContentHint,\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 RemoteStreamEventNames,\n type VideoContentHint,\n type StreamState,\n} from '@webex/internal-media-core';\n\nexport type ServerMuteReason =\n | 'remotelyMuted' // other user has remotely muted us\n | 'clientRequestFailed' // client called setUserMuted() 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 [LocalCameraStreamEventNames.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: boolean) {\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 setUserMuted(muted: boolean): void {\n if (!muted) {\n if (!this.isUnmuteAllowed()) {\n throw new Error('Unmute is not allowed');\n }\n }\n\n return super.setUserMuted(muted);\n }\n\n /**\n * @internal\n */\n setServerMuted(muted: boolean, reason: ServerMuteReason) {\n if (muted !== this.userMuted) {\n this.setUserMuted(muted);\n this[LocalMicrophoneStreamEventNames.ServerMuted].emit(muted, reason);\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: boolean) {\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 setUserMuted(muted: boolean): void {\n if (!muted) {\n if (!this.isUnmuteAllowed()) {\n throw new Error('Unmute is not allowed');\n }\n }\n\n return super.setUserMuted(muted);\n }\n\n /**\n * @internal\n */\n setServerMuted(muted: boolean, reason: ServerMuteReason) {\n if (muted !== this.userMuted) {\n this.setUserMuted(muted);\n this[LocalCameraStreamEventNames.ServerMuted].emit(muted, reason);\n }\n }\n}\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\nexport const createMicrophoneStream = (constraints?: AudioDeviceConstraints) =>\n wcmeCreateMicrophoneStream(LocalMicrophoneStream, constraints);\n\nexport const createCameraStream = (constraints?: VideoDeviceConstraints) =>\n wcmeCreateCameraStream(LocalCameraStream, constraints);\n\nexport const createCameraAndMicrophoneStreams = (constraints?: {\n video?: VideoDeviceConstraints;\n audio?: AudioDeviceConstraints;\n}) => wcmeCreateCameraAndMicrophoneStreams(LocalCameraStream, LocalMicrophoneStream, constraints);\n\nexport const createDisplayStream = (videoContentHint?: VideoContentHint) =>\n wcmeCreateDisplayStream(LocalDisplayStream, videoContentHint);\n\nexport const createDisplayStreamWithAudio = (videoContentHint?: VideoContentHint) =>\n wcmeCreateDisplayStreamWithAudio(LocalDisplayStream, LocalSystemAudioStream, videoContentHint);\n\nexport const createDisplayMedia = (\n options: {\n video: {\n constraints?: VideoDeviceConstraints;\n videoContentHint?: VideoContentHint;\n preferCurrentTab?: boolean;\n selfBrowserSurface?: 'include' | 'exclude';\n surfaceSwitching?: 'include' | 'exclude';\n monitorTypeSurfaces?: 'include' | 'exclude';\n };\n audio?: {\n constraints?: AudioDeviceConstraints;\n systemAudio?: 'include' | 'exclude';\n };\n } = {video: {}}\n) =>\n wcmeCreateDisplayMedia({\n video: {displayStreamConstructor: LocalDisplayStream, ...options?.video},\n audio: options?.audio\n ? {systemAudioStreamConstructor: LocalSystemAudioStream, ...options.audio}\n : undefined,\n });\n"],"mappings":"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"}
package/package.json CHANGED
@@ -22,7 +22,7 @@
22
22
  "deploy:npm": "yarn npm publish"
23
23
  },
24
24
  "dependencies": {
25
- "@webex/internal-media-core": "2.12.2",
25
+ "@webex/internal-media-core": "2.14.2",
26
26
  "@webex/ts-events": "^1.1.0",
27
27
  "@webex/web-media-effects": "2.19.0"
28
28
  },
@@ -38,11 +38,11 @@
38
38
  "@webex/eslint-config-legacy": "0.0.0",
39
39
  "@webex/jest-config-legacy": "0.0.0",
40
40
  "@webex/legacy-tools": "0.0.0",
41
- "@webex/test-helper-chai": "3.7.0-next.2",
42
- "@webex/test-helper-mock-webex": "3.7.0-next.2",
41
+ "@webex/test-helper-chai": "3.7.0-next.15",
42
+ "@webex/test-helper-mock-webex": "3.7.0-next.15",
43
43
  "eslint": "^8.24.0",
44
44
  "jsdom-global": "3.0.2",
45
45
  "sinon": "^9.2.4"
46
46
  },
47
- "version": "3.7.0-next.2"
47
+ "version": "3.7.0-next.20"
48
48
  }
package/src/index.ts CHANGED
@@ -14,9 +14,12 @@ export {
14
14
  LocalCameraStream,
15
15
  createMicrophoneStream,
16
16
  createCameraStream,
17
+ createCameraAndMicrophoneStreams,
17
18
  createDisplayStream,
18
19
  createDisplayStreamWithAudio,
20
+ createDisplayMedia,
19
21
  type VideoContentHint,
22
+ type StreamState,
20
23
  } from './webrtc-core';
21
24
 
22
25
  export {NoiseReductionEffect, VirtualBackgroundEffect} from '@webex/web-media-effects';
@@ -4,6 +4,8 @@
4
4
  import {
5
5
  AudioDeviceConstraints,
6
6
  createCameraStream as wcmeCreateCameraStream,
7
+ createCameraAndMicrophoneStreams as wcmeCreateCameraAndMicrophoneStreams,
8
+ createDisplayMedia as wcmeCreateDisplayMedia,
7
9
  createDisplayStream as wcmeCreateDisplayStream,
8
10
  createDisplayStreamWithAudio as wcmeCreateDisplayStreamWithAudio,
9
11
  createMicrophoneStream as wcmeCreateMicrophoneStream,
@@ -11,6 +13,7 @@ import {
11
13
  LocalSystemAudioStream,
12
14
  LocalMicrophoneStream as WcmeLocalMicrophoneStream,
13
15
  LocalCameraStream as WcmeLocalCameraStream,
16
+ VideoContentHint,
14
17
  VideoDeviceConstraints,
15
18
  } from '@webex/internal-media-core';
16
19
  import {AddEvents, TypedEvent, WithEventsDummyType} from '@webex/ts-events';
@@ -25,6 +28,7 @@ export {
25
28
  RemoteStream,
26
29
  RemoteStreamEventNames,
27
30
  type VideoContentHint,
31
+ type StreamState,
28
32
  } from '@webex/internal-media-core';
29
33
 
30
34
  export type ServerMuteReason =
@@ -138,17 +142,6 @@ class _LocalCameraStream extends WcmeLocalCameraStream {
138
142
  }
139
143
  }
140
144
 
141
- export const createMicrophoneStream = (constraints?: AudioDeviceConstraints) =>
142
- wcmeCreateMicrophoneStream(LocalMicrophoneStream, constraints);
143
-
144
- export const createCameraStream = (constraints?: VideoDeviceConstraints) =>
145
- wcmeCreateCameraStream(LocalCameraStream, constraints);
146
-
147
- export const createDisplayStream = () => wcmeCreateDisplayStream(LocalDisplayStream);
148
-
149
- export const createDisplayStreamWithAudio = () =>
150
- wcmeCreateDisplayStreamWithAudio(LocalDisplayStream, LocalSystemAudioStream);
151
-
152
145
  export const LocalMicrophoneStream = AddEvents<
153
146
  typeof _LocalMicrophoneStream,
154
147
  LocalMicrophoneStreamEvents
@@ -162,3 +155,43 @@ export const LocalCameraStream = AddEvents<typeof _LocalCameraStream, LocalCamer
162
155
  );
163
156
 
164
157
  export type LocalCameraStream = _LocalCameraStream & WithEventsDummyType<LocalCameraStreamEvents>;
158
+
159
+ export const createMicrophoneStream = (constraints?: AudioDeviceConstraints) =>
160
+ wcmeCreateMicrophoneStream(LocalMicrophoneStream, constraints);
161
+
162
+ export const createCameraStream = (constraints?: VideoDeviceConstraints) =>
163
+ wcmeCreateCameraStream(LocalCameraStream, constraints);
164
+
165
+ export const createCameraAndMicrophoneStreams = (constraints?: {
166
+ video?: VideoDeviceConstraints;
167
+ audio?: AudioDeviceConstraints;
168
+ }) => wcmeCreateCameraAndMicrophoneStreams(LocalCameraStream, LocalMicrophoneStream, constraints);
169
+
170
+ export const createDisplayStream = (videoContentHint?: VideoContentHint) =>
171
+ wcmeCreateDisplayStream(LocalDisplayStream, videoContentHint);
172
+
173
+ export const createDisplayStreamWithAudio = (videoContentHint?: VideoContentHint) =>
174
+ wcmeCreateDisplayStreamWithAudio(LocalDisplayStream, LocalSystemAudioStream, videoContentHint);
175
+
176
+ export const createDisplayMedia = (
177
+ options: {
178
+ video: {
179
+ constraints?: VideoDeviceConstraints;
180
+ videoContentHint?: VideoContentHint;
181
+ preferCurrentTab?: boolean;
182
+ selfBrowserSurface?: 'include' | 'exclude';
183
+ surfaceSwitching?: 'include' | 'exclude';
184
+ monitorTypeSurfaces?: 'include' | 'exclude';
185
+ };
186
+ audio?: {
187
+ constraints?: AudioDeviceConstraints;
188
+ systemAudio?: 'include' | 'exclude';
189
+ };
190
+ } = {video: {}}
191
+ ) =>
192
+ wcmeCreateDisplayMedia({
193
+ video: {displayStreamConstructor: LocalDisplayStream, ...options?.video},
194
+ audio: options?.audio
195
+ ? {systemAudioStreamConstructor: LocalSystemAudioStream, ...options.audio}
196
+ : undefined,
197
+ });
@@ -10,8 +10,10 @@ import {
10
10
  LocalSystemAudioStream,
11
11
  createCameraStream,
12
12
  createMicrophoneStream,
13
+ createCameraAndMicrophoneStreams,
13
14
  createDisplayStream,
14
15
  createDisplayStreamWithAudio,
16
+ createDisplayMedia,
15
17
  } from '@webex/media-helpers';
16
18
  import * as InternalMediaCoreModule from '@webex/internal-media-core';
17
19
 
@@ -115,36 +117,139 @@ describe('media-helpers', () => {
115
117
  await checkSetServerMuted(false, false, false);
116
118
  });
117
119
  });
120
+ })
121
+ );
118
122
 
119
- describe('#wcmeCreateMicrophoneStream, #wcmeCreateCameraStream', () => {
120
- it('checks creating tracks', async () => {
121
- const constraints = {deviceId: 'abc'};
122
-
123
- const spy = sinon.stub(InternalMediaCoreModule, spyFn).returns('something');
124
- const result = await createFn(constraints);
123
+ const functionsToTest = [
124
+ {
125
+ title: 'createCameraStream',
126
+ createFn: createCameraStream,
127
+ spyFn: 'createCameraStream',
128
+ classConstructors: [LocalCameraStream],
129
+ additionalOptions: {fake: 'constraints'},
130
+ },
131
+ {
132
+ title: 'createMicrophoneStream',
133
+ createFn: createMicrophoneStream,
134
+ spyFn: 'createMicrophoneStream',
135
+ classConstructors: [LocalMicrophoneStream],
136
+ additionalOptions: {fake: 'constraints'},
137
+ },
138
+ {
139
+ title: 'createCameraAndMicrophoneStreams',
140
+ createFn: createCameraAndMicrophoneStreams,
141
+ spyFn: 'createCameraAndMicrophoneStreams',
142
+ classConstructors: [LocalCameraStream, LocalMicrophoneStream],
143
+ additionalOptions: {video: {fake: 'constraints'}, audio: {fake: 'constraints'}},
144
+ },
145
+ {
146
+ title: 'createDisplayStream',
147
+ createFn: createDisplayStream,
148
+ spyFn: 'createDisplayStream',
149
+ classConstructors: [LocalDisplayStream],
150
+ additionalOptions: 'motion',
151
+ },
152
+ {
153
+ title: 'createDisplayStreamWithAudio',
154
+ createFn: createDisplayStreamWithAudio,
155
+ spyFn: 'createDisplayStreamWithAudio',
156
+ classConstructors: [LocalDisplayStream, LocalSystemAudioStream],
157
+ additionalOptions: 'motion',
158
+ },
159
+ ];
160
+ functionsToTest.forEach(({title, createFn, spyFn, classConstructors, additionalOptions}) => {
161
+ describe(title, () => {
162
+ let wcmeCreateStreamSpy;
163
+ beforeEach(() => {
164
+ sinon.restore();
165
+ wcmeCreateStreamSpy = sinon.stub(InternalMediaCoreModule, spyFn);
166
+ });
125
167
 
126
- assert.equal(result, 'something');
127
- assert.calledOnceWithExactly(spy, className, constraints);
128
- });
168
+ it('can be called without additional options', async () => {
169
+ await createFn();
170
+ assert.calledOnceWithExactly(wcmeCreateStreamSpy, ...classConstructors, undefined);
129
171
  });
130
- })
131
- );
132
172
 
133
- describe('createDisplayStream', () => {
134
- it('checks createDisplayStream', async () => {
135
- const spy = sinon.stub(InternalMediaCoreModule, 'createDisplayStream').returns('something');
136
- const result = await createDisplayStream();
137
- assert.equal(result, 'something');
138
- assert.calledOnceWithExactly(spy, LocalDisplayStream);
173
+ it('can be called with additional options', async () => {
174
+ await createFn(additionalOptions);
175
+ assert.calledOnceWithExactly(
176
+ wcmeCreateStreamSpy,
177
+ ...classConstructors,
178
+ additionalOptions
179
+ );
180
+ });
139
181
  });
140
182
  });
141
183
 
142
- describe('createDisplayStreamWithAudio', () => {
143
- it('checks createDisplayStreamWithAudio', async () => {
144
- const spy = sinon.stub(InternalMediaCoreModule, 'createDisplayStreamWithAudio').returns('something');
145
- const result = await createDisplayStreamWithAudio();
146
- assert.equal(result, 'something');
147
- assert.calledOnceWithExactly(spy, LocalDisplayStream, LocalSystemAudioStream);
184
+ describe('createDisplayMedia', () => {
185
+ let wcmeCreateDisplayMediaSpy;
186
+ beforeEach(() => {
187
+ sinon.restore();
188
+ wcmeCreateDisplayMediaSpy = sinon.stub(InternalMediaCoreModule, 'createDisplayMedia');
189
+ });
190
+
191
+ it('can be called with no options', async () => {
192
+ await createDisplayMedia();
193
+ assert.calledOnceWithExactly(wcmeCreateDisplayMediaSpy, {
194
+ video: {displayStreamConstructor: LocalDisplayStream},
195
+ audio: undefined,
196
+ });
197
+ });
198
+
199
+ it('can be called with just video', async () => {
200
+ await createDisplayMedia({video: {}});
201
+ assert.calledOnceWithExactly(wcmeCreateDisplayMediaSpy, {
202
+ video: {displayStreamConstructor: LocalDisplayStream},
203
+ audio: undefined,
204
+ });
205
+ });
206
+
207
+ it('can be called with additional video options', async () => {
208
+ const options = {
209
+ video: {
210
+ constraints: {fake: 'constraints'},
211
+ videoContentHint: 'motion',
212
+ preferCurrentTab: true,
213
+ selfBrowserSurface: 'include',
214
+ surfaceSwitching: 'include',
215
+ monitorTypeSurfaces: 'exclude',
216
+ },
217
+ };
218
+ await createDisplayMedia(options);
219
+ assert.calledOnceWithExactly(wcmeCreateDisplayMediaSpy, {
220
+ video: {displayStreamConstructor: LocalDisplayStream, ...options.video},
221
+ audio: undefined,
222
+ });
223
+ });
224
+
225
+ it('can be called with just video and audio', async () => {
226
+ await createDisplayMedia({video: {}, audio: {}});
227
+ assert.calledOnceWithExactly(wcmeCreateDisplayMediaSpy, {
228
+ video: {displayStreamConstructor: LocalDisplayStream},
229
+ audio: {systemAudioStreamConstructor: LocalSystemAudioStream},
230
+ });
231
+ });
232
+
233
+ it('can be called with additional video and audio options', async () => {
234
+ const options = {
235
+ video: {
236
+ constraints: {fake: 'constraints'},
237
+ videoContentHint: 'motion',
238
+ preferCurrentTab: true,
239
+ selfBrowserSurface: 'include',
240
+ surfaceSwitching: 'include',
241
+ monitorTypeSurfaces: 'exclude',
242
+ },
243
+ audio: {
244
+ constraints: {fake: 'constraints'},
245
+ systemAudio: 'exclude',
246
+ },
247
+ };
248
+ await createDisplayMedia(options);
249
+ assert.calledOnceWithExactly(wcmeCreateDisplayMediaSpy, {
250
+ video: {displayStreamConstructor: LocalDisplayStream, ...options.video},
251
+ audio: {systemAudioStreamConstructor: LocalSystemAudioStream, ...options.audio},
252
+ });
148
253
  });
149
254
  });
150
255
  });