@techsee/techsee-media-service 1.0.2 → 2.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/lib/MultiParty/OpentokMultiparty.d.ts.map +1 -1
- package/lib/MultiParty/OpentokMultiparty.js +13 -1
- package/lib/MultiParty/OpentokMultiparty.js.map +1 -1
- package/lib/oldCode/event-emitter.js +1 -1
- package/lib/oldCode/opentok/session.js +1 -1
- package/lib/oldCode/opentok/stream.js +1 -1
- package/lib/oldCode/publisher.js +1 -1
- package/lib/oldCode/service.js +1 -1
- package/lib/oldCode/session.js +1 -1
- package/lib/oldCode/stream.js +1 -1
- package/lib/oldCode/subscriber.js +1 -1
- package/lib/oldCode/webrtc/helper.js +1 -1
- package/lib/oldCode/webrtc/session-kms.js +3 -3
- package/lib/oldCode/webrtc/session-loopback.js +1 -1
- package/lib/oldCode/webrtc/session-turn.js +3 -3
- package/lib/oldCode/webrtc/session-turn.v2.js +3 -3
- package/lib/oldCode/webrtc/stream.js +1 -1
- package/lib/qos/raw-qos.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AACnH,OAAO,EAAc,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AAa3E,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAM;IACpC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,gBAAgB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAElF,gDAAgD;IAChD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,SAAK;gBAET,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM;IAM3H,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,OAAO,gBAAiB,WAAW,KAAG,IAAI,CAqCxC;IAEF,UAAU,QAAO,IAAI,CAYnB;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAYlF;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CASlF;IAEF,eAAe,yBAAgC,eAAe,KAAG,QAAQ,IAAI,CAAC,CA6B5E;IAEF,YAAY,eAAsB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBvD;IAEF,YAAY,uBAA8B,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgB/D;IAEF,YAAY,QAAa,QAAQ,IAAI,CAAC,CAiCpC;IAEF,OAAO,CAAC,aAAa;IAIrB,aAAa,aAAc,eAAe,KAAG,IAAI,CAsD/C;IAEF,OAAO,CAAC,yBAAyB;IAMjC,oBAAoB,kBAEhB,QAAQ,IAAI,CAAC,CAgDf;IAEF,4BAA4B,UAAW,GAAG,KAAG,IAAI,CAY/C;IAEF,sBAAsB,kBAGlB,IAAI,CAON;IAEF,wBAAwB,kBAEpB,IAAI,CAmBN;IAEF,0BAA0B,kBAGtB,IAAI,CAcN;IAEF,kBAAkB,iCAAoB,IAAI,CAExC;IAEF,OAAO,CAAC,0BAA0B,CAGjC;CACJ","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, Subscriber, DEFAULT_AVATAR_URI} from './MultiParty';\nimport {CameraTypes, SessionClientRole} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {BrandingSettings, Credentials, SessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\nconst trace = getMediaTracer('Multiparty');\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nexport class OpentokMultiparty extends MultiParty {\n subscribers: Array<Subscriber> = [];\n session?: any;\n currentPublisher?: any;\n branding?: BrandingSettings;\n getParticipantId: (clientRole: SessionClientRole, connectionId: string) => string;\n\n /** @FIXME not used atm, should be refactored */\n credentials?: Credentials;\n participantCount = 0;\n\n constructor(settings: SessionSettings, getParticipantDomId: (clientRole: SessionClientRole, connectionId: string) => string) {\n super(settings);\n this.branding = settings.branding;\n this.getParticipantId = getParticipantDomId;\n }\n\n get ownConnectionId(): string | undefined {\n return this.session?.connection?.connectionId;\n }\n\n connect = (credentials: Credentials): void => {\n this.credentials = credentials;\n\n try {\n this.session = window?.OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(err)}});\n\n return;\n }\n\n this.session.on('connectionCreated', this.connectionCreatedHandler);\n this.session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this.session.on('streamCreated', this.streamCreatedHandler);\n this.session.on('streamDestroyed', this.streamDestroyedHandler);\n this.session.on('streamPropertyChanged', this.streamPropertyChangedHandler);\n this.session.on('sessionDisconnected', this.sessionDisconnectedHandler);\n\n this.session.connect(credentials.token, async (error?: any) => {\n if (error) {\n this.session?.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(error)}});\n\n return;\n }\n\n if (this.settings.defaultCamera === CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n\n return;\n }\n\n await this.createPublisher(this.settings);\n });\n };\n\n disconnect = (): void => {\n try {\n trace.info('Disconnecting from session');\n\n if (this.session) {\n this.session.disconnect();\n this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n couldStartPublishVideo = async (settings: SessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n couldStartPublishAudio = async (settings: SessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone();\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n createPublisher = async (settingsForPublisher: SessionSettings): Promise<void> => {\n const settings = cloneDeep(settingsForPublisher);\n const couldStartPublishVideo = await this.couldStartPublishVideo(settings);\n const couldStartPublishAudio = await this.couldStartPublishAudio(settings);\n\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n\n return;\n }\n\n if (!couldStartPublishVideo) {\n settings.defaultCamera = CameraTypes.NONE;\n }\n\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n\n if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n\n this.currentPublisher && this.session?.publish(this.currentPublisher, this.traceErrorCallback);\n }\n };\n\n publishAudio = async (shouldMute: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !shouldMute;\n\n if (shouldMute && !await this.couldStartPublishAudio(settings)) {\n trace.error('could not publish audio');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishAudio(shouldMute);\n }\n };\n\n publishVideo = async (shouldPublishVideo: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (shouldPublishVideo && !await this.couldStartPublishVideo(settings)) {\n trace.error('could not publish video');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishVideo(shouldPublishVideo);\n }\n };\n\n switchCamera = async (): Promise<void> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n let deviceId = '';\n let cameraType = CameraTypes.NONE;\n\n switch (this.settings.defaultCamera) {\n case CameraTypes.BACK:\n cameraType = CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case CameraTypes.FRONT:\n cameraType = CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(`cameraType not valid: ${this.settings.defaultCamera}`);\n }\n\n return this.currentPublisher?.setVideoSource(deviceId)\n .then(() => {\n this.settings.defaultCamera = cameraType;\n trace.info(`Success to switch camera to cameraType: ${cameraType}`);\n });\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n private getClientRole(connection?: any): SessionClientRole {\n return (connection?.data && JSON.parse(connection.data).clientRole) || SessionClientRole.USER;\n }\n\n initPublisher = (settings: SessionSettings): void => {\n const properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== CameraTypes.NONE,\n facingMode: settings.defaultCamera === CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n\n this.currentPublisher = window?.OT.initPublisher(this.getParticipantIdForStream(this.session?.connection),\n properties, this.traceErrorCallback);\n\n if (!this.currentPublisher) {\n trace.error('failed to init publisher');\n } else {\n this.currentPublisher.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n this.emit(MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n this.currentPublisher.on('streamDestroyed', (event: any) => {\n trace.info('Publisher stream destroyed', event);\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {event: event,\n participantId: this.getParticipantIdForStream(event?.stream?.connection)});\n });\n this.currentPublisher.on('accessDenied', (event: any) => {\n trace.info('Publisher denied media permissions', event);\n this.emit(MULTI_PARTY_EVENTS.mediaDeviceAccessDenied);\n });\n this.currentPublisher.on('streamCreated', async (event: any) => {\n await MediaCapabilitiesHelper.setDevicesList();\n\n const participantId = this.getParticipantIdForStream(event?.stream?.connection);\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n hasAudio: event?.stream?.hasAudio,\n hasVideo: event?.stream?.hasVideo,\n isOwnConnection: this.ownConnectionId === event?.stream?.connection?.connectionId,\n });\n\n trace.info('publisher stream created', {event,\n hasAudio: get(this.currentPublisher, 'stream.hasAudio'),\n participantId});\n });\n }\n };\n\n private getParticipantIdForStream(connection: any) {\n const clientRole = this.getClientRole(connection);\n\n return this.getParticipantId(clientRole, connection.connectionId);\n }\n\n streamCreatedHandler = async (event: any & {\n stream: any;\n }): Promise<void> => {\n trace.info('streamCreatedHandler', event.stream);\n\n const {stream} = event;\n const {connection} = stream;\n const participantId = this.getParticipantIdForStream(connection);\n\n await MediaCapabilitiesHelper.setDevicesList();\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n isOwnConnection: this.ownConnectionId === (event?.stream?.connection?.connectionId) as string,\n hasVideo: event?.stream?.hasVideo,\n hasAudio: event?.stream?.hasAudio});\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n trace.info(`a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n } else {\n const properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\n };\n\n const subscriber = event.target.subscribe(event.stream, participantId, properties, (err: any) => {\n this.traceErrorCallback(err);\n subscriber?.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n });\n });\n\n this.subscribers.push({\n subscriber,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n }\n };\n\n streamPropertyChangedHandler = (event: any): void => {\n trace.info('streamPropertyChangedHandler', event);\n\n const {stream} = event;\n\n this.emit(MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream?.hasVideo,\n hasAudio: stream?.hasAudio,\n participantId: this.getParticipantIdForStream(stream?.connection),\n isOwnConnection: this.ownConnectionId === stream?.connection?.connectionId,\n stream\n });\n };\n\n streamDestroyedHandler = (event: any & {\n stream: any;\n reason: string;\n }): void => {\n trace.info('streamDestroyedHandler', event);\n const {stream} = event;\n const destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {event: event, participantId: this.getParticipantIdForStream(event?.stream?.connection)});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n };\n\n connectionCreatedHandler = (event: any & {\n connection: any;\n }): void => {\n trace.info('connectionCreatedHandler', event);\n\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n ++this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n\n const clientRole = this.getClientRole(connection);\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole, event,\n participantId: this.getParticipantIdForStream(connection),\n isOwnConnection: this.ownConnectionId === connection.connectionId\n });\n };\n\n connectionDestroyedHandler = (event: any & {\n connection: any;\n reason: string;\n }): void => {\n const {connection} = event;\n const clientRole = this.getClientRole(connection);\n\n trace.info('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {clientRole, event, participantId: this.getParticipantIdForStream(event?.connection)});\n\n if (!this.ownConnectionId || !connection || connection.connectionId !== this.ownConnectionId) {\n return;\n }\n\n --this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n this.session = null;\n };\n\n traceErrorCallback = (error?: Error): void => {\n trace.error(JSON.stringify(error));\n };\n\n private sessionDisconnectedHandler = (event: any) => {\n trace.info('sessionDisconnectedHandler', event);\n this?.session?.signal({retryAfterReconnect: true});\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/OpentokMultiparty.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,UAAU,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AACnH,OAAO,EAAc,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AAa3E,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAM;IACpC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,gBAAgB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAElF,gDAAgD;IAChD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,SAAK;gBAET,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM;IAM3H,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,OAAO,gBAAiB,WAAW,KAAG,IAAI,CAqCxC;IAEF,UAAU,QAAO,IAAI,CAYnB;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CAYlF;IAEF,sBAAsB,aAAoB,eAAe,KAAG,QAAQ,OAAO,GAAG,KAAK,CAAC,CASlF;IAEF,eAAe,yBAAgC,eAAe,KAAG,QAAQ,IAAI,CAAC,CA6B5E;IAEF,YAAY,eAAsB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgBvD;IAEF,YAAY,uBAA8B,OAAO,KAAG,QAAQ,IAAI,CAAC,CAgB/D;IAEF,YAAY,QAAa,QAAQ,IAAI,CAAC,CAiCpC;IAEF,OAAO,CAAC,aAAa;IAIrB,aAAa,aAAc,eAAe,KAAG,IAAI,CA+D/C;IAEF,OAAO,CAAC,yBAAyB;IAMjC,oBAAoB,kBAEhB,QAAQ,IAAI,CAAC,CAgDf;IAEF,4BAA4B,UAAW,GAAG,KAAG,IAAI,CAY/C;IAEF,sBAAsB,kBAGlB,IAAI,CAON;IAEF,wBAAwB,kBAEpB,IAAI,CAmBN;IAEF,0BAA0B,kBAGtB,IAAI,CAcN;IAEF,kBAAkB,iCAAoB,IAAI,CAExC;IAEF,OAAO,CAAC,0BAA0B,CAGjC;CACJ","file":"OpentokMultiparty.d.ts","sourcesContent":["import {maxParticipantsNumber, MULTI_PARTY_EVENTS, MultiParty, Subscriber, DEFAULT_AVATAR_URI} from './MultiParty';\nimport {CameraTypes, SessionClientRole} from '../MediaConstants';\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport get from 'lodash/get';\nimport {BrandingSettings, Credentials, SessionSettings} from './Contracts';\nimport filter from 'lodash/filter';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {MediaCapabilitiesHelper} from './MediaCapabilitiesHelper';\n\nconst trace = getMediaTracer('Multiparty');\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nexport class OpentokMultiparty extends MultiParty {\n subscribers: Array<Subscriber> = [];\n session?: any;\n currentPublisher?: any;\n branding?: BrandingSettings;\n getParticipantId: (clientRole: SessionClientRole, connectionId: string) => string;\n\n /** @FIXME not used atm, should be refactored */\n credentials?: Credentials;\n participantCount = 0;\n\n constructor(settings: SessionSettings, getParticipantDomId: (clientRole: SessionClientRole, connectionId: string) => string) {\n super(settings);\n this.branding = settings.branding;\n this.getParticipantId = getParticipantDomId;\n }\n\n get ownConnectionId(): string | undefined {\n return this.session?.connection?.connectionId;\n }\n\n connect = (credentials: Credentials): void => {\n this.credentials = credentials;\n\n try {\n this.session = window?.OT.initSession(credentials.apiKey, credentials.sessionId);\n } catch (err) {\n trace.error(JSON.stringify(err));\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(err)}});\n\n return;\n }\n\n this.session.on('connectionCreated', this.connectionCreatedHandler);\n this.session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this.session.on('streamCreated', this.streamCreatedHandler);\n this.session.on('streamDestroyed', this.streamDestroyedHandler);\n this.session.on('streamPropertyChanged', this.streamPropertyChangedHandler);\n this.session.on('sessionDisconnected', this.sessionDisconnectedHandler);\n\n this.session.connect(credentials.token, async (error?: any) => {\n if (error) {\n this.session?.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MULTI_PARTY_EVENTS.connectFailed, {meta: {err: JSON.stringify(error)}});\n\n return;\n }\n\n if (this.settings.defaultCamera === CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n\n return;\n }\n\n await this.createPublisher(this.settings);\n });\n };\n\n disconnect = (): void => {\n try {\n trace.info('Disconnecting from session');\n\n if (this.session) {\n this.session.disconnect();\n this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n } catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n\n couldStartPublishVideo = async (settings: SessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return (settings.defaultCamera !== CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false;\n\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n couldStartPublishAudio = async (settings: SessionSettings): Promise<boolean | Error> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n return !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone();\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n createPublisher = async (settingsForPublisher: SessionSettings): Promise<void> => {\n const settings = cloneDeep(settingsForPublisher);\n const couldStartPublishVideo = await this.couldStartPublishVideo(settings);\n const couldStartPublishAudio = await this.couldStartPublishAudio(settings);\n\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n\n return;\n }\n\n if (!couldStartPublishVideo) {\n settings.defaultCamera = CameraTypes.NONE;\n }\n\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n\n if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n\n this.currentPublisher && this.session?.publish(this.currentPublisher, this.traceErrorCallback);\n }\n };\n\n publishAudio = async (shouldMute: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.startWithAudioMuted = !shouldMute;\n\n if (shouldMute && !await this.couldStartPublishAudio(settings)) {\n trace.error('could not publish audio');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishAudio(shouldMute);\n }\n };\n\n publishVideo = async (shouldPublishVideo: boolean): Promise<void> => {\n const settings = cloneDeep(this.settings);\n\n settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : CameraTypes.NONE;\n\n if (shouldPublishVideo && !await this.couldStartPublishVideo(settings)) {\n trace.error('could not publish video');\n\n return;\n }\n\n if (!this.currentPublisher) {\n await this.createPublisher(settings);\n } else {\n this.currentPublisher.publishVideo(shouldPublishVideo);\n }\n };\n\n switchCamera = async (): Promise<void> => {\n try {\n const mediaCapabilitiesHelper = await MediaCapabilitiesHelper.getInstance();\n\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n let deviceId = '';\n let cameraType = CameraTypes.NONE;\n\n switch (this.settings.defaultCamera) {\n case CameraTypes.BACK:\n cameraType = CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case CameraTypes.FRONT:\n cameraType = CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(`cameraType not valid: ${this.settings.defaultCamera}`);\n }\n\n return this.currentPublisher?.setVideoSource(deviceId)\n .then(() => {\n this.settings.defaultCamera = cameraType;\n trace.info(`Success to switch camera to cameraType: ${cameraType}`);\n });\n } catch (err) {\n trace.error(JSON.stringify(err));\n throw err;\n }\n };\n\n private getClientRole(connection?: any): SessionClientRole {\n return (connection?.data && JSON.parse(connection.data).clientRole) || SessionClientRole.USER;\n }\n\n initPublisher = (settings: SessionSettings): void => {\n const properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== CameraTypes.NONE,\n facingMode: settings.defaultCamera === CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n\n this.currentPublisher = window?.OT.initPublisher(this.getParticipantIdForStream(this.session?.connection),\n properties, this.traceErrorCallback);\n\n if (!this.currentPublisher) {\n trace.error('failed to init publisher');\n } else {\n this.currentPublisher.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n this.emit(MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n this.currentPublisher.on('streamDestroyed', (event: any) => {\n trace.info('Publisher stream destroyed', event);\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {event: event,\n participantId: this.getParticipantIdForStream(event?.stream?.connection)});\n });\n this.currentPublisher.on('accessDenied', (event: any) => {\n trace.info('Publisher denied media permissions', event);\n const connection = this.session?.connection;\n const connectionId = connection?.connectionId;\n const participantId = this.getParticipantIdForStream(connection);\n const isOwnConnection = this.ownConnectionId === connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.mediaDeviceAccessDenied, {\n connectionId,\n isOwnConnection,\n participantId\n });\n });\n this.currentPublisher.on('streamCreated', async (event: any) => {\n await MediaCapabilitiesHelper.setDevicesList();\n\n const participantId = this.getParticipantIdForStream(event?.stream?.connection);\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n hasAudio: event?.stream?.hasAudio,\n hasVideo: event?.stream?.hasVideo,\n isOwnConnection: this.ownConnectionId === event?.stream?.connection?.connectionId,\n });\n\n trace.info('publisher stream created', {event,\n hasAudio: get(this.currentPublisher, 'stream.hasAudio'),\n participantId});\n });\n }\n };\n\n private getParticipantIdForStream(connection: any) {\n const clientRole = this.getClientRole(connection);\n\n return this.getParticipantId(clientRole, connection.connectionId);\n }\n\n streamCreatedHandler = async (event: any & {\n stream: any;\n }): Promise<void> => {\n trace.info('streamCreatedHandler', event.stream);\n\n const {stream} = event;\n const {connection} = stream;\n const participantId = this.getParticipantIdForStream(connection);\n\n await MediaCapabilitiesHelper.setDevicesList();\n\n this.emit(MULTI_PARTY_EVENTS.streamCreated,\n {event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted,\n isOwnConnection: this.ownConnectionId === (event?.stream?.connection?.connectionId) as string,\n hasVideo: event?.stream?.hasVideo,\n hasAudio: event?.stream?.hasAudio});\n\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return;\n }\n\n if (this.subscribers.length >= maxParticipantsNumber - 1) {\n trace.info(`a new subscriber cannot be added, as the number of participants reached its limit: ${maxParticipantsNumber}`);\n } else {\n const properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: this.branding?.backgroundImageURI || DEFAULT_AVATAR_URI\n },\n };\n\n const subscriber = event.target.subscribe(event.stream, participantId, properties, (err: any) => {\n this.traceErrorCallback(err);\n subscriber?.on('videoElementCreated', (event: any) => {\n trace.info('videoElementCreated', event);\n });\n });\n\n this.subscribers.push({\n subscriber,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n }\n };\n\n streamPropertyChangedHandler = (event: any): void => {\n trace.info('streamPropertyChangedHandler', event);\n\n const {stream} = event;\n\n this.emit(MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream?.hasVideo,\n hasAudio: stream?.hasAudio,\n participantId: this.getParticipantIdForStream(stream?.connection),\n isOwnConnection: this.ownConnectionId === stream?.connection?.connectionId,\n stream\n });\n };\n\n streamDestroyedHandler = (event: any & {\n stream: any;\n reason: string;\n }): void => {\n trace.info('streamDestroyedHandler', event);\n const {stream} = event;\n const destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n\n this.emit(MULTI_PARTY_EVENTS.streamDestroyed, {event: event, participantId: this.getParticipantIdForStream(event?.stream?.connection)});\n this.subscribers = filter(this.subscribers, (subscriber) => subscriber.connectionId !== destroyedConnectionId);\n };\n\n connectionCreatedHandler = (event: any & {\n connection: any;\n }): void => {\n trace.info('connectionCreatedHandler', event);\n\n const {connection} = event;\n\n if (!this.ownConnectionId || !connection) {\n return;\n }\n\n ++this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n\n const clientRole = this.getClientRole(connection);\n\n this.emit(MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole, event,\n participantId: this.getParticipantIdForStream(connection),\n isOwnConnection: this.ownConnectionId === connection.connectionId\n });\n };\n\n connectionDestroyedHandler = (event: any & {\n connection: any;\n reason: string;\n }): void => {\n const {connection} = event;\n const clientRole = this.getClientRole(connection);\n\n trace.info('connectionDestroyedHandler', event);\n this.emit(MULTI_PARTY_EVENTS.connectionDestroyed, {clientRole, event, participantId: this.getParticipantIdForStream(event?.connection)});\n\n if (!this.ownConnectionId || !connection || connection.connectionId !== this.ownConnectionId) {\n return;\n }\n\n --this.participantCount;\n this.emit(MULTI_PARTY_EVENTS.participantsNumberChanged, this.participantCount);\n this.session = null;\n };\n\n traceErrorCallback = (error?: Error): void => {\n trace.error(JSON.stringify(error));\n };\n\n private sessionDisconnectedHandler = (event: any) => {\n trace.info('sessionDisconnectedHandler', event);\n this?.session?.signal({retryAfterReconnect: true});\n }\n}\n"]}
|
|
@@ -639,9 +639,21 @@ function (_super) {
|
|
|
639
639
|
});
|
|
640
640
|
|
|
641
641
|
_this.currentPublisher.on('accessDenied', function (event) {
|
|
642
|
+
var _a;
|
|
643
|
+
|
|
642
644
|
trace.info('Publisher denied media permissions', event);
|
|
645
|
+
var connection = (_a = _this.session) === null || _a === void 0 ? void 0 : _a.connection;
|
|
646
|
+
var connectionId = connection === null || connection === void 0 ? void 0 : connection.connectionId;
|
|
647
|
+
|
|
648
|
+
var participantId = _this.getParticipantIdForStream(connection);
|
|
643
649
|
|
|
644
|
-
_this.
|
|
650
|
+
var isOwnConnection = _this.ownConnectionId === connectionId;
|
|
651
|
+
|
|
652
|
+
_this.emit(MultiParty_1.MULTI_PARTY_EVENTS.mediaDeviceAccessDenied, {
|
|
653
|
+
connectionId: connectionId,
|
|
654
|
+
isOwnConnection: isOwnConnection,
|
|
655
|
+
participantId: participantId
|
|
656
|
+
});
|
|
645
657
|
});
|
|
646
658
|
|
|
647
659
|
_this.currentPublisher.on('streamCreated', function (event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/OpentokMultiparty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","__importDefault","mod","__esModule","defineProperty","exports","OpentokMultiparty","MultiParty_1","require","MediaConstants_1","MediaTracer_1","get_1","filter_1","cloneDeep_1","MediaCapabilitiesHelper_1","trace","getMediaTracer","OpentokFacingMode","_super","settings","getParticipantDomId","_this","subscribers","participantCount","connect","credentials","session","window","OT","initSession","apiKey","sessionId","err","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","token","_a","_b","off","traceErrorCallback","defaultCamera","CameraTypes","NONE","startWithAudioMuted","info","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","getInstance","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","Error","publish","publishAudio","shouldMute","publishVideo","shouldPublishVideo","switchCamera","deviceId","cameraType_1","err_3","supportSwitchCamera","BACK","FRONT","frontCameraDeviceId","backCameraDeviceId","setVideoSource","properties","insertMode","fitMode","width","height","style","buttonDisplayMode","archiveStatusDisplayMode","audioLevelDisplayMode","backgroundImageURI","branding","DEFAULT_AVATAR_URI","facingMode","USER","ENVIRONMENT","getParticipantIdForStream","connection","event","videoElementCreated","streamDestroyed","participantId","stream","mediaDeviceAccessDenied","_c","_d","_e","_f","setDevicesList","streamCreated","hasAudio","hasVideo","isOwnConnection","ownConnectionId","connectionId","subscriber_1","maxParticipantsNumber","target","subscribe","subscriber","clientRole","getClientRole","videoAudioStatus","destroyedConnectionId","participantsNumberChanged","connectionCreated","connectionDestroyed","signal","retryAfterReconnect","getParticipantId","get","enumerable","configurable","data","parse","SessionClientRole","MultiParty"],"mappings":"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","file":"OpentokMultiparty.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiparty = void 0;\nvar MultiParty_1 = require(\"./MultiParty\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OpentokMultiparty = /** @class */ (function (_super) {\n __extends(OpentokMultiparty, _super);\n function OpentokMultiparty(settings, getParticipantDomId) {\n var _this = _super.call(this, settings) || this;\n _this.subscribers = [];\n _this.participantCount = 0;\n _this.connect = function (credentials) {\n _this.credentials = credentials;\n try {\n _this.session = window === null || window === void 0 ? void 0 : window.OT.initSession(credentials.apiKey, credentials.sessionId);\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(err) } });\n return;\n }\n _this.session.on('connectionCreated', _this.connectionCreatedHandler);\n _this.session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this.session.on('streamCreated', _this.streamCreatedHandler);\n _this.session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this.session.on('streamPropertyChanged', _this.streamPropertyChangedHandler);\n _this.session.on('sessionDisconnected', _this.sessionDisconnectedHandler);\n _this.session.connect(credentials.token, function (error) { return __awaiter(_this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (error) {\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(error) } });\n return [2 /*return*/];\n }\n if (this.settings.defaultCamera === MediaConstants_1.CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.createPublisher(this.settings)];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n }); });\n };\n _this.disconnect = function () {\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n _this.session.disconnect();\n _this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.couldStartPublishVideo = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.couldStartPublishAudio = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];\n case 2:\n err_2 = _a.sent();\n trace.error(JSON.stringify(err_2));\n throw err_2;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.createPublisher = function (settingsForPublisher) { return __awaiter(_this, void 0, void 0, function () {\n var settings, couldStartPublishVideo, couldStartPublishAudio;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(settingsForPublisher);\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n couldStartPublishVideo = _b.sent();\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 2:\n couldStartPublishAudio = _b.sent();\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n return [2 /*return*/];\n }\n if (!couldStartPublishVideo) {\n settings.defaultCamera = MediaConstants_1.CameraTypes.NONE;\n }\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n this.currentPublisher && ((_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.currentPublisher, this.traceErrorCallback));\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishAudio = function (shouldMute) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.startWithAudioMuted = !shouldMute;\n _a = shouldMute;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishAudio(shouldMute);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = shouldPublishVideo;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishVideo(shouldPublishVideo);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, deviceId, cameraType_1, err_3;\n var _this = this;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 1:\n mediaCapabilitiesHelper = _b.sent();\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n deviceId = '';\n cameraType_1 = MediaConstants_1.CameraTypes.NONE;\n switch (this.settings.defaultCamera) {\n case MediaConstants_1.CameraTypes.BACK:\n cameraType_1 = MediaConstants_1.CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case MediaConstants_1.CameraTypes.FRONT:\n cameraType_1 = MediaConstants_1.CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(\"cameraType not valid: \" + this.settings.defaultCamera);\n }\n return [2 /*return*/, (_a = this.currentPublisher) === null || _a === void 0 ? void 0 : _a.setVideoSource(deviceId).then(function () {\n _this.settings.defaultCamera = cameraType_1;\n trace.info(\"Success to switch camera to cameraType: \" + cameraType_1);\n })];\n case 2:\n err_3 = _b.sent();\n trace.error(JSON.stringify(err_3));\n throw err_3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.initPublisher = function (settings) {\n var _a, _b;\n var properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_a = _this.branding) === null || _a === void 0 ? void 0 : _a.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,\n facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n _this.currentPublisher = window === null || window === void 0 ? void 0 : window.OT.initPublisher(_this.getParticipantIdForStream((_b = _this.session) === null || _b === void 0 ? void 0 : _b.connection), properties, _this.traceErrorCallback);\n if (!_this.currentPublisher) {\n trace.error('failed to init publisher');\n }\n else {\n _this.currentPublisher.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n _this.currentPublisher.on('streamDestroyed', function (event) {\n var _a;\n trace.info('Publisher stream destroyed', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { event: event, participantId: _this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) });\n });\n _this.currentPublisher.on('accessDenied', function (event) {\n trace.info('Publisher denied media permissions', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.mediaDeviceAccessDenied);\n });\n _this.currentPublisher.on('streamCreated', function (event) { return __awaiter(_this, void 0, void 0, function () {\n var participantId;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _f.sent();\n participantId = this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, { event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted, hasAudio: (_b = event === null || event === void 0 ? void 0 : event.stream) === null || _b === void 0 ? void 0 : _b.hasAudio,\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n isOwnConnection: this.ownConnectionId === ((_e = (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.connection) === null || _e === void 0 ? void 0 : _e.connectionId),\n });\n trace.info('publisher stream created', { event: event, hasAudio: get_1.default(this.currentPublisher, 'stream.hasAudio'), participantId: participantId });\n return [2 /*return*/];\n }\n });\n }); });\n }\n };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, participantId, properties, subscriber_1;\n var _this = this;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n trace.info('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection;\n participantId = this.getParticipantIdForStream(connection);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _f.sent();\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, { event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted, isOwnConnection: this.ownConnectionId === ((_b = (_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId),\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n hasAudio: (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.hasAudio });\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return [2 /*return*/];\n }\n if (this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n else {\n properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_e = this.branding) === null || _e === void 0 ? void 0 : _e.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\n };\n subscriber_1 = event.target.subscribe(event.stream, participantId, properties, function (err) {\n _this.traceErrorCallback(err);\n subscriber_1 === null || subscriber_1 === void 0 ? void 0 : subscriber_1.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n });\n });\n this.subscribers.push({\n subscriber: subscriber_1,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.streamPropertyChangedHandler = function (event) {\n var _a;\n trace.info('streamPropertyChangedHandler', event);\n var stream = event.stream;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream === null || stream === void 0 ? void 0 : stream.hasVideo,\n hasAudio: stream === null || stream === void 0 ? void 0 : stream.hasAudio,\n participantId: _this.getParticipantIdForStream(stream === null || stream === void 0 ? void 0 : stream.connection),\n isOwnConnection: _this.ownConnectionId === ((_a = stream === null || stream === void 0 ? void 0 : stream.connection) === null || _a === void 0 ? void 0 : _a.connectionId),\n stream: stream\n });\n };\n _this.streamDestroyedHandler = function (event) {\n var _a;\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n var destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { event: event, participantId: _this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n ++_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n var clientRole = _this.getClientRole(connection);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole: clientRole, event: event,\n participantId: _this.getParticipantIdForStream(connection),\n isOwnConnection: _this.ownConnectionId === connection.connectionId\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var clientRole = _this.getClientRole(connection);\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { clientRole: clientRole, event: event, participantId: _this.getParticipantIdForStream(event === null || event === void 0 ? void 0 : event.connection) });\n if (!_this.ownConnectionId || !connection || connection.connectionId !== _this.ownConnectionId) {\n return;\n }\n --_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n _this.session = null;\n };\n _this.traceErrorCallback = function (error) {\n trace.error(JSON.stringify(error));\n };\n _this.sessionDisconnectedHandler = function (event) {\n var _a;\n trace.info('sessionDisconnectedHandler', event);\n (_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({ retryAfterReconnect: true });\n };\n _this.branding = settings.branding;\n _this.getParticipantId = getParticipantDomId;\n return _this;\n }\n Object.defineProperty(OpentokMultiparty.prototype, \"ownConnectionId\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId;\n },\n enumerable: false,\n configurable: true\n });\n OpentokMultiparty.prototype.getClientRole = function (connection) {\n return ((connection === null || connection === void 0 ? void 0 : connection.data) && JSON.parse(connection.data).clientRole) || MediaConstants_1.SessionClientRole.USER;\n };\n OpentokMultiparty.prototype.getParticipantIdForStream = function (connection) {\n var clientRole = this.getClientRole(connection);\n return this.getParticipantId(clientRole, connection.connectionId);\n };\n return OpentokMultiparty;\n}(MultiParty_1.MultiParty));\nexports.OpentokMultiparty = OpentokMultiparty;\n\n//# sourceMappingURL=OpentokMultiparty.js.map\n"]}
|
|
1
|
+
{"version":3,"sources":["MultiParty/OpentokMultiparty.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","__importDefault","mod","__esModule","defineProperty","exports","OpentokMultiparty","MultiParty_1","require","MediaConstants_1","MediaTracer_1","get_1","filter_1","cloneDeep_1","MediaCapabilitiesHelper_1","trace","getMediaTracer","OpentokFacingMode","_super","settings","getParticipantDomId","_this","subscribers","participantCount","connect","credentials","session","window","OT","initSession","apiKey","sessionId","err","error","JSON","stringify","emit","MULTI_PARTY_EVENTS","connectFailed","meta","on","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","streamPropertyChangedHandler","sessionDisconnectedHandler","token","_a","_b","off","traceErrorCallback","defaultCamera","CameraTypes","NONE","startWithAudioMuted","info","createPublisher","disconnect","couldStartPublishVideo","mediaCapabilitiesHelper","err_1","MediaCapabilitiesHelper","getInstance","hasCamera","couldStartPublishAudio","err_2","hasMicrophone","settingsForPublisher","currentPublisher","initPublisher","Error","publish","publishAudio","shouldMute","publishVideo","shouldPublishVideo","switchCamera","deviceId","cameraType_1","err_3","supportSwitchCamera","BACK","FRONT","frontCameraDeviceId","backCameraDeviceId","setVideoSource","properties","insertMode","fitMode","width","height","style","buttonDisplayMode","archiveStatusDisplayMode","audioLevelDisplayMode","backgroundImageURI","branding","DEFAULT_AVATAR_URI","facingMode","USER","ENVIRONMENT","getParticipantIdForStream","connection","event","videoElementCreated","streamDestroyed","participantId","stream","connectionId","isOwnConnection","ownConnectionId","mediaDeviceAccessDenied","_c","_d","_e","_f","setDevicesList","streamCreated","hasAudio","hasVideo","subscriber_1","maxParticipantsNumber","target","subscribe","subscriber","clientRole","getClientRole","videoAudioStatus","destroyedConnectionId","participantsNumberChanged","connectionCreated","connectionDestroyed","signal","retryAfterReconnect","getParticipantId","get","enumerable","configurable","data","parse","SessionClientRole","MultiParty"],"mappings":"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","file":"OpentokMultiparty.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokMultiparty = void 0;\nvar MultiParty_1 = require(\"./MultiParty\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar filter_1 = __importDefault(require(\"lodash/filter\"));\nvar cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nvar MediaCapabilitiesHelper_1 = require(\"./MediaCapabilitiesHelper\");\nvar trace = MediaTracer_1.getMediaTracer('Multiparty');\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OpentokMultiparty = /** @class */ (function (_super) {\n __extends(OpentokMultiparty, _super);\n function OpentokMultiparty(settings, getParticipantDomId) {\n var _this = _super.call(this, settings) || this;\n _this.subscribers = [];\n _this.participantCount = 0;\n _this.connect = function (credentials) {\n _this.credentials = credentials;\n try {\n _this.session = window === null || window === void 0 ? void 0 : window.OT.initSession(credentials.apiKey, credentials.sessionId);\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(err) } });\n return;\n }\n _this.session.on('connectionCreated', _this.connectionCreatedHandler);\n _this.session.on('connectionDestroyed', _this.connectionDestroyedHandler);\n _this.session.on('streamCreated', _this.streamCreatedHandler);\n _this.session.on('streamDestroyed', _this.streamDestroyedHandler);\n _this.session.on('streamPropertyChanged', _this.streamPropertyChangedHandler);\n _this.session.on('sessionDisconnected', _this.sessionDisconnectedHandler);\n _this.session.connect(credentials.token, function (error) { return __awaiter(_this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (error) {\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.off();\n this.session = null;\n this.traceErrorCallback(error);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectFailed, { meta: { err: JSON.stringify(error) } });\n return [2 /*return*/];\n }\n if (this.settings.defaultCamera === MediaConstants_1.CameraTypes.NONE && this.settings.startWithAudioMuted) {\n trace.info('camera is none, no need to create publisher');\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.createPublisher(this.settings)];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n }); });\n };\n _this.disconnect = function () {\n try {\n trace.info('Disconnecting from session');\n if (_this.session) {\n _this.session.disconnect();\n _this.participantCount = 0;\n trace.info('Disconnection from session completed');\n }\n }\n catch (err) {\n trace.error(JSON.stringify(err));\n }\n };\n _this.couldStartPublishVideo = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, (settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE)\n ? mediaCapabilitiesHelper.hasCamera()\n : false];\n case 2:\n err_1 = _a.sent();\n trace.error(JSON.stringify(err_1));\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.couldStartPublishAudio = function (settings) { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 1:\n mediaCapabilitiesHelper = _a.sent();\n return [2 /*return*/, !settings.startWithAudioMuted && mediaCapabilitiesHelper.hasMicrophone()];\n case 2:\n err_2 = _a.sent();\n trace.error(JSON.stringify(err_2));\n throw err_2;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.createPublisher = function (settingsForPublisher) { return __awaiter(_this, void 0, void 0, function () {\n var settings, couldStartPublishVideo, couldStartPublishAudio;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(settingsForPublisher);\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n couldStartPublishVideo = _b.sent();\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 2:\n couldStartPublishAudio = _b.sent();\n if (!couldStartPublishVideo && !couldStartPublishAudio) {\n // FIXME: use emitter\n trace.error('could not create a publisher, due to lack of media capabilities or settings');\n return [2 /*return*/];\n }\n if (!couldStartPublishVideo) {\n settings.defaultCamera = MediaConstants_1.CameraTypes.NONE;\n }\n if (!couldStartPublishAudio) {\n settings.startWithAudioMuted = true;\n }\n if (!this.currentPublisher) {\n this.initPublisher(settings);\n if (!this.currentPublisher) {\n throw new Error('Creating session requires initialized publisher');\n }\n this.currentPublisher && ((_a = this.session) === null || _a === void 0 ? void 0 : _a.publish(this.currentPublisher, this.traceErrorCallback));\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.publishAudio = function (shouldMute) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.startWithAudioMuted = !shouldMute;\n _a = shouldMute;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishAudio(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish audio');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishAudio(shouldMute);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.publishVideo = function (shouldPublishVideo) { return __awaiter(_this, void 0, void 0, function () {\n var settings, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n settings = cloneDeep_1.default(this.settings);\n settings.defaultCamera = shouldPublishVideo ? this.settings.defaultCamera : MediaConstants_1.CameraTypes.NONE;\n _a = shouldPublishVideo;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, this.couldStartPublishVideo(settings)];\n case 1:\n _a = !(_b.sent());\n _b.label = 2;\n case 2:\n if (_a) {\n trace.error('could not publish video');\n return [2 /*return*/];\n }\n if (!!this.currentPublisher) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createPublisher(settings)];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n this.currentPublisher.publishVideo(shouldPublishVideo);\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () {\n var mediaCapabilitiesHelper, deviceId, cameraType_1, err_3;\n var _this = this;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.getInstance()];\n case 1:\n mediaCapabilitiesHelper = _b.sent();\n if (!mediaCapabilitiesHelper.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n deviceId = '';\n cameraType_1 = MediaConstants_1.CameraTypes.NONE;\n switch (this.settings.defaultCamera) {\n case MediaConstants_1.CameraTypes.BACK:\n cameraType_1 = MediaConstants_1.CameraTypes.FRONT;\n deviceId = mediaCapabilitiesHelper.frontCameraDeviceId;\n break;\n case MediaConstants_1.CameraTypes.FRONT:\n cameraType_1 = MediaConstants_1.CameraTypes.BACK;\n deviceId = mediaCapabilitiesHelper.backCameraDeviceId;\n break;\n default:\n throw new Error(\"cameraType not valid: \" + this.settings.defaultCamera);\n }\n return [2 /*return*/, (_a = this.currentPublisher) === null || _a === void 0 ? void 0 : _a.setVideoSource(deviceId).then(function () {\n _this.settings.defaultCamera = cameraType_1;\n trace.info(\"Success to switch camera to cameraType: \" + cameraType_1);\n })];\n case 2:\n err_3 = _b.sent();\n trace.error(JSON.stringify(err_3));\n throw err_3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n _this.initPublisher = function (settings) {\n var _a, _b;\n var properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_a = _this.branding) === null || _a === void 0 ? void 0 : _a.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\n publishAudio: !settings.startWithAudioMuted,\n publishVideo: settings.defaultCamera !== MediaConstants_1.CameraTypes.NONE,\n facingMode: settings.defaultCamera === MediaConstants_1.CameraTypes.FRONT ? OpentokFacingMode.USER : OpentokFacingMode.ENVIRONMENT\n };\n _this.currentPublisher = window === null || window === void 0 ? void 0 : window.OT.initPublisher(_this.getParticipantIdForStream((_b = _this.session) === null || _b === void 0 ? void 0 : _b.connection), properties, _this.traceErrorCallback);\n if (!_this.currentPublisher) {\n trace.error('failed to init publisher');\n }\n else {\n _this.currentPublisher.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoElementCreated, event);\n });\n _this.currentPublisher.on('streamDestroyed', function (event) {\n var _a;\n trace.info('Publisher stream destroyed', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { event: event, participantId: _this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) });\n });\n _this.currentPublisher.on('accessDenied', function (event) {\n var _a;\n trace.info('Publisher denied media permissions', event);\n var connection = (_a = _this.session) === null || _a === void 0 ? void 0 : _a.connection;\n var connectionId = connection === null || connection === void 0 ? void 0 : connection.connectionId;\n var participantId = _this.getParticipantIdForStream(connection);\n var isOwnConnection = _this.ownConnectionId === connectionId;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.mediaDeviceAccessDenied, {\n connectionId: connectionId,\n isOwnConnection: isOwnConnection,\n participantId: participantId\n });\n });\n _this.currentPublisher.on('streamCreated', function (event) { return __awaiter(_this, void 0, void 0, function () {\n var participantId;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _f.sent();\n participantId = this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection);\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, { event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted, hasAudio: (_b = event === null || event === void 0 ? void 0 : event.stream) === null || _b === void 0 ? void 0 : _b.hasAudio,\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n isOwnConnection: this.ownConnectionId === ((_e = (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.connection) === null || _e === void 0 ? void 0 : _e.connectionId),\n });\n trace.info('publisher stream created', { event: event, hasAudio: get_1.default(this.currentPublisher, 'stream.hasAudio'), participantId: participantId });\n return [2 /*return*/];\n }\n });\n }); });\n }\n };\n _this.streamCreatedHandler = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var stream, connection, participantId, properties, subscriber_1;\n var _this = this;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n trace.info('streamCreatedHandler', event.stream);\n stream = event.stream;\n connection = stream.connection;\n participantId = this.getParticipantIdForStream(connection);\n return [4 /*yield*/, MediaCapabilitiesHelper_1.MediaCapabilitiesHelper.setDevicesList()];\n case 1:\n _f.sent();\n this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamCreated, { event: event, participantId: participantId,\n startWithAudioMuted: this.settings.startWithAudioMuted, isOwnConnection: this.ownConnectionId === ((_b = (_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId),\n hasVideo: (_c = event === null || event === void 0 ? void 0 : event.stream) === null || _c === void 0 ? void 0 : _c.hasVideo,\n hasAudio: (_d = event === null || event === void 0 ? void 0 : event.stream) === null || _d === void 0 ? void 0 : _d.hasAudio });\n if (!this.ownConnectionId || !stream || connection.connectionId === this.ownConnectionId) {\n return [2 /*return*/];\n }\n if (this.subscribers.length >= MultiParty_1.maxParticipantsNumber - 1) {\n trace.info(\"a new subscriber cannot be added, as the number of participants reached its limit: \" + MultiParty_1.maxParticipantsNumber);\n }\n else {\n properties = {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI: ((_e = this.branding) === null || _e === void 0 ? void 0 : _e.backgroundImageURI) || MultiParty_1.DEFAULT_AVATAR_URI\n },\n };\n subscriber_1 = event.target.subscribe(event.stream, participantId, properties, function (err) {\n _this.traceErrorCallback(err);\n subscriber_1 === null || subscriber_1 === void 0 ? void 0 : subscriber_1.on('videoElementCreated', function (event) {\n trace.info('videoElementCreated', event);\n });\n });\n this.subscribers.push({\n subscriber: subscriber_1,\n connectionId: connection.connectionId,\n clientRole: this.getClientRole(connection)\n });\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.streamPropertyChangedHandler = function (event) {\n var _a;\n trace.info('streamPropertyChangedHandler', event);\n var stream = event.stream;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.videoAudioStatus, {\n hasVideo: stream === null || stream === void 0 ? void 0 : stream.hasVideo,\n hasAudio: stream === null || stream === void 0 ? void 0 : stream.hasAudio,\n participantId: _this.getParticipantIdForStream(stream === null || stream === void 0 ? void 0 : stream.connection),\n isOwnConnection: _this.ownConnectionId === ((_a = stream === null || stream === void 0 ? void 0 : stream.connection) === null || _a === void 0 ? void 0 : _a.connectionId),\n stream: stream\n });\n };\n _this.streamDestroyedHandler = function (event) {\n var _a;\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n var destroyedConnectionId = stream && stream.connection && stream.connection.connectionId;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.streamDestroyed, { event: event, participantId: _this.getParticipantIdForStream((_a = event === null || event === void 0 ? void 0 : event.stream) === null || _a === void 0 ? void 0 : _a.connection) });\n _this.subscribers = filter_1.default(_this.subscribers, function (subscriber) { return subscriber.connectionId !== destroyedConnectionId; });\n };\n _this.connectionCreatedHandler = function (event) {\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!_this.ownConnectionId || !connection) {\n return;\n }\n ++_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n var clientRole = _this.getClientRole(connection);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionCreated, {\n clientRole: clientRole, event: event,\n participantId: _this.getParticipantIdForStream(connection),\n isOwnConnection: _this.ownConnectionId === connection.connectionId\n });\n };\n _this.connectionDestroyedHandler = function (event) {\n var connection = event.connection;\n var clientRole = _this.getClientRole(connection);\n trace.info('connectionDestroyedHandler', event);\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.connectionDestroyed, { clientRole: clientRole, event: event, participantId: _this.getParticipantIdForStream(event === null || event === void 0 ? void 0 : event.connection) });\n if (!_this.ownConnectionId || !connection || connection.connectionId !== _this.ownConnectionId) {\n return;\n }\n --_this.participantCount;\n _this.emit(MultiParty_1.MULTI_PARTY_EVENTS.participantsNumberChanged, _this.participantCount);\n _this.session = null;\n };\n _this.traceErrorCallback = function (error) {\n trace.error(JSON.stringify(error));\n };\n _this.sessionDisconnectedHandler = function (event) {\n var _a;\n trace.info('sessionDisconnectedHandler', event);\n (_a = _this === null || _this === void 0 ? void 0 : _this.session) === null || _a === void 0 ? void 0 : _a.signal({ retryAfterReconnect: true });\n };\n _this.branding = settings.branding;\n _this.getParticipantId = getParticipantDomId;\n return _this;\n }\n Object.defineProperty(OpentokMultiparty.prototype, \"ownConnectionId\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.connectionId;\n },\n enumerable: false,\n configurable: true\n });\n OpentokMultiparty.prototype.getClientRole = function (connection) {\n return ((connection === null || connection === void 0 ? void 0 : connection.data) && JSON.parse(connection.data).clientRole) || MediaConstants_1.SessionClientRole.USER;\n };\n OpentokMultiparty.prototype.getParticipantIdForStream = function (connection) {\n var clientRole = this.getClientRole(connection);\n return this.getParticipantId(clientRole, connection.connectionId);\n };\n return OpentokMultiparty;\n}(MultiParty_1.MultiParty));\nexports.OpentokMultiparty = OpentokMultiparty;\n\n//# sourceMappingURL=OpentokMultiparty.js.map\n"]}
|
|
@@ -25,7 +25,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
25
25
|
|
|
26
26
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
27
27
|
|
|
28
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
28
|
+
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; } }
|
|
29
29
|
|
|
30
30
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
31
|
|
|
@@ -31,7 +31,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
31
31
|
|
|
32
32
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
33
33
|
|
|
34
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
34
|
+
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; } }
|
|
35
35
|
|
|
36
36
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
37
37
|
|
|
@@ -35,7 +35,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
35
35
|
|
|
36
36
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
37
37
|
|
|
38
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
38
|
+
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; } }
|
|
39
39
|
|
|
40
40
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
41
41
|
|
package/lib/oldCode/publisher.js
CHANGED
|
@@ -25,7 +25,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
25
25
|
|
|
26
26
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
27
27
|
|
|
28
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
28
|
+
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; } }
|
|
29
29
|
|
|
30
30
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
31
|
|
package/lib/oldCode/service.js
CHANGED
|
@@ -41,7 +41,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
41
41
|
|
|
42
42
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
43
43
|
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
44
|
+
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; } }
|
|
45
45
|
|
|
46
46
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
47
47
|
|
package/lib/oldCode/session.js
CHANGED
|
@@ -27,7 +27,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
27
27
|
|
|
28
28
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
29
29
|
|
|
30
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
30
|
+
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; } }
|
|
31
31
|
|
|
32
32
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
33
33
|
|
package/lib/oldCode/stream.js
CHANGED
|
@@ -31,7 +31,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
31
31
|
|
|
32
32
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
33
33
|
|
|
34
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
34
|
+
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; } }
|
|
35
35
|
|
|
36
36
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
37
37
|
|
|
@@ -25,7 +25,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
25
25
|
|
|
26
26
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
27
27
|
|
|
28
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
28
|
+
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; } }
|
|
29
29
|
|
|
30
30
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
31
|
|
|
@@ -17,7 +17,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
17
17
|
|
|
18
18
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
19
19
|
|
|
20
|
-
function _iterableToArrayLimit(arr, i) {
|
|
20
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
21
21
|
|
|
22
22
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
23
23
|
|
|
@@ -25,9 +25,9 @@ var _helper = require("./helper");
|
|
|
25
25
|
|
|
26
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
27
|
|
|
28
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
29
|
|
|
30
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
31
|
|
|
32
32
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
33
33
|
|
|
@@ -45,7 +45,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
45
45
|
|
|
46
46
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
47
47
|
|
|
48
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
48
|
+
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; } }
|
|
49
49
|
|
|
50
50
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
51
51
|
|
|
@@ -33,7 +33,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
33
33
|
|
|
34
34
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
35
35
|
|
|
36
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
36
|
+
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; } }
|
|
37
37
|
|
|
38
38
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
39
39
|
|
|
@@ -23,9 +23,9 @@ var _helper = require("./helper");
|
|
|
23
23
|
|
|
24
24
|
var _tracer = require("../tracer");
|
|
25
25
|
|
|
26
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
27
|
|
|
28
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
29
|
|
|
30
30
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
31
31
|
|
|
@@ -43,7 +43,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
43
43
|
|
|
44
44
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
45
45
|
|
|
46
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
46
|
+
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; } }
|
|
47
47
|
|
|
48
48
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
49
49
|
|
|
@@ -17,9 +17,9 @@ var _stream = require("./stream");
|
|
|
17
17
|
|
|
18
18
|
var _tracer = require("../tracer");
|
|
19
19
|
|
|
20
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
21
|
|
|
22
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
23
|
|
|
24
24
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
25
25
|
|
|
@@ -37,7 +37,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
37
37
|
|
|
38
38
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
39
39
|
|
|
40
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
40
|
+
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; } }
|
|
41
41
|
|
|
42
42
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
43
43
|
|
|
@@ -43,7 +43,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
43
43
|
|
|
44
44
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
45
45
|
|
|
46
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
46
|
+
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; } }
|
|
47
47
|
|
|
48
48
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
49
49
|
|
package/lib/qos/raw-qos.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.RawQos = void 0;
|
|
7
7
|
|
|
8
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it
|
|
8
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
9
9
|
|
|
10
10
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
11
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@techsee/techsee-media-service",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Techsee Media Service",
|
|
5
5
|
"author": "TechSee",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@techsee/kurento-utils-temasys-mod": "6.6.3-dev-3",
|
|
22
22
|
"@techsee/openvidu-browser": "~12.15.6",
|
|
23
|
-
"@techsee/techsee-common": "^
|
|
23
|
+
"@techsee/techsee-common": "^2.0.0",
|
|
24
24
|
"bluebird": "~3.7.2",
|
|
25
25
|
"kurento-utils": "6.6.2",
|
|
26
26
|
"lodash": "4.17.20",
|