@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,6 +1,10 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
createBlackCanvasStreamTrack,
|
|
4
|
+
createInaudibleAudioStreamTrack
|
|
5
|
+
} from "./chunk-QBHKLWGR.mjs";
|
|
2
6
|
|
|
3
|
-
//
|
|
7
|
+
// src/calls/types.ts
|
|
4
8
|
import { buf } from "@dxos/protocols/buf";
|
|
5
9
|
import { UserStateSchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
6
10
|
var CALLS_URL = "https://calls-service.dxos.workers.dev";
|
|
@@ -26,7 +30,7 @@ var TrackNameCodec = {
|
|
|
26
30
|
}
|
|
27
31
|
};
|
|
28
32
|
|
|
29
|
-
//
|
|
33
|
+
// src/calls/call-swarm-synchronizer.ts
|
|
30
34
|
import md5Hex from "md5-hex";
|
|
31
35
|
import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
|
|
32
36
|
import { Context, Resource } from "@dxos/context";
|
|
@@ -44,22 +48,23 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
44
48
|
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;
|
|
45
49
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
46
50
|
}
|
|
47
|
-
var __dxlog_file = "/
|
|
51
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
|
|
48
52
|
var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
|
|
49
53
|
var CallSwarmSynchronizer = class extends Resource {
|
|
54
|
+
stateUpdated = new Event();
|
|
55
|
+
_state = {
|
|
56
|
+
activities: {}
|
|
57
|
+
};
|
|
58
|
+
_networkService;
|
|
59
|
+
_lastSwarmEvent = void 0;
|
|
60
|
+
_reconcileSwarmStateTask = void 0;
|
|
61
|
+
_identityKey = void 0;
|
|
62
|
+
_deviceKey = void 0;
|
|
63
|
+
_displayName = void 0;
|
|
64
|
+
_swarmCtx = void 0;
|
|
65
|
+
_sendStateTask = void 0;
|
|
50
66
|
constructor({ networkService }) {
|
|
51
67
|
super();
|
|
52
|
-
this.stateUpdated = new Event();
|
|
53
|
-
this._state = {
|
|
54
|
-
activities: {}
|
|
55
|
-
};
|
|
56
|
-
this._lastSwarmEvent = void 0;
|
|
57
|
-
this._reconcileSwarmStateTask = void 0;
|
|
58
|
-
this._identityKey = void 0;
|
|
59
|
-
this._deviceKey = void 0;
|
|
60
|
-
this._displayName = void 0;
|
|
61
|
-
this._swarmCtx = void 0;
|
|
62
|
-
this._sendStateTask = void 0;
|
|
63
68
|
this._networkService = networkService;
|
|
64
69
|
}
|
|
65
70
|
/**
|
|
@@ -357,7 +362,7 @@ var LamportTimestampCrdt = class {
|
|
|
357
362
|
};
|
|
358
363
|
var getTopic = (roomId) => PublicKey.fromHex(md5Hex(roomId));
|
|
359
364
|
|
|
360
|
-
//
|
|
365
|
+
// src/calls/util/audio.ts
|
|
361
366
|
var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure }) => {
|
|
362
367
|
let timeout = -1;
|
|
363
368
|
let interval = -1;
|
|
@@ -399,14 +404,16 @@ var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure })
|
|
|
399
404
|
};
|
|
400
405
|
};
|
|
401
406
|
|
|
402
|
-
//
|
|
407
|
+
// src/calls/util/calls-service.ts
|
|
403
408
|
import { PersistentLifecycle } from "@dxos/async";
|
|
404
409
|
import { Resource as Resource2 } from "@dxos/context";
|
|
405
410
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
406
411
|
import { log as log2 } from "@dxos/log";
|
|
407
412
|
|
|
408
|
-
//
|
|
413
|
+
// src/calls/util/history-cache.ts
|
|
409
414
|
var HistoryCache = class {
|
|
415
|
+
_limit;
|
|
416
|
+
_messages;
|
|
410
417
|
constructor(limit = 100) {
|
|
411
418
|
this._limit = limit;
|
|
412
419
|
this._messages = [];
|
|
@@ -422,7 +429,7 @@ var HistoryCache = class {
|
|
|
422
429
|
}
|
|
423
430
|
};
|
|
424
431
|
|
|
425
|
-
//
|
|
432
|
+
// src/calls/util/task-scheduling.ts
|
|
426
433
|
var DefaultBatchSizeLimit = 64;
|
|
427
434
|
var FIFOScheduler = class {
|
|
428
435
|
#schedulerChain;
|
|
@@ -479,21 +486,22 @@ var BulkRequestDispatcher = class {
|
|
|
479
486
|
}
|
|
480
487
|
};
|
|
481
488
|
|
|
482
|
-
//
|
|
483
|
-
var __dxlog_file2 = "/
|
|
489
|
+
// src/calls/util/calls-service.ts
|
|
490
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
|
|
484
491
|
var NETWORK_TIMEOUT = 5e3;
|
|
485
492
|
var CallsServicePeer = class extends Resource2 {
|
|
493
|
+
history = new HistoryCache(100);
|
|
494
|
+
_persistentLifecycle = new PersistentLifecycle({
|
|
495
|
+
start: () => this._startSession(),
|
|
496
|
+
stop: (session) => this._stopSession(session)
|
|
497
|
+
});
|
|
498
|
+
_config;
|
|
499
|
+
taskScheduler = new FIFOScheduler();
|
|
500
|
+
pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
501
|
+
pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
502
|
+
closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
486
503
|
constructor(config) {
|
|
487
504
|
super();
|
|
488
|
-
this.history = new HistoryCache(100);
|
|
489
|
-
this._persistentLifecycle = new PersistentLifecycle({
|
|
490
|
-
start: () => this._startSession(),
|
|
491
|
-
stop: (session) => this._stopSession(session)
|
|
492
|
-
});
|
|
493
|
-
this.taskScheduler = new FIFOScheduler();
|
|
494
|
-
this.pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
495
|
-
this.pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
496
|
-
this.closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
497
505
|
this._config = config;
|
|
498
506
|
}
|
|
499
507
|
async _open(ctx) {
|
|
@@ -527,7 +535,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
527
535
|
state: peerConnection.connectionState
|
|
528
536
|
}, {
|
|
529
537
|
F: __dxlog_file2,
|
|
530
|
-
L:
|
|
538
|
+
L: 119,
|
|
531
539
|
S: this,
|
|
532
540
|
C: (f, a) => f(...a)
|
|
533
541
|
});
|
|
@@ -542,7 +550,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
542
550
|
state: peerConnection.iceConnectionState
|
|
543
551
|
}, {
|
|
544
552
|
F: __dxlog_file2,
|
|
545
|
-
L:
|
|
553
|
+
L: 128,
|
|
546
554
|
S: this,
|
|
547
555
|
C: (f, a) => f(...a)
|
|
548
556
|
});
|
|
@@ -553,7 +561,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
553
561
|
if (peerConnection.iceConnectionState === "connected") {
|
|
554
562
|
log2.info("calls iceConnectionState is connected", void 0, {
|
|
555
563
|
F: __dxlog_file2,
|
|
556
|
-
L:
|
|
564
|
+
L: 137,
|
|
557
565
|
S: this,
|
|
558
566
|
C: (f, a) => f(...a)
|
|
559
567
|
});
|
|
@@ -564,7 +572,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
564
572
|
timeoutSeconds
|
|
565
573
|
}, {
|
|
566
574
|
F: __dxlog_file2,
|
|
567
|
-
L:
|
|
575
|
+
L: 141,
|
|
568
576
|
S: this,
|
|
569
577
|
C: (f, a) => f(...a)
|
|
570
578
|
});
|
|
@@ -577,7 +585,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
577
585
|
async _initiateCallSession() {
|
|
578
586
|
log2("creating new session", void 0, {
|
|
579
587
|
F: __dxlog_file2,
|
|
580
|
-
L:
|
|
588
|
+
L: 151,
|
|
581
589
|
S: this,
|
|
582
590
|
C: (f, a) => f(...a)
|
|
583
591
|
});
|
|
@@ -603,7 +611,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
603
611
|
text: await response.text()
|
|
604
612
|
}, {
|
|
605
613
|
F: __dxlog_file2,
|
|
606
|
-
L:
|
|
614
|
+
L: 166,
|
|
607
615
|
S: this,
|
|
608
616
|
C: (f, a) => f(...a)
|
|
609
617
|
});
|
|
@@ -635,7 +643,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
635
643
|
status: response.status
|
|
636
644
|
}, {
|
|
637
645
|
F: __dxlog_file2,
|
|
638
|
-
L:
|
|
646
|
+
L: 191,
|
|
639
647
|
S: this,
|
|
640
648
|
C: (f, a) => f(...a)
|
|
641
649
|
});
|
|
@@ -645,7 +653,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
645
653
|
async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
|
|
646
654
|
log2.verbose("pushing track ", trackName, {
|
|
647
655
|
F: __dxlog_file2,
|
|
648
|
-
L:
|
|
656
|
+
L: 213,
|
|
649
657
|
S: this,
|
|
650
658
|
C: (f, a) => f(...a)
|
|
651
659
|
});
|
|
@@ -672,7 +680,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
672
680
|
});
|
|
673
681
|
invariant2(response.tracks !== void 0, void 0, {
|
|
674
682
|
F: __dxlog_file2,
|
|
675
|
-
L:
|
|
683
|
+
L: 238,
|
|
676
684
|
S: this,
|
|
677
685
|
A: [
|
|
678
686
|
"response.tracks !== undefined",
|
|
@@ -697,7 +705,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
697
705
|
} else {
|
|
698
706
|
log2.error("missing track data", void 0, {
|
|
699
707
|
F: __dxlog_file2,
|
|
700
|
-
L:
|
|
708
|
+
L: 258,
|
|
701
709
|
S: this,
|
|
702
710
|
C: (f, a) => f(...a)
|
|
703
711
|
});
|
|
@@ -705,7 +713,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
705
713
|
}).catch((err) => {
|
|
706
714
|
log2.catch(err, void 0, {
|
|
707
715
|
F: __dxlog_file2,
|
|
708
|
-
L:
|
|
716
|
+
L: 262,
|
|
709
717
|
S: this,
|
|
710
718
|
C: (f, a) => f(...a)
|
|
711
719
|
});
|
|
@@ -723,7 +731,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
723
731
|
await this.waitUntilOpen();
|
|
724
732
|
invariant2(this.session, void 0, {
|
|
725
733
|
F: __dxlog_file2,
|
|
726
|
-
L:
|
|
734
|
+
L: 289,
|
|
727
735
|
S: this,
|
|
728
736
|
A: [
|
|
729
737
|
"this.session",
|
|
@@ -736,7 +744,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
736
744
|
encodings
|
|
737
745
|
}, {
|
|
738
746
|
F: __dxlog_file2,
|
|
739
|
-
L:
|
|
747
|
+
L: 290,
|
|
740
748
|
S: this,
|
|
741
749
|
C: (f, a) => f(...a)
|
|
742
750
|
});
|
|
@@ -749,7 +757,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
749
757
|
transceiver: transceiver2
|
|
750
758
|
}, {
|
|
751
759
|
F: __dxlog_file2,
|
|
752
|
-
L:
|
|
760
|
+
L: 294,
|
|
753
761
|
S: this,
|
|
754
762
|
C: (f, a) => f(...a)
|
|
755
763
|
});
|
|
@@ -761,13 +769,13 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
761
769
|
transceiver: transceiver2
|
|
762
770
|
}, {
|
|
763
771
|
F: __dxlog_file2,
|
|
764
|
-
L:
|
|
772
|
+
L: 297,
|
|
765
773
|
S: this,
|
|
766
774
|
C: (f, a) => f(...a)
|
|
767
775
|
});
|
|
768
776
|
transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
|
|
769
777
|
F: __dxlog_file2,
|
|
770
|
-
L:
|
|
778
|
+
L: 298,
|
|
771
779
|
S: this,
|
|
772
780
|
C: (f, a) => f(...a)
|
|
773
781
|
}));
|
|
@@ -776,7 +784,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
776
784
|
}
|
|
777
785
|
invariant2(track, void 0, {
|
|
778
786
|
F: __dxlog_file2,
|
|
779
|
-
L:
|
|
787
|
+
L: 302,
|
|
780
788
|
S: this,
|
|
781
789
|
A: [
|
|
782
790
|
"track",
|
|
@@ -789,7 +797,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
789
797
|
});
|
|
790
798
|
log2.verbose("creating transceiver", void 0, {
|
|
791
799
|
F: __dxlog_file2,
|
|
792
|
-
L:
|
|
800
|
+
L: 307,
|
|
793
801
|
S: this,
|
|
794
802
|
C: (f, a) => f(...a)
|
|
795
803
|
});
|
|
@@ -802,7 +810,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
802
810
|
});
|
|
803
811
|
invariant2(pushedTrackData, void 0, {
|
|
804
812
|
F: __dxlog_file2,
|
|
805
|
-
L:
|
|
813
|
+
L: 316,
|
|
806
814
|
S: this,
|
|
807
815
|
A: [
|
|
808
816
|
"pushedTrackData",
|
|
@@ -819,7 +827,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
819
827
|
});
|
|
820
828
|
transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
|
|
821
829
|
F: __dxlog_file2,
|
|
822
|
-
L:
|
|
830
|
+
L: 323,
|
|
823
831
|
S: this,
|
|
824
832
|
C: (f, a) => f(...a)
|
|
825
833
|
}));
|
|
@@ -832,7 +840,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
832
840
|
trackName: trackData.trackName
|
|
833
841
|
}, {
|
|
834
842
|
F: __dxlog_file2,
|
|
835
|
-
L:
|
|
843
|
+
L: 341,
|
|
836
844
|
S: this,
|
|
837
845
|
C: (f, a) => f(...a)
|
|
838
846
|
});
|
|
@@ -848,7 +856,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
848
856
|
}
|
|
849
857
|
invariant2(newTrackResponse.tracks, void 0, {
|
|
850
858
|
F: __dxlog_file2,
|
|
851
|
-
L:
|
|
859
|
+
L: 354,
|
|
852
860
|
S: this,
|
|
853
861
|
A: [
|
|
854
862
|
"newTrackResponse.tracks",
|
|
@@ -858,7 +866,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
858
866
|
const trackMap = tracks.reduce((acc, track) => {
|
|
859
867
|
const pulledTrackData = newTrackResponse.tracks?.find((t) => t.trackName === track.trackName && t.sessionId === track.sessionId);
|
|
860
868
|
if (pulledTrackData && pulledTrackData.mid) {
|
|
861
|
-
acc.set(track, {
|
|
869
|
+
acc.set(track.trackName, {
|
|
862
870
|
mid: pulledTrackData.mid,
|
|
863
871
|
resolvedTrack: resolveTrack(peerConnection, (t) => t.mid === pulledTrackData.mid)
|
|
864
872
|
});
|
|
@@ -888,21 +896,24 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
888
896
|
trackMap
|
|
889
897
|
};
|
|
890
898
|
})).then(({ trackMap }) => {
|
|
891
|
-
const trackInfo = trackMap.get(trackData);
|
|
899
|
+
const trackInfo = trackMap.get(trackData.trackName);
|
|
892
900
|
if (trackInfo) {
|
|
893
901
|
return trackInfo.resolvedTrack.then((track) => {
|
|
894
902
|
mid = trackInfo.mid;
|
|
895
903
|
return track;
|
|
896
904
|
}).catch((err) => log2.catch(err, void 0, {
|
|
897
905
|
F: __dxlog_file2,
|
|
898
|
-
L:
|
|
906
|
+
L: 406,
|
|
899
907
|
S: this,
|
|
900
908
|
C: (f, a) => f(...a)
|
|
901
909
|
}));
|
|
902
910
|
} else {
|
|
903
|
-
log2.
|
|
911
|
+
log2.warn("missing track info", {
|
|
912
|
+
trackData,
|
|
913
|
+
availableTracks: Array.from(trackMap.keys())
|
|
914
|
+
}, {
|
|
904
915
|
F: __dxlog_file2,
|
|
905
|
-
L:
|
|
916
|
+
L: 408,
|
|
906
917
|
S: this,
|
|
907
918
|
C: (f, a) => f(...a)
|
|
908
919
|
});
|
|
@@ -912,7 +923,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
912
923
|
if (mid) {
|
|
913
924
|
log2("closing pulled track ", trackData.trackName, {
|
|
914
925
|
F: __dxlog_file2,
|
|
915
|
-
L:
|
|
926
|
+
L: 414,
|
|
916
927
|
S: this,
|
|
917
928
|
C: (f, a) => f(...a)
|
|
918
929
|
});
|
|
@@ -928,7 +939,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
928
939
|
await this.waitUntilOpen();
|
|
929
940
|
invariant2(this.session, void 0, {
|
|
930
941
|
F: __dxlog_file2,
|
|
931
|
-
L:
|
|
942
|
+
L: 435,
|
|
932
943
|
S: this,
|
|
933
944
|
A: [
|
|
934
945
|
"this.session",
|
|
@@ -1012,9 +1023,9 @@ var peerConnectionIsConnected = async (peerConnection) => {
|
|
|
1012
1023
|
}
|
|
1013
1024
|
};
|
|
1014
1025
|
|
|
1015
|
-
//
|
|
1026
|
+
// src/calls/util/media.ts
|
|
1016
1027
|
import { log as log3 } from "@dxos/log";
|
|
1017
|
-
var __dxlog_file3 = "/
|
|
1028
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
|
|
1018
1029
|
var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
1019
1030
|
deviceList ??= (await getDeviceList()).filter((device) => device.kind === kind);
|
|
1020
1031
|
const firstDevice = deviceList[0];
|
|
@@ -1068,58 +1079,7 @@ var getScreenshare = async ({ contentHint }) => {
|
|
|
1068
1079
|
return ms;
|
|
1069
1080
|
};
|
|
1070
1081
|
|
|
1071
|
-
//
|
|
1072
|
-
import { waitForCondition, scheduleTaskInterval as scheduleTaskInterval2 } from "@dxos/async";
|
|
1073
|
-
import { cancelWithContext } from "@dxos/context";
|
|
1074
|
-
import { invariant as invariant3 } from "@dxos/invariant";
|
|
1075
|
-
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/stub-media-streams.ts";
|
|
1076
|
-
var createBlackCanvasStreamTrack = async ({ ctx, width, height }) => {
|
|
1077
|
-
const canvas = document.createElement("canvas");
|
|
1078
|
-
canvas.width = width;
|
|
1079
|
-
canvas.height = height;
|
|
1080
|
-
const canvasCtx = canvas.getContext("2d");
|
|
1081
|
-
invariant3(canvasCtx, void 0, {
|
|
1082
|
-
F: __dxlog_file4,
|
|
1083
|
-
L: 28,
|
|
1084
|
-
S: void 0,
|
|
1085
|
-
A: [
|
|
1086
|
-
"canvasCtx",
|
|
1087
|
-
""
|
|
1088
|
-
]
|
|
1089
|
-
});
|
|
1090
|
-
const drawFrame = () => {
|
|
1091
|
-
canvasCtx.fillStyle = "black";
|
|
1092
|
-
canvasCtx.fillRect(0, 0, canvas.width, canvas.height);
|
|
1093
|
-
};
|
|
1094
|
-
scheduleTaskInterval2(ctx, async () => drawFrame(), 1e3);
|
|
1095
|
-
const track = canvas.captureStream().getVideoTracks()[0];
|
|
1096
|
-
drawFrame();
|
|
1097
|
-
await cancelWithContext(ctx, waitForCondition({
|
|
1098
|
-
condition: () => track.readyState === "live",
|
|
1099
|
-
timeout: 1e3
|
|
1100
|
-
}));
|
|
1101
|
-
return track;
|
|
1102
|
-
};
|
|
1103
|
-
var createInaudibleAudioStreamTrack = async ({ ctx }) => {
|
|
1104
|
-
const audioContext = new window.AudioContext();
|
|
1105
|
-
const oscillator = audioContext.createOscillator();
|
|
1106
|
-
oscillator.type = "triangle";
|
|
1107
|
-
oscillator.frequency.setValueAtTime(0.1, audioContext.currentTime);
|
|
1108
|
-
const gainNode = audioContext.createGain();
|
|
1109
|
-
gainNode.gain.setValueAtTime(0, audioContext.currentTime);
|
|
1110
|
-
oscillator.connect(gainNode);
|
|
1111
|
-
const destination = audioContext.createMediaStreamDestination();
|
|
1112
|
-
gainNode.connect(destination);
|
|
1113
|
-
oscillator.start();
|
|
1114
|
-
ctx.onDispose(async () => {
|
|
1115
|
-
oscillator.disconnect();
|
|
1116
|
-
oscillator.stop();
|
|
1117
|
-
await audioContext.close();
|
|
1118
|
-
});
|
|
1119
|
-
return destination.stream.getAudioTracks()[0];
|
|
1120
|
-
};
|
|
1121
|
-
|
|
1122
|
-
// packages/plugins/plugin-thread/src/calls/speaking-monitor.ts
|
|
1082
|
+
// src/calls/speaking-monitor.ts
|
|
1123
1083
|
import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
|
|
1124
1084
|
import { Resource as Resource3 } from "@dxos/context";
|
|
1125
1085
|
var NOT_SPEAKING_AFTER = 500;
|
|
@@ -1127,6 +1087,18 @@ var START_SPEAKING_THRESHOLD = 0.05;
|
|
|
1127
1087
|
var CONTINUE_SPEAKING_THRESHOLD = 0.02;
|
|
1128
1088
|
var MIN_EVENT_INTERVAL = 100;
|
|
1129
1089
|
var SpeakingMonitor = class extends Resource3 {
|
|
1090
|
+
_mediaStreamTrack;
|
|
1091
|
+
/**
|
|
1092
|
+
* Event that is emitted when the user starts or stops speaking.
|
|
1093
|
+
* It is debounced to prevent rapid state changes.
|
|
1094
|
+
*/
|
|
1095
|
+
speakingChanged;
|
|
1096
|
+
/**
|
|
1097
|
+
* Real state of the user speaking.
|
|
1098
|
+
*/
|
|
1099
|
+
_isSpeaking;
|
|
1100
|
+
_lastEventTime;
|
|
1101
|
+
_deferredUpdate;
|
|
1130
1102
|
constructor(_mediaStreamTrack) {
|
|
1131
1103
|
super(), this._mediaStreamTrack = _mediaStreamTrack, this.speakingChanged = new Event2(), this._isSpeaking = false, this._lastEventTime = 0;
|
|
1132
1104
|
}
|
|
@@ -1175,9 +1147,9 @@ var SpeakingMonitor = class extends Resource3 {
|
|
|
1175
1147
|
}
|
|
1176
1148
|
};
|
|
1177
1149
|
|
|
1178
|
-
//
|
|
1150
|
+
// src/calls/media-manager.ts
|
|
1179
1151
|
import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
|
|
1180
|
-
import {
|
|
1152
|
+
import { Resource as Resource4, cancelWithContext } from "@dxos/context";
|
|
1181
1153
|
import { log as log4 } from "@dxos/log";
|
|
1182
1154
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
1183
1155
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1185,27 +1157,25 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
1185
1157
|
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;
|
|
1186
1158
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1187
1159
|
}
|
|
1188
|
-
var
|
|
1160
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
|
|
1189
1161
|
var VIDEO_WIDTH = 1280;
|
|
1190
1162
|
var VIDEO_HEIGHT = 720;
|
|
1191
1163
|
var MAX_WEB_CAM_FRAMERATE = 24;
|
|
1192
1164
|
var MAX_WEB_CAM_BITRATE = 12e5;
|
|
1193
1165
|
var RETRY_INTERVAL = 500;
|
|
1166
|
+
var USE_INAUDIBLE_AUDIO = false;
|
|
1194
1167
|
var MediaManager = class extends Resource4 {
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
this._pushTracksTask = void 0;
|
|
1207
|
-
this._pullTracksTask = void 0;
|
|
1208
|
-
}
|
|
1168
|
+
stateUpdated = new Event3();
|
|
1169
|
+
_state = {
|
|
1170
|
+
pulledVideoStreams: {},
|
|
1171
|
+
pulledAudioTracks: {}
|
|
1172
|
+
};
|
|
1173
|
+
_speakingMonitor = void 0;
|
|
1174
|
+
_trackToReconcile = [];
|
|
1175
|
+
_blackCanvasStreamTrack = void 0;
|
|
1176
|
+
_inaudibleAudioStreamTrack = void 0;
|
|
1177
|
+
_pushTracksTask = void 0;
|
|
1178
|
+
_pullTracksTask = void 0;
|
|
1209
1179
|
get isSpeaking() {
|
|
1210
1180
|
return this._speakingMonitor?.isSpeaking;
|
|
1211
1181
|
}
|
|
@@ -1224,10 +1194,12 @@ var MediaManager = class extends Resource4 {
|
|
|
1224
1194
|
this._state.videoTrack = this._blackCanvasStreamTrack;
|
|
1225
1195
|
this._state.videoStream = new MediaStream();
|
|
1226
1196
|
this._state.videoStream.addTrack(this._state.videoTrack);
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1197
|
+
if (USE_INAUDIBLE_AUDIO) {
|
|
1198
|
+
this._inaudibleAudioStreamTrack = await createInaudibleAudioStreamTrack({
|
|
1199
|
+
ctx: this._ctx
|
|
1200
|
+
});
|
|
1201
|
+
this._state.audioTrack = this._inaudibleAudioStreamTrack;
|
|
1202
|
+
}
|
|
1231
1203
|
this._pushTracksTask = new DeferredTask3(this._ctx, async () => {
|
|
1232
1204
|
await this._pushTracks();
|
|
1233
1205
|
});
|
|
@@ -1302,11 +1274,14 @@ var MediaManager = class extends Resource4 {
|
|
|
1302
1274
|
async turnAudioOff() {
|
|
1303
1275
|
void this._speakingMonitor?.close();
|
|
1304
1276
|
this._speakingMonitor = void 0;
|
|
1305
|
-
|
|
1277
|
+
this._state.audioEnabled = false;
|
|
1278
|
+
if (USE_INAUDIBLE_AUDIO && this._state.audioTrack !== this._inaudibleAudioStreamTrack) {
|
|
1306
1279
|
this._state.audioTrack?.stop();
|
|
1307
1280
|
this._state.audioTrack = this._inaudibleAudioStreamTrack;
|
|
1281
|
+
} else {
|
|
1282
|
+
this._state.audioTrack?.stop();
|
|
1283
|
+
this._state.audioTrack = void 0;
|
|
1308
1284
|
}
|
|
1309
|
-
this._state.audioEnabled = false;
|
|
1310
1285
|
this.stateUpdated.emit(this._state);
|
|
1311
1286
|
this._pushTracksTask.schedule();
|
|
1312
1287
|
}
|
|
@@ -1339,12 +1314,12 @@ var MediaManager = class extends Resource4 {
|
|
|
1339
1314
|
}
|
|
1340
1315
|
async _reconcilePulledMedia() {
|
|
1341
1316
|
log4("reconciling tracks", void 0, {
|
|
1342
|
-
F:
|
|
1343
|
-
L:
|
|
1317
|
+
F: __dxlog_file4,
|
|
1318
|
+
L: 222,
|
|
1344
1319
|
S: this,
|
|
1345
1320
|
C: (f, a) => f(...a)
|
|
1346
1321
|
});
|
|
1347
|
-
await
|
|
1322
|
+
await cancelWithContext(this._ctx, sleep2(800));
|
|
1348
1323
|
const trackNames = this._trackToReconcile;
|
|
1349
1324
|
const tracksToPull = trackNames.filter((name) => !this._state.pulledAudioTracks[name] && !this._state.pulledVideoStreams[name]);
|
|
1350
1325
|
const audioTracksToClose = Object.entries(this._state.pulledAudioTracks).filter(([key]) => !trackNames.some((name) => name === key));
|
|
@@ -1357,8 +1332,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1357
1332
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1358
1333
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1359
1334
|
}, {
|
|
1360
|
-
F:
|
|
1361
|
-
L:
|
|
1335
|
+
F: __dxlog_file4,
|
|
1336
|
+
L: 241,
|
|
1362
1337
|
S: this,
|
|
1363
1338
|
C: (f, a) => f(...a)
|
|
1364
1339
|
});
|
|
@@ -1371,8 +1346,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1371
1346
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1372
1347
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1373
1348
|
}, {
|
|
1374
|
-
F:
|
|
1375
|
-
L:
|
|
1349
|
+
F: __dxlog_file4,
|
|
1350
|
+
L: 256,
|
|
1376
1351
|
S: this,
|
|
1377
1352
|
C: (f, a) => f(...a)
|
|
1378
1353
|
});
|
|
@@ -1456,18 +1431,18 @@ var MediaManager = class extends Resource4 {
|
|
|
1456
1431
|
err,
|
|
1457
1432
|
name
|
|
1458
1433
|
}, {
|
|
1459
|
-
F:
|
|
1460
|
-
L:
|
|
1434
|
+
F: __dxlog_file4,
|
|
1435
|
+
L: 326,
|
|
1461
1436
|
S: this,
|
|
1462
1437
|
C: (f, a) => f(...a)
|
|
1463
1438
|
});
|
|
1464
1439
|
void ctx.dispose();
|
|
1465
|
-
await
|
|
1440
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1466
1441
|
log4.verbose("retrying pull track", {
|
|
1467
1442
|
name
|
|
1468
1443
|
}, {
|
|
1469
|
-
F:
|
|
1470
|
-
L:
|
|
1444
|
+
F: __dxlog_file4,
|
|
1445
|
+
L: 329,
|
|
1471
1446
|
S: this,
|
|
1472
1447
|
C: (f, a) => f(...a)
|
|
1473
1448
|
});
|
|
@@ -1492,11 +1467,11 @@ _ts_decorate2([
|
|
|
1492
1467
|
synchronized2
|
|
1493
1468
|
], MediaManager.prototype, "leave", null);
|
|
1494
1469
|
|
|
1495
|
-
//
|
|
1470
|
+
// src/calls/call-manager.ts
|
|
1496
1471
|
import { computed } from "@preact/signals-core";
|
|
1497
1472
|
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
1498
1473
|
import { Resource as Resource5 } from "@dxos/context";
|
|
1499
|
-
import { invariant as
|
|
1474
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
1500
1475
|
import { live } from "@dxos/live-object";
|
|
1501
1476
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1502
1477
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
@@ -1505,8 +1480,24 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
1505
1480
|
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;
|
|
1506
1481
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1507
1482
|
}
|
|
1508
|
-
var
|
|
1483
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
|
|
1509
1484
|
var CallManager = class extends Resource5 {
|
|
1485
|
+
_client;
|
|
1486
|
+
callStateUpdated;
|
|
1487
|
+
// TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
|
|
1488
|
+
mediaStateUpdated;
|
|
1489
|
+
left;
|
|
1490
|
+
/**
|
|
1491
|
+
* Live object state. Is changed on internal events.
|
|
1492
|
+
* CAUTION: Do not change directly.
|
|
1493
|
+
*/
|
|
1494
|
+
_state;
|
|
1495
|
+
// TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
|
|
1496
|
+
_raisedHandSignal;
|
|
1497
|
+
_speakingSignal;
|
|
1498
|
+
_joinedSignal;
|
|
1499
|
+
_swarmSynchronizer;
|
|
1500
|
+
_mediaManager;
|
|
1510
1501
|
/** @reactive */
|
|
1511
1502
|
get roomId() {
|
|
1512
1503
|
return this._state.call.roomId;
|
|
@@ -1540,8 +1531,8 @@ var CallManager = class extends Resource5 {
|
|
|
1540
1531
|
return this._state.media;
|
|
1541
1532
|
}
|
|
1542
1533
|
/** @reactive */
|
|
1543
|
-
get
|
|
1544
|
-
return
|
|
1534
|
+
get audioTracksToPlay() {
|
|
1535
|
+
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);
|
|
1545
1536
|
}
|
|
1546
1537
|
/** @reactive */
|
|
1547
1538
|
get state() {
|
|
@@ -1596,9 +1587,9 @@ var CallManager = class extends Resource5 {
|
|
|
1596
1587
|
}), this._raisedHandSignal = computed(() => this._state.call.raisedHand ?? false), this._speakingSignal = computed(() => this._state.call.speaking ?? false), this._joinedSignal = computed(() => this._state.call.joined ?? false);
|
|
1597
1588
|
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1598
1589
|
const networkService = this._client.services.services.NetworkService;
|
|
1599
|
-
|
|
1600
|
-
F:
|
|
1601
|
-
L:
|
|
1590
|
+
invariant3(networkService, "network service not found", {
|
|
1591
|
+
F: __dxlog_file5,
|
|
1592
|
+
L: 159,
|
|
1602
1593
|
S: this,
|
|
1603
1594
|
A: [
|
|
1604
1595
|
"networkService",
|
|
@@ -1701,10 +1692,8 @@ export {
|
|
|
1701
1692
|
getUserMediaTrack,
|
|
1702
1693
|
getDeviceList,
|
|
1703
1694
|
getScreenshare,
|
|
1704
|
-
createBlackCanvasStreamTrack,
|
|
1705
|
-
createInaudibleAudioStreamTrack,
|
|
1706
1695
|
SpeakingMonitor,
|
|
1707
1696
|
MediaManager,
|
|
1708
1697
|
CallManager
|
|
1709
1698
|
};
|
|
1710
|
-
//# sourceMappingURL=chunk-
|
|
1699
|
+
//# sourceMappingURL=chunk-4TME3BR4.mjs.map
|