UNPKG

@zoom/meetingsdk

Version:
2 lines 20.2 kB
(()=>{"use strict";let e;const s=()=>e,t=(new Map([["useinbandfec",1],["maxaveragebitrate",48e3],["maxplaybackrate",24e3],["sprop-maxcapturerate",24e3],["sprop-stereo",null],["stereo",null]]),new Map([["useinbandfec",null],["maxaveragebitrate",96e3],["maxplaybackrate",48e3],["sprop-maxcapturerate",48e3],["sprop-stereo",1],["stereo",1]]),new Map([["useinbandfec",null],["maxaveragebitrate",96e3],["maxplaybackrate",48e3],["sprop-maxcapturerate",48e3],["sprop-stereo",1],["stereo",1]]),new Map([["useinbandfec",null],["maxaveragebitrate",128e3],["maxplaybackrate",48e3],["sprop-maxcapturerate",48e3],["sprop-stereo",1],["stereo",1]]),new Map([["useinbandfec",null],["maxaveragebitrate",128e3],["maxplaybackrate",48e3],["sprop-maxcapturerate",48e3],["sprop-stereo",1],["stereo",1]]),new Map([["useinbandfec",null],["maxaveragebitrate",96e3],["maxplaybackrate",48e3],["sprop-maxcapturerate",48e3]]),new Map([["useinbandfec",1],["maxaveragebitrate",64e3],["maxplaybackrate",24e3],["sprop-maxcapturerate",24e3],["sprop-stereo",null],["stereo",null]]),new Map([["stereo",1]]),function(e,t=""){if(e)return;const r=new Error(t);s().tracing.Log_Error(`Assert: ${t}`,r)}),r=function(e){const t=new Error(e);s().tracing.Log_Error(`AssertWithFailed: ${e}`,t)};class i{constructor(){this._handlers={}}on(e,s){this._handlers[e]||(this._handlers[e]=new Set),this._handlers[e].add(s)}once(e,s){const t=(...r)=>(this.off(e,t),s(...r));this.on(e,t)}off(e,s){var t;null===(t=this._handlers[e])||void 0===t||t.delete(s)}emit(e,...s){const t=this._handlers[e];if(t)for(const e of t)try{e(...s)}catch(e){}}}const o=new class extends i{constructor(){super(...arguments),this._consumedSsrcs=new Map,this._localVideoSsrc=-1,this._activeSpeakerSsrc=-1}getSsrcKind(e,s){if(1===e)return"active-speaker";switch(s){case"vb":return"local";case"sharing":return"sharing";case"normal":return o.isLocalVideoSsrc(e)?"local":"remote";default:r("Invalid render mode")}}getLogicalSSrc(e){return 1===e?1:e>>10<<10}consumeSsrc(e){if(-1===e)return;e=this.getLogicalSSrc(e);let s=this._consumedSsrcs.get(e);s?(s+=1,this._consumedSsrcs.set(e,s)):this._consumedSsrcs.set(e,1)}unconsumeSsrc(e){if(-1===e)return;if(e=this.getLogicalSSrc(e),!this._consumedSsrcs.has(e))return;let s=this._consumedSsrcs.get(e);if(s&&s>1)return s-=1,void this._consumedSsrcs.set(e,s);this._consumedSsrcs.delete(e)}ssrcEquals(e,s){return this.getLogicalSSrc(e)===this.getLogicalSSrc(s)}_inConsumedSsrcs(e){return this._consumedSsrcs.has(this.getLogicalSSrc(e))}isConsumedSsrc(e){return-1!==e&&(!!this._inConsumedSsrcs(e)||!(!this.isActiveSeakerSsrc(e)||!this._inConsumedSsrcs(1))||this.isLocalVideoSsrc(e))}getActiveSpeakerSsrc(){return this._activeSpeakerSsrc}setActiveSpeakerSsrc(e){e!==this._activeSpeakerSsrc&&this.emit("activeSpeakerSsrcChange",e),this._activeSpeakerSsrc=e}isActiveSeakerSsrc(e){return-1!==e&&-1!==this._activeSpeakerSsrc&&(1===e||this.ssrcEquals(e,this._activeSpeakerSsrc))}getLocalVideoSsrc(){return this._localVideoSsrc}setLocalVideoSsrc(e){this._localVideoSsrc=e}isLocalVideoSsrc(e){return-1!==e&&-1!==this._localVideoSsrc&&(1===e&&(e=this._activeSpeakerSsrc),this.ssrcEquals(e,this._localVideoSsrc))}hasRemoteSsrc(){return 0!=this._consumedSsrcs.size&&(1!=this._consumedSsrcs.size||!(this._inConsumedSsrcs(0)||this._inConsumedSsrcs(this._localVideoSsrc)||this._inConsumedSsrcs(1)&&this.isActiveSeakerSsrc(this._localVideoSsrc)))}};function n(e,...s){let t;const r=()=>(t||(t=new e(...s)),t);return r.reset=()=>{t=void 0},r}const a=new class extends i{constructor(){super(...arguments),this._localSsrcSinksMap=n(Map),this._sharingSsrcSinksMap=n(Map),this._remoteSsrcSinksMap=n(Map)}_getSinksMap(e){switch(e){case"local":return this._localSsrcSinksMap();case"sharing":return this._sharingSsrcSinksMap();case"remote":return this._remoteSsrcSinksMap();default:r("Invalid ssrc kind")}}getSinksCount(e){return this._getSinksMap(e).size}addSink(e,s,t){1!==e&&(e=o.getLogicalSSrc(e));const r=this._getSinksMap(s),i=r.get(e);i?i.push(t):(r.set(e,[t]),o.consumeSsrc(e)),this.emit("addSink",e,s)}removeSink(e,s,t){1!==e&&(e=o.getLogicalSSrc(e));const r=this._getSinksMap(s),i=r.get(e);i&&(i.splice(i.indexOf(t),1),i.length>0||(r.delete(e),o.unconsumeSsrc(e),this.emit("removeSink",e,s)))}_pushVideoDataToSinks(e,s,t,r,i,o,n){const a=new VideoFrame(e,{duration:0,timestamp:0,format:s,codedWidth:t,codedHeight:r,visibleRect:{x:i.left,y:i.top,width:i.width,height:i.height}});this._pushVideoFrameToSinks(a,o,n),a.close()}_pushVideoFrameToSinks(e,s,t){if(e)for(const r of s)r.pushVideoFrame(e,t)}toPixelFormat(e){switch(e){case 0:return"RGBA";case 1:return"I420";case 2:return"NV12";case 3:return"BGRA";default:return r("Invalid pixel format"),"I420"}}_getMarchedSinks(e,s){1!==e&&(e=o.getLogicalSSrc(e));const t=[],r=this._getSinksMap(s),i=r.get(e);if(i&&t.push(...i),!o.isActiveSeakerSsrc(e))return t;const n=r.get(1);return n&&t.push(...n),t}pushLocalVideoData(e,s,t,r,i,n){const a=o.getLocalVideoSsrc(),c=[...this._getMarchedSinks(0,"local"),...this._getMarchedSinks(a,"local")];0!=c.length&&this._pushVideoDataToSinks(e,s,t,r,i,c,n)}pushLocalVideoFrame(e,s){const t=o.getLocalVideoSsrc(),r=[...this._getMarchedSinks(0,"local"),...this._getMarchedSinks(t,"local")];0!=r.length&&this._pushVideoFrameToSinks(e,r,s)}pushSharingVideoData(e,s,t,r,i,o,n){const a=this._getMarchedSinks(e,"sharing");0!=a.length&&this._pushVideoDataToSinks(s,t,r,i,o,a,n)}pushRemoteVideoData(e,s,t,r,i,o,n){const a=this._getMarchedSinks(e,"remote");0!=a.length&&this._pushVideoDataToSinks(s,t,r,i,o,a,n)}pushRemoteVideoFrame(e,s,t){const r=this._getMarchedSinks(e,"remote");0!=r.length&&this._pushVideoFrameToSinks(s,r,t)}pushRemoteCursorFrame(e,s,t,r,i){const o=this._getMarchedSinks(e,"sharing");if(0!=o.length)for(const e of o)e.pushCursorFrame(s,t,r,i)}pushRemoteCursorPosition(e,s,t,r,i){const o=this._getMarchedSinks(e,"sharing");if(0!=o.length)for(const e of o)e.pushCursorPosition(s,t,r,i)}};class c{constructor(e=0){this._unusedIds=[],this._nextId=e}generateNextId(){let e;return this._unusedIds.length>0?e=this._unusedIds.shift():(e=this._nextId,this._nextId+=1),e}release(e){this._unusedIds.push(e)}}class h{constructor(e){this._onmessage=null,this._messager=e}set onmessage(e){var s,t;null!==this._onmessage&&this._messager.removeEventListener("message",this._onmessage),this._messager.addEventListener("message",e),null===this._onmessage&&(null===(t=(s=this._messager).start)||void 0===t||t.call(s)),this._onmessage=e}postMessage(e,s){this._messager.postMessage(e,s)}close(){var e,s;null!==this._onmessage&&(this._messager.removeEventListener("message",this._onmessage),this._onmessage=null),null===(s=(e=this._messager).close)||void 0===s||s.call(e)}}class l{constructor(){this._connection=null}set connection(e){this._connection=e}get connection(){return t(null!==this._connection),this._connection}}class u{constructor(e,s,t,r){this._idGenerator=new c(2),this._invokeHandlers={},this._invokeResults=new Set,this._resolveInvokeResultsSended=null,this._responseHandlers=new Map,this._notifyHandlers={},this._transferObjs=[],this._closed=!1,this._onClose=null,this._messager=new h(e),this._messager.onmessage=this._handleMessage.bind(this),this._logErrorFn=r,s&&(this.localPeerObject=s),t&&(this._proxyFuncs=t);const i=new Promise((e=>{this._resolveCloseSent=e})),o=new Promise((e=>{this._resolveCloseReceived=e}));Promise.all([i,o]).then((()=>{this._messager.close(),this._messager=null}))}set localPeerObject(e){let s;if(this._invokeHandlers={},e instanceof l){const t=Object.getPrototypeOf(e);s=Object.getOwnPropertyNames(t)}else s=Object.getOwnPropertyNames(e);const t=s.filter((s=>"function"==typeof e[s]&&"constructor"!==s&&!s.startsWith("_")));for(const s of t)this.expose(s,((...t)=>e[s](...t)));this._localPeerObject=e,e instanceof l&&(e.connection=this)}get localPeerObject(){return this._localPeerObject}get remotePeerProxy(){if(this._remotePeerProxy)return this._remotePeerProxy;const e=new Map;return this._remotePeerProxy=new Proxy({},{get:(s,t,r)=>{var i;let o=null===(i=this._proxyFuncs)||void 0===i?void 0:i[t];return o||(o=e.get(t),o||(o=(...e)=>this.invoke(t,...e),e.set(t,o),o))}}),this._remotePeerProxy}_logError(e,t){this._logErrorFn?this._logErrorFn(e,t):s().tracing.Log_Error(e,t)}transfer(e){return this._transferObjs.push(e),e}expose(e,s){this._invokeHandlers[e]=s}on(e,s){this._notifyHandlers[e]=s}notify(e,...s){this._postRequest(1,e,s)}invoke(e,...s){const t=this._idGenerator.generateNextId(),r=new Promise(((e,s)=>{this._responseHandlers.set(t,{resolve:e,reject:s})}));return this._postRequest(t,e,s),r}_postRequest(e,t,r){if(this._closed)throw new Error("Can not postRequest after closed!!");try{this._messager.postMessage({id:e,name:t,args:r},this._transferObjs)}catch(e){s().tracing.Log_Error("[rpc] Error in postRequest",e)}this._transferObjs=[]}_postReponse(e,s){if(this._closed)throw new Error("Can not postReponse after closed!!");this._messager.postMessage({id:0,resId:e,response:s},this._transferObjs),this._transferObjs=[]}_serializeError(e){return e instanceof Error?{message:e.message,name:e.name,stack:e.stack}:e}_handleMessage(e){const s=e.data;if("id"in s)try{if(s.id<0)-1===s.id?(this._closePeerIfNeeded(s.reason),this._resolveCloseReceived()):r();else{if(0===s.id){const e=this._responseHandlers.get(s.resId);if(!e)return void this._logError(`DualRPC.handleMessage: ${s.resId} not found!`);const t=s.response;return"ret"in t?e.resolve(t.ret):"err"in t?(e.reject(t.err),this._logError(`DualRPC.handleMessage err: ${t.err}`)):r("Invalid Response"),this._responseHandlers.delete(s.resId),void this._idGenerator.release(s.resId)}if(1===s.id){try{const e=this._notifyHandlers[s.name];e&&e(...s.args)}catch(e){}return}{if(t(s.id>1),!(s.name in this._invokeHandlers))return void this._logError(`DualRPC.handleMessage: ${s.name} not registered!`);let e,r;try{const t=this._invokeHandlers[s.name];e=t(...s.args)}catch(e){r=e}if(r)return void this._postReponse(s.id,{err:this._serializeError(r)});if(!(e instanceof Promise)){try{this._postReponse(s.id,{ret:e})}catch(e){this._postReponse(s.id,{err:this._serializeError(e)})}return}this._invokeResults.add(e),e.then((e=>{this._postReponse(s.id,{ret:e})})).catch((e=>{this._postReponse(s.id,{err:this._serializeError(e)})})).finally((()=>{this._invokeResults.delete(e),this._resolveInvokeResultsSended&&0===this._invokeResults.size&&this._resolveInvokeResultsSended()}))}}}catch(e){this._logError("DualRPC.handleMessage err!!",e)}}_closePeerIfNeeded(e){this._closed||(this._closed=!0,this._onClose&&this._onClose(e),0===this._invokeResults.size?(this._messager.postMessage({id:-1,reason:e},[]),setTimeout((()=>{this._resolveCloseSent()}),10)):new Promise((e=>{this._resolveInvokeResultsSended=e})).then((()=>{this._messager.postMessage({id:-1,reason:e},[])})).then((()=>{setTimeout((()=>{this._resolveCloseSent()}),10)})))}close(e){this._closePeerIfNeeded(e)}set onClose(e){this._onClose=e}}class d extends l{}const _=new class{constructor(){this._connection=null}setRegistryServicePort(e){this._connection=new u(e)}transfer(e){return this._connection.transfer(e)}registerService(e,s,t){return this._connection.invoke("registerService",e,s,t)}unregisterService(e,s){this._connection.invoke("unregisterService",e,s)}findService(e){return this._connection.invoke("findService",e)}requestService(e,s,t){return this._connection.invoke("requestService",e,s,t)}acquireService(e,s){return t=this,i=void 0,n=function*(){const t=yield _.findService(e);let i;s&&s.selectService?i=s.selectService(t):1===t.length?i=t[0].serviceId:r("AcquireService Error: select service failed!");const o=yield _.requestService(e,i,s?s.serviceParams:void 0);return new u(o)},new((o=void 0)||(o=Promise))((function(e,s){function r(e){try{c(n.next(e))}catch(e){s(e)}}function a(e){try{c(n.throw(e))}catch(e){s(e)}}function c(s){var t;s.done?e(s.value):(t=s.value,t instanceof o?t:new o((function(e){e(t)}))).then(r,a)}c((n=n.apply(t,i||[])).next())}));var t,i,o,n}};class m{constructor(e,s){this._connection=null,this._services=[],this._registerPromise=null,this._serviceName=e,this._serviceCtor=s}register(e){if(null!==this._registerPromise)return;const s=new MessageChannel;this._connection=new u(s.port1,{requestPort:e=>{const s=this.accquirePort(e);return this._connection.transfer(s)}}),this._registerPromise=_.registerService(this._serviceName,_.transfer(s.port2),e)}unregister(){if(null===this._registerPromise)return;const e=this._connection;this._registerPromise.then((s=>{_.unregisterService(this._serviceName,s),e.close()})),this._connection=null,this._registerPromise=null}registerPromise(){return e=this,s=void 0,r=function*(){return this._registerPromise.then((e=>e>=0))},new((t=void 0)||(t=Promise))((function(i,o){function n(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var s;e.done?i(e.value):(s=e.value,s instanceof t?s:new t((function(e){e(s)}))).then(n,a)}c((r=r.apply(e,s||[])).next())}));var e,s,t,r}accquirePort(e){const s=new MessageChannel,t=new this._serviceCtor(e);return new u(s.port1,t).onClose=()=>{this._services.splice(this._services.indexOf(t),1),t.closeService()},this._services.push(t),s.port2}close(){this.unregister();for(const e of this._services)e.closeService(),e.connection.close();this._services=[]}}class p{constructor(e,s){this._provider=null,this._serviceName=e,this._serviceCtor=s}exposed(){return null!==this._provider}exposeService(e,s=!0){return this._provider||(this._provider=new m(this._serviceName,this._serviceCtor)),s&&this._provider.register(e),this._provider}unexposeService(){this._provider&&this._provider.unregister()}}class v{constructor(e){if(this.queue=[],this.controller=null,this.closed=!1,this.useSync=!!(null==e?void 0:e.sync),null==e?void 0:e.clockFn)this.clockFn=e.clockFn;else if(void 0!==(null==e?void 0:e.clockBaseUs)){const s=e.clockBaseUs;this.clockFn=()=>1e3*performance.now()-s}this.onFrame=null==e?void 0:e.onFrame,this.readable=new ReadableStream({start:e=>{this.controller=e},pull:()=>{this.fillFrames()},cancel:e=>{this.close()}})}enqueue(e,s){if(this.closed)return;const t={frame:e.clone(),extraFrameInfo:s};this.queue.push(t),this.controller&&this.controller.desiredSize>0&&this.fillFrames()}fillFrames(){var e,t,r,i,o,n;if(!this.controller||this.closed)return;const a=null===(e=this.clockFn)||void 0===e?void 0:e.call(this),c="number"==typeof a&&!isNaN(a);for(;this.queue.length>0&&this.controller.desiredSize>0;){const e=this.queue[0],h=null!==(i=null!==(r=null===(t=e.extraFrameInfo)||void 0===t?void 0:t.timestamp)&&void 0!==r?r:e.frame.timestamp)&&void 0!==i?i:0;if(this.useSync&&c&&0!==h){if(h-a>2e3)return;this.queue.shift();try{null===(n=this.onFrame)||void 0===n||n.call(this,e.frame,e.extraFrameInfo),this.controller.enqueue(e.frame)}catch(t){s().tracing.Log_Error("AVFrameQueue enqueue failed:",t),e.frame.close()}}else{this.queue.shift();try{null===(o=this.onFrame)||void 0===o||o.call(this,e.frame,e.extraFrameInfo),this.controller.enqueue(e.frame)}catch(t){s().tracing.Log_Error("AVFrameQueue enqueue failed:",t),e.frame.close()}}}}close(){var e;if(!this.closed){this.closed=!0,null===(e=this.controller)||void 0===e||e.close(),this.controller=null;for(const{frame:e}of this.queue)e.close();this.queue=[]}}}const g=1e3;class S extends d{constructor(e){super(),this._lastVideoWidth=-1,this._lastVideoHeight=-1,this._lastVideoRotation=-1,this._lastVideoMirror=void 0,this._cursorBitmapCtx=null,this._lastSyncId=-1,this._waitingFirstFrame=!0,this._frameQueue=null,this._outputTrack=null,this._monitorFrameQualityTimeout=null,this._receivedFrameCount=0,this._lastReceivedFrameCount=0,this._noReceivedFrameDuration=0,this._isFrameAbnormal=!1,t(void 0===this._ssrc),this._ssrc=e.ssrc,this._ssrcKind=e.ssrcKind,this._frameQueue=new v({onFrame:(e,s)=>{var t,r;this._waitingFirstFrame&&(this.connection.notify("streamStart"),this._waitingFirstFrame=!1),e.displayWidth==this._lastVideoWidth&&e.displayHeight==this._lastVideoHeight||(this.connection.notify("videoSizeChange",e.displayWidth,e.displayHeight),this._lastVideoWidth=e.displayWidth,this._lastVideoHeight=e.displayHeight);let i=0;if(s&&void 0!==s.rotation&&s.rotation>=0&&s.rotation<=3&&(i=s.rotation),i!==this._lastVideoRotation){this._lastVideoRotation=i;const e=this._toVideoRotationState(i);this.connection.notify("videoRotationChange",{rotationState:e,isRotationInFrame:null!==(t=null==s?void 0:s.isRotationInFrame)&&void 0!==t&&t})}let o=null!==(r=null==s?void 0:s.mirror)&&void 0!==r&&r;o!==this._lastVideoMirror&&(this.connection.notify("videoMirrorChange",o),this._lastVideoMirror=o)}}),this._startMonitorFrameQuality()}closeService(){this.close()}accquireOutputTrack(){const e=s();if(e.assertion.assert("track"===e.config.getAVStreamMode()),e.assertion.assert(null===this._outputTrack),!this._outputTrack){const e=new VideoTrackGenerator,s=e.writable;this._frameQueue.readable.pipeTo(s),this._outputTrack=e.track,a.addSink(this._ssrc,this._ssrcKind,this)}return this.connection.transfer(this._outputTrack)}provideOutputStream(e){this._frameQueue.readable.pipeTo(e),a.addSink(this._ssrc,this._ssrcKind,this)}close(){this._stopMonitorFrameQuality(),void 0!==this._ssrc&&(a.removeSink(this._ssrc,this._ssrcKind,this),this._ssrc=void 0),this._frameQueue&&(this._frameQueue.close(),this._frameQueue=null),this._lastSyncId=-1}updateDesiredSize(e){}setCursorCanvas(e){this._cursorBitmapCtx=e?e.getContext("bitmaprenderer"):null}_toVideoRotationState(e){switch(e){case 0:return"rot0";case 1:return"rot90";case 2:return"rot180";case 3:return"rot270";default:return r("Invalid video rotation"),"rot0"}}pushVideoFrame(e,s){t(null!==this._frameQueue),this._frameQueue.enqueue(e,s),this._receivedFrameCount++}pushCursorFrame(e,t,r,i){if(!this._cursorBitmapCtx)return;if(i==this._lastSyncId)return;this._lastSyncId=i;const o=new ImageData(new Uint8ClampedArray(e),t,r);createImageBitmap(o).then((e=>{const s=this._cursorBitmapCtx.canvas;s.width=t,s.height=r,this._cursorBitmapCtx.transferFromImageBitmap(e)})).catch((e=>{s().tracing.Log_Error("[ssrcstream] Error in pushCursorFrame!!",e)}))}pushCursorPosition(e,s,t,r){const i={x:e,y:s,width:t,height:r};this.connection.notify("cursorMove",i)}_shouldReportFrameQuality(){const e=1===this._ssrc;if(null===f||!e)return!0;const s=o.getActiveSpeakerSsrc();return o.isLocalVideoSsrc(s)?f.includes("local"):f.includes("remote")}_monitorFrameQuality(){this._receivedFrameCount===this._lastReceivedFrameCount?(this._noReceivedFrameDuration+=g,this._noReceivedFrameDuration>=3e3&&!this._isFrameAbnormal&&(this._shouldReportFrameQuality()&&s().tracing.Log_DT(`[vtagq] service Video frame receive became abnormal, ssrc = ${this._ssrc}, ssrcKind = ${this._ssrcKind}, duration = ${this._noReceivedFrameDuration}ms`),this._isFrameAbnormal=!0)):(this._isFrameAbnormal&&(this._shouldReportFrameQuality()&&s().tracing.Log_DT(`[vtagq] service Video frame receive recovered to normal, ssrc = ${this._ssrc}, ssrcKind = ${this._ssrcKind}, abnormalDuration = ${this._noReceivedFrameDuration}ms`),this._isFrameAbnormal=!1),this._lastReceivedFrameCount=this._receivedFrameCount,this._noReceivedFrameDuration=0),this._monitorFrameQualityTimeout=setTimeout((()=>{this._monitorFrameQuality()}),g)}_startMonitorFrameQuality(){this._monitorFrameQualityTimeout||(this._lastReceivedFrameCount=0,this._monitorFrameQualityTimeout=setTimeout((()=>{this._monitorFrameQuality()}),g))}_stopMonitorFrameQuality(){this._monitorFrameQualityTimeout&&(clearTimeout(this._monitorFrameQualityTimeout),this._monitorFrameQualityTimeout=null,this._receivedFrameCount=0,this._lastReceivedFrameCount=0,this._noReceivedFrameDuration=0,this._isFrameAbnormal=!1)}}let f=null;const k=new class extends p{constructor(){super("builtin/WasmSsrcStreamService",S)}exposeService(e){return f=e,super.exposeService(e)}};globalThis.__dyn_modules__.wasm_ssrc_stream_service_dynmod={init:function(s){e=s},exports:{getSsrcManager:()=>o,getWasmSsrcStreamPublisher:()=>a,setRegistryServicePort(e){_.setRegistryServicePort(e)},exposeService(e){k.exposeService(e)}}}})(); //# sourceMappingURL=https://d1cdksi819e9z7.cloudfront.net/sourcemap/wasm_ssrc_stream_service_dynmod.min.js-1ea2e42b0181a0c5807d.map