@dxos/plugin-thread 0.8.3 → 0.8.4-main.28f8d3d
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-O2SFQJU7.mjs +16 -0
- package/dist/lib/browser/ChatContainer-PVT3DUZJ.mjs +15 -0
- package/dist/lib/browser/{app-graph-builder-OY7R7EJP.mjs → app-graph-builder-AF3M7UWN.mjs} +8 -8
- package/dist/lib/browser/app-graph-builder-AF3M7UWN.mjs.map +7 -0
- package/dist/lib/browser/{call-manager-APQAZWHT.mjs → call-manager-XRRCAVLI.mjs} +6 -5
- package/dist/lib/browser/call-manager-XRRCAVLI.mjs.map +7 -0
- package/dist/lib/browser/chunk-2CWJBXBH.mjs +21 -0
- package/dist/lib/browser/{chunk-R5MDLUPC.mjs → chunk-4APCDRSH.mjs} +3 -3
- package/dist/lib/browser/{chunk-R5MDLUPC.mjs.map → chunk-4APCDRSH.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-AEXWNS6Z.mjs → chunk-DW7JD64V.mjs} +14 -5
- package/dist/lib/browser/chunk-DW7JD64V.mjs.map +7 -0
- package/dist/lib/browser/{chunk-IIUTBDVB.mjs → chunk-EV4JWI7L.mjs} +2 -2
- package/dist/lib/browser/chunk-FY4ZRD5X.mjs +367 -0
- package/dist/lib/browser/chunk-FY4ZRD5X.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JKQUJOTX.mjs → chunk-GERVMFQW.mjs} +2 -2
- package/dist/lib/browser/chunk-J3JO5NWO.mjs +477 -0
- package/dist/lib/browser/chunk-J3JO5NWO.mjs.map +7 -0
- package/dist/lib/browser/chunk-JGKMMI65.mjs +56 -0
- package/dist/lib/browser/chunk-JGKMMI65.mjs.map +7 -0
- package/dist/lib/browser/{chunk-4H4A264L.mjs → chunk-TUFWPOVS.mjs} +148 -158
- package/dist/lib/browser/chunk-TUFWPOVS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5P5BH5GE.mjs → chunk-X5PIP5YR.mjs} +67 -6
- package/dist/lib/browser/chunk-X5PIP5YR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XZKBN3NS.mjs → chunk-ZJ7QBXK6.mjs} +246 -245
- package/dist/lib/browser/chunk-ZJ7QBXK6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +36 -42
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-FK2MDVDT.mjs → intent-resolver-DCY4P4OX.mjs} +31 -15
- package/dist/lib/browser/intent-resolver-DCY4P4OX.mjs.map +7 -0
- package/dist/lib/browser/{markdown-TE5SWWNJ.mjs → markdown-WZSXCEZJ.mjs} +8 -8
- package/dist/lib/browser/markdown-WZSXCEZJ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-QXPALOUQ.mjs +28 -0
- package/dist/lib/browser/{react-surface-VXUJKSOG.mjs → react-surface-PYAMIADB.mjs} +12 -11
- package/dist/lib/browser/react-surface-PYAMIADB.mjs.map +7 -0
- package/dist/lib/browser/{settings-RB2RSLXV.mjs → settings-AC6YSASL.mjs} +4 -4
- package/dist/lib/browser/{state-RKL5MSDP.mjs → state-2T4KDWBX.mjs} +4 -4
- package/dist/lib/browser/{state-RKL5MSDP.mjs.map → state-2T4KDWBX.mjs.map} +2 -2
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/ChannelContainer-B2ZGAE4P.mjs +17 -0
- package/dist/lib/node-esm/{ChatContainer-F6CSADV7.mjs → ChatContainer-2CT4PJ7I.mjs} +6 -5
- package/dist/lib/node-esm/{app-graph-builder-BAHBHYWI.mjs → app-graph-builder-OLSJVCWY.mjs} +8 -8
- package/dist/lib/node-esm/app-graph-builder-OLSJVCWY.mjs.map +7 -0
- package/dist/lib/node-esm/{call-manager-UUYXLF4T.mjs → call-manager-EI7FXRAU.mjs} +6 -5
- package/dist/lib/node-esm/call-manager-EI7FXRAU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-WXNPD542.mjs → chunk-4TME3BR4.mjs} +147 -158
- package/dist/lib/node-esm/chunk-4TME3BR4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PGRP3O4O.mjs → chunk-57XR3LEF.mjs} +2 -2
- package/dist/lib/node-esm/chunk-6CRHHOST.mjs +23 -0
- package/dist/lib/node-esm/chunk-BF4UKS55.mjs +368 -0
- package/dist/lib/node-esm/chunk-BF4UKS55.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ESQC6SYE.mjs → chunk-GRLRWTRU.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-K4KAUOKT.mjs → chunk-PYTVBN5J.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-K4KAUOKT.mjs.map → chunk-PYTVBN5J.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-QBHKLWGR.mjs +58 -0
- package/dist/lib/node-esm/chunk-QBHKLWGR.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-O3V45YJP.mjs → chunk-SED3O2XO.mjs} +66 -6
- package/dist/lib/node-esm/chunk-SED3O2XO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-VNG6M2IY.mjs +478 -0
- package/dist/lib/node-esm/chunk-VNG6M2IY.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-UJMPYKT3.mjs → chunk-XVKWHTH4.mjs} +14 -5
- package/dist/lib/node-esm/chunk-XVKWHTH4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2RNIPFDA.mjs → chunk-YIDU3DXK.mjs} +246 -245
- package/dist/lib/node-esm/chunk-YIDU3DXK.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +36 -42
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-BU73VYW3.mjs → intent-resolver-QGTPU6QB.mjs} +31 -15
- package/dist/lib/node-esm/intent-resolver-QGTPU6QB.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-HJUWNBLS.mjs → markdown-3MZXUGUA.mjs} +8 -8
- package/dist/lib/node-esm/markdown-3MZXUGUA.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-RUXOAQNW.mjs → react-root-7ZFJYVUZ.mjs} +12 -11
- package/dist/lib/{browser/react-root-NK3A4VG7.mjs.map → node-esm/react-root-7ZFJYVUZ.mjs.map} +1 -1
- package/dist/lib/node-esm/{react-surface-ELXFYKP6.mjs → react-surface-UJFCSFNO.mjs} +12 -11
- package/dist/lib/node-esm/react-surface-UJFCSFNO.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-EA7DFSM6.mjs → settings-N52O7MLS.mjs} +4 -4
- package/dist/lib/node-esm/{state-6AUTNROZ.mjs → state-62TQKQVB.mjs} +4 -4
- package/dist/lib/node-esm/{state-6AUTNROZ.mjs.map → state-62TQKQVB.mjs.map} +2 -2
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/calls/call-manager.d.ts +1 -1
- package/dist/types/src/calls/call-manager.d.ts.map +1 -1
- package/dist/types/src/calls/call-swarm-synchronizer.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 +1 -1
- package/dist/types/src/calls/types.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +5 -2
- 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 +22 -0
- package/dist/types/src/calls-service.stories.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
- 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 +1 -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 +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/state.d.ts.map +1 -1
- package/dist/types/src/components/Call/Call.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +2 -2
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts +3 -2
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +2 -2
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts +1 -1
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +4 -4
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts +14 -0
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -0
- package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +1 -1
- 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/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts +2 -2
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts +2 -0
- package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts.map +1 -0
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts +3 -0
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -0
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +74 -194
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +53 -22
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +72 -24
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +17 -2
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +49 -48
- package/src/ThreadPlugin.tsx +9 -24
- package/src/calls/call-manager.ts +7 -3
- package/src/calls/call-swarm-synchronizer.ts +1 -1
- package/src/calls/media-manager.ts +13 -6
- package/src/calls/types.ts +1 -1
- package/src/calls/util/calls-service.ts +12 -8
- package/src/calls/util/stub-media-streams.ts +5 -8
- package/src/calls-service.stories.tsx +216 -0
- package/src/capabilities/app-graph-builder.ts +6 -5
- package/src/capabilities/call-manager.ts +3 -2
- package/src/capabilities/capabilities.ts +2 -2
- package/src/capabilities/intent-resolver.ts +26 -7
- package/src/capabilities/markdown.ts +4 -3
- package/src/capabilities/react-surface.tsx +5 -4
- package/src/capabilities/state.ts +2 -1
- package/src/components/Call/Call.tsx +4 -3
- package/src/components/Call/Toolbar.tsx +5 -5
- package/src/components/CallDebugPanel.tsx +3 -3
- package/src/components/CallSidebar.tsx +2 -1
- package/src/components/ChannelContainer.stories.tsx +8 -7
- package/src/components/ChannelContainer.tsx +13 -11
- package/src/components/Chat.stories.tsx +7 -6
- package/src/components/ChatContainer.tsx +16 -14
- package/src/components/Comments.stories.tsx +24 -16
- package/src/components/CommentsContainer.tsx +17 -11
- package/src/components/{CommentContainer.tsx → CommentsThreadContainer.tsx} +51 -81
- package/src/components/Lobby/Lobby.tsx +1 -1
- package/src/components/Media/VideoObject.stories.tsx +4 -3
- package/src/components/MessageContainer.tsx +31 -46
- package/src/components/Participant/ParticipantGrid.tsx +2 -1
- package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +5 -4
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +5 -4
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +4 -4
- package/src/components/ThreadComplementary.tsx +3 -3
- package/src/components/ThreadSettings.tsx +2 -2
- package/src/components/command-extension.ts +1 -1
- package/src/components/index.ts +1 -1
- package/src/components/testing.ts +2 -2
- package/src/extensions/threads.ts +6 -6
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useDebugMode.ts +1 -1
- package/src/hooks/useInaudibleAudioStreamTrack.tsx +27 -0
- package/src/hooks/useVideoStreamTrack.tsx +33 -0
- package/src/testing/stories.ts +7 -3
- package/src/translations.ts +11 -8
- package/src/types/types.ts +11 -2
- package/src/typings.d.ts +8 -0
- package/dist/lib/browser/ChannelContainer-PKFBVENP.mjs +0 -15
- package/dist/lib/browser/ChatContainer-RSOKYAMK.mjs +0 -14
- package/dist/lib/browser/app-graph-builder-OY7R7EJP.mjs.map +0 -7
- package/dist/lib/browser/call-manager-APQAZWHT.mjs.map +0 -7
- package/dist/lib/browser/chunk-4H4A264L.mjs.map +0 -7
- package/dist/lib/browser/chunk-5P5BH5GE.mjs.map +0 -7
- package/dist/lib/browser/chunk-6NBVNXTM.mjs +0 -21
- package/dist/lib/browser/chunk-AEXWNS6Z.mjs.map +0 -7
- package/dist/lib/browser/chunk-PG5CTFKK.mjs +0 -550
- package/dist/lib/browser/chunk-PG5CTFKK.mjs.map +0 -7
- package/dist/lib/browser/chunk-TAFSCSUR.mjs +0 -351
- package/dist/lib/browser/chunk-TAFSCSUR.mjs.map +0 -7
- package/dist/lib/browser/chunk-XZKBN3NS.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-FK2MDVDT.mjs.map +0 -7
- package/dist/lib/browser/markdown-TE5SWWNJ.mjs.map +0 -7
- package/dist/lib/browser/react-root-NK3A4VG7.mjs +0 -27
- package/dist/lib/browser/react-surface-VXUJKSOG.mjs.map +0 -7
- package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs +0 -36
- package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs.map +0 -7
- package/dist/lib/node/ChatContainer-GCOM3M56.cjs +0 -35
- package/dist/lib/node/ChatContainer-GCOM3M56.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs +0 -179
- package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs.map +0 -7
- package/dist/lib/node/call-manager-HV2XJW5O.cjs +0 -37
- package/dist/lib/node/call-manager-HV2XJW5O.cjs.map +0 -7
- package/dist/lib/node/chunk-44I33JDT.cjs +0 -1731
- package/dist/lib/node/chunk-44I33JDT.cjs.map +0 -7
- package/dist/lib/node/chunk-4YSNVPWU.cjs +0 -37
- package/dist/lib/node/chunk-4YSNVPWU.cjs.map +0 -7
- package/dist/lib/node/chunk-E3WBZTTI.cjs +0 -371
- package/dist/lib/node/chunk-E3WBZTTI.cjs.map +0 -7
- package/dist/lib/node/chunk-ERG7G6FF.cjs +0 -59
- package/dist/lib/node/chunk-ERG7G6FF.cjs.map +0 -7
- package/dist/lib/node/chunk-FUXJAVFZ.cjs +0 -108
- package/dist/lib/node/chunk-FUXJAVFZ.cjs.map +0 -7
- package/dist/lib/node/chunk-HLMCEE5K.cjs +0 -41
- package/dist/lib/node/chunk-HLMCEE5K.cjs.map +0 -7
- package/dist/lib/node/chunk-IP533AMV.cjs +0 -554
- package/dist/lib/node/chunk-IP533AMV.cjs.map +0 -7
- package/dist/lib/node/chunk-LR5NENBE.cjs +0 -54
- package/dist/lib/node/chunk-LR5NENBE.cjs.map +0 -7
- package/dist/lib/node/chunk-UM36TPCT.cjs +0 -984
- package/dist/lib/node/chunk-UM36TPCT.cjs.map +0 -7
- package/dist/lib/node/chunk-ZGDN3XBR.cjs +0 -149
- package/dist/lib/node/chunk-ZGDN3XBR.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -310
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs +0 -363
- package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs.map +0 -7
- package/dist/lib/node/markdown-GQIPJS2F.cjs +0 -178
- package/dist/lib/node/markdown-GQIPJS2F.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-root-6HHDMULJ.cjs +0 -51
- package/dist/lib/node/react-root-6HHDMULJ.cjs.map +0 -7
- package/dist/lib/node/react-surface-NBH42NN2.cjs +0 -122
- package/dist/lib/node/react-surface-NBH42NN2.cjs.map +0 -7
- package/dist/lib/node/settings-4LQSFEDK.cjs +0 -36
- package/dist/lib/node/settings-4LQSFEDK.cjs.map +0 -7
- package/dist/lib/node/state-IY5XX3H2.cjs +0 -50
- package/dist/lib/node/state-IY5XX3H2.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs +0 -38
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-O4QJII2P.mjs +0 -16
- package/dist/lib/node-esm/app-graph-builder-BAHBHYWI.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-UUYXLF4T.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2RNIPFDA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-O3V45YJP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-O63QJPQX.mjs +0 -23
- package/dist/lib/node-esm/chunk-P6RLFCNT.mjs +0 -352
- package/dist/lib/node-esm/chunk-P6RLFCNT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UJMPYKT3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UZWVVFT3.mjs +0 -551
- package/dist/lib/node-esm/chunk-UZWVVFT3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WXNPD542.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-BU73VYW3.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-HJUWNBLS.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ELXFYKP6.mjs.map +0 -7
- package/dist/types/src/components/CommentContainer.d.ts +0 -13
- package/dist/types/src/components/CommentContainer.d.ts.map +0 -1
- package/dist/types/src/peers.stories.d.ts +0 -11
- package/dist/types/src/peers.stories.d.ts.map +0 -1
- package/src/peers.stories.tsx +0 -189
- /package/dist/lib/browser/{ChannelContainer-PKFBVENP.mjs.map → ChannelContainer-O2SFQJU7.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-RSOKYAMK.mjs.map → ChatContainer-PVT3DUZJ.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-6NBVNXTM.mjs.map → chunk-2CWJBXBH.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-IIUTBDVB.mjs.map → chunk-EV4JWI7L.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-JKQUJOTX.mjs.map → chunk-GERVMFQW.mjs.map} +0 -0
- /package/dist/lib/{node-esm/react-root-RUXOAQNW.mjs.map → browser/react-root-QXPALOUQ.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-RB2RSLXV.mjs.map → settings-AC6YSASL.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChannelContainer-O4QJII2P.mjs.map → ChannelContainer-B2ZGAE4P.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-F6CSADV7.mjs.map → ChatContainer-2CT4PJ7I.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-PGRP3O4O.mjs.map → chunk-57XR3LEF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-O63QJPQX.mjs.map → chunk-6CRHHOST.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-ESQC6SYE.mjs.map → chunk-GRLRWTRU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-EA7DFSM6.mjs.map → settings-N52O7MLS.mjs.map} +0 -0
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import {
|
|
2
|
+
createBlackCanvasStreamTrack,
|
|
3
|
+
createInaudibleAudioStreamTrack
|
|
4
|
+
} from "./chunk-JGKMMI65.mjs";
|
|
5
|
+
|
|
6
|
+
// src/calls/types.ts
|
|
2
7
|
import { buf } from "@dxos/protocols/buf";
|
|
3
8
|
import { UserStateSchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
4
9
|
var CALLS_URL = "https://calls-service.dxos.workers.dev";
|
|
@@ -24,7 +29,7 @@ var TrackNameCodec = {
|
|
|
24
29
|
}
|
|
25
30
|
};
|
|
26
31
|
|
|
27
|
-
//
|
|
32
|
+
// src/calls/call-swarm-synchronizer.ts
|
|
28
33
|
import md5Hex from "md5-hex";
|
|
29
34
|
import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
|
|
30
35
|
import { Context, Resource } from "@dxos/context";
|
|
@@ -42,22 +47,23 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
42
47
|
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;
|
|
43
48
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
44
49
|
}
|
|
45
|
-
var __dxlog_file = "/
|
|
50
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
|
|
46
51
|
var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
|
|
47
52
|
var CallSwarmSynchronizer = class extends Resource {
|
|
53
|
+
stateUpdated = new Event();
|
|
54
|
+
_state = {
|
|
55
|
+
activities: {}
|
|
56
|
+
};
|
|
57
|
+
_networkService;
|
|
58
|
+
_lastSwarmEvent = void 0;
|
|
59
|
+
_reconcileSwarmStateTask = void 0;
|
|
60
|
+
_identityKey = void 0;
|
|
61
|
+
_deviceKey = void 0;
|
|
62
|
+
_displayName = void 0;
|
|
63
|
+
_swarmCtx = void 0;
|
|
64
|
+
_sendStateTask = void 0;
|
|
48
65
|
constructor({ networkService }) {
|
|
49
66
|
super();
|
|
50
|
-
this.stateUpdated = new Event();
|
|
51
|
-
this._state = {
|
|
52
|
-
activities: {}
|
|
53
|
-
};
|
|
54
|
-
this._lastSwarmEvent = void 0;
|
|
55
|
-
this._reconcileSwarmStateTask = void 0;
|
|
56
|
-
this._identityKey = void 0;
|
|
57
|
-
this._deviceKey = void 0;
|
|
58
|
-
this._displayName = void 0;
|
|
59
|
-
this._swarmCtx = void 0;
|
|
60
|
-
this._sendStateTask = void 0;
|
|
61
67
|
this._networkService = networkService;
|
|
62
68
|
}
|
|
63
69
|
/**
|
|
@@ -355,7 +361,7 @@ var LamportTimestampCrdt = class {
|
|
|
355
361
|
};
|
|
356
362
|
var getTopic = (roomId) => PublicKey.fromHex(md5Hex(roomId));
|
|
357
363
|
|
|
358
|
-
//
|
|
364
|
+
// src/calls/util/audio.ts
|
|
359
365
|
var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure }) => {
|
|
360
366
|
let timeout = -1;
|
|
361
367
|
let interval = -1;
|
|
@@ -397,14 +403,16 @@ var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure })
|
|
|
397
403
|
};
|
|
398
404
|
};
|
|
399
405
|
|
|
400
|
-
//
|
|
406
|
+
// src/calls/util/calls-service.ts
|
|
401
407
|
import { PersistentLifecycle } from "@dxos/async";
|
|
402
408
|
import { Resource as Resource2 } from "@dxos/context";
|
|
403
409
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
404
410
|
import { log as log2 } from "@dxos/log";
|
|
405
411
|
|
|
406
|
-
//
|
|
412
|
+
// src/calls/util/history-cache.ts
|
|
407
413
|
var HistoryCache = class {
|
|
414
|
+
_limit;
|
|
415
|
+
_messages;
|
|
408
416
|
constructor(limit = 100) {
|
|
409
417
|
this._limit = limit;
|
|
410
418
|
this._messages = [];
|
|
@@ -420,7 +428,7 @@ var HistoryCache = class {
|
|
|
420
428
|
}
|
|
421
429
|
};
|
|
422
430
|
|
|
423
|
-
//
|
|
431
|
+
// src/calls/util/task-scheduling.ts
|
|
424
432
|
var DefaultBatchSizeLimit = 64;
|
|
425
433
|
var FIFOScheduler = class {
|
|
426
434
|
#schedulerChain;
|
|
@@ -477,21 +485,22 @@ var BulkRequestDispatcher = class {
|
|
|
477
485
|
}
|
|
478
486
|
};
|
|
479
487
|
|
|
480
|
-
//
|
|
481
|
-
var __dxlog_file2 = "/
|
|
488
|
+
// src/calls/util/calls-service.ts
|
|
489
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
|
|
482
490
|
var NETWORK_TIMEOUT = 5e3;
|
|
483
491
|
var CallsServicePeer = class extends Resource2 {
|
|
492
|
+
history = new HistoryCache(100);
|
|
493
|
+
_persistentLifecycle = new PersistentLifecycle({
|
|
494
|
+
start: () => this._startSession(),
|
|
495
|
+
stop: (session) => this._stopSession(session)
|
|
496
|
+
});
|
|
497
|
+
_config;
|
|
498
|
+
taskScheduler = new FIFOScheduler();
|
|
499
|
+
pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
500
|
+
pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
501
|
+
closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
484
502
|
constructor(config) {
|
|
485
503
|
super();
|
|
486
|
-
this.history = new HistoryCache(100);
|
|
487
|
-
this._persistentLifecycle = new PersistentLifecycle({
|
|
488
|
-
start: () => this._startSession(),
|
|
489
|
-
stop: (session) => this._stopSession(session)
|
|
490
|
-
});
|
|
491
|
-
this.taskScheduler = new FIFOScheduler();
|
|
492
|
-
this.pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
493
|
-
this.pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
494
|
-
this.closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
495
504
|
this._config = config;
|
|
496
505
|
}
|
|
497
506
|
async _open(ctx) {
|
|
@@ -525,7 +534,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
525
534
|
state: peerConnection.connectionState
|
|
526
535
|
}, {
|
|
527
536
|
F: __dxlog_file2,
|
|
528
|
-
L:
|
|
537
|
+
L: 119,
|
|
529
538
|
S: this,
|
|
530
539
|
C: (f, a) => f(...a)
|
|
531
540
|
});
|
|
@@ -540,7 +549,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
540
549
|
state: peerConnection.iceConnectionState
|
|
541
550
|
}, {
|
|
542
551
|
F: __dxlog_file2,
|
|
543
|
-
L:
|
|
552
|
+
L: 128,
|
|
544
553
|
S: this,
|
|
545
554
|
C: (f, a) => f(...a)
|
|
546
555
|
});
|
|
@@ -551,7 +560,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
551
560
|
if (peerConnection.iceConnectionState === "connected") {
|
|
552
561
|
log2.info("calls iceConnectionState is connected", void 0, {
|
|
553
562
|
F: __dxlog_file2,
|
|
554
|
-
L:
|
|
563
|
+
L: 137,
|
|
555
564
|
S: this,
|
|
556
565
|
C: (f, a) => f(...a)
|
|
557
566
|
});
|
|
@@ -562,7 +571,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
562
571
|
timeoutSeconds
|
|
563
572
|
}, {
|
|
564
573
|
F: __dxlog_file2,
|
|
565
|
-
L:
|
|
574
|
+
L: 141,
|
|
566
575
|
S: this,
|
|
567
576
|
C: (f, a) => f(...a)
|
|
568
577
|
});
|
|
@@ -575,7 +584,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
575
584
|
async _initiateCallSession() {
|
|
576
585
|
log2("creating new session", void 0, {
|
|
577
586
|
F: __dxlog_file2,
|
|
578
|
-
L:
|
|
587
|
+
L: 151,
|
|
579
588
|
S: this,
|
|
580
589
|
C: (f, a) => f(...a)
|
|
581
590
|
});
|
|
@@ -601,7 +610,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
601
610
|
text: await response.text()
|
|
602
611
|
}, {
|
|
603
612
|
F: __dxlog_file2,
|
|
604
|
-
L:
|
|
613
|
+
L: 166,
|
|
605
614
|
S: this,
|
|
606
615
|
C: (f, a) => f(...a)
|
|
607
616
|
});
|
|
@@ -633,7 +642,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
633
642
|
status: response.status
|
|
634
643
|
}, {
|
|
635
644
|
F: __dxlog_file2,
|
|
636
|
-
L:
|
|
645
|
+
L: 191,
|
|
637
646
|
S: this,
|
|
638
647
|
C: (f, a) => f(...a)
|
|
639
648
|
});
|
|
@@ -643,7 +652,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
643
652
|
async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
|
|
644
653
|
log2.verbose("pushing track ", trackName, {
|
|
645
654
|
F: __dxlog_file2,
|
|
646
|
-
L:
|
|
655
|
+
L: 213,
|
|
647
656
|
S: this,
|
|
648
657
|
C: (f, a) => f(...a)
|
|
649
658
|
});
|
|
@@ -670,7 +679,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
670
679
|
});
|
|
671
680
|
invariant2(response.tracks !== void 0, void 0, {
|
|
672
681
|
F: __dxlog_file2,
|
|
673
|
-
L:
|
|
682
|
+
L: 238,
|
|
674
683
|
S: this,
|
|
675
684
|
A: [
|
|
676
685
|
"response.tracks !== undefined",
|
|
@@ -695,7 +704,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
695
704
|
} else {
|
|
696
705
|
log2.error("missing track data", void 0, {
|
|
697
706
|
F: __dxlog_file2,
|
|
698
|
-
L:
|
|
707
|
+
L: 258,
|
|
699
708
|
S: this,
|
|
700
709
|
C: (f, a) => f(...a)
|
|
701
710
|
});
|
|
@@ -703,7 +712,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
703
712
|
}).catch((err) => {
|
|
704
713
|
log2.catch(err, void 0, {
|
|
705
714
|
F: __dxlog_file2,
|
|
706
|
-
L:
|
|
715
|
+
L: 262,
|
|
707
716
|
S: this,
|
|
708
717
|
C: (f, a) => f(...a)
|
|
709
718
|
});
|
|
@@ -721,7 +730,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
721
730
|
await this.waitUntilOpen();
|
|
722
731
|
invariant2(this.session, void 0, {
|
|
723
732
|
F: __dxlog_file2,
|
|
724
|
-
L:
|
|
733
|
+
L: 289,
|
|
725
734
|
S: this,
|
|
726
735
|
A: [
|
|
727
736
|
"this.session",
|
|
@@ -734,7 +743,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
734
743
|
encodings
|
|
735
744
|
}, {
|
|
736
745
|
F: __dxlog_file2,
|
|
737
|
-
L:
|
|
746
|
+
L: 290,
|
|
738
747
|
S: this,
|
|
739
748
|
C: (f, a) => f(...a)
|
|
740
749
|
});
|
|
@@ -747,7 +756,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
747
756
|
transceiver: transceiver2
|
|
748
757
|
}, {
|
|
749
758
|
F: __dxlog_file2,
|
|
750
|
-
L:
|
|
759
|
+
L: 294,
|
|
751
760
|
S: this,
|
|
752
761
|
C: (f, a) => f(...a)
|
|
753
762
|
});
|
|
@@ -759,13 +768,13 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
759
768
|
transceiver: transceiver2
|
|
760
769
|
}, {
|
|
761
770
|
F: __dxlog_file2,
|
|
762
|
-
L:
|
|
771
|
+
L: 297,
|
|
763
772
|
S: this,
|
|
764
773
|
C: (f, a) => f(...a)
|
|
765
774
|
});
|
|
766
775
|
transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
|
|
767
776
|
F: __dxlog_file2,
|
|
768
|
-
L:
|
|
777
|
+
L: 298,
|
|
769
778
|
S: this,
|
|
770
779
|
C: (f, a) => f(...a)
|
|
771
780
|
}));
|
|
@@ -774,7 +783,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
774
783
|
}
|
|
775
784
|
invariant2(track, void 0, {
|
|
776
785
|
F: __dxlog_file2,
|
|
777
|
-
L:
|
|
786
|
+
L: 302,
|
|
778
787
|
S: this,
|
|
779
788
|
A: [
|
|
780
789
|
"track",
|
|
@@ -787,7 +796,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
787
796
|
});
|
|
788
797
|
log2.verbose("creating transceiver", void 0, {
|
|
789
798
|
F: __dxlog_file2,
|
|
790
|
-
L:
|
|
799
|
+
L: 307,
|
|
791
800
|
S: this,
|
|
792
801
|
C: (f, a) => f(...a)
|
|
793
802
|
});
|
|
@@ -800,7 +809,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
800
809
|
});
|
|
801
810
|
invariant2(pushedTrackData, void 0, {
|
|
802
811
|
F: __dxlog_file2,
|
|
803
|
-
L:
|
|
812
|
+
L: 316,
|
|
804
813
|
S: this,
|
|
805
814
|
A: [
|
|
806
815
|
"pushedTrackData",
|
|
@@ -817,7 +826,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
817
826
|
});
|
|
818
827
|
transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
|
|
819
828
|
F: __dxlog_file2,
|
|
820
|
-
L:
|
|
829
|
+
L: 323,
|
|
821
830
|
S: this,
|
|
822
831
|
C: (f, a) => f(...a)
|
|
823
832
|
}));
|
|
@@ -830,7 +839,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
830
839
|
trackName: trackData.trackName
|
|
831
840
|
}, {
|
|
832
841
|
F: __dxlog_file2,
|
|
833
|
-
L:
|
|
842
|
+
L: 341,
|
|
834
843
|
S: this,
|
|
835
844
|
C: (f, a) => f(...a)
|
|
836
845
|
});
|
|
@@ -846,7 +855,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
846
855
|
}
|
|
847
856
|
invariant2(newTrackResponse.tracks, void 0, {
|
|
848
857
|
F: __dxlog_file2,
|
|
849
|
-
L:
|
|
858
|
+
L: 354,
|
|
850
859
|
S: this,
|
|
851
860
|
A: [
|
|
852
861
|
"newTrackResponse.tracks",
|
|
@@ -856,7 +865,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
856
865
|
const trackMap = tracks.reduce((acc, track) => {
|
|
857
866
|
const pulledTrackData = newTrackResponse.tracks?.find((t) => t.trackName === track.trackName && t.sessionId === track.sessionId);
|
|
858
867
|
if (pulledTrackData && pulledTrackData.mid) {
|
|
859
|
-
acc.set(track, {
|
|
868
|
+
acc.set(track.trackName, {
|
|
860
869
|
mid: pulledTrackData.mid,
|
|
861
870
|
resolvedTrack: resolveTrack(peerConnection, (t) => t.mid === pulledTrackData.mid)
|
|
862
871
|
});
|
|
@@ -886,21 +895,24 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
886
895
|
trackMap
|
|
887
896
|
};
|
|
888
897
|
})).then(({ trackMap }) => {
|
|
889
|
-
const trackInfo = trackMap.get(trackData);
|
|
898
|
+
const trackInfo = trackMap.get(trackData.trackName);
|
|
890
899
|
if (trackInfo) {
|
|
891
900
|
return trackInfo.resolvedTrack.then((track) => {
|
|
892
901
|
mid = trackInfo.mid;
|
|
893
902
|
return track;
|
|
894
903
|
}).catch((err) => log2.catch(err, void 0, {
|
|
895
904
|
F: __dxlog_file2,
|
|
896
|
-
L:
|
|
905
|
+
L: 406,
|
|
897
906
|
S: this,
|
|
898
907
|
C: (f, a) => f(...a)
|
|
899
908
|
}));
|
|
900
909
|
} else {
|
|
901
|
-
log2.
|
|
910
|
+
log2.warn("missing track info", {
|
|
911
|
+
trackData,
|
|
912
|
+
availableTracks: Array.from(trackMap.keys())
|
|
913
|
+
}, {
|
|
902
914
|
F: __dxlog_file2,
|
|
903
|
-
L:
|
|
915
|
+
L: 408,
|
|
904
916
|
S: this,
|
|
905
917
|
C: (f, a) => f(...a)
|
|
906
918
|
});
|
|
@@ -910,7 +922,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
910
922
|
if (mid) {
|
|
911
923
|
log2("closing pulled track ", trackData.trackName, {
|
|
912
924
|
F: __dxlog_file2,
|
|
913
|
-
L:
|
|
925
|
+
L: 414,
|
|
914
926
|
S: this,
|
|
915
927
|
C: (f, a) => f(...a)
|
|
916
928
|
});
|
|
@@ -926,7 +938,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
926
938
|
await this.waitUntilOpen();
|
|
927
939
|
invariant2(this.session, void 0, {
|
|
928
940
|
F: __dxlog_file2,
|
|
929
|
-
L:
|
|
941
|
+
L: 435,
|
|
930
942
|
S: this,
|
|
931
943
|
A: [
|
|
932
944
|
"this.session",
|
|
@@ -1010,9 +1022,9 @@ var peerConnectionIsConnected = async (peerConnection) => {
|
|
|
1010
1022
|
}
|
|
1011
1023
|
};
|
|
1012
1024
|
|
|
1013
|
-
//
|
|
1025
|
+
// src/calls/util/media.ts
|
|
1014
1026
|
import { log as log3 } from "@dxos/log";
|
|
1015
|
-
var __dxlog_file3 = "/
|
|
1027
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
|
|
1016
1028
|
var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
1017
1029
|
deviceList ??= (await getDeviceList()).filter((device) => device.kind === kind);
|
|
1018
1030
|
const firstDevice = deviceList[0];
|
|
@@ -1066,58 +1078,7 @@ var getScreenshare = async ({ contentHint }) => {
|
|
|
1066
1078
|
return ms;
|
|
1067
1079
|
};
|
|
1068
1080
|
|
|
1069
|
-
//
|
|
1070
|
-
import { waitForCondition, scheduleTaskInterval as scheduleTaskInterval2 } from "@dxos/async";
|
|
1071
|
-
import { cancelWithContext } from "@dxos/context";
|
|
1072
|
-
import { invariant as invariant3 } from "@dxos/invariant";
|
|
1073
|
-
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/stub-media-streams.ts";
|
|
1074
|
-
var createBlackCanvasStreamTrack = async ({ ctx, width, height }) => {
|
|
1075
|
-
const canvas = document.createElement("canvas");
|
|
1076
|
-
canvas.width = width;
|
|
1077
|
-
canvas.height = height;
|
|
1078
|
-
const canvasCtx = canvas.getContext("2d");
|
|
1079
|
-
invariant3(canvasCtx, void 0, {
|
|
1080
|
-
F: __dxlog_file4,
|
|
1081
|
-
L: 28,
|
|
1082
|
-
S: void 0,
|
|
1083
|
-
A: [
|
|
1084
|
-
"canvasCtx",
|
|
1085
|
-
""
|
|
1086
|
-
]
|
|
1087
|
-
});
|
|
1088
|
-
const drawFrame = () => {
|
|
1089
|
-
canvasCtx.fillStyle = "black";
|
|
1090
|
-
canvasCtx.fillRect(0, 0, canvas.width, canvas.height);
|
|
1091
|
-
};
|
|
1092
|
-
scheduleTaskInterval2(ctx, async () => drawFrame(), 1e3);
|
|
1093
|
-
const track = canvas.captureStream().getVideoTracks()[0];
|
|
1094
|
-
drawFrame();
|
|
1095
|
-
await cancelWithContext(ctx, waitForCondition({
|
|
1096
|
-
condition: () => track.readyState === "live",
|
|
1097
|
-
timeout: 1e3
|
|
1098
|
-
}));
|
|
1099
|
-
return track;
|
|
1100
|
-
};
|
|
1101
|
-
var createInaudibleAudioStreamTrack = async ({ ctx }) => {
|
|
1102
|
-
const audioContext = new window.AudioContext();
|
|
1103
|
-
const oscillator = audioContext.createOscillator();
|
|
1104
|
-
oscillator.type = "triangle";
|
|
1105
|
-
oscillator.frequency.setValueAtTime(0.1, audioContext.currentTime);
|
|
1106
|
-
const gainNode = audioContext.createGain();
|
|
1107
|
-
gainNode.gain.setValueAtTime(0, audioContext.currentTime);
|
|
1108
|
-
oscillator.connect(gainNode);
|
|
1109
|
-
const destination = audioContext.createMediaStreamDestination();
|
|
1110
|
-
gainNode.connect(destination);
|
|
1111
|
-
oscillator.start();
|
|
1112
|
-
ctx.onDispose(async () => {
|
|
1113
|
-
oscillator.disconnect();
|
|
1114
|
-
oscillator.stop();
|
|
1115
|
-
await audioContext.close();
|
|
1116
|
-
});
|
|
1117
|
-
return destination.stream.getAudioTracks()[0];
|
|
1118
|
-
};
|
|
1119
|
-
|
|
1120
|
-
// packages/plugins/plugin-thread/src/calls/speaking-monitor.ts
|
|
1081
|
+
// src/calls/speaking-monitor.ts
|
|
1121
1082
|
import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
|
|
1122
1083
|
import { Resource as Resource3 } from "@dxos/context";
|
|
1123
1084
|
var NOT_SPEAKING_AFTER = 500;
|
|
@@ -1125,6 +1086,18 @@ var START_SPEAKING_THRESHOLD = 0.05;
|
|
|
1125
1086
|
var CONTINUE_SPEAKING_THRESHOLD = 0.02;
|
|
1126
1087
|
var MIN_EVENT_INTERVAL = 100;
|
|
1127
1088
|
var SpeakingMonitor = class extends Resource3 {
|
|
1089
|
+
_mediaStreamTrack;
|
|
1090
|
+
/**
|
|
1091
|
+
* Event that is emitted when the user starts or stops speaking.
|
|
1092
|
+
* It is debounced to prevent rapid state changes.
|
|
1093
|
+
*/
|
|
1094
|
+
speakingChanged;
|
|
1095
|
+
/**
|
|
1096
|
+
* Real state of the user speaking.
|
|
1097
|
+
*/
|
|
1098
|
+
_isSpeaking;
|
|
1099
|
+
_lastEventTime;
|
|
1100
|
+
_deferredUpdate;
|
|
1128
1101
|
constructor(_mediaStreamTrack) {
|
|
1129
1102
|
super(), this._mediaStreamTrack = _mediaStreamTrack, this.speakingChanged = new Event2(), this._isSpeaking = false, this._lastEventTime = 0;
|
|
1130
1103
|
}
|
|
@@ -1173,9 +1146,9 @@ var SpeakingMonitor = class extends Resource3 {
|
|
|
1173
1146
|
}
|
|
1174
1147
|
};
|
|
1175
1148
|
|
|
1176
|
-
//
|
|
1149
|
+
// src/calls/media-manager.ts
|
|
1177
1150
|
import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
|
|
1178
|
-
import {
|
|
1151
|
+
import { Resource as Resource4, cancelWithContext } from "@dxos/context";
|
|
1179
1152
|
import { log as log4 } from "@dxos/log";
|
|
1180
1153
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
1181
1154
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1183,27 +1156,25 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
1183
1156
|
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;
|
|
1184
1157
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1185
1158
|
}
|
|
1186
|
-
var
|
|
1159
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
|
|
1187
1160
|
var VIDEO_WIDTH = 1280;
|
|
1188
1161
|
var VIDEO_HEIGHT = 720;
|
|
1189
1162
|
var MAX_WEB_CAM_FRAMERATE = 24;
|
|
1190
1163
|
var MAX_WEB_CAM_BITRATE = 12e5;
|
|
1191
1164
|
var RETRY_INTERVAL = 500;
|
|
1165
|
+
var USE_INAUDIBLE_AUDIO = false;
|
|
1192
1166
|
var MediaManager = class extends Resource4 {
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
this._pushTracksTask = void 0;
|
|
1205
|
-
this._pullTracksTask = void 0;
|
|
1206
|
-
}
|
|
1167
|
+
stateUpdated = new Event3();
|
|
1168
|
+
_state = {
|
|
1169
|
+
pulledVideoStreams: {},
|
|
1170
|
+
pulledAudioTracks: {}
|
|
1171
|
+
};
|
|
1172
|
+
_speakingMonitor = void 0;
|
|
1173
|
+
_trackToReconcile = [];
|
|
1174
|
+
_blackCanvasStreamTrack = void 0;
|
|
1175
|
+
_inaudibleAudioStreamTrack = void 0;
|
|
1176
|
+
_pushTracksTask = void 0;
|
|
1177
|
+
_pullTracksTask = void 0;
|
|
1207
1178
|
get isSpeaking() {
|
|
1208
1179
|
return this._speakingMonitor?.isSpeaking;
|
|
1209
1180
|
}
|
|
@@ -1222,10 +1193,12 @@ var MediaManager = class extends Resource4 {
|
|
|
1222
1193
|
this._state.videoTrack = this._blackCanvasStreamTrack;
|
|
1223
1194
|
this._state.videoStream = new MediaStream();
|
|
1224
1195
|
this._state.videoStream.addTrack(this._state.videoTrack);
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1196
|
+
if (USE_INAUDIBLE_AUDIO) {
|
|
1197
|
+
this._inaudibleAudioStreamTrack = await createInaudibleAudioStreamTrack({
|
|
1198
|
+
ctx: this._ctx
|
|
1199
|
+
});
|
|
1200
|
+
this._state.audioTrack = this._inaudibleAudioStreamTrack;
|
|
1201
|
+
}
|
|
1229
1202
|
this._pushTracksTask = new DeferredTask3(this._ctx, async () => {
|
|
1230
1203
|
await this._pushTracks();
|
|
1231
1204
|
});
|
|
@@ -1300,11 +1273,14 @@ var MediaManager = class extends Resource4 {
|
|
|
1300
1273
|
async turnAudioOff() {
|
|
1301
1274
|
void this._speakingMonitor?.close();
|
|
1302
1275
|
this._speakingMonitor = void 0;
|
|
1303
|
-
|
|
1276
|
+
this._state.audioEnabled = false;
|
|
1277
|
+
if (USE_INAUDIBLE_AUDIO && this._state.audioTrack !== this._inaudibleAudioStreamTrack) {
|
|
1304
1278
|
this._state.audioTrack?.stop();
|
|
1305
1279
|
this._state.audioTrack = this._inaudibleAudioStreamTrack;
|
|
1280
|
+
} else {
|
|
1281
|
+
this._state.audioTrack?.stop();
|
|
1282
|
+
this._state.audioTrack = void 0;
|
|
1306
1283
|
}
|
|
1307
|
-
this._state.audioEnabled = false;
|
|
1308
1284
|
this.stateUpdated.emit(this._state);
|
|
1309
1285
|
this._pushTracksTask.schedule();
|
|
1310
1286
|
}
|
|
@@ -1337,12 +1313,12 @@ var MediaManager = class extends Resource4 {
|
|
|
1337
1313
|
}
|
|
1338
1314
|
async _reconcilePulledMedia() {
|
|
1339
1315
|
log4("reconciling tracks", void 0, {
|
|
1340
|
-
F:
|
|
1341
|
-
L:
|
|
1316
|
+
F: __dxlog_file4,
|
|
1317
|
+
L: 222,
|
|
1342
1318
|
S: this,
|
|
1343
1319
|
C: (f, a) => f(...a)
|
|
1344
1320
|
});
|
|
1345
|
-
await
|
|
1321
|
+
await cancelWithContext(this._ctx, sleep2(800));
|
|
1346
1322
|
const trackNames = this._trackToReconcile;
|
|
1347
1323
|
const tracksToPull = trackNames.filter((name) => !this._state.pulledAudioTracks[name] && !this._state.pulledVideoStreams[name]);
|
|
1348
1324
|
const audioTracksToClose = Object.entries(this._state.pulledAudioTracks).filter(([key]) => !trackNames.some((name) => name === key));
|
|
@@ -1355,8 +1331,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1355
1331
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1356
1332
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1357
1333
|
}, {
|
|
1358
|
-
F:
|
|
1359
|
-
L:
|
|
1334
|
+
F: __dxlog_file4,
|
|
1335
|
+
L: 241,
|
|
1360
1336
|
S: this,
|
|
1361
1337
|
C: (f, a) => f(...a)
|
|
1362
1338
|
});
|
|
@@ -1369,8 +1345,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1369
1345
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1370
1346
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1371
1347
|
}, {
|
|
1372
|
-
F:
|
|
1373
|
-
L:
|
|
1348
|
+
F: __dxlog_file4,
|
|
1349
|
+
L: 256,
|
|
1374
1350
|
S: this,
|
|
1375
1351
|
C: (f, a) => f(...a)
|
|
1376
1352
|
});
|
|
@@ -1454,18 +1430,18 @@ var MediaManager = class extends Resource4 {
|
|
|
1454
1430
|
err,
|
|
1455
1431
|
name
|
|
1456
1432
|
}, {
|
|
1457
|
-
F:
|
|
1458
|
-
L:
|
|
1433
|
+
F: __dxlog_file4,
|
|
1434
|
+
L: 326,
|
|
1459
1435
|
S: this,
|
|
1460
1436
|
C: (f, a) => f(...a)
|
|
1461
1437
|
});
|
|
1462
1438
|
void ctx.dispose();
|
|
1463
|
-
await
|
|
1439
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1464
1440
|
log4.verbose("retrying pull track", {
|
|
1465
1441
|
name
|
|
1466
1442
|
}, {
|
|
1467
|
-
F:
|
|
1468
|
-
L:
|
|
1443
|
+
F: __dxlog_file4,
|
|
1444
|
+
L: 329,
|
|
1469
1445
|
S: this,
|
|
1470
1446
|
C: (f, a) => f(...a)
|
|
1471
1447
|
});
|
|
@@ -1490,11 +1466,11 @@ _ts_decorate2([
|
|
|
1490
1466
|
synchronized2
|
|
1491
1467
|
], MediaManager.prototype, "leave", null);
|
|
1492
1468
|
|
|
1493
|
-
//
|
|
1469
|
+
// src/calls/call-manager.ts
|
|
1494
1470
|
import { computed } from "@preact/signals-core";
|
|
1495
1471
|
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
1496
1472
|
import { Resource as Resource5 } from "@dxos/context";
|
|
1497
|
-
import { invariant as
|
|
1473
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
1498
1474
|
import { live } from "@dxos/live-object";
|
|
1499
1475
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1500
1476
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
@@ -1503,8 +1479,24 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
1503
1479
|
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;
|
|
1504
1480
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1505
1481
|
}
|
|
1506
|
-
var
|
|
1482
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
|
|
1507
1483
|
var CallManager = class extends Resource5 {
|
|
1484
|
+
_client;
|
|
1485
|
+
callStateUpdated;
|
|
1486
|
+
// TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
|
|
1487
|
+
mediaStateUpdated;
|
|
1488
|
+
left;
|
|
1489
|
+
/**
|
|
1490
|
+
* Live object state. Is changed on internal events.
|
|
1491
|
+
* CAUTION: Do not change directly.
|
|
1492
|
+
*/
|
|
1493
|
+
_state;
|
|
1494
|
+
// TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
|
|
1495
|
+
_raisedHandSignal;
|
|
1496
|
+
_speakingSignal;
|
|
1497
|
+
_joinedSignal;
|
|
1498
|
+
_swarmSynchronizer;
|
|
1499
|
+
_mediaManager;
|
|
1508
1500
|
/** @reactive */
|
|
1509
1501
|
get roomId() {
|
|
1510
1502
|
return this._state.call.roomId;
|
|
@@ -1538,8 +1530,8 @@ var CallManager = class extends Resource5 {
|
|
|
1538
1530
|
return this._state.media;
|
|
1539
1531
|
}
|
|
1540
1532
|
/** @reactive */
|
|
1541
|
-
get
|
|
1542
|
-
return
|
|
1533
|
+
get audioTracksToPlay() {
|
|
1534
|
+
return (this._state.call.users ?? []).map((user) => user.tracks?.audioEnabled ? user.tracks?.audio : void 0).filter(isNonNullable2).map((track) => this._state.media.pulledAudioTracks[track]?.track).filter(isNonNullable2);
|
|
1543
1535
|
}
|
|
1544
1536
|
/** @reactive */
|
|
1545
1537
|
get state() {
|
|
@@ -1594,9 +1586,9 @@ var CallManager = class extends Resource5 {
|
|
|
1594
1586
|
}), this._raisedHandSignal = computed(() => this._state.call.raisedHand ?? false), this._speakingSignal = computed(() => this._state.call.speaking ?? false), this._joinedSignal = computed(() => this._state.call.joined ?? false);
|
|
1595
1587
|
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1596
1588
|
const networkService = this._client.services.services.NetworkService;
|
|
1597
|
-
|
|
1598
|
-
F:
|
|
1599
|
-
L:
|
|
1589
|
+
invariant3(networkService, "network service not found", {
|
|
1590
|
+
F: __dxlog_file5,
|
|
1591
|
+
L: 159,
|
|
1600
1592
|
S: this,
|
|
1601
1593
|
A: [
|
|
1602
1594
|
"networkService",
|
|
@@ -1699,10 +1691,8 @@ export {
|
|
|
1699
1691
|
getUserMediaTrack,
|
|
1700
1692
|
getDeviceList,
|
|
1701
1693
|
getScreenshare,
|
|
1702
|
-
createBlackCanvasStreamTrack,
|
|
1703
|
-
createInaudibleAudioStreamTrack,
|
|
1704
1694
|
SpeakingMonitor,
|
|
1705
1695
|
MediaManager,
|
|
1706
1696
|
CallManager
|
|
1707
1697
|
};
|
|
1708
|
-
//# sourceMappingURL=chunk-
|
|
1698
|
+
//# sourceMappingURL=chunk-TUFWPOVS.mjs.map
|