@dxos/plugin-thread 0.8.4-main.5ea62a8 → 0.8.4-main.66e292d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/ChannelContainer-L7MKV7DS.mjs +17 -0
- package/dist/lib/browser/ChatContainer-KPY4BAUE.mjs +16 -0
- package/dist/lib/browser/{app-graph-builder-FHAOPO57.mjs → app-graph-builder-TWJ2UCOZ.mjs} +32 -32
- package/dist/lib/browser/app-graph-builder-TWJ2UCOZ.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs +101 -0
- package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs.map +7 -0
- package/dist/lib/browser/{call-manager-EW2QC6Q4.mjs → call-manager-4YFT4XA6.mjs} +8 -7
- package/dist/lib/{node-esm/call-manager-N3KASRDQ.mjs.map → browser/call-manager-4YFT4XA6.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-TQJYDFBU.mjs → chunk-ALZKJOZK.mjs} +40 -37
- package/dist/lib/browser/chunk-ALZKJOZK.mjs.map +7 -0
- package/dist/lib/browser/chunk-ANTFU4JB.mjs +25 -0
- package/dist/lib/browser/chunk-ANTFU4JB.mjs.map +7 -0
- package/dist/lib/browser/chunk-CFC7LEPD.mjs +18 -0
- package/dist/lib/browser/chunk-CFC7LEPD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
- package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KEXJGF2R.mjs → chunk-ISCHODBV.mjs} +53 -3
- package/dist/lib/browser/chunk-ISCHODBV.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/{chunk-KTWYVC5X.mjs → chunk-JDJPMI7V.mjs} +47 -51
- package/dist/lib/browser/chunk-JDJPMI7V.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2P3GVRHP.mjs → chunk-KOBXMDCI.mjs} +68 -67
- package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-J26C57ZY.mjs → chunk-NPT5S6N4.mjs} +164 -101
- package/dist/lib/browser/chunk-NPT5S6N4.mjs.map +7 -0
- package/dist/lib/browser/chunk-QM34EZQK.mjs +20 -0
- package/dist/lib/browser/chunk-QM34EZQK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-H63NDV62.mjs → chunk-TLOOZTRD.mjs} +18 -17
- package/dist/lib/browser/chunk-TLOOZTRD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TUSBPMNU.mjs → chunk-ZCW3NSDZ.mjs} +274 -374
- package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +55 -57
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-IB5GYU2D.mjs → intent-resolver-G33FT3NO.mjs} +40 -113
- package/dist/lib/browser/intent-resolver-G33FT3NO.mjs.map +7 -0
- package/dist/lib/browser/{markdown-Z677YORA.mjs → markdown-WFZFYJBQ.mjs} +30 -27
- package/dist/lib/browser/markdown-WFZFYJBQ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-ED7PHA44.mjs +29 -0
- package/dist/lib/browser/react-root-ED7PHA44.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-X2VB6P37.mjs → react-surface-AUQQSQQC.mjs} +38 -36
- package/dist/lib/browser/react-surface-AUQQSQQC.mjs.map +7 -0
- package/dist/lib/browser/repair-JFJLEM2O.mjs +35 -0
- package/dist/lib/browser/repair-JFJLEM2O.mjs.map +7 -0
- package/dist/lib/browser/{settings-GRKEID73.mjs → settings-E6IOLK46.mjs} +6 -5
- package/dist/lib/{node-esm/settings-F2ODVNNW.mjs.map → browser/settings-E6IOLK46.mjs.map} +1 -1
- package/dist/lib/browser/{state-2T4KDWBX.mjs → state-UYPLBGZJ.mjs} +6 -5
- package/dist/lib/{node-esm/state-62TQKQVB.mjs.map → browser/state-UYPLBGZJ.mjs.map} +1 -1
- package/dist/lib/browser/types/index.mjs +7 -10
- package/dist/lib/node-esm/ChannelContainer-FYONOOZ6.mjs +18 -0
- package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs +17 -0
- package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-XEYWX5FC.mjs → app-graph-builder-VD6I2V5H.mjs} +32 -32
- package/dist/lib/node-esm/app-graph-builder-VD6I2V5H.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs +102 -0
- package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs.map +7 -0
- package/dist/lib/node-esm/{call-manager-N3KASRDQ.mjs → call-manager-UMUXEYH5.mjs} +8 -7
- package/dist/lib/{browser/call-manager-EW2QC6Q4.mjs.map → node-esm/call-manager-UMUXEYH5.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-2AEIN5MI.mjs +22 -0
- package/dist/lib/node-esm/chunk-2AEIN5MI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JR7KESLL.mjs → chunk-7KZWZS2U.mjs} +274 -374
- package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CCE5LHBE.mjs → chunk-AB42KYF3.mjs} +40 -37
- package/dist/lib/node-esm/chunk-AB42KYF3.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
- package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ATNY37UV.mjs +27 -0
- package/dist/lib/node-esm/chunk-ATNY37UV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-UHZQTPXU.mjs → chunk-E5HNHFYH.mjs} +18 -17
- package/dist/lib/node-esm/chunk-E5HNHFYH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NNKKNW57.mjs → chunk-FF3QVPY4.mjs} +164 -101
- package/dist/lib/node-esm/chunk-FF3QVPY4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P6E247RF.mjs → chunk-P2M364TO.mjs} +47 -51
- package/dist/lib/node-esm/chunk-P2M364TO.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CTZ75IFK.mjs → chunk-PZH2EDU5.mjs} +68 -67
- package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-RT6NRL2I.mjs +19 -0
- package/dist/lib/node-esm/chunk-RT6NRL2I.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S3D7DTBF.mjs → chunk-VBI32FGI.mjs} +53 -3
- package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +55 -57
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-VIMI5VLH.mjs → intent-resolver-4PX3WXQG.mjs} +40 -113
- package/dist/lib/node-esm/intent-resolver-4PX3WXQG.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-FL4IXLRP.mjs → markdown-CSR5MAPZ.mjs} +30 -27
- package/dist/lib/node-esm/markdown-CSR5MAPZ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-root-DZN324JA.mjs +30 -0
- package/dist/lib/node-esm/react-root-DZN324JA.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-OLN3XNND.mjs → react-surface-AMVESEF4.mjs} +38 -36
- package/dist/lib/node-esm/react-surface-AMVESEF4.mjs.map +7 -0
- package/dist/lib/node-esm/repair-RMLR24YR.mjs +36 -0
- package/dist/lib/node-esm/repair-RMLR24YR.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-F2ODVNNW.mjs → settings-RGZHWDSO.mjs} +6 -5
- package/dist/lib/{browser/settings-GRKEID73.mjs.map → node-esm/settings-RGZHWDSO.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-62TQKQVB.mjs → state-XNWOLBNE.mjs} +6 -5
- package/dist/lib/{browser/state-2T4KDWBX.mjs.map → node-esm/state-XNWOLBNE.mjs.map} +1 -1
- package/dist/lib/node-esm/types/index.mjs +7 -10
- package/dist/types/src/ThreadPlugin.d.ts +1 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/calls/media-manager.d.ts.map +1 -1
- package/dist/types/src/calls/types.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +2 -0
- package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
- package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +0 -1
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +2 -2
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +2 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair.d.ts +4 -0
- package/dist/types/src/capabilities/repair.d.ts.map +1 -0
- package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
- package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +2 -2
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +79 -9
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts +79 -7
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +6 -5
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts +8 -3
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +2 -2
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts +8 -8
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
- package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +5 -3
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +4 -2
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +9 -3
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +9 -3
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
- package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
- package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
- package/dist/types/src/components/ThreadSettings.d.ts +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +3 -3
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/functions/create-proposals.d.ts +6 -0
- package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
- package/dist/types/src/functions/index.d.ts +2 -0
- package/dist/types/src/functions/index.d.ts.map +1 -0
- package/dist/types/src/hooks/analytics.d.ts +2 -2
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -2
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +78 -7
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +16 -0
- package/dist/types/src/types/Channel.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +130 -244
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +64 -60
- package/src/ThreadPlugin.tsx +135 -134
- package/src/calls/call-manager.ts +1 -1
- package/src/calls/media-manager.ts +11 -7
- package/src/calls/types.ts +7 -3
- package/src/calls/util/calls-service.ts +12 -7
- package/src/calls/util/stub-media-streams.ts +61 -3
- package/src/calls-service.stories.tsx +2 -5
- package/src/capabilities/app-graph-builder.ts +41 -30
- package/src/capabilities/blueprint-definition.ts +38 -0
- package/src/capabilities/capabilities.ts +7 -7
- package/src/capabilities/index.ts +2 -1
- package/src/capabilities/intent-resolver.ts +29 -67
- package/src/capabilities/markdown.ts +5 -3
- package/src/capabilities/react-root.tsx +2 -2
- package/src/capabilities/react-surface.tsx +25 -23
- package/src/capabilities/repair.ts +40 -0
- package/src/components/Call/Call.tsx +1 -1
- package/src/components/Call/Toolbar.tsx +9 -9
- package/src/components/CallDebugPanel.tsx +112 -55
- package/src/components/CallSidebar.tsx +1 -1
- package/src/components/ChannelContainer.stories.tsx +10 -10
- package/src/components/ChannelContainer.tsx +19 -15
- package/src/components/Chat.stories.tsx +14 -19
- package/src/components/ChatContainer.tsx +29 -21
- package/src/components/Comments.stories.tsx +11 -17
- package/src/components/CommentsContainer.tsx +5 -7
- package/src/components/CommentsThreadContainer.tsx +31 -27
- package/src/components/Lobby/Lobby.tsx +1 -1
- package/src/components/Media/VideoObject.stories.tsx +12 -7
- package/src/components/Media/VideoObject.tsx +1 -1
- package/src/components/MessageContainer.tsx +11 -9
- package/src/components/Participant/Participant.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +3 -4
- package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -5
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +5 -5
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
- package/src/components/{ThreadComplementary.tsx → ThreadCompanion.tsx} +41 -34
- package/src/components/ThreadSettings.tsx +4 -5
- package/src/components/index.ts +4 -4
- package/src/components/testing.ts +7 -9
- package/src/extensions/threads.ts +30 -20
- package/src/functions/create-proposals.ts +56 -0
- package/src/functions/index.ts +5 -0
- package/src/hooks/analytics.ts +4 -7
- package/src/hooks/index.ts +3 -2
- package/src/hooks/useVideoStreamTrack.tsx +1 -1
- package/src/meta.ts +9 -5
- package/src/testing/stories.ts +3 -6
- package/src/translations.ts +8 -4
- package/src/types/Channel.ts +26 -0
- package/src/types/index.ts +1 -1
- package/src/types/types.ts +21 -29
- package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
- package/src/util.ts +1 -1
- package/dist/lib/browser/ChannelContainer-GHDNEZT2.mjs +0 -16
- package/dist/lib/browser/ChatContainer-42ALOWUA.mjs +0 -15
- package/dist/lib/browser/app-graph-builder-FHAOPO57.mjs.map +0 -7
- package/dist/lib/browser/chunk-2I277V52.mjs +0 -23
- package/dist/lib/browser/chunk-2I277V52.mjs.map +0 -7
- package/dist/lib/browser/chunk-2P3GVRHP.mjs.map +0 -7
- package/dist/lib/browser/chunk-4APCDRSH.mjs +0 -18
- package/dist/lib/browser/chunk-4APCDRSH.mjs.map +0 -7
- package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
- package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
- package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
- package/dist/lib/browser/chunk-H63NDV62.mjs.map +0 -7
- package/dist/lib/browser/chunk-J26C57ZY.mjs.map +0 -7
- package/dist/lib/browser/chunk-KEXJGF2R.mjs.map +0 -7
- package/dist/lib/browser/chunk-KTWYVC5X.mjs.map +0 -7
- package/dist/lib/browser/chunk-TQJYDFBU.mjs.map +0 -7
- package/dist/lib/browser/chunk-TUSBPMNU.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-IB5GYU2D.mjs.map +0 -7
- package/dist/lib/browser/markdown-Z677YORA.mjs.map +0 -7
- package/dist/lib/browser/react-root-PTTTW2MO.mjs +0 -28
- package/dist/lib/browser/react-root-PTTTW2MO.mjs.map +0 -7
- package/dist/lib/browser/react-surface-X2VB6P37.mjs.map +0 -7
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs +0 -80
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-D5E2S6AI.mjs +0 -17
- package/dist/lib/node-esm/ChatContainer-4EGHKHIU.mjs +0 -16
- package/dist/lib/node-esm/app-graph-builder-XEYWX5FC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CCE5LHBE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CTZ75IFK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JR7KESLL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NNKKNW57.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P6E247RF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PYTVBN5J.mjs +0 -19
- package/dist/lib/node-esm/chunk-PYTVBN5J.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-S3D7DTBF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UHZQTPXU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs +0 -25
- package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-VIMI5VLH.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-FL4IXLRP.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-2HHRRUME.mjs +0 -29
- package/dist/lib/node-esm/react-root-2HHRRUME.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-OLN3XNND.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs +0 -81
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs.map +0 -7
- package/dist/types/src/capabilities/toolkit.d.ts +0 -5
- package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
- package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
- package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -177
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/toolkit.ts +0 -78
- package/src/types/schema.ts +0 -33
- /package/dist/lib/browser/{ChannelContainer-GHDNEZT2.mjs.map → ChannelContainer-L7MKV7DS.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-42ALOWUA.mjs.map → ChatContainer-KPY4BAUE.mjs.map} +0 -0
- /package/dist/lib/{node-esm/ChannelContainer-D5E2S6AI.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-4EGHKHIU.mjs.map → ChannelContainer-FYONOOZ6.mjs.map} +0 -0
|
@@ -2,11 +2,13 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
createBlackCanvasStreamTrack,
|
|
4
4
|
createInaudibleAudioStreamTrack
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VBI32FGI.mjs";
|
|
6
6
|
|
|
7
7
|
// src/calls/types.ts
|
|
8
|
+
import { invariant } from "@dxos/invariant";
|
|
8
9
|
import { buf } from "@dxos/protocols/buf";
|
|
9
10
|
import { UserStateSchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
11
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/types.ts";
|
|
10
12
|
var CALLS_URL = "https://calls-service.dxos.workers.dev";
|
|
11
13
|
var codec = {
|
|
12
14
|
encode: (message) => {
|
|
@@ -18,14 +20,42 @@ var codec = {
|
|
|
18
20
|
};
|
|
19
21
|
var TrackNameCodec = {
|
|
20
22
|
encode: (trackData) => {
|
|
21
|
-
|
|
23
|
+
invariant(trackData.sessionId, void 0, {
|
|
24
|
+
F: __dxlog_file,
|
|
25
|
+
L: 65,
|
|
26
|
+
S: void 0,
|
|
27
|
+
A: [
|
|
28
|
+
"trackData.sessionId",
|
|
29
|
+
""
|
|
30
|
+
]
|
|
31
|
+
});
|
|
32
|
+
invariant(trackData.trackName, void 0, {
|
|
33
|
+
F: __dxlog_file,
|
|
34
|
+
L: 66,
|
|
35
|
+
S: void 0,
|
|
36
|
+
A: [
|
|
37
|
+
"trackData.trackName",
|
|
38
|
+
""
|
|
39
|
+
]
|
|
40
|
+
});
|
|
41
|
+
invariant(trackData.mid, void 0, {
|
|
42
|
+
F: __dxlog_file,
|
|
43
|
+
L: 67,
|
|
44
|
+
S: void 0,
|
|
45
|
+
A: [
|
|
46
|
+
"trackData.mid",
|
|
47
|
+
""
|
|
48
|
+
]
|
|
49
|
+
});
|
|
50
|
+
return trackData.sessionId + "/" + trackData.trackName + "/" + trackData.mid;
|
|
22
51
|
},
|
|
23
52
|
decode: (name) => {
|
|
24
|
-
const [sessionId, trackName] = name.split("/");
|
|
53
|
+
const [sessionId, trackName, mid] = name.split("/");
|
|
25
54
|
return {
|
|
26
55
|
sessionId,
|
|
27
56
|
trackName,
|
|
28
|
-
location: "remote"
|
|
57
|
+
location: "remote",
|
|
58
|
+
mid
|
|
29
59
|
};
|
|
30
60
|
}
|
|
31
61
|
};
|
|
@@ -35,35 +65,38 @@ import md5Hex from "md5-hex";
|
|
|
35
65
|
import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
|
|
36
66
|
import { Context, Resource } from "@dxos/context";
|
|
37
67
|
import { generateName } from "@dxos/display-name";
|
|
38
|
-
import { invariant } from "@dxos/invariant";
|
|
68
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
39
69
|
import { PublicKey } from "@dxos/keys";
|
|
40
70
|
import { log } from "@dxos/log";
|
|
41
71
|
import { buf as buf2 } from "@dxos/protocols/buf";
|
|
42
72
|
import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
43
73
|
import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
|
|
44
74
|
import { isNonNullable } from "@dxos/util";
|
|
45
|
-
function _define_property(obj, key, value) {
|
|
46
|
-
if (key in obj) {
|
|
47
|
-
Object.defineProperty(obj, key, {
|
|
48
|
-
value,
|
|
49
|
-
enumerable: true,
|
|
50
|
-
configurable: true,
|
|
51
|
-
writable: true
|
|
52
|
-
});
|
|
53
|
-
} else {
|
|
54
|
-
obj[key] = value;
|
|
55
|
-
}
|
|
56
|
-
return obj;
|
|
57
|
-
}
|
|
58
75
|
function _ts_decorate(decorators, target, key, desc) {
|
|
59
76
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
60
77
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
61
78
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
62
79
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
63
80
|
}
|
|
64
|
-
var
|
|
81
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
|
|
65
82
|
var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
|
|
66
83
|
var CallSwarmSynchronizer = class extends Resource {
|
|
84
|
+
stateUpdated = new Event();
|
|
85
|
+
_state = {
|
|
86
|
+
activities: {}
|
|
87
|
+
};
|
|
88
|
+
_networkService;
|
|
89
|
+
_lastSwarmEvent = void 0;
|
|
90
|
+
_reconcileSwarmStateTask = void 0;
|
|
91
|
+
_identityKey = void 0;
|
|
92
|
+
_deviceKey = void 0;
|
|
93
|
+
_displayName = void 0;
|
|
94
|
+
_swarmCtx = void 0;
|
|
95
|
+
_sendStateTask = void 0;
|
|
96
|
+
constructor({ networkService }) {
|
|
97
|
+
super();
|
|
98
|
+
this._networkService = networkService;
|
|
99
|
+
}
|
|
67
100
|
/**
|
|
68
101
|
* @internal
|
|
69
102
|
*/
|
|
@@ -129,7 +162,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
129
162
|
log.verbose("joined to a different room", {
|
|
130
163
|
roomId
|
|
131
164
|
}, {
|
|
132
|
-
F:
|
|
165
|
+
F: __dxlog_file2,
|
|
133
166
|
L: 152,
|
|
134
167
|
S: this,
|
|
135
168
|
C: (f, a) => f(...a)
|
|
@@ -151,8 +184,8 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
151
184
|
this._reconcileSwarmStateTask = void 0;
|
|
152
185
|
}
|
|
153
186
|
async join() {
|
|
154
|
-
|
|
155
|
-
F:
|
|
187
|
+
invariant2(this._state.roomId, void 0, {
|
|
188
|
+
F: __dxlog_file2,
|
|
156
189
|
L: 176,
|
|
157
190
|
S: this,
|
|
158
191
|
A: [
|
|
@@ -160,8 +193,8 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
160
193
|
""
|
|
161
194
|
]
|
|
162
195
|
});
|
|
163
|
-
|
|
164
|
-
F:
|
|
196
|
+
invariant2(!this._swarmCtx, "Already joined", {
|
|
197
|
+
F: __dxlog_file2,
|
|
165
198
|
L: 177,
|
|
166
199
|
S: this,
|
|
167
200
|
A: [
|
|
@@ -170,7 +203,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
170
203
|
]
|
|
171
204
|
});
|
|
172
205
|
this._swarmCtx = new Context(void 0, {
|
|
173
|
-
F:
|
|
206
|
+
F: __dxlog_file2,
|
|
174
207
|
L: 179
|
|
175
208
|
});
|
|
176
209
|
const topic = getTopic(this._state.roomId);
|
|
@@ -181,7 +214,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
181
214
|
peerKey: this._deviceKey
|
|
182
215
|
}
|
|
183
216
|
}, {
|
|
184
|
-
F:
|
|
217
|
+
F: __dxlog_file2,
|
|
185
218
|
L: 181,
|
|
186
219
|
S: this,
|
|
187
220
|
C: (f, a) => f(...a)
|
|
@@ -200,7 +233,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
200
233
|
peerKey: this._deviceKey
|
|
201
234
|
}
|
|
202
235
|
}, {
|
|
203
|
-
F:
|
|
236
|
+
F: __dxlog_file2,
|
|
204
237
|
L: 188,
|
|
205
238
|
S: this,
|
|
206
239
|
C: (f, a) => f(...a)
|
|
@@ -212,7 +245,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
212
245
|
peerKey: this._deviceKey
|
|
213
246
|
}
|
|
214
247
|
}).catch((err) => log.catch(err, void 0, {
|
|
215
|
-
F:
|
|
248
|
+
F: __dxlog_file2,
|
|
216
249
|
L: 194,
|
|
217
250
|
S: this,
|
|
218
251
|
C: (f, a) => f(...a)
|
|
@@ -280,8 +313,8 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
280
313
|
}
|
|
281
314
|
async _reconcileSwarmState() {
|
|
282
315
|
const swarmEvent = this._lastSwarmEvent;
|
|
283
|
-
|
|
284
|
-
F:
|
|
316
|
+
invariant2(swarmEvent, void 0, {
|
|
317
|
+
F: __dxlog_file2,
|
|
285
318
|
L: 273,
|
|
286
319
|
S: this,
|
|
287
320
|
A: [
|
|
@@ -301,7 +334,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
301
334
|
error,
|
|
302
335
|
peer
|
|
303
336
|
}, {
|
|
304
|
-
F:
|
|
337
|
+
F: __dxlog_file2,
|
|
305
338
|
L: 290,
|
|
306
339
|
S: this,
|
|
307
340
|
C: (f, a) => f(...a)
|
|
@@ -314,7 +347,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
314
347
|
log("reconciling swarm state", {
|
|
315
348
|
users
|
|
316
349
|
}, {
|
|
317
|
-
F:
|
|
350
|
+
F: __dxlog_file2,
|
|
318
351
|
L: 297,
|
|
319
352
|
S: this,
|
|
320
353
|
C: (f, a) => f(...a)
|
|
@@ -337,12 +370,6 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
337
370
|
scheduleTaskInterval(this._ctx, async () => this._reconcileSwarmStateTask.schedule(), Math.min(DISCONNECTED_ABRUPT_TIMEOUT / 2, 1e3));
|
|
338
371
|
}
|
|
339
372
|
}
|
|
340
|
-
constructor({ networkService }) {
|
|
341
|
-
super(), _define_property(this, "stateUpdated", new Event()), _define_property(this, "_state", {
|
|
342
|
-
activities: {}
|
|
343
|
-
}), _define_property(this, "_networkService", void 0), _define_property(this, "_lastSwarmEvent", void 0), _define_property(this, "_reconcileSwarmStateTask", void 0), _define_property(this, "_identityKey", void 0), _define_property(this, "_deviceKey", void 0), _define_property(this, "_displayName", void 0), _define_property(this, "_swarmCtx", void 0), _define_property(this, "_sendStateTask", void 0);
|
|
344
|
-
this._networkService = networkService;
|
|
345
|
-
}
|
|
346
373
|
};
|
|
347
374
|
_ts_decorate([
|
|
348
375
|
synchronized
|
|
@@ -410,24 +437,17 @@ var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure })
|
|
|
410
437
|
// src/calls/util/calls-service.ts
|
|
411
438
|
import { PersistentLifecycle, Trigger, scheduleTask } from "@dxos/async";
|
|
412
439
|
import { Resource as Resource2 } from "@dxos/context";
|
|
413
|
-
import { invariant as
|
|
440
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
414
441
|
import { log as log2 } from "@dxos/log";
|
|
415
442
|
|
|
416
443
|
// src/calls/util/history-cache.ts
|
|
417
|
-
function _define_property2(obj, key, value) {
|
|
418
|
-
if (key in obj) {
|
|
419
|
-
Object.defineProperty(obj, key, {
|
|
420
|
-
value,
|
|
421
|
-
enumerable: true,
|
|
422
|
-
configurable: true,
|
|
423
|
-
writable: true
|
|
424
|
-
});
|
|
425
|
-
} else {
|
|
426
|
-
obj[key] = value;
|
|
427
|
-
}
|
|
428
|
-
return obj;
|
|
429
|
-
}
|
|
430
444
|
var HistoryCache = class {
|
|
445
|
+
_limit;
|
|
446
|
+
_messages;
|
|
447
|
+
constructor(limit = 100) {
|
|
448
|
+
this._limit = limit;
|
|
449
|
+
this._messages = [];
|
|
450
|
+
}
|
|
431
451
|
push(...messages) {
|
|
432
452
|
if (this._messages.length >= this._limit) {
|
|
433
453
|
this._messages.shift();
|
|
@@ -437,98 +457,53 @@ var HistoryCache = class {
|
|
|
437
457
|
get() {
|
|
438
458
|
return this._messages;
|
|
439
459
|
}
|
|
440
|
-
constructor(limit = 100) {
|
|
441
|
-
_define_property2(this, "_limit", void 0);
|
|
442
|
-
_define_property2(this, "_messages", void 0);
|
|
443
|
-
this._limit = limit;
|
|
444
|
-
this._messages = [];
|
|
445
|
-
}
|
|
446
460
|
};
|
|
447
461
|
|
|
448
462
|
// src/calls/util/task-scheduling.ts
|
|
449
|
-
function _check_private_redeclaration(obj, privateCollection) {
|
|
450
|
-
if (privateCollection.has(obj)) {
|
|
451
|
-
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
455
|
-
if (descriptor.get) {
|
|
456
|
-
return descriptor.get.call(receiver);
|
|
457
|
-
}
|
|
458
|
-
return descriptor.value;
|
|
459
|
-
}
|
|
460
|
-
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
461
|
-
if (descriptor.set) {
|
|
462
|
-
descriptor.set.call(receiver, value);
|
|
463
|
-
} else {
|
|
464
|
-
if (!descriptor.writable) {
|
|
465
|
-
throw new TypeError("attempted to set read only private field");
|
|
466
|
-
}
|
|
467
|
-
descriptor.value = value;
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
471
|
-
if (!privateMap.has(receiver)) {
|
|
472
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
473
|
-
}
|
|
474
|
-
return privateMap.get(receiver);
|
|
475
|
-
}
|
|
476
|
-
function _class_private_field_get(receiver, privateMap) {
|
|
477
|
-
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
|
|
478
|
-
return _class_apply_descriptor_get(receiver, descriptor);
|
|
479
|
-
}
|
|
480
|
-
function _class_private_field_init(obj, privateMap, value) {
|
|
481
|
-
_check_private_redeclaration(obj, privateMap);
|
|
482
|
-
privateMap.set(obj, value);
|
|
483
|
-
}
|
|
484
|
-
function _class_private_field_set(receiver, privateMap, value) {
|
|
485
|
-
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
|
|
486
|
-
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
487
|
-
return value;
|
|
488
|
-
}
|
|
489
463
|
var DefaultBatchSizeLimit = 64;
|
|
490
|
-
var _schedulerChain = /* @__PURE__ */ new WeakMap();
|
|
491
464
|
var FIFOScheduler = class {
|
|
465
|
+
#schedulerChain;
|
|
466
|
+
constructor() {
|
|
467
|
+
this.#schedulerChain = Promise.resolve();
|
|
468
|
+
}
|
|
492
469
|
schedule(task) {
|
|
493
470
|
return new Promise((resolve, reject) => {
|
|
494
|
-
|
|
471
|
+
this.#schedulerChain = this.#schedulerChain.then(async () => {
|
|
495
472
|
try {
|
|
496
473
|
resolve(await task());
|
|
497
474
|
} catch (error) {
|
|
498
475
|
reject(error);
|
|
499
476
|
}
|
|
500
|
-
})
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
constructor() {
|
|
504
|
-
_class_private_field_init(this, _schedulerChain, {
|
|
505
|
-
writable: true,
|
|
506
|
-
value: void 0
|
|
477
|
+
});
|
|
507
478
|
});
|
|
508
|
-
_class_private_field_set(this, _schedulerChain, Promise.resolve());
|
|
509
479
|
}
|
|
510
480
|
};
|
|
511
|
-
var _currentBatch = /* @__PURE__ */ new WeakMap();
|
|
512
|
-
var _currentBulkResponse = /* @__PURE__ */ new WeakMap();
|
|
513
|
-
var _batchSizeLimit = /* @__PURE__ */ new WeakMap();
|
|
514
481
|
var BulkRequestDispatcher = class {
|
|
482
|
+
#currentBatch;
|
|
483
|
+
#currentBulkResponse;
|
|
484
|
+
#batchSizeLimit;
|
|
485
|
+
constructor(batchSizeLimit = DefaultBatchSizeLimit) {
|
|
486
|
+
this.#currentBatch = [];
|
|
487
|
+
this.#currentBulkResponse = null;
|
|
488
|
+
this.#batchSizeLimit = batchSizeLimit;
|
|
489
|
+
}
|
|
515
490
|
/**
|
|
516
491
|
* Returns a bulk response promise.
|
|
517
492
|
* At the event loop iteration end, the accumulated entries will be dispatched as a bulk request.
|
|
518
493
|
*/
|
|
519
494
|
doBulkRequest(params, bulkRequestFunc) {
|
|
520
|
-
if (
|
|
521
|
-
|
|
522
|
-
|
|
495
|
+
if (this.#currentBatch.length >= this.#batchSizeLimit) {
|
|
496
|
+
this.#currentBatch = [];
|
|
497
|
+
this.#currentBulkResponse = null;
|
|
523
498
|
}
|
|
524
|
-
|
|
525
|
-
if (
|
|
526
|
-
return
|
|
499
|
+
this.#currentBatch.push(params);
|
|
500
|
+
if (this.#currentBulkResponse != null) {
|
|
501
|
+
return this.#currentBulkResponse;
|
|
527
502
|
}
|
|
528
|
-
const batch =
|
|
529
|
-
|
|
503
|
+
const batch = this.#currentBatch;
|
|
504
|
+
this.#currentBulkResponse = new Promise((resolve, reject) => {
|
|
530
505
|
setTimeout(() => {
|
|
531
|
-
|
|
506
|
+
this.#currentBulkResponse = null;
|
|
532
507
|
const batchCopy = batch.splice(0, batch.length);
|
|
533
508
|
bulkRequestFunc(batchCopy).then((result) => {
|
|
534
509
|
resolve(result);
|
|
@@ -536,45 +511,29 @@ var BulkRequestDispatcher = class {
|
|
|
536
511
|
reject(err);
|
|
537
512
|
});
|
|
538
513
|
}, 0);
|
|
539
|
-
}));
|
|
540
|
-
return _class_private_field_get(this, _currentBulkResponse);
|
|
541
|
-
}
|
|
542
|
-
constructor(batchSizeLimit = DefaultBatchSizeLimit) {
|
|
543
|
-
_class_private_field_init(this, _currentBatch, {
|
|
544
|
-
writable: true,
|
|
545
|
-
value: void 0
|
|
546
514
|
});
|
|
547
|
-
|
|
548
|
-
writable: true,
|
|
549
|
-
value: void 0
|
|
550
|
-
});
|
|
551
|
-
_class_private_field_init(this, _batchSizeLimit, {
|
|
552
|
-
writable: true,
|
|
553
|
-
value: void 0
|
|
554
|
-
});
|
|
555
|
-
_class_private_field_set(this, _currentBatch, []);
|
|
556
|
-
_class_private_field_set(this, _currentBulkResponse, null);
|
|
557
|
-
_class_private_field_set(this, _batchSizeLimit, batchSizeLimit);
|
|
515
|
+
return this.#currentBulkResponse;
|
|
558
516
|
}
|
|
559
517
|
};
|
|
560
518
|
|
|
561
519
|
// src/calls/util/calls-service.ts
|
|
562
|
-
|
|
563
|
-
if (key in obj) {
|
|
564
|
-
Object.defineProperty(obj, key, {
|
|
565
|
-
value,
|
|
566
|
-
enumerable: true,
|
|
567
|
-
configurable: true,
|
|
568
|
-
writable: true
|
|
569
|
-
});
|
|
570
|
-
} else {
|
|
571
|
-
obj[key] = value;
|
|
572
|
-
}
|
|
573
|
-
return obj;
|
|
574
|
-
}
|
|
575
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
|
|
520
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
|
|
576
521
|
var NETWORK_TIMEOUT = 5e3;
|
|
577
522
|
var CallsServicePeer = class extends Resource2 {
|
|
523
|
+
history = new HistoryCache(100);
|
|
524
|
+
_persistentLifecycle = new PersistentLifecycle({
|
|
525
|
+
start: () => this._startSession(),
|
|
526
|
+
stop: (session) => this._stopSession(session)
|
|
527
|
+
});
|
|
528
|
+
_config;
|
|
529
|
+
taskScheduler = new FIFOScheduler();
|
|
530
|
+
pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
531
|
+
pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
532
|
+
closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
533
|
+
constructor(config) {
|
|
534
|
+
super();
|
|
535
|
+
this._config = config;
|
|
536
|
+
}
|
|
578
537
|
async _open(ctx) {
|
|
579
538
|
await this._persistentLifecycle.open(ctx);
|
|
580
539
|
}
|
|
@@ -602,11 +561,11 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
602
561
|
});
|
|
603
562
|
peerConnection.addEventListener("connectionstatechange", () => {
|
|
604
563
|
if (peerConnection.connectionState === "failed" || peerConnection.connectionState === "closed") {
|
|
605
|
-
log2.
|
|
564
|
+
log2.info("calls connection failed", {
|
|
606
565
|
state: peerConnection.connectionState
|
|
607
566
|
}, {
|
|
608
|
-
F:
|
|
609
|
-
L:
|
|
567
|
+
F: __dxlog_file3,
|
|
568
|
+
L: 121,
|
|
610
569
|
S: this,
|
|
611
570
|
C: (f, a) => f(...a)
|
|
612
571
|
});
|
|
@@ -617,11 +576,11 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
617
576
|
peerConnection.addEventListener("iceconnectionstatechange", () => {
|
|
618
577
|
clearTimeout(iceTimeout);
|
|
619
578
|
if (peerConnection.iceConnectionState === "failed" || peerConnection.iceConnectionState === "closed") {
|
|
620
|
-
log2.
|
|
579
|
+
log2.info("calls connection to ICEs failed", {
|
|
621
580
|
state: peerConnection.iceConnectionState
|
|
622
581
|
}, {
|
|
623
|
-
F:
|
|
624
|
-
L:
|
|
582
|
+
F: __dxlog_file3,
|
|
583
|
+
L: 130,
|
|
625
584
|
S: this,
|
|
626
585
|
C: (f, a) => f(...a)
|
|
627
586
|
});
|
|
@@ -631,19 +590,19 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
631
590
|
iceTimeout = window.setTimeout(() => {
|
|
632
591
|
if (peerConnection.iceConnectionState === "connected") {
|
|
633
592
|
log2.info("calls iceConnectionState is connected", void 0, {
|
|
634
|
-
F:
|
|
635
|
-
L:
|
|
593
|
+
F: __dxlog_file3,
|
|
594
|
+
L: 139,
|
|
636
595
|
S: this,
|
|
637
596
|
C: (f, a) => f(...a)
|
|
638
597
|
});
|
|
639
598
|
return;
|
|
640
599
|
}
|
|
641
|
-
log2.
|
|
600
|
+
log2.info("calls iceConnectionState timed out", {
|
|
642
601
|
state: peerConnection.iceConnectionState,
|
|
643
602
|
timeoutSeconds
|
|
644
603
|
}, {
|
|
645
|
-
F:
|
|
646
|
-
L:
|
|
604
|
+
F: __dxlog_file3,
|
|
605
|
+
L: 143,
|
|
647
606
|
S: this,
|
|
648
607
|
C: (f, a) => f(...a)
|
|
649
608
|
});
|
|
@@ -655,8 +614,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
655
614
|
}
|
|
656
615
|
async _initiateCallSession() {
|
|
657
616
|
log2("creating new session", void 0, {
|
|
658
|
-
F:
|
|
659
|
-
L:
|
|
617
|
+
F: __dxlog_file3,
|
|
618
|
+
L: 153,
|
|
660
619
|
S: this,
|
|
661
620
|
C: (f, a) => f(...a)
|
|
662
621
|
});
|
|
@@ -667,6 +626,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
667
626
|
}
|
|
668
627
|
async _fetch(relativePath, requestInit) {
|
|
669
628
|
this.history.push({
|
|
629
|
+
endpoint: relativePath,
|
|
670
630
|
type: "request",
|
|
671
631
|
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
672
632
|
method: requestInit?.method ?? "GET",
|
|
@@ -681,8 +641,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
681
641
|
status: response.status,
|
|
682
642
|
text: await response.text()
|
|
683
643
|
}, {
|
|
684
|
-
F:
|
|
685
|
-
L:
|
|
644
|
+
F: __dxlog_file3,
|
|
645
|
+
L: 169,
|
|
686
646
|
S: this,
|
|
687
647
|
C: (f, a) => f(...a)
|
|
688
648
|
});
|
|
@@ -691,6 +651,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
691
651
|
try {
|
|
692
652
|
const data = await response.clone().json();
|
|
693
653
|
this.history.push({
|
|
654
|
+
endpoint: relativePath,
|
|
694
655
|
type: "response",
|
|
695
656
|
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
696
657
|
status: response.status,
|
|
@@ -703,6 +664,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
703
664
|
} catch (error) {
|
|
704
665
|
const text = await response.text();
|
|
705
666
|
this.history.push({
|
|
667
|
+
endpoint: relativePath,
|
|
706
668
|
type: "response",
|
|
707
669
|
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
708
670
|
status: response.status,
|
|
@@ -713,8 +675,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
713
675
|
text,
|
|
714
676
|
status: response.status
|
|
715
677
|
}, {
|
|
716
|
-
F:
|
|
717
|
-
L:
|
|
678
|
+
F: __dxlog_file3,
|
|
679
|
+
L: 196,
|
|
718
680
|
S: this,
|
|
719
681
|
C: (f, a) => f(...a)
|
|
720
682
|
});
|
|
@@ -723,8 +685,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
723
685
|
}
|
|
724
686
|
async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
|
|
725
687
|
log2.verbose("pushing track ", trackName, {
|
|
726
|
-
F:
|
|
727
|
-
L:
|
|
688
|
+
F: __dxlog_file3,
|
|
689
|
+
L: 218,
|
|
728
690
|
S: this,
|
|
729
691
|
C: (f, a) => f(...a)
|
|
730
692
|
});
|
|
@@ -749,9 +711,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
749
711
|
}))
|
|
750
712
|
})
|
|
751
713
|
});
|
|
752
|
-
|
|
753
|
-
F:
|
|
754
|
-
L:
|
|
714
|
+
invariant3(response.tracks !== void 0, void 0, {
|
|
715
|
+
F: __dxlog_file3,
|
|
716
|
+
L: 243,
|
|
755
717
|
S: this,
|
|
756
718
|
A: [
|
|
757
719
|
"response.tracks !== undefined",
|
|
@@ -768,7 +730,6 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
768
730
|
})).then(async ({ tracks }) => {
|
|
769
731
|
const trackData = tracks.find((t) => t.mid === transceiver.mid);
|
|
770
732
|
if (trackData) {
|
|
771
|
-
await waitForTransceiverToSendData(ctx, transceiver);
|
|
772
733
|
return {
|
|
773
734
|
...trackData,
|
|
774
735
|
sessionId,
|
|
@@ -776,8 +737,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
776
737
|
};
|
|
777
738
|
} else {
|
|
778
739
|
log2.error("missing track data", void 0, {
|
|
779
|
-
F:
|
|
780
|
-
L:
|
|
740
|
+
F: __dxlog_file3,
|
|
741
|
+
L: 267,
|
|
781
742
|
S: this,
|
|
782
743
|
C: (f, a) => f(...a)
|
|
783
744
|
});
|
|
@@ -794,9 +755,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
794
755
|
}
|
|
795
756
|
async pushTrack({ track, encodings = [], ctx, previousTrack }) {
|
|
796
757
|
await this.waitUntilOpen();
|
|
797
|
-
|
|
798
|
-
F:
|
|
799
|
-
L:
|
|
758
|
+
invariant3(this.session, void 0, {
|
|
759
|
+
F: __dxlog_file3,
|
|
760
|
+
L: 295,
|
|
800
761
|
S: this,
|
|
801
762
|
A: [
|
|
802
763
|
"this.session",
|
|
@@ -808,8 +769,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
808
769
|
previousTrack,
|
|
809
770
|
encodings
|
|
810
771
|
}, {
|
|
811
|
-
F:
|
|
812
|
-
L:
|
|
772
|
+
F: __dxlog_file3,
|
|
773
|
+
L: 296,
|
|
813
774
|
S: this,
|
|
814
775
|
C: (f, a) => f(...a)
|
|
815
776
|
});
|
|
@@ -821,8 +782,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
821
782
|
previousTrack,
|
|
822
783
|
transceiver: transceiver2
|
|
823
784
|
}, {
|
|
824
|
-
F:
|
|
825
|
-
L:
|
|
785
|
+
F: __dxlog_file3,
|
|
786
|
+
L: 300,
|
|
826
787
|
S: this,
|
|
827
788
|
C: (f, a) => f(...a)
|
|
828
789
|
});
|
|
@@ -833,23 +794,23 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
833
794
|
previousTrack,
|
|
834
795
|
transceiver: transceiver2
|
|
835
796
|
}, {
|
|
836
|
-
F:
|
|
837
|
-
L:
|
|
797
|
+
F: __dxlog_file3,
|
|
798
|
+
L: 303,
|
|
838
799
|
S: this,
|
|
839
800
|
C: (f, a) => f(...a)
|
|
840
801
|
});
|
|
841
802
|
transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
|
|
842
|
-
F:
|
|
843
|
-
L:
|
|
803
|
+
F: __dxlog_file3,
|
|
804
|
+
L: 304,
|
|
844
805
|
S: this,
|
|
845
806
|
C: (f, a) => f(...a)
|
|
846
807
|
}));
|
|
847
808
|
return previousTrack;
|
|
848
809
|
}
|
|
849
810
|
}
|
|
850
|
-
|
|
851
|
-
F:
|
|
852
|
-
L:
|
|
811
|
+
invariant3(track, void 0, {
|
|
812
|
+
F: __dxlog_file3,
|
|
813
|
+
L: 308,
|
|
853
814
|
S: this,
|
|
854
815
|
A: [
|
|
855
816
|
"track",
|
|
@@ -861,8 +822,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
861
822
|
direction: "sendonly"
|
|
862
823
|
});
|
|
863
824
|
log2.verbose("creating transceiver", void 0, {
|
|
864
|
-
F:
|
|
865
|
-
L:
|
|
825
|
+
F: __dxlog_file3,
|
|
826
|
+
L: 313,
|
|
866
827
|
S: this,
|
|
867
828
|
C: (f, a) => f(...a)
|
|
868
829
|
});
|
|
@@ -873,9 +834,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
873
834
|
sessionId: this.session.sessionId,
|
|
874
835
|
trackName: stableId
|
|
875
836
|
});
|
|
876
|
-
|
|
877
|
-
F:
|
|
878
|
-
L:
|
|
837
|
+
invariant3(pushedTrackData, void 0, {
|
|
838
|
+
F: __dxlog_file3,
|
|
839
|
+
L: 322,
|
|
879
840
|
S: this,
|
|
880
841
|
A: [
|
|
881
842
|
"pushedTrackData",
|
|
@@ -891,8 +852,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
891
852
|
};
|
|
892
853
|
});
|
|
893
854
|
transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
|
|
894
|
-
F:
|
|
895
|
-
L:
|
|
855
|
+
F: __dxlog_file3,
|
|
856
|
+
L: 329,
|
|
896
857
|
S: this,
|
|
897
858
|
C: (f, a) => f(...a)
|
|
898
859
|
}));
|
|
@@ -904,8 +865,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
904
865
|
log2("pulling track", {
|
|
905
866
|
trackName: trackData.trackName
|
|
906
867
|
}, {
|
|
907
|
-
F:
|
|
908
|
-
L:
|
|
868
|
+
F: __dxlog_file3,
|
|
869
|
+
L: 347,
|
|
909
870
|
S: this,
|
|
910
871
|
C: (f, a) => f(...a)
|
|
911
872
|
});
|
|
@@ -919,9 +880,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
919
880
|
if (newTrackResponse.errorCode) {
|
|
920
881
|
throw new Error(newTrackResponse.errorDescription);
|
|
921
882
|
}
|
|
922
|
-
|
|
923
|
-
F:
|
|
924
|
-
L:
|
|
883
|
+
invariant3(newTrackResponse.tracks, void 0, {
|
|
884
|
+
F: __dxlog_file3,
|
|
885
|
+
L: 360,
|
|
925
886
|
S: this,
|
|
926
887
|
A: [
|
|
927
888
|
"newTrackResponse.tracks",
|
|
@@ -967,18 +928,18 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
967
928
|
mid = trackInfo.mid;
|
|
968
929
|
return track;
|
|
969
930
|
}).catch((err) => log2.catch(err, void 0, {
|
|
970
|
-
F:
|
|
971
|
-
L:
|
|
931
|
+
F: __dxlog_file3,
|
|
932
|
+
L: 412,
|
|
972
933
|
S: this,
|
|
973
934
|
C: (f, a) => f(...a)
|
|
974
935
|
}));
|
|
975
936
|
} else {
|
|
976
|
-
log2.
|
|
937
|
+
log2.info("missing track info", {
|
|
977
938
|
trackData,
|
|
978
939
|
availableTracks: Array.from(trackMap.keys())
|
|
979
940
|
}, {
|
|
980
|
-
F:
|
|
981
|
-
L:
|
|
941
|
+
F: __dxlog_file3,
|
|
942
|
+
L: 414,
|
|
982
943
|
S: this,
|
|
983
944
|
C: (f, a) => f(...a)
|
|
984
945
|
});
|
|
@@ -987,8 +948,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
987
948
|
const onDispose = async () => {
|
|
988
949
|
if (mid) {
|
|
989
950
|
log2("closing pulled track ", trackData.trackName, {
|
|
990
|
-
F:
|
|
991
|
-
L:
|
|
951
|
+
F: __dxlog_file3,
|
|
952
|
+
L: 420,
|
|
992
953
|
S: this,
|
|
993
954
|
C: (f, a) => f(...a)
|
|
994
955
|
});
|
|
@@ -1002,9 +963,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
1002
963
|
}
|
|
1003
964
|
async pullTrack({ ctx, trackData }) {
|
|
1004
965
|
await this.waitUntilOpen();
|
|
1005
|
-
|
|
1006
|
-
F:
|
|
1007
|
-
L:
|
|
966
|
+
invariant3(this.session, void 0, {
|
|
967
|
+
F: __dxlog_file3,
|
|
968
|
+
L: 441,
|
|
1008
969
|
S: this,
|
|
1009
970
|
A: [
|
|
1010
971
|
"this.session",
|
|
@@ -1056,13 +1017,6 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
1056
1017
|
}
|
|
1057
1018
|
}));
|
|
1058
1019
|
}
|
|
1059
|
-
constructor(config) {
|
|
1060
|
-
super(), _define_property3(this, "history", new HistoryCache(100)), _define_property3(this, "_persistentLifecycle", new PersistentLifecycle({
|
|
1061
|
-
start: () => this._startSession(),
|
|
1062
|
-
stop: (session) => this._stopSession(session)
|
|
1063
|
-
})), _define_property3(this, "_config", void 0), _define_property3(this, "taskScheduler", new FIFOScheduler()), _define_property3(this, "pushTrackDispatcher", new BulkRequestDispatcher(32)), _define_property3(this, "pullTrackDispatcher", new BulkRequestDispatcher(32)), _define_property3(this, "closeTrackDispatcher", new BulkRequestDispatcher(32));
|
|
1064
|
-
this._config = config;
|
|
1065
|
-
}
|
|
1066
1020
|
};
|
|
1067
1021
|
var resolveTrack = async (peerConnection, compare, timeout = NETWORK_TIMEOUT) => new Promise((resolve, reject) => {
|
|
1068
1022
|
setTimeout(reject, timeout);
|
|
@@ -1094,50 +1048,12 @@ var peerConnectionIsConnected = async (peerConnection) => {
|
|
|
1094
1048
|
await connected;
|
|
1095
1049
|
}
|
|
1096
1050
|
};
|
|
1097
|
-
var INITIAL_DELAY = 50;
|
|
1098
|
-
var MAX_DELAY = 500;
|
|
1099
|
-
var MAX_RETRIES = 50;
|
|
1100
|
-
var WAIT_FOR_DATA_TIMEOUT = 2e4;
|
|
1101
|
-
var waitForTransceiverToSendData = async (ctx, transceiver) => {
|
|
1102
|
-
let delay = INITIAL_DELAY;
|
|
1103
|
-
let checks = 0;
|
|
1104
|
-
const waitForData = new Trigger();
|
|
1105
|
-
ctx.onDispose(() => waitForData.throw(new Error("Transceiver was closed")));
|
|
1106
|
-
const checkStats = async () => {
|
|
1107
|
-
if (ctx.disposed) return;
|
|
1108
|
-
try {
|
|
1109
|
-
const stats = await transceiver.sender.getStats();
|
|
1110
|
-
let dataFound = false;
|
|
1111
|
-
stats.forEach((stat) => {
|
|
1112
|
-
if (stat.type === "outbound-rtp" && stat.bytesSent > 0) {
|
|
1113
|
-
dataFound = true;
|
|
1114
|
-
}
|
|
1115
|
-
});
|
|
1116
|
-
if (dataFound) {
|
|
1117
|
-
waitForData.wake();
|
|
1118
|
-
return;
|
|
1119
|
-
}
|
|
1120
|
-
} catch {
|
|
1121
|
-
}
|
|
1122
|
-
checks++;
|
|
1123
|
-
if (checks > MAX_RETRIES) {
|
|
1124
|
-
waitForData.throw(new Error("Transceiver did not send data"));
|
|
1125
|
-
return;
|
|
1126
|
-
}
|
|
1127
|
-
delay = Math.min(delay * 2, MAX_DELAY);
|
|
1128
|
-
scheduleTask(ctx, checkStats, delay);
|
|
1129
|
-
};
|
|
1130
|
-
void checkStats();
|
|
1131
|
-
return waitForData.wait({
|
|
1132
|
-
timeout: WAIT_FOR_DATA_TIMEOUT
|
|
1133
|
-
});
|
|
1134
|
-
};
|
|
1135
1051
|
|
|
1136
1052
|
// src/calls/util/media.ts
|
|
1137
1053
|
import { log as log3 } from "@dxos/log";
|
|
1138
|
-
var
|
|
1054
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
|
|
1139
1055
|
var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
1140
|
-
deviceList
|
|
1056
|
+
deviceList ??= (await getDeviceList()).filter((device) => device.kind === kind);
|
|
1141
1057
|
const firstDevice = deviceList[0];
|
|
1142
1058
|
if (!firstDevice) {
|
|
1143
1059
|
throw new Error("No devices found");
|
|
@@ -1147,7 +1063,7 @@ var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
|
1147
1063
|
var acquireTrack = async (device, constraints) => {
|
|
1148
1064
|
const { deviceId, label } = device;
|
|
1149
1065
|
log3.info(`requesting ${label}`, void 0, {
|
|
1150
|
-
F:
|
|
1066
|
+
F: __dxlog_file4,
|
|
1151
1067
|
L: 23,
|
|
1152
1068
|
S: void 0,
|
|
1153
1069
|
C: (f, a) => f(...a)
|
|
@@ -1192,24 +1108,26 @@ var getScreenshare = async ({ contentHint }) => {
|
|
|
1192
1108
|
// src/calls/speaking-monitor.ts
|
|
1193
1109
|
import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
|
|
1194
1110
|
import { Resource as Resource3 } from "@dxos/context";
|
|
1195
|
-
function _define_property4(obj, key, value) {
|
|
1196
|
-
if (key in obj) {
|
|
1197
|
-
Object.defineProperty(obj, key, {
|
|
1198
|
-
value,
|
|
1199
|
-
enumerable: true,
|
|
1200
|
-
configurable: true,
|
|
1201
|
-
writable: true
|
|
1202
|
-
});
|
|
1203
|
-
} else {
|
|
1204
|
-
obj[key] = value;
|
|
1205
|
-
}
|
|
1206
|
-
return obj;
|
|
1207
|
-
}
|
|
1208
1111
|
var NOT_SPEAKING_AFTER = 500;
|
|
1209
1112
|
var START_SPEAKING_THRESHOLD = 0.05;
|
|
1210
1113
|
var CONTINUE_SPEAKING_THRESHOLD = 0.02;
|
|
1211
1114
|
var MIN_EVENT_INTERVAL = 100;
|
|
1212
1115
|
var SpeakingMonitor = class extends Resource3 {
|
|
1116
|
+
_mediaStreamTrack;
|
|
1117
|
+
/**
|
|
1118
|
+
* Event that is emitted when the user starts or stops speaking.
|
|
1119
|
+
* It is debounced to prevent rapid state changes.
|
|
1120
|
+
*/
|
|
1121
|
+
speakingChanged = new Event2();
|
|
1122
|
+
/**
|
|
1123
|
+
* Real state of the user speaking.
|
|
1124
|
+
*/
|
|
1125
|
+
_isSpeaking = false;
|
|
1126
|
+
_lastEventTime = 0;
|
|
1127
|
+
_deferredUpdate;
|
|
1128
|
+
constructor(_mediaStreamTrack) {
|
|
1129
|
+
super(), this._mediaStreamTrack = _mediaStreamTrack;
|
|
1130
|
+
}
|
|
1213
1131
|
get isSpeaking() {
|
|
1214
1132
|
return this._isSpeaking;
|
|
1215
1133
|
}
|
|
@@ -1253,43 +1171,20 @@ var SpeakingMonitor = class extends Resource3 {
|
|
|
1253
1171
|
this._lastEventTime = Date.now();
|
|
1254
1172
|
this.speakingChanged.emit(this._isSpeaking);
|
|
1255
1173
|
}
|
|
1256
|
-
constructor(_mediaStreamTrack) {
|
|
1257
|
-
super(), _define_property4(this, "_mediaStreamTrack", void 0), /**
|
|
1258
|
-
* Event that is emitted when the user starts or stops speaking.
|
|
1259
|
-
* It is debounced to prevent rapid state changes.
|
|
1260
|
-
*/
|
|
1261
|
-
_define_property4(this, "speakingChanged", void 0), /**
|
|
1262
|
-
* Real state of the user speaking.
|
|
1263
|
-
*/
|
|
1264
|
-
_define_property4(this, "_isSpeaking", void 0), _define_property4(this, "_lastEventTime", void 0), _define_property4(this, "_deferredUpdate", void 0), this._mediaStreamTrack = _mediaStreamTrack, this.speakingChanged = new Event2(), this._isSpeaking = false, this._lastEventTime = 0;
|
|
1265
|
-
}
|
|
1266
1174
|
};
|
|
1267
1175
|
|
|
1268
1176
|
// src/calls/media-manager.ts
|
|
1269
1177
|
import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
|
|
1270
1178
|
import { Resource as Resource4, cancelWithContext } from "@dxos/context";
|
|
1271
|
-
import { invariant as
|
|
1179
|
+
import { invariant as invariant4 } from "@dxos/invariant";
|
|
1272
1180
|
import { log as log4 } from "@dxos/log";
|
|
1273
|
-
function _define_property5(obj, key, value) {
|
|
1274
|
-
if (key in obj) {
|
|
1275
|
-
Object.defineProperty(obj, key, {
|
|
1276
|
-
value,
|
|
1277
|
-
enumerable: true,
|
|
1278
|
-
configurable: true,
|
|
1279
|
-
writable: true
|
|
1280
|
-
});
|
|
1281
|
-
} else {
|
|
1282
|
-
obj[key] = value;
|
|
1283
|
-
}
|
|
1284
|
-
return obj;
|
|
1285
|
-
}
|
|
1286
1181
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
1287
1182
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1288
1183
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1289
1184
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1290
1185
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1291
1186
|
}
|
|
1292
|
-
var
|
|
1187
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
|
|
1293
1188
|
var VIDEO_WIDTH = 1280;
|
|
1294
1189
|
var VIDEO_HEIGHT = 720;
|
|
1295
1190
|
var MAX_WEB_CAM_FRAMERATE = 24;
|
|
@@ -1297,6 +1192,17 @@ var MAX_WEB_CAM_BITRATE = 12e5;
|
|
|
1297
1192
|
var RETRY_INTERVAL = 100;
|
|
1298
1193
|
var USE_INAUDIBLE_AUDIO = true;
|
|
1299
1194
|
var MediaManager = class extends Resource4 {
|
|
1195
|
+
stateUpdated = new Event3();
|
|
1196
|
+
_state = {
|
|
1197
|
+
pulledVideoStreams: {},
|
|
1198
|
+
pulledAudioTracks: {}
|
|
1199
|
+
};
|
|
1200
|
+
_speakingMonitor = void 0;
|
|
1201
|
+
_trackToReconcile = [];
|
|
1202
|
+
_blackCanvasStreamTrack = void 0;
|
|
1203
|
+
_inaudibleAudioStreamTrack = void 0;
|
|
1204
|
+
_pushTracksTask = void 0;
|
|
1205
|
+
_pullTracksTask = void 0;
|
|
1300
1206
|
get isSpeaking() {
|
|
1301
1207
|
return this._speakingMonitor?.isSpeaking;
|
|
1302
1208
|
}
|
|
@@ -1435,8 +1341,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1435
1341
|
}
|
|
1436
1342
|
async _reconcilePulledMedia() {
|
|
1437
1343
|
log4("reconciling tracks", void 0, {
|
|
1438
|
-
F:
|
|
1439
|
-
L:
|
|
1344
|
+
F: __dxlog_file5,
|
|
1345
|
+
L: 229,
|
|
1440
1346
|
S: this,
|
|
1441
1347
|
C: (f, a) => f(...a)
|
|
1442
1348
|
});
|
|
@@ -1453,8 +1359,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1453
1359
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1454
1360
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1455
1361
|
}, {
|
|
1456
|
-
F:
|
|
1457
|
-
L:
|
|
1362
|
+
F: __dxlog_file5,
|
|
1363
|
+
L: 247,
|
|
1458
1364
|
S: this,
|
|
1459
1365
|
C: (f, a) => f(...a)
|
|
1460
1366
|
});
|
|
@@ -1467,8 +1373,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1467
1373
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1468
1374
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1469
1375
|
}, {
|
|
1470
|
-
F:
|
|
1471
|
-
L:
|
|
1376
|
+
F: __dxlog_file5,
|
|
1377
|
+
L: 262,
|
|
1472
1378
|
S: this,
|
|
1473
1379
|
C: (f, a) => f(...a)
|
|
1474
1380
|
});
|
|
@@ -1478,14 +1384,14 @@ var MediaManager = class extends Resource4 {
|
|
|
1478
1384
|
log4.info("retrying pull tracks", {
|
|
1479
1385
|
tracksToPull
|
|
1480
1386
|
}, {
|
|
1481
|
-
F:
|
|
1482
|
-
L:
|
|
1387
|
+
F: __dxlog_file5,
|
|
1388
|
+
L: 270,
|
|
1483
1389
|
S: this,
|
|
1484
1390
|
C: (f, a) => f(...a)
|
|
1485
1391
|
});
|
|
1486
|
-
|
|
1487
|
-
F:
|
|
1488
|
-
L:
|
|
1392
|
+
invariant4(this._pullTracksTask, void 0, {
|
|
1393
|
+
F: __dxlog_file5,
|
|
1394
|
+
L: 271,
|
|
1489
1395
|
S: this,
|
|
1490
1396
|
A: [
|
|
1491
1397
|
"this._pullTracksTask",
|
|
@@ -1537,14 +1443,14 @@ var MediaManager = class extends Resource4 {
|
|
|
1537
1443
|
pushAudioResult,
|
|
1538
1444
|
pushScreenshareResult
|
|
1539
1445
|
}, {
|
|
1540
|
-
F:
|
|
1541
|
-
L:
|
|
1446
|
+
F: __dxlog_file5,
|
|
1447
|
+
L: 310,
|
|
1542
1448
|
S: this,
|
|
1543
1449
|
C: (f, a) => f(...a)
|
|
1544
1450
|
});
|
|
1545
|
-
|
|
1546
|
-
F:
|
|
1547
|
-
L:
|
|
1451
|
+
invariant4(this._pushTracksTask, void 0, {
|
|
1452
|
+
F: __dxlog_file5,
|
|
1453
|
+
L: 311,
|
|
1548
1454
|
S: this,
|
|
1549
1455
|
A: [
|
|
1550
1456
|
"this._pushTracksTask",
|
|
@@ -1559,7 +1465,10 @@ var MediaManager = class extends Resource4 {
|
|
|
1559
1465
|
try {
|
|
1560
1466
|
const trackData = TrackNameCodec.decode(name);
|
|
1561
1467
|
const track = await this._state.peer.pullTrack({
|
|
1562
|
-
trackData
|
|
1468
|
+
trackData: {
|
|
1469
|
+
...trackData,
|
|
1470
|
+
mid: void 0
|
|
1471
|
+
},
|
|
1563
1472
|
ctx
|
|
1564
1473
|
});
|
|
1565
1474
|
if (track?.readyState === "ended") {
|
|
@@ -1600,8 +1509,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1600
1509
|
err,
|
|
1601
1510
|
name
|
|
1602
1511
|
}, {
|
|
1603
|
-
F:
|
|
1604
|
-
L:
|
|
1512
|
+
F: __dxlog_file5,
|
|
1513
|
+
L: 347,
|
|
1605
1514
|
S: this,
|
|
1606
1515
|
C: (f, a) => f(...a)
|
|
1607
1516
|
});
|
|
@@ -1634,8 +1543,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1634
1543
|
previousTrack,
|
|
1635
1544
|
encodings
|
|
1636
1545
|
}, {
|
|
1637
|
-
F:
|
|
1638
|
-
L:
|
|
1546
|
+
F: __dxlog_file5,
|
|
1547
|
+
L: 373,
|
|
1639
1548
|
S: this,
|
|
1640
1549
|
C: (f, a) => f(...a)
|
|
1641
1550
|
});
|
|
@@ -1645,12 +1554,6 @@ var MediaManager = class extends Resource4 {
|
|
|
1645
1554
|
};
|
|
1646
1555
|
}
|
|
1647
1556
|
}
|
|
1648
|
-
constructor(...args) {
|
|
1649
|
-
super(...args), _define_property5(this, "stateUpdated", new Event3()), _define_property5(this, "_state", {
|
|
1650
|
-
pulledVideoStreams: {},
|
|
1651
|
-
pulledAudioTracks: {}
|
|
1652
|
-
}), _define_property5(this, "_speakingMonitor", void 0), _define_property5(this, "_trackToReconcile", []), _define_property5(this, "_blackCanvasStreamTrack", void 0), _define_property5(this, "_inaudibleAudioStreamTrack", void 0), _define_property5(this, "_pushTracksTask", void 0), _define_property5(this, "_pullTracksTask", void 0);
|
|
1653
|
-
}
|
|
1654
1557
|
};
|
|
1655
1558
|
_ts_decorate2([
|
|
1656
1559
|
synchronized2
|
|
@@ -1663,30 +1566,39 @@ _ts_decorate2([
|
|
|
1663
1566
|
import { computed } from "@preact/signals-core";
|
|
1664
1567
|
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
1665
1568
|
import { Resource as Resource5 } from "@dxos/context";
|
|
1666
|
-
import { invariant as
|
|
1569
|
+
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1667
1570
|
import { live } from "@dxos/live-object";
|
|
1668
1571
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1669
|
-
function _define_property6(obj, key, value) {
|
|
1670
|
-
if (key in obj) {
|
|
1671
|
-
Object.defineProperty(obj, key, {
|
|
1672
|
-
value,
|
|
1673
|
-
enumerable: true,
|
|
1674
|
-
configurable: true,
|
|
1675
|
-
writable: true
|
|
1676
|
-
});
|
|
1677
|
-
} else {
|
|
1678
|
-
obj[key] = value;
|
|
1679
|
-
}
|
|
1680
|
-
return obj;
|
|
1681
|
-
}
|
|
1682
1572
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
1683
1573
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1684
1574
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1685
1575
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1686
1576
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1687
1577
|
}
|
|
1688
|
-
var
|
|
1578
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
|
|
1689
1579
|
var CallManager = class extends Resource5 {
|
|
1580
|
+
_client;
|
|
1581
|
+
callStateUpdated = new Event4();
|
|
1582
|
+
// TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
|
|
1583
|
+
mediaStateUpdated = new Event4();
|
|
1584
|
+
left = new Event4();
|
|
1585
|
+
/**
|
|
1586
|
+
* Live object state. Is changed on internal events.
|
|
1587
|
+
* CAUTION: Do not change directly.
|
|
1588
|
+
*/
|
|
1589
|
+
_state = live({
|
|
1590
|
+
call: {},
|
|
1591
|
+
media: {
|
|
1592
|
+
pulledAudioTracks: {},
|
|
1593
|
+
pulledVideoStreams: {}
|
|
1594
|
+
}
|
|
1595
|
+
});
|
|
1596
|
+
// TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
|
|
1597
|
+
_raisedHandSignal = computed(() => this._state.call.raisedHand ?? false);
|
|
1598
|
+
_speakingSignal = computed(() => this._state.call.speaking ?? false);
|
|
1599
|
+
_joinedSignal = computed(() => this._state.call.joined ?? false);
|
|
1600
|
+
_swarmSynchronizer;
|
|
1601
|
+
_mediaManager;
|
|
1690
1602
|
/** @reactive */
|
|
1691
1603
|
get roomId() {
|
|
1692
1604
|
return this._state.call.roomId;
|
|
@@ -1765,6 +1677,25 @@ var CallManager = class extends Resource5 {
|
|
|
1765
1677
|
turnScreenshareOff() {
|
|
1766
1678
|
return this._mediaManager.turnScreenshareOff();
|
|
1767
1679
|
}
|
|
1680
|
+
// TODO(burdon): Can this be mocked?
|
|
1681
|
+
constructor(_client) {
|
|
1682
|
+
super(), this._client = _client;
|
|
1683
|
+
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1684
|
+
const networkService = this._client.services.services.NetworkService;
|
|
1685
|
+
invariant5(networkService, "network service not found", {
|
|
1686
|
+
F: __dxlog_file6,
|
|
1687
|
+
L: 159,
|
|
1688
|
+
S: this,
|
|
1689
|
+
A: [
|
|
1690
|
+
"networkService",
|
|
1691
|
+
"'network service not found'"
|
|
1692
|
+
]
|
|
1693
|
+
});
|
|
1694
|
+
this._swarmSynchronizer = new CallSwarmSynchronizer({
|
|
1695
|
+
networkService
|
|
1696
|
+
});
|
|
1697
|
+
this._mediaManager = new MediaManager();
|
|
1698
|
+
}
|
|
1768
1699
|
async _open() {
|
|
1769
1700
|
await this._mediaManager.open();
|
|
1770
1701
|
await this._swarmSynchronizer.open();
|
|
@@ -1805,7 +1736,7 @@ var CallManager = class extends Resource5 {
|
|
|
1805
1736
|
this.roomId && this.left.emit(this.roomId);
|
|
1806
1737
|
}
|
|
1807
1738
|
_onCallStateUpdated(state) {
|
|
1808
|
-
const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self
|
|
1739
|
+
const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self.id)?.flatMap((user) => [
|
|
1809
1740
|
user.tracks?.video,
|
|
1810
1741
|
user.tracks?.audio,
|
|
1811
1742
|
user.tracks?.screenshare
|
|
@@ -1838,37 +1769,6 @@ var CallManager = class extends Resource5 {
|
|
|
1838
1769
|
this._state.call = this._swarmSynchronizer._getState();
|
|
1839
1770
|
this._state.media = this._mediaManager._getState();
|
|
1840
1771
|
}
|
|
1841
|
-
// TODO(burdon): Can this be mocked?
|
|
1842
|
-
constructor(_client) {
|
|
1843
|
-
super(), _define_property6(this, "_client", void 0), _define_property6(this, "callStateUpdated", void 0), // TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
|
|
1844
|
-
_define_property6(this, "mediaStateUpdated", void 0), _define_property6(this, "left", void 0), /**
|
|
1845
|
-
* Live object state. Is changed on internal events.
|
|
1846
|
-
* CAUTION: Do not change directly.
|
|
1847
|
-
*/
|
|
1848
|
-
_define_property6(this, "_state", void 0), // TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
|
|
1849
|
-
_define_property6(this, "_raisedHandSignal", void 0), _define_property6(this, "_speakingSignal", void 0), _define_property6(this, "_joinedSignal", void 0), _define_property6(this, "_swarmSynchronizer", void 0), _define_property6(this, "_mediaManager", void 0), this._client = _client, this.callStateUpdated = new Event4(), this.mediaStateUpdated = new Event4(), this.left = new Event4(), this._state = live({
|
|
1850
|
-
call: {},
|
|
1851
|
-
media: {
|
|
1852
|
-
pulledAudioTracks: {},
|
|
1853
|
-
pulledVideoStreams: {}
|
|
1854
|
-
}
|
|
1855
|
-
}), this._raisedHandSignal = computed(() => this._state.call.raisedHand ?? false), this._speakingSignal = computed(() => this._state.call.speaking ?? false), this._joinedSignal = computed(() => this._state.call.joined ?? false);
|
|
1856
|
-
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1857
|
-
const networkService = this._client.services.services.NetworkService;
|
|
1858
|
-
invariant4(networkService, "network service not found", {
|
|
1859
|
-
F: __dxlog_file5,
|
|
1860
|
-
L: 159,
|
|
1861
|
-
S: this,
|
|
1862
|
-
A: [
|
|
1863
|
-
"networkService",
|
|
1864
|
-
"'network service not found'"
|
|
1865
|
-
]
|
|
1866
|
-
});
|
|
1867
|
-
this._swarmSynchronizer = new CallSwarmSynchronizer({
|
|
1868
|
-
networkService
|
|
1869
|
-
});
|
|
1870
|
-
this._mediaManager = new MediaManager();
|
|
1871
|
-
}
|
|
1872
1772
|
};
|
|
1873
1773
|
_ts_decorate3([
|
|
1874
1774
|
synchronized3
|
|
@@ -1891,4 +1791,4 @@ export {
|
|
|
1891
1791
|
MediaManager,
|
|
1892
1792
|
CallManager
|
|
1893
1793
|
};
|
|
1894
|
-
//# sourceMappingURL=chunk-
|
|
1794
|
+
//# sourceMappingURL=chunk-7KZWZS2U.mjs.map
|