UNPKG

@salutejs/jazz-sdk-electron

Version:

Jazz SDK Electron

2 lines (1 loc) 6.68 kB
import{filterByType as a,declareRuntimeModule as e,JAZZ_SDK_CONTEXT_TOKEN as t,JAZZ_ROOM_CONTEXT_TOKEN as n,JazzRoomTokens as o,JAZZ_ACTIVITY_TOKEN as r,createModule as i,JAZZ_SDK_PLATFORM_TOKEN as d,createJazzSdk as p}from"@salutejs/jazz-sdk-web";import{token as s,injectable as c,createContainer as l}from"ditox";import{declareController as y}from"nrgy/mvc";import{tap as u,filter as m,take as T}from"rxjs";import{observe as g}from"nrgy/rxjs";function b(a,e,t,n){return new(t||(t=Promise))((function(o,r){function i(a){try{p(n.next(a))}catch(a){r(a)}}function d(a){try{p(n.throw(a))}catch(a){r(a)}}function p(a){var e;a.done?o(a.value):(e=a.value,e instanceof t?e:new t((function(a){a(e)}))).then(i,d)}p((n=n.apply(a,e||[])).next())}))}function k(){const a=window.JAZZ_SDK_ELECTRON_BRIDGE;if(void 0===a)throw new Error("Failed connect to the preload layer. Please setup createJazzSdkElectronPreload from @salutejs/jazz-sdk-electron/preload to preload layer of electron");return a}const z=s({key:"JAZZ_SDK_ELECTRON_CONTEXT_TOKEN"}),v={Transport:s({key:"JAZZ_SDK_ELECTRON_TOKENS_TRANSPORT_TOKEN"})},f=s({key:"JAZZ_SDK_ELECTRON_ENDPOINT_CONTEXT_TOKEN"}),E={Transport:s({key:"JAZZ_SDK_ELECTRON_ENDPOINT_TOKENS_TRANSPORT_TOKEN"})},M=y().params().apply((({params:e,scope:t})=>{const{jazzActivity:n,transport:o,event$:r,participants:i,jazzRoomContext:d,jazzSdkContext:p}=e;t.add(n.event$.pipe(a("reaction","raiseHand","releaseHand"),u((a=>{o.send(a)}))).subscribe()),t.add(r.pipe(a("participantLeft","participantJoined","participantUpdate","participants","localParticipantChanged","participantUpdate","localParticipantId","disconnecting"),u(o.send)).subscribe()),t.add(d.roomTrackManager.event$.pipe(a("addTrack","trackMuteChanged"),u((a=>{o.send({type:`roomTrackManager:${a.type}`,payload:{isLocal:a.payload.isLocal,isMuted:a.payload.isMuted,mediaType:a.payload.mediaType,participantId:a.payload.participantId,streamId:a.payload.stream.id}})}))).subscribe()),t.add(d.roomTrackManager.event$.pipe(a("trackUpdated"),u((a=>{o.send({type:`roomTrackManager:${a.type}`,payload:{isMuted:a.payload.isMuted,mediaType:a.payload.mediaType,streamId:a.payload.stream.id,isLocal:a.payload.isLocal,participantId:a.payload.participantId}})}))).subscribe()),t.add(d.roomTrackManager.event$.pipe(a("removeTrack"),u((a=>{o.send({type:`roomTrackManager:${a.type}`,payload:{isLocal:a.payload.isLocal,mediaType:a.payload.mediaType,participantId:a.payload.participantId,streamId:a.payload.stream.id,isMuted:a.payload.isMuted}})}))).subscribe()),t.add(d.roomTrackManager.event$.pipe(a("remoteTrackInfo"),u((a=>{o.send({type:`roomTrackManager:${a.type}`,payload:{mediaType:a.payload.mediaType,participantId:a.payload.participantId,isMuted:a.payload.isMuted}})}))).subscribe()),t.add(p.localTrackManager.event$.pipe(a("addTrack","muteTrackChanged","localTrackUpdated"),u((a=>{o.send({type:`localTrackManager:${a.type}`,payload:{mediaType:a.payload.mediaType,isMuted:a.payload.isMuted,streamId:a.payload.stream.id}})}))).subscribe()),t.add(p.localTrackManager.event$.pipe(a("removeTrack"),u((a=>{o.send({type:`localTrackManager:${a.type}`,payload:{mediaType:a.payload.mediaType,streamId:a.payload.stream.id}})}))).subscribe()),t.add(p.localTrackManager.event$.pipe(a("disposeTrack"),u((a=>{o.send({type:`localTrackManager:${a.type}`,payload:{mediaType:a.payload.mediaType,streamId:a.payload.stream.id}})}))).subscribe()),t.onDestroy(o.on("registerEndpoint",(({endpointName:a})=>{const e=i.localParticipantId();e&&o.send({type:"localParticipantId",payload:{participantId:e},to:a}),o.send({type:"participants",payload:{participants:[...i.participantIds()].map((a=>{const e=i.getParticipant(a);return Object.assign(Object.assign({},e),{name:e.name()})}))},to:a}),o.send({type:"handsRaised",payload:{handsRaised:[...n.handsRaised()]},to:a});const t=i.$localParticipant.get();t&&o.send({type:"localParticipantChanged",payload:{participant:t},to:a})})))})),_=e({factory:c((({jazzActivity:a,jazzRoom:e,transport:t,participants:n,jazzSdkContext:o,jazzRoomContext:r})=>new M({event$:e.event$,jazzActivity:a,participants:n,transport:t,jazzSdkContext:o,jazzRoomContext:r})),{transport:v.Transport,jazzActivity:r,jazzRoom:o.Room,participants:o.Participants,jazzRoomContext:n,jazzSdkContext:t})});const j=[function(){return b(this,void 0,void 0,(function*(){return i({name:"TransportEndpointSenderPlugin",imports:{jazzSdkContext:t},factory:a=>{const{deps:{jazzSdkContext:e}}=a;return e.moduleManager.registerModule("addRoom",_),{}}})}))}()];function N(){return b(this,arguments,void 0,(function*(a={}){const{container:e,plugins:t=[]}=a,n=null!=e?e:l();n.bindValue(d,"desktop");const{transport:o}=k(),r={transport:o};n.bindValue(z,r),n.bindValue(v.Transport,o);const i=[...j,...t],s=yield p(Object.assign(Object.assign({},a),{plugins:i,container:n}));return{container:s.container,event$:s.event$,destroy:()=>{s.destroy()}}}))}function C(a){return b(this,void 0,void 0,(function*(){const{container:e,endpointName:n,plugins:o=[],bridge:r}=a,i=null!=e?e:l();i.bindValue(d,"desktop");const{transport:s}=r?r():k(),c={transport:s};i.bindValue(f,c),i.bindValue(E.Transport,s);const y=yield p(Object.assign(Object.assign({},a),{plugins:o,container:i})),{logger:u}=y.container.resolve(t);return u.log(`=== Started the JazzSdkElectronEndpoint:${n} ===`),s.send({type:"registerEndpoint",payload:{endpointName:n}}),{container:y.container,destroy:()=>{y.destroy()}}}))}const I="JAZZ_SDK_ELECTRON_IPC_CHANNEL",O=y().params().apply((({scope:a,params:e})=>{const{ipcRenderer:t}=e,n=a.signal(),o=(a,e)=>{n(e)};t.on(I,o),a.onDestroy((()=>{t.off(I,o)}));const r=new Map,i=(a,e)=>{const t=r.get(a);if(!t)return;const n=t.get(e);n&&(n.unsubscribe(),t.delete(e),0===t.size&&r.delete(a))},d=(a,e,t)=>{var n;const o=r.get(a);if(!o)return r.set(a,new Map([[e,t]])),()=>i(a,e);return o.get(e)||null===(n=r.get(a))||void 0===n||n.set(e,t),()=>i(a,e)};a.onDestroy((()=>{r.forEach((a=>{a.forEach((a=>{a.unsubscribe()})),a.clear()})),r.clear()}));const p=(a,e)=>{const t=g(n).pipe(m((e=>e.type===a))).subscribe((a=>{"payload"in a?e(a.payload):e()}));return d(a,e,t)},s={send:a=>{t.send(I,a)},once:(a,e)=>{const t=g(n).pipe(m((e=>e.type===a)),T(1)).subscribe((t=>{i(a,e),"payload"in t?e(t.payload):e()}));return d(a,e,t)},on:p,subscribe:p,addListener:(...a)=>{p(...a)},off:i,removeListener:i,__invoke:a=>b(void 0,void 0,void 0,(function*(){return t.invoke(I,a).then((a=>a.payload))})),withType:()=>s};return s}));export{z as JAZZ_SDK_ELECTRON_CONTEXT_TOKEN,f as JAZZ_SDK_ELECTRON_ENDPOINT_CONTEXT_TOKEN,E as JazzSdkElectronEndpointTokens,v as JazzSdkElectronTokens,O as TransportController,N as createJazzSdkElectron,C as createJazzSdkElectronEndpoint};