@dxos/plugin-thread 0.8.4-main.67995b8 → 0.8.4-main.6fa680abb7
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/CallDebugPanel-BO3SLD4E.mjs +182 -0
- package/dist/lib/browser/CallDebugPanel-BO3SLD4E.mjs.map +7 -0
- package/dist/lib/browser/CallSidebar-WGAPDBFY.mjs +36 -0
- package/dist/lib/browser/CallSidebar-WGAPDBFY.mjs.map +7 -0
- package/dist/lib/browser/ChannelContainer-M7YGXCQ3.mjs +17 -0
- package/dist/lib/browser/ChatContainer-DZ2JIT7Y.mjs +18 -0
- package/dist/lib/browser/ThreadCompanion-UUOD5N66.mjs +207 -0
- package/dist/lib/browser/ThreadCompanion-UUOD5N66.mjs.map +7 -0
- package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs +20 -0
- package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-MOGFPE3O.mjs +189 -0
- package/dist/lib/browser/app-graph-builder-MOGFPE3O.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs +17 -0
- package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +8 -0
- package/dist/lib/browser/call-manager-SBJYUKXN.mjs +27 -0
- package/dist/lib/browser/call-manager-SBJYUKXN.mjs.map +7 -0
- package/dist/lib/browser/chunk-2M2HV5K4.mjs +35 -0
- package/dist/lib/browser/chunk-2M2HV5K4.mjs.map +7 -0
- package/dist/lib/browser/chunk-A4VH2D5C.mjs +277 -0
- package/dist/lib/browser/chunk-A4VH2D5C.mjs.map +7 -0
- package/dist/lib/browser/chunk-BWXT2OVT.mjs +1094 -0
- package/dist/lib/browser/chunk-BWXT2OVT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
- package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZE7KWN36.mjs → chunk-ERK254BS.mjs} +381 -240
- package/dist/lib/browser/chunk-ERK254BS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ERWASUQK.mjs → chunk-HDLDMR54.mjs} +85 -50
- package/dist/lib/browser/chunk-HDLDMR54.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6NSMBO3B.mjs → chunk-ISCHODBV.mjs} +55 -5
- package/dist/lib/browser/chunk-ISCHODBV.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-J75MXJZN.mjs +105 -0
- package/dist/lib/browser/chunk-J75MXJZN.mjs.map +7 -0
- package/dist/lib/browser/chunk-MJXZ26FR.mjs +135 -0
- package/dist/lib/browser/chunk-MJXZ26FR.mjs.map +7 -0
- package/dist/lib/browser/chunk-MQJNILMF.mjs +127 -0
- package/dist/lib/browser/chunk-MQJNILMF.mjs.map +7 -0
- package/dist/lib/browser/chunk-QVJO3VJ4.mjs +20 -0
- package/dist/lib/browser/chunk-QVJO3VJ4.mjs.map +7 -0
- package/dist/lib/browser/chunk-SRVNHDO7.mjs +221 -0
- package/dist/lib/browser/chunk-SRVNHDO7.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +135 -137
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/markdown-EG46BLO3.mjs +83 -0
- package/dist/lib/browser/markdown-EG46BLO3.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-ZZAG4PJ2.mjs +434 -0
- package/dist/lib/browser/operation-resolver-ZZAG4PJ2.mjs.map +7 -0
- package/dist/lib/browser/react-root-5MXZ6Y3J.mjs +27 -0
- package/dist/lib/browser/react-root-5MXZ6Y3J.mjs.map +7 -0
- package/dist/lib/browser/react-surface-J4X3HUUD.mjs +115 -0
- package/dist/lib/browser/react-surface-J4X3HUUD.mjs.map +7 -0
- package/dist/lib/browser/settings-E6YJEDEZ.mjs +35 -0
- package/dist/lib/browser/settings-E6YJEDEZ.mjs.map +7 -0
- package/dist/lib/browser/state-G35LOVYP.mjs +25 -0
- package/dist/lib/browser/state-G35LOVYP.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +11 -12
- package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs +183 -0
- package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs.map +7 -0
- package/dist/lib/node-esm/CallSidebar-QDM234XX.mjs +37 -0
- package/dist/lib/node-esm/CallSidebar-QDM234XX.mjs.map +7 -0
- package/dist/lib/node-esm/ChannelContainer-AFBKQJZU.mjs +18 -0
- package/dist/lib/node-esm/ChannelContainer-AFBKQJZU.mjs.map +7 -0
- package/dist/lib/node-esm/ChatContainer-ZQF6LTM6.mjs +19 -0
- package/dist/lib/node-esm/ChatContainer-ZQF6LTM6.mjs.map +7 -0
- package/dist/lib/node-esm/ThreadCompanion-SNRNEPWT.mjs +208 -0
- package/dist/lib/node-esm/ThreadCompanion-SNRNEPWT.mjs.map +7 -0
- package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs +21 -0
- package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-BIAIWS2E.mjs +190 -0
- package/dist/lib/node-esm/app-graph-builder-BIAIWS2E.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-SABUBK23.mjs +18 -0
- package/dist/lib/node-esm/blueprint-definition-SABUBK23.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +9 -0
- package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
- package/dist/lib/node-esm/call-manager-5JYDNYEA.mjs +28 -0
- package/dist/lib/node-esm/call-manager-5JYDNYEA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-4H4UJROP.mjs +128 -0
- package/dist/lib/node-esm/chunk-4H4UJROP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-7CNPVAGT.mjs +222 -0
- package/dist/lib/node-esm/chunk-7CNPVAGT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-A3SWGVF3.mjs +37 -0
- package/dist/lib/node-esm/chunk-A3SWGVF3.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
- package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-DFXKA3BF.mjs +1095 -0
- package/dist/lib/node-esm/chunk-DFXKA3BF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HT4D266X.mjs +278 -0
- package/dist/lib/node-esm/chunk-HT4D266X.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-N2T5KLKB.mjs +22 -0
- package/dist/lib/node-esm/chunk-N2T5KLKB.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NDSI2G7B.mjs +107 -0
- package/dist/lib/node-esm/chunk-NDSI2G7B.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IHDNQLLR.mjs → chunk-QP3KQOPQ.mjs} +381 -240
- package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SV74KS5H.mjs +136 -0
- package/dist/lib/node-esm/chunk-SV74KS5H.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OU5BYIDO.mjs → chunk-VBI32FGI.mjs} +55 -5
- package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-25ABSYP2.mjs → chunk-YN2Y7GPW.mjs} +85 -50
- package/dist/lib/node-esm/chunk-YN2Y7GPW.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +135 -137
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/markdown-YUI4GVUF.mjs +84 -0
- package/dist/lib/node-esm/markdown-YUI4GVUF.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-YJMVCJEM.mjs +435 -0
- package/dist/lib/node-esm/operation-resolver-YJMVCJEM.mjs.map +7 -0
- package/dist/lib/node-esm/react-root-I3D36WIQ.mjs +28 -0
- package/dist/lib/node-esm/react-root-I3D36WIQ.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-3OCF55AK.mjs +116 -0
- package/dist/lib/node-esm/react-surface-3OCF55AK.mjs.map +7 -0
- package/dist/lib/node-esm/settings-2FQ6CDHD.mjs +36 -0
- package/dist/lib/node-esm/settings-2FQ6CDHD.mjs.map +7 -0
- package/dist/lib/node-esm/state-ZQ2Y3R2X.mjs +26 -0
- package/dist/lib/node-esm/state-ZQ2Y3R2X.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +11 -12
- package/dist/types/src/ThreadPlugin.d.ts +2 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/thread-blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
- package/dist/types/src/calls/call-manager.d.ts +40 -30
- package/dist/types/src/calls/call-manager.d.ts.map +1 -1
- package/dist/types/src/calls/call-swarm-synchronizer.d.ts +2 -2
- package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
- package/dist/types/src/calls/media-manager.d.ts +2 -2
- 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 -3
- 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/util/task-scheduling.d.ts +2 -2
- package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +10 -9
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/call-manager/call-manager.d.ts +6 -0
- package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -0
- package/dist/types/src/capabilities/call-manager/index.d.ts +3 -0
- package/dist/types/src/capabilities/call-manager/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +9 -15
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
- package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
- package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
- package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
- package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +3 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/index.d.ts +3 -0
- package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/state.d.ts +7 -0
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
- package/dist/types/src/components/Call/Call.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +164 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
- package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts +14 -0
- package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
- package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
- package/dist/types/src/components/CommentsPanel/index.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 +3 -3
- package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +18 -4
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
- package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
- package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
- package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
- package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
- package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +163 -4
- 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/ResponsiveGrid/{ResponsiveContainer.d.ts → ResponsivePanel.d.ts} +4 -4
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -0
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +168 -0
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -0
- package/dist/types/src/components/ResponsiveGrid/index.d.ts +1 -1
- package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -9
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts +15 -0
- package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -0
- package/dist/types/src/containers/CallDebugPanel/index.d.ts +3 -0
- package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/CallSidebar}/CallSidebar.d.ts +0 -1
- package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +1 -0
- package/dist/types/src/containers/CallSidebar/index.d.ts +3 -0
- package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +12 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +166 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts +3 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +17 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts +166 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/index.d.ts +4 -0
- package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +6 -0
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts +3 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts +8 -0
- package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadSettings/index.d.ts +3 -0
- package/dist/types/src/containers/ThreadSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +8 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
- package/dist/types/src/extensions/command.d.ts.map +1 -0
- package/dist/types/src/extensions/index.d.ts +1 -0
- package/dist/types/src/extensions/index.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts +7 -2
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/functions/create-proposals.d.ts +13 -0
- package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
- package/dist/types/src/functions/index.d.ts +14 -0
- package/dist/types/src/functions/index.d.ts.map +1 -0
- package/dist/types/src/hooks/analytics.d.ts +2 -3
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +2 -0
- package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +1 -0
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +3 -4
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/data.d.ts +5 -0
- package/dist/types/src/testing/data.d.ts.map +1 -0
- package/dist/types/src/testing/stories.d.ts +2 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +81 -7
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +711 -0
- package/dist/types/src/types/Channel.d.ts.map +1 -0
- package/dist/types/src/types/capabilities.d.ts +23 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +2 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +3300 -365
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +91 -66
- package/src/ThreadPlugin.tsx +91 -130
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/thread-blueprint.ts +40 -0
- package/src/calls/call-manager.ts +78 -54
- package/src/calls/call-swarm-synchronizer.ts +3 -3
- package/src/calls/media-manager.ts +67 -38
- package/src/calls/types.ts +8 -4
- package/src/calls/util/calls-service.ts +66 -15
- package/src/calls/util/stub-media-streams.ts +64 -7
- package/src/calls/util/task-scheduling.ts +4 -4
- package/src/calls-service.stories.tsx +79 -66
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +203 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
- package/src/capabilities/blueprint-definition/index.ts +7 -0
- package/src/capabilities/call-manager/call-manager.ts +26 -0
- package/src/capabilities/call-manager/index.ts +7 -0
- package/src/capabilities/index.ts +9 -12
- package/src/capabilities/markdown/index.ts +7 -0
- package/src/capabilities/markdown/markdown.ts +81 -0
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +392 -0
- package/src/capabilities/react-root/index.ts +7 -0
- package/src/capabilities/react-root/react-root.tsx +20 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +101 -0
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +34 -0
- package/src/capabilities/state/index.ts +7 -0
- package/src/capabilities/state/state.ts +22 -0
- package/src/components/Call/Call.tsx +11 -6
- package/src/components/Call/Toolbar.tsx +40 -33
- package/src/components/CommentsPanel/CommentsPanel.stories.tsx +93 -0
- package/src/components/CommentsPanel/CommentsPanel.tsx +71 -0
- package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +60 -55
- package/src/components/CommentsPanel/index.ts +6 -0
- package/src/components/Lobby/Lobby.tsx +13 -11
- package/src/components/Media/AudioStream.tsx +2 -2
- package/src/components/Media/VideoObject.stories.tsx +37 -29
- package/src/components/Media/VideoObject.tsx +1 -1
- package/src/components/MessagePanel/MessagePanel.tsx +216 -0
- package/src/components/MessagePanel/index.ts +5 -0
- package/src/components/Participant/Participant.tsx +34 -15
- package/src/components/Participant/ParticipantGrid.tsx +2 -1
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +45 -43
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +5 -5
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +9 -6
- package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +11 -11
- package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +4 -4
- package/src/components/ResponsiveGrid/index.ts +1 -1
- package/src/components/index.ts +2 -13
- package/src/containers/CallDebugPanel/CallDebugPanel.tsx +172 -0
- package/src/containers/CallDebugPanel/index.ts +7 -0
- package/src/containers/CallSidebar/CallSidebar.tsx +17 -0
- package/src/containers/CallSidebar/index.ts +7 -0
- package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +59 -0
- package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +81 -59
- package/src/containers/ChannelContainer/index.ts +7 -0
- package/src/containers/ChatContainer/ChatContainer.stories.tsx +87 -0
- package/src/{components → containers/ChatContainer}/ChatContainer.tsx +67 -63
- package/src/containers/ChatContainer/index.ts +8 -0
- package/src/containers/ThreadCompanion/ThreadCompanion.tsx +199 -0
- package/src/containers/ThreadCompanion/index.ts +7 -0
- package/src/containers/ThreadSettings/ThreadSettings.tsx +22 -0
- package/src/containers/ThreadSettings/index.ts +7 -0
- package/src/containers/index.ts +12 -0
- package/src/{components/command-extension.ts → extensions/command.ts} +7 -4
- package/src/extensions/index.ts +1 -0
- package/src/extensions/threads.ts +86 -42
- package/src/functions/create-proposals.ts +57 -0
- package/src/functions/index.ts +9 -0
- package/src/hooks/analytics.ts +22 -21
- package/src/hooks/index.ts +3 -1
- package/src/hooks/useBlackCanvasStreamTrack.tsx +27 -0
- package/src/hooks/useDebugMode.ts +1 -1
- package/src/hooks/useVideoStreamTrack.tsx +6 -3
- package/src/index.ts +1 -1
- package/src/meta.ts +11 -7
- package/src/testing/data.ts +49 -0
- package/src/testing/stories.ts +18 -16
- package/src/translations.ts +10 -4
- package/src/types/Channel.ts +32 -0
- package/src/types/capabilities.ts +34 -0
- package/src/types/index.ts +2 -1
- package/src/types/types.ts +170 -82
- package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
- package/src/typings.d.ts +8 -0
- package/src/util.ts +1 -1
- package/dist/lib/browser/ChannelContainer-3GIE7ASU.mjs +0 -16
- package/dist/lib/browser/ChatContainer-AIGIWAUG.mjs +0 -15
- package/dist/lib/browser/app-graph-builder-N7BE5TYW.mjs +0 -171
- package/dist/lib/browser/app-graph-builder-N7BE5TYW.mjs.map +0 -7
- package/dist/lib/browser/call-manager-NIPDYUVD.mjs +0 -24
- package/dist/lib/browser/call-manager-NIPDYUVD.mjs.map +0 -7
- package/dist/lib/browser/chunk-3SGRT4NM.mjs +0 -367
- package/dist/lib/browser/chunk-3SGRT4NM.mjs.map +0 -7
- package/dist/lib/browser/chunk-6NSMBO3B.mjs.map +0 -7
- package/dist/lib/browser/chunk-ERWASUQK.mjs.map +0 -7
- package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
- package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
- package/dist/lib/browser/chunk-FR7KJPNY.mjs +0 -21
- package/dist/lib/browser/chunk-FR7KJPNY.mjs.map +0 -7
- package/dist/lib/browser/chunk-GCLD5ESP.mjs +0 -137
- package/dist/lib/browser/chunk-GCLD5ESP.mjs.map +0 -7
- package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
- package/dist/lib/browser/chunk-KWPRNHTK.mjs +0 -984
- package/dist/lib/browser/chunk-KWPRNHTK.mjs.map +0 -7
- package/dist/lib/browser/chunk-LGSDKXPF.mjs +0 -18
- package/dist/lib/browser/chunk-LGSDKXPF.mjs.map +0 -7
- package/dist/lib/browser/chunk-VUWC4IJM.mjs +0 -479
- package/dist/lib/browser/chunk-VUWC4IJM.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZE7KWN36.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-JFGLZ6VI.mjs +0 -369
- package/dist/lib/browser/intent-resolver-JFGLZ6VI.mjs.map +0 -7
- package/dist/lib/browser/markdown-M3FMR7OD.mjs +0 -169
- package/dist/lib/browser/markdown-M3FMR7OD.mjs.map +0 -7
- package/dist/lib/browser/react-root-JEUSQXI6.mjs +0 -28
- package/dist/lib/browser/react-root-JEUSQXI6.mjs.map +0 -7
- package/dist/lib/browser/react-surface-XWS6GIZY.mjs +0 -109
- package/dist/lib/browser/react-surface-XWS6GIZY.mjs.map +0 -7
- package/dist/lib/browser/settings-E32MTL7A.mjs +0 -22
- package/dist/lib/browser/settings-E32MTL7A.mjs.map +0 -7
- package/dist/lib/browser/state-H6CYONWE.mjs +0 -34
- package/dist/lib/browser/state-H6CYONWE.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-7FXCKO7X.mjs +0 -17
- package/dist/lib/node-esm/ChatContainer-IQUWU426.mjs +0 -16
- package/dist/lib/node-esm/app-graph-builder-VCW76Z6V.mjs +0 -172
- package/dist/lib/node-esm/app-graph-builder-VCW76Z6V.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-D6O5ZJJ4.mjs +0 -25
- package/dist/lib/node-esm/call-manager-D6O5ZJJ4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-25ABSYP2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2CXOK2TD.mjs +0 -23
- package/dist/lib/node-esm/chunk-2CXOK2TD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2MFNK53T.mjs +0 -480
- package/dist/lib/node-esm/chunk-2MFNK53T.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-75RJ5DJI.mjs +0 -19
- package/dist/lib/node-esm/chunk-75RJ5DJI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-C3XFMUAY.mjs +0 -985
- package/dist/lib/node-esm/chunk-C3XFMUAY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FLBFYGBK.mjs +0 -368
- package/dist/lib/node-esm/chunk-FLBFYGBK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IHDNQLLR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OU5BYIDO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs +0 -138
- package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-OXGNQ44Y.mjs +0 -370
- package/dist/lib/node-esm/intent-resolver-OXGNQ44Y.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-INKTE4MH.mjs +0 -170
- package/dist/lib/node-esm/markdown-INKTE4MH.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs +0 -29
- package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-MJ33KPYE.mjs +0 -110
- package/dist/lib/node-esm/react-surface-MJ33KPYE.mjs.map +0 -7
- package/dist/lib/node-esm/settings-SJ24YG7M.mjs +0 -23
- package/dist/lib/node-esm/settings-SJ24YG7M.mjs.map +0 -7
- package/dist/lib/node-esm/state-D7WNDT3N.mjs +0 -35
- package/dist/lib/node-esm/state-D7WNDT3N.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/call-manager.d.ts +0 -5
- package/dist/types/src/capabilities/call-manager.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -27
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/markdown.d.ts +0 -4
- package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-root.d.ts +0 -7
- package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings.d.ts +0 -4
- package/dist/types/src/capabilities/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/state.d.ts +0 -7
- package/dist/types/src/capabilities/state.d.ts.map +0 -1
- package/dist/types/src/components/CallDebugPanel.d.ts +0 -8
- package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
- package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
- package/dist/types/src/components/ChannelContainer.d.ts +0 -14
- package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +0 -10
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/Chat.stories.d.ts +0 -7
- package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
- package/dist/types/src/components/ChatContainer.d.ts +0 -17
- package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
- package/dist/types/src/components/Comments.stories.d.ts +0 -6
- package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
- package/dist/types/src/components/CommentsContainer.d.ts +0 -13
- package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts +0 -14
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
- package/dist/types/src/components/MessageContainer.d.ts +0 -11
- package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +0 -10
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
- package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
- package/dist/types/src/components/ThreadSettings.d.ts +0 -6
- package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
- package/dist/types/src/components/command-extension.d.ts.map +0 -1
- package/dist/types/src/components/testing.d.ts +0 -4
- package/dist/types/src/components/testing.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -162
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -180
- package/src/capabilities/call-manager.ts +0 -19
- package/src/capabilities/capabilities.ts +0 -33
- package/src/capabilities/intent-resolver.ts +0 -314
- package/src/capabilities/markdown.ts +0 -68
- package/src/capabilities/react-root.tsx +0 -17
- package/src/capabilities/react-surface.tsx +0 -88
- package/src/capabilities/settings.ts +0 -19
- package/src/capabilities/state.ts +0 -25
- package/src/components/CallDebugPanel.tsx +0 -115
- package/src/components/CallSidebar.tsx +0 -17
- package/src/components/ChannelContainer.stories.tsx +0 -58
- package/src/components/Chat.stories.tsx +0 -88
- package/src/components/Comments.stories.tsx +0 -92
- package/src/components/CommentsContainer.tsx +0 -71
- package/src/components/MessageContainer.tsx +0 -151
- package/src/components/ThreadComplementary.tsx +0 -151
- package/src/components/ThreadSettings.tsx +0 -17
- package/src/components/testing.ts +0 -29
- package/src/types/schema.ts +0 -33
- /package/dist/lib/browser/{ChannelContainer-3GIE7ASU.mjs.map → ChannelContainer-M7YGXCQ3.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-AIGIWAUG.mjs.map → ChatContainer-DZ2JIT7Y.mjs.map} +0 -0
- /package/dist/lib/{node-esm/ChannelContainer-7FXCKO7X.mjs.map → browser/blueprints/index.mjs.map} +0 -0
- /package/dist/lib/{node-esm/ChatContainer-IQUWU426.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createBlackCanvasStreamTrack,
|
|
3
3
|
createInaudibleAudioStreamTrack
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ISCHODBV.mjs";
|
|
5
5
|
|
|
6
6
|
// src/calls/types.ts
|
|
7
|
+
import { invariant } from "@dxos/invariant";
|
|
7
8
|
import { buf } from "@dxos/protocols/buf";
|
|
8
9
|
import { UserStateSchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
10
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/types.ts";
|
|
9
11
|
var CALLS_URL = "https://calls-service.dxos.workers.dev";
|
|
10
12
|
var codec = {
|
|
11
13
|
encode: (message) => {
|
|
@@ -17,14 +19,42 @@ var codec = {
|
|
|
17
19
|
};
|
|
18
20
|
var TrackNameCodec = {
|
|
19
21
|
encode: (trackData) => {
|
|
20
|
-
|
|
22
|
+
invariant(trackData.sessionId, void 0, {
|
|
23
|
+
F: __dxlog_file,
|
|
24
|
+
L: 65,
|
|
25
|
+
S: void 0,
|
|
26
|
+
A: [
|
|
27
|
+
"trackData.sessionId",
|
|
28
|
+
""
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
invariant(trackData.trackName, void 0, {
|
|
32
|
+
F: __dxlog_file,
|
|
33
|
+
L: 66,
|
|
34
|
+
S: void 0,
|
|
35
|
+
A: [
|
|
36
|
+
"trackData.trackName",
|
|
37
|
+
""
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
invariant(trackData.mid, void 0, {
|
|
41
|
+
F: __dxlog_file,
|
|
42
|
+
L: 67,
|
|
43
|
+
S: void 0,
|
|
44
|
+
A: [
|
|
45
|
+
"trackData.mid",
|
|
46
|
+
""
|
|
47
|
+
]
|
|
48
|
+
});
|
|
49
|
+
return trackData.sessionId + "/" + trackData.trackName + "/" + trackData.mid;
|
|
21
50
|
},
|
|
22
51
|
decode: (name) => {
|
|
23
|
-
const [sessionId, trackName] = name.split("/");
|
|
52
|
+
const [sessionId, trackName, mid] = name.split("/");
|
|
24
53
|
return {
|
|
25
54
|
sessionId,
|
|
26
55
|
trackName,
|
|
27
|
-
location: "remote"
|
|
56
|
+
location: "remote",
|
|
57
|
+
mid
|
|
28
58
|
};
|
|
29
59
|
}
|
|
30
60
|
};
|
|
@@ -34,7 +64,7 @@ import md5Hex from "md5-hex";
|
|
|
34
64
|
import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
|
|
35
65
|
import { Context, Resource } from "@dxos/context";
|
|
36
66
|
import { generateName } from "@dxos/display-name";
|
|
37
|
-
import { invariant } from "@dxos/invariant";
|
|
67
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
38
68
|
import { PublicKey } from "@dxos/keys";
|
|
39
69
|
import { log } from "@dxos/log";
|
|
40
70
|
import { buf as buf2 } from "@dxos/protocols/buf";
|
|
@@ -47,22 +77,23 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
47
77
|
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;
|
|
48
78
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
49
79
|
}
|
|
50
|
-
var
|
|
80
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
|
|
51
81
|
var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
|
|
52
82
|
var CallSwarmSynchronizer = class extends Resource {
|
|
83
|
+
stateUpdated = new Event();
|
|
84
|
+
_state = {
|
|
85
|
+
activities: {}
|
|
86
|
+
};
|
|
87
|
+
_networkService;
|
|
88
|
+
_lastSwarmEvent = void 0;
|
|
89
|
+
_reconcileSwarmStateTask = void 0;
|
|
90
|
+
_identityKey = void 0;
|
|
91
|
+
_deviceKey = void 0;
|
|
92
|
+
_displayName = void 0;
|
|
93
|
+
_swarmCtx = void 0;
|
|
94
|
+
_sendStateTask = void 0;
|
|
53
95
|
constructor({ networkService }) {
|
|
54
96
|
super();
|
|
55
|
-
this.stateUpdated = new Event();
|
|
56
|
-
this._state = {
|
|
57
|
-
activities: {}
|
|
58
|
-
};
|
|
59
|
-
this._lastSwarmEvent = void 0;
|
|
60
|
-
this._reconcileSwarmStateTask = void 0;
|
|
61
|
-
this._identityKey = void 0;
|
|
62
|
-
this._deviceKey = void 0;
|
|
63
|
-
this._displayName = void 0;
|
|
64
|
-
this._swarmCtx = void 0;
|
|
65
|
-
this._sendStateTask = void 0;
|
|
66
97
|
this._networkService = networkService;
|
|
67
98
|
}
|
|
68
99
|
/**
|
|
@@ -130,7 +161,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
130
161
|
log.verbose("joined to a different room", {
|
|
131
162
|
roomId
|
|
132
163
|
}, {
|
|
133
|
-
F:
|
|
164
|
+
F: __dxlog_file2,
|
|
134
165
|
L: 152,
|
|
135
166
|
S: this,
|
|
136
167
|
C: (f, a) => f(...a)
|
|
@@ -152,8 +183,8 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
152
183
|
this._reconcileSwarmStateTask = void 0;
|
|
153
184
|
}
|
|
154
185
|
async join() {
|
|
155
|
-
|
|
156
|
-
F:
|
|
186
|
+
invariant2(this._state.roomId, void 0, {
|
|
187
|
+
F: __dxlog_file2,
|
|
157
188
|
L: 176,
|
|
158
189
|
S: this,
|
|
159
190
|
A: [
|
|
@@ -161,8 +192,8 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
161
192
|
""
|
|
162
193
|
]
|
|
163
194
|
});
|
|
164
|
-
|
|
165
|
-
F:
|
|
195
|
+
invariant2(!this._swarmCtx, "Already joined", {
|
|
196
|
+
F: __dxlog_file2,
|
|
166
197
|
L: 177,
|
|
167
198
|
S: this,
|
|
168
199
|
A: [
|
|
@@ -171,7 +202,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
171
202
|
]
|
|
172
203
|
});
|
|
173
204
|
this._swarmCtx = new Context(void 0, {
|
|
174
|
-
F:
|
|
205
|
+
F: __dxlog_file2,
|
|
175
206
|
L: 179
|
|
176
207
|
});
|
|
177
208
|
const topic = getTopic(this._state.roomId);
|
|
@@ -182,7 +213,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
182
213
|
peerKey: this._deviceKey
|
|
183
214
|
}
|
|
184
215
|
}, {
|
|
185
|
-
F:
|
|
216
|
+
F: __dxlog_file2,
|
|
186
217
|
L: 181,
|
|
187
218
|
S: this,
|
|
188
219
|
C: (f, a) => f(...a)
|
|
@@ -201,7 +232,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
201
232
|
peerKey: this._deviceKey
|
|
202
233
|
}
|
|
203
234
|
}, {
|
|
204
|
-
F:
|
|
235
|
+
F: __dxlog_file2,
|
|
205
236
|
L: 188,
|
|
206
237
|
S: this,
|
|
207
238
|
C: (f, a) => f(...a)
|
|
@@ -213,7 +244,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
213
244
|
peerKey: this._deviceKey
|
|
214
245
|
}
|
|
215
246
|
}).catch((err) => log.catch(err, void 0, {
|
|
216
|
-
F:
|
|
247
|
+
F: __dxlog_file2,
|
|
217
248
|
L: 194,
|
|
218
249
|
S: this,
|
|
219
250
|
C: (f, a) => f(...a)
|
|
@@ -281,8 +312,8 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
281
312
|
}
|
|
282
313
|
async _reconcileSwarmState() {
|
|
283
314
|
const swarmEvent = this._lastSwarmEvent;
|
|
284
|
-
|
|
285
|
-
F:
|
|
315
|
+
invariant2(swarmEvent, void 0, {
|
|
316
|
+
F: __dxlog_file2,
|
|
286
317
|
L: 273,
|
|
287
318
|
S: this,
|
|
288
319
|
A: [
|
|
@@ -302,7 +333,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
302
333
|
error,
|
|
303
334
|
peer
|
|
304
335
|
}, {
|
|
305
|
-
F:
|
|
336
|
+
F: __dxlog_file2,
|
|
306
337
|
L: 290,
|
|
307
338
|
S: this,
|
|
308
339
|
C: (f, a) => f(...a)
|
|
@@ -315,7 +346,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
315
346
|
log("reconciling swarm state", {
|
|
316
347
|
users
|
|
317
348
|
}, {
|
|
318
|
-
F:
|
|
349
|
+
F: __dxlog_file2,
|
|
319
350
|
L: 297,
|
|
320
351
|
S: this,
|
|
321
352
|
C: (f, a) => f(...a)
|
|
@@ -403,13 +434,15 @@ var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure })
|
|
|
403
434
|
};
|
|
404
435
|
|
|
405
436
|
// src/calls/util/calls-service.ts
|
|
406
|
-
import { PersistentLifecycle } from "@dxos/async";
|
|
437
|
+
import { PersistentLifecycle, Trigger, scheduleTask } from "@dxos/async";
|
|
407
438
|
import { Resource as Resource2 } from "@dxos/context";
|
|
408
|
-
import { invariant as
|
|
439
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
409
440
|
import { log as log2 } from "@dxos/log";
|
|
410
441
|
|
|
411
442
|
// src/calls/util/history-cache.ts
|
|
412
443
|
var HistoryCache = class {
|
|
444
|
+
_limit;
|
|
445
|
+
_messages;
|
|
413
446
|
constructor(limit = 100) {
|
|
414
447
|
this._limit = limit;
|
|
415
448
|
this._messages = [];
|
|
@@ -483,20 +516,21 @@ var BulkRequestDispatcher = class {
|
|
|
483
516
|
};
|
|
484
517
|
|
|
485
518
|
// src/calls/util/calls-service.ts
|
|
486
|
-
var
|
|
519
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
|
|
487
520
|
var NETWORK_TIMEOUT = 5e3;
|
|
488
521
|
var CallsServicePeer = class extends Resource2 {
|
|
522
|
+
history = new HistoryCache(100);
|
|
523
|
+
_persistentLifecycle = new PersistentLifecycle({
|
|
524
|
+
start: () => this._startSession(),
|
|
525
|
+
stop: (session) => this._stopSession(session)
|
|
526
|
+
});
|
|
527
|
+
_config;
|
|
528
|
+
taskScheduler = new FIFOScheduler();
|
|
529
|
+
pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
530
|
+
pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
531
|
+
closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
489
532
|
constructor(config) {
|
|
490
533
|
super();
|
|
491
|
-
this.history = new HistoryCache(100);
|
|
492
|
-
this._persistentLifecycle = new PersistentLifecycle({
|
|
493
|
-
start: () => this._startSession(),
|
|
494
|
-
stop: (session) => this._stopSession(session)
|
|
495
|
-
});
|
|
496
|
-
this.taskScheduler = new FIFOScheduler();
|
|
497
|
-
this.pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
498
|
-
this.pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
499
|
-
this.closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
500
534
|
this._config = config;
|
|
501
535
|
}
|
|
502
536
|
async _open(ctx) {
|
|
@@ -526,11 +560,11 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
526
560
|
});
|
|
527
561
|
peerConnection.addEventListener("connectionstatechange", () => {
|
|
528
562
|
if (peerConnection.connectionState === "failed" || peerConnection.connectionState === "closed") {
|
|
529
|
-
log2.
|
|
563
|
+
log2.info("calls connection failed", {
|
|
530
564
|
state: peerConnection.connectionState
|
|
531
565
|
}, {
|
|
532
|
-
F:
|
|
533
|
-
L:
|
|
566
|
+
F: __dxlog_file3,
|
|
567
|
+
L: 121,
|
|
534
568
|
S: this,
|
|
535
569
|
C: (f, a) => f(...a)
|
|
536
570
|
});
|
|
@@ -541,11 +575,11 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
541
575
|
peerConnection.addEventListener("iceconnectionstatechange", () => {
|
|
542
576
|
clearTimeout(iceTimeout);
|
|
543
577
|
if (peerConnection.iceConnectionState === "failed" || peerConnection.iceConnectionState === "closed") {
|
|
544
|
-
log2.
|
|
578
|
+
log2.info("calls connection to ICEs failed", {
|
|
545
579
|
state: peerConnection.iceConnectionState
|
|
546
580
|
}, {
|
|
547
|
-
F:
|
|
548
|
-
L:
|
|
581
|
+
F: __dxlog_file3,
|
|
582
|
+
L: 130,
|
|
549
583
|
S: this,
|
|
550
584
|
C: (f, a) => f(...a)
|
|
551
585
|
});
|
|
@@ -555,19 +589,19 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
555
589
|
iceTimeout = window.setTimeout(() => {
|
|
556
590
|
if (peerConnection.iceConnectionState === "connected") {
|
|
557
591
|
log2.info("calls iceConnectionState is connected", void 0, {
|
|
558
|
-
F:
|
|
559
|
-
L:
|
|
592
|
+
F: __dxlog_file3,
|
|
593
|
+
L: 139,
|
|
560
594
|
S: this,
|
|
561
595
|
C: (f, a) => f(...a)
|
|
562
596
|
});
|
|
563
597
|
return;
|
|
564
598
|
}
|
|
565
|
-
log2.
|
|
599
|
+
log2.info("calls iceConnectionState timed out", {
|
|
566
600
|
state: peerConnection.iceConnectionState,
|
|
567
601
|
timeoutSeconds
|
|
568
602
|
}, {
|
|
569
|
-
F:
|
|
570
|
-
L:
|
|
603
|
+
F: __dxlog_file3,
|
|
604
|
+
L: 143,
|
|
571
605
|
S: this,
|
|
572
606
|
C: (f, a) => f(...a)
|
|
573
607
|
});
|
|
@@ -579,8 +613,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
579
613
|
}
|
|
580
614
|
async _initiateCallSession() {
|
|
581
615
|
log2("creating new session", void 0, {
|
|
582
|
-
F:
|
|
583
|
-
L:
|
|
616
|
+
F: __dxlog_file3,
|
|
617
|
+
L: 153,
|
|
584
618
|
S: this,
|
|
585
619
|
C: (f, a) => f(...a)
|
|
586
620
|
});
|
|
@@ -591,6 +625,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
591
625
|
}
|
|
592
626
|
async _fetch(relativePath, requestInit) {
|
|
593
627
|
this.history.push({
|
|
628
|
+
endpoint: relativePath,
|
|
594
629
|
type: "request",
|
|
595
630
|
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
596
631
|
method: requestInit?.method ?? "GET",
|
|
@@ -605,8 +640,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
605
640
|
status: response.status,
|
|
606
641
|
text: await response.text()
|
|
607
642
|
}, {
|
|
608
|
-
F:
|
|
609
|
-
L:
|
|
643
|
+
F: __dxlog_file3,
|
|
644
|
+
L: 169,
|
|
610
645
|
S: this,
|
|
611
646
|
C: (f, a) => f(...a)
|
|
612
647
|
});
|
|
@@ -615,6 +650,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
615
650
|
try {
|
|
616
651
|
const data = await response.clone().json();
|
|
617
652
|
this.history.push({
|
|
653
|
+
endpoint: relativePath,
|
|
618
654
|
type: "response",
|
|
619
655
|
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
620
656
|
status: response.status,
|
|
@@ -627,6 +663,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
627
663
|
} catch (error) {
|
|
628
664
|
const text = await response.text();
|
|
629
665
|
this.history.push({
|
|
666
|
+
endpoint: relativePath,
|
|
630
667
|
type: "response",
|
|
631
668
|
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
632
669
|
status: response.status,
|
|
@@ -637,8 +674,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
637
674
|
text,
|
|
638
675
|
status: response.status
|
|
639
676
|
}, {
|
|
640
|
-
F:
|
|
641
|
-
L:
|
|
677
|
+
F: __dxlog_file3,
|
|
678
|
+
L: 196,
|
|
642
679
|
S: this,
|
|
643
680
|
C: (f, a) => f(...a)
|
|
644
681
|
});
|
|
@@ -647,8 +684,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
647
684
|
}
|
|
648
685
|
async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
|
|
649
686
|
log2.verbose("pushing track ", trackName, {
|
|
650
|
-
F:
|
|
651
|
-
L:
|
|
687
|
+
F: __dxlog_file3,
|
|
688
|
+
L: 218,
|
|
652
689
|
S: this,
|
|
653
690
|
C: (f, a) => f(...a)
|
|
654
691
|
});
|
|
@@ -673,9 +710,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
673
710
|
}))
|
|
674
711
|
})
|
|
675
712
|
});
|
|
676
|
-
|
|
677
|
-
F:
|
|
678
|
-
L:
|
|
713
|
+
invariant3(response.tracks !== void 0, void 0, {
|
|
714
|
+
F: __dxlog_file3,
|
|
715
|
+
L: 243,
|
|
679
716
|
S: this,
|
|
680
717
|
A: [
|
|
681
718
|
"response.tracks !== undefined",
|
|
@@ -689,7 +726,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
689
726
|
return {
|
|
690
727
|
tracks: response.tracks
|
|
691
728
|
};
|
|
692
|
-
})).then(({ tracks }) => {
|
|
729
|
+
})).then(async ({ tracks }) => {
|
|
693
730
|
const trackData = tracks.find((t) => t.mid === transceiver.mid);
|
|
694
731
|
if (trackData) {
|
|
695
732
|
return {
|
|
@@ -699,19 +736,12 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
699
736
|
};
|
|
700
737
|
} else {
|
|
701
738
|
log2.error("missing track data", void 0, {
|
|
702
|
-
F:
|
|
703
|
-
L:
|
|
739
|
+
F: __dxlog_file3,
|
|
740
|
+
L: 267,
|
|
704
741
|
S: this,
|
|
705
742
|
C: (f, a) => f(...a)
|
|
706
743
|
});
|
|
707
744
|
}
|
|
708
|
-
}).catch((err) => {
|
|
709
|
-
log2.catch(err, void 0, {
|
|
710
|
-
F: __dxlog_file2,
|
|
711
|
-
L: 261,
|
|
712
|
-
S: this,
|
|
713
|
-
C: (f, a) => f(...a)
|
|
714
|
-
});
|
|
715
745
|
});
|
|
716
746
|
const onDispose = async () => {
|
|
717
747
|
if (transceiver.mid) {
|
|
@@ -724,9 +754,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
724
754
|
}
|
|
725
755
|
async pushTrack({ track, encodings = [], ctx, previousTrack }) {
|
|
726
756
|
await this.waitUntilOpen();
|
|
727
|
-
|
|
728
|
-
F:
|
|
729
|
-
L:
|
|
757
|
+
invariant3(this.session, void 0, {
|
|
758
|
+
F: __dxlog_file3,
|
|
759
|
+
L: 295,
|
|
730
760
|
S: this,
|
|
731
761
|
A: [
|
|
732
762
|
"this.session",
|
|
@@ -738,8 +768,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
738
768
|
previousTrack,
|
|
739
769
|
encodings
|
|
740
770
|
}, {
|
|
741
|
-
F:
|
|
742
|
-
L:
|
|
771
|
+
F: __dxlog_file3,
|
|
772
|
+
L: 296,
|
|
743
773
|
S: this,
|
|
744
774
|
C: (f, a) => f(...a)
|
|
745
775
|
});
|
|
@@ -751,8 +781,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
751
781
|
previousTrack,
|
|
752
782
|
transceiver: transceiver2
|
|
753
783
|
}, {
|
|
754
|
-
F:
|
|
755
|
-
L:
|
|
784
|
+
F: __dxlog_file3,
|
|
785
|
+
L: 300,
|
|
756
786
|
S: this,
|
|
757
787
|
C: (f, a) => f(...a)
|
|
758
788
|
});
|
|
@@ -763,23 +793,23 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
763
793
|
previousTrack,
|
|
764
794
|
transceiver: transceiver2
|
|
765
795
|
}, {
|
|
766
|
-
F:
|
|
767
|
-
L:
|
|
796
|
+
F: __dxlog_file3,
|
|
797
|
+
L: 303,
|
|
768
798
|
S: this,
|
|
769
799
|
C: (f, a) => f(...a)
|
|
770
800
|
});
|
|
771
801
|
transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
|
|
772
|
-
F:
|
|
773
|
-
L:
|
|
802
|
+
F: __dxlog_file3,
|
|
803
|
+
L: 304,
|
|
774
804
|
S: this,
|
|
775
805
|
C: (f, a) => f(...a)
|
|
776
806
|
}));
|
|
777
807
|
return previousTrack;
|
|
778
808
|
}
|
|
779
809
|
}
|
|
780
|
-
|
|
781
|
-
F:
|
|
782
|
-
L:
|
|
810
|
+
invariant3(track, void 0, {
|
|
811
|
+
F: __dxlog_file3,
|
|
812
|
+
L: 308,
|
|
783
813
|
S: this,
|
|
784
814
|
A: [
|
|
785
815
|
"track",
|
|
@@ -791,8 +821,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
791
821
|
direction: "sendonly"
|
|
792
822
|
});
|
|
793
823
|
log2.verbose("creating transceiver", void 0, {
|
|
794
|
-
F:
|
|
795
|
-
L:
|
|
824
|
+
F: __dxlog_file3,
|
|
825
|
+
L: 313,
|
|
796
826
|
S: this,
|
|
797
827
|
C: (f, a) => f(...a)
|
|
798
828
|
});
|
|
@@ -803,9 +833,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
803
833
|
sessionId: this.session.sessionId,
|
|
804
834
|
trackName: stableId
|
|
805
835
|
});
|
|
806
|
-
|
|
807
|
-
F:
|
|
808
|
-
L:
|
|
836
|
+
invariant3(pushedTrackData, void 0, {
|
|
837
|
+
F: __dxlog_file3,
|
|
838
|
+
L: 322,
|
|
809
839
|
S: this,
|
|
810
840
|
A: [
|
|
811
841
|
"pushedTrackData",
|
|
@@ -821,8 +851,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
821
851
|
};
|
|
822
852
|
});
|
|
823
853
|
transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
|
|
824
|
-
F:
|
|
825
|
-
L:
|
|
854
|
+
F: __dxlog_file3,
|
|
855
|
+
L: 329,
|
|
826
856
|
S: this,
|
|
827
857
|
C: (f, a) => f(...a)
|
|
828
858
|
}));
|
|
@@ -834,8 +864,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
834
864
|
log2("pulling track", {
|
|
835
865
|
trackName: trackData.trackName
|
|
836
866
|
}, {
|
|
837
|
-
F:
|
|
838
|
-
L:
|
|
867
|
+
F: __dxlog_file3,
|
|
868
|
+
L: 347,
|
|
839
869
|
S: this,
|
|
840
870
|
C: (f, a) => f(...a)
|
|
841
871
|
});
|
|
@@ -849,9 +879,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
849
879
|
if (newTrackResponse.errorCode) {
|
|
850
880
|
throw new Error(newTrackResponse.errorDescription);
|
|
851
881
|
}
|
|
852
|
-
|
|
853
|
-
F:
|
|
854
|
-
L:
|
|
882
|
+
invariant3(newTrackResponse.tracks, void 0, {
|
|
883
|
+
F: __dxlog_file3,
|
|
884
|
+
L: 360,
|
|
855
885
|
S: this,
|
|
856
886
|
A: [
|
|
857
887
|
"newTrackResponse.tracks",
|
|
@@ -897,18 +927,18 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
897
927
|
mid = trackInfo.mid;
|
|
898
928
|
return track;
|
|
899
929
|
}).catch((err) => log2.catch(err, void 0, {
|
|
900
|
-
F:
|
|
901
|
-
L:
|
|
930
|
+
F: __dxlog_file3,
|
|
931
|
+
L: 412,
|
|
902
932
|
S: this,
|
|
903
933
|
C: (f, a) => f(...a)
|
|
904
934
|
}));
|
|
905
935
|
} else {
|
|
906
|
-
log2.
|
|
936
|
+
log2.info("missing track info", {
|
|
907
937
|
trackData,
|
|
908
938
|
availableTracks: Array.from(trackMap.keys())
|
|
909
939
|
}, {
|
|
910
|
-
F:
|
|
911
|
-
L:
|
|
940
|
+
F: __dxlog_file3,
|
|
941
|
+
L: 414,
|
|
912
942
|
S: this,
|
|
913
943
|
C: (f, a) => f(...a)
|
|
914
944
|
});
|
|
@@ -917,8 +947,8 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
917
947
|
const onDispose = async () => {
|
|
918
948
|
if (mid) {
|
|
919
949
|
log2("closing pulled track ", trackData.trackName, {
|
|
920
|
-
F:
|
|
921
|
-
L:
|
|
950
|
+
F: __dxlog_file3,
|
|
951
|
+
L: 420,
|
|
922
952
|
S: this,
|
|
923
953
|
C: (f, a) => f(...a)
|
|
924
954
|
});
|
|
@@ -932,9 +962,9 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
932
962
|
}
|
|
933
963
|
async pullTrack({ ctx, trackData }) {
|
|
934
964
|
await this.waitUntilOpen();
|
|
935
|
-
|
|
936
|
-
F:
|
|
937
|
-
L:
|
|
965
|
+
invariant3(this.session, void 0, {
|
|
966
|
+
F: __dxlog_file3,
|
|
967
|
+
L: 441,
|
|
938
968
|
S: this,
|
|
939
969
|
A: [
|
|
940
970
|
"this.session",
|
|
@@ -1020,7 +1050,7 @@ var peerConnectionIsConnected = async (peerConnection) => {
|
|
|
1020
1050
|
|
|
1021
1051
|
// src/calls/util/media.ts
|
|
1022
1052
|
import { log as log3 } from "@dxos/log";
|
|
1023
|
-
var
|
|
1053
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
|
|
1024
1054
|
var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
1025
1055
|
deviceList ??= (await getDeviceList()).filter((device) => device.kind === kind);
|
|
1026
1056
|
const firstDevice = deviceList[0];
|
|
@@ -1032,7 +1062,7 @@ var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
|
1032
1062
|
var acquireTrack = async (device, constraints) => {
|
|
1033
1063
|
const { deviceId, label } = device;
|
|
1034
1064
|
log3.info(`requesting ${label}`, void 0, {
|
|
1035
|
-
F:
|
|
1065
|
+
F: __dxlog_file4,
|
|
1036
1066
|
L: 23,
|
|
1037
1067
|
S: void 0,
|
|
1038
1068
|
C: (f, a) => f(...a)
|
|
@@ -1082,8 +1112,20 @@ var START_SPEAKING_THRESHOLD = 0.05;
|
|
|
1082
1112
|
var CONTINUE_SPEAKING_THRESHOLD = 0.02;
|
|
1083
1113
|
var MIN_EVENT_INTERVAL = 100;
|
|
1084
1114
|
var SpeakingMonitor = class extends Resource3 {
|
|
1115
|
+
_mediaStreamTrack;
|
|
1116
|
+
/**
|
|
1117
|
+
* Event that is emitted when the user starts or stops speaking.
|
|
1118
|
+
* It is debounced to prevent rapid state changes.
|
|
1119
|
+
*/
|
|
1120
|
+
speakingChanged = new Event2();
|
|
1121
|
+
/**
|
|
1122
|
+
* Real state of the user speaking.
|
|
1123
|
+
*/
|
|
1124
|
+
_isSpeaking = false;
|
|
1125
|
+
_lastEventTime = 0;
|
|
1126
|
+
_deferredUpdate;
|
|
1085
1127
|
constructor(_mediaStreamTrack) {
|
|
1086
|
-
super(), this._mediaStreamTrack = _mediaStreamTrack
|
|
1128
|
+
super(), this._mediaStreamTrack = _mediaStreamTrack;
|
|
1087
1129
|
}
|
|
1088
1130
|
get isSpeaking() {
|
|
1089
1131
|
return this._isSpeaking;
|
|
@@ -1132,7 +1174,8 @@ var SpeakingMonitor = class extends Resource3 {
|
|
|
1132
1174
|
|
|
1133
1175
|
// src/calls/media-manager.ts
|
|
1134
1176
|
import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
|
|
1135
|
-
import {
|
|
1177
|
+
import { Resource as Resource4, cancelWithContext } from "@dxos/context";
|
|
1178
|
+
import { invariant as invariant4 } from "@dxos/invariant";
|
|
1136
1179
|
import { log as log4 } from "@dxos/log";
|
|
1137
1180
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
1138
1181
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1140,28 +1183,25 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
1140
1183
|
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;
|
|
1141
1184
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1142
1185
|
}
|
|
1143
|
-
var
|
|
1186
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
|
|
1144
1187
|
var VIDEO_WIDTH = 1280;
|
|
1145
1188
|
var VIDEO_HEIGHT = 720;
|
|
1146
1189
|
var MAX_WEB_CAM_FRAMERATE = 24;
|
|
1147
1190
|
var MAX_WEB_CAM_BITRATE = 12e5;
|
|
1148
|
-
var RETRY_INTERVAL =
|
|
1149
|
-
var USE_INAUDIBLE_AUDIO =
|
|
1191
|
+
var RETRY_INTERVAL = 100;
|
|
1192
|
+
var USE_INAUDIBLE_AUDIO = true;
|
|
1150
1193
|
var MediaManager = class extends Resource4 {
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
this._pushTracksTask = void 0;
|
|
1163
|
-
this._pullTracksTask = void 0;
|
|
1164
|
-
}
|
|
1194
|
+
stateUpdated = new Event3();
|
|
1195
|
+
_state = {
|
|
1196
|
+
pulledVideoStreams: {},
|
|
1197
|
+
pulledAudioTracks: {}
|
|
1198
|
+
};
|
|
1199
|
+
_speakingMonitor = void 0;
|
|
1200
|
+
_trackToReconcile = [];
|
|
1201
|
+
_blackCanvasStreamTrack = void 0;
|
|
1202
|
+
_inaudibleAudioStreamTrack = void 0;
|
|
1203
|
+
_pushTracksTask = void 0;
|
|
1204
|
+
_pullTracksTask = void 0;
|
|
1165
1205
|
get isSpeaking() {
|
|
1166
1206
|
return this._speakingMonitor?.isSpeaking;
|
|
1167
1207
|
}
|
|
@@ -1300,8 +1340,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1300
1340
|
}
|
|
1301
1341
|
async _reconcilePulledMedia() {
|
|
1302
1342
|
log4("reconciling tracks", void 0, {
|
|
1303
|
-
F:
|
|
1304
|
-
L:
|
|
1343
|
+
F: __dxlog_file5,
|
|
1344
|
+
L: 229,
|
|
1305
1345
|
S: this,
|
|
1306
1346
|
C: (f, a) => f(...a)
|
|
1307
1347
|
});
|
|
@@ -1318,12 +1358,12 @@ var MediaManager = class extends Resource4 {
|
|
|
1318
1358
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1319
1359
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1320
1360
|
}, {
|
|
1321
|
-
F:
|
|
1322
|
-
L:
|
|
1361
|
+
F: __dxlog_file5,
|
|
1362
|
+
L: 247,
|
|
1323
1363
|
S: this,
|
|
1324
1364
|
C: (f, a) => f(...a)
|
|
1325
1365
|
});
|
|
1326
|
-
await Promise.all(tracksToPull.map((name) => this._pullTrack(name)));
|
|
1366
|
+
const pullResults = await Promise.all(tracksToPull.map((name) => this._pullTrack(name)));
|
|
1327
1367
|
await Promise.all([
|
|
1328
1368
|
...audioTracksToClose,
|
|
1329
1369
|
...videoStreamsToClose
|
|
@@ -1332,55 +1372,102 @@ var MediaManager = class extends Resource4 {
|
|
|
1332
1372
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1333
1373
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1334
1374
|
}, {
|
|
1335
|
-
F:
|
|
1336
|
-
L:
|
|
1375
|
+
F: __dxlog_file5,
|
|
1376
|
+
L: 262,
|
|
1337
1377
|
S: this,
|
|
1338
1378
|
C: (f, a) => f(...a)
|
|
1339
1379
|
});
|
|
1340
1380
|
this.stateUpdated.emit(this._state);
|
|
1381
|
+
if (pullResults.some(({ shouldRetry }) => shouldRetry)) {
|
|
1382
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1383
|
+
log4.info("retrying pull tracks", {
|
|
1384
|
+
tracksToPull
|
|
1385
|
+
}, {
|
|
1386
|
+
F: __dxlog_file5,
|
|
1387
|
+
L: 270,
|
|
1388
|
+
S: this,
|
|
1389
|
+
C: (f, a) => f(...a)
|
|
1390
|
+
});
|
|
1391
|
+
invariant4(this._pullTracksTask, void 0, {
|
|
1392
|
+
F: __dxlog_file5,
|
|
1393
|
+
L: 271,
|
|
1394
|
+
S: this,
|
|
1395
|
+
A: [
|
|
1396
|
+
"this._pullTracksTask",
|
|
1397
|
+
""
|
|
1398
|
+
]
|
|
1399
|
+
});
|
|
1400
|
+
this._pullTracksTask.schedule();
|
|
1401
|
+
}
|
|
1341
1402
|
}
|
|
1342
1403
|
async _pushTracks() {
|
|
1343
1404
|
if (!this._state.peer?.isOpen) {
|
|
1344
1405
|
return;
|
|
1345
1406
|
}
|
|
1346
1407
|
let updated = false;
|
|
1347
|
-
const [
|
|
1348
|
-
this.
|
|
1408
|
+
const [pushVideoResult, pushAudioResult, pushScreenshareResult] = await Promise.all([
|
|
1409
|
+
this._maybePushTrack(this._state.videoTrack, this._state.pushedVideoTrack, [
|
|
1349
1410
|
{
|
|
1350
1411
|
maxFramerate: MAX_WEB_CAM_FRAMERATE,
|
|
1351
1412
|
maxBitrate: MAX_WEB_CAM_BITRATE
|
|
1352
1413
|
}
|
|
1353
1414
|
]),
|
|
1354
|
-
this.
|
|
1415
|
+
this._maybePushTrack(this._state.audioTrack, this._state.pushedAudioTrack, [
|
|
1355
1416
|
{
|
|
1356
1417
|
networkPriority: "high"
|
|
1357
1418
|
}
|
|
1358
1419
|
]),
|
|
1359
|
-
this.
|
|
1420
|
+
this._maybePushTrack(this._state.screenshareTrack, this._state.pushedScreenshareTrack)
|
|
1360
1421
|
]);
|
|
1361
|
-
if (
|
|
1362
|
-
this._state.pushedVideoTrack =
|
|
1422
|
+
if (pushVideoResult.track !== this._state.pushedVideoTrack) {
|
|
1423
|
+
this._state.pushedVideoTrack = pushVideoResult.track;
|
|
1363
1424
|
updated = true;
|
|
1364
1425
|
}
|
|
1365
|
-
if (
|
|
1366
|
-
this._state.pushedAudioTrack =
|
|
1426
|
+
if (pushAudioResult.track !== this._state.pushedAudioTrack) {
|
|
1427
|
+
this._state.pushedAudioTrack = pushAudioResult.track;
|
|
1367
1428
|
updated = true;
|
|
1368
1429
|
}
|
|
1369
|
-
if (
|
|
1370
|
-
this._state.pushedScreenshareTrack =
|
|
1430
|
+
if (pushScreenshareResult.track !== this._state.pushedScreenshareTrack) {
|
|
1431
|
+
this._state.pushedScreenshareTrack = pushScreenshareResult.track;
|
|
1371
1432
|
updated = true;
|
|
1372
1433
|
}
|
|
1373
|
-
|
|
1374
|
-
|
|
1434
|
+
const shouldRetry = pushVideoResult.shouldRetry || pushAudioResult.shouldRetry || pushScreenshareResult.shouldRetry;
|
|
1435
|
+
if (updated) {
|
|
1436
|
+
this.stateUpdated.emit(this._state);
|
|
1437
|
+
}
|
|
1438
|
+
if (shouldRetry) {
|
|
1439
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1440
|
+
log4.info("retrying push tracks", {
|
|
1441
|
+
pushVideoResult,
|
|
1442
|
+
pushAudioResult,
|
|
1443
|
+
pushScreenshareResult
|
|
1444
|
+
}, {
|
|
1445
|
+
F: __dxlog_file5,
|
|
1446
|
+
L: 310,
|
|
1447
|
+
S: this,
|
|
1448
|
+
C: (f, a) => f(...a)
|
|
1449
|
+
});
|
|
1450
|
+
invariant4(this._pushTracksTask, void 0, {
|
|
1451
|
+
F: __dxlog_file5,
|
|
1452
|
+
L: 311,
|
|
1453
|
+
S: this,
|
|
1454
|
+
A: [
|
|
1455
|
+
"this._pushTracksTask",
|
|
1456
|
+
""
|
|
1457
|
+
]
|
|
1458
|
+
});
|
|
1459
|
+
this._pushTracksTask.schedule();
|
|
1375
1460
|
}
|
|
1376
|
-
this.stateUpdated.emit(this._state);
|
|
1377
1461
|
}
|
|
1378
1462
|
async _pullTrack(name) {
|
|
1379
1463
|
const ctx = this._ctx.derive();
|
|
1380
1464
|
try {
|
|
1381
1465
|
const trackData = TrackNameCodec.decode(name);
|
|
1382
1466
|
const track = await this._state.peer.pullTrack({
|
|
1383
|
-
trackData
|
|
1467
|
+
trackData: {
|
|
1468
|
+
...trackData,
|
|
1469
|
+
mid: void 0
|
|
1470
|
+
},
|
|
1384
1471
|
ctx
|
|
1385
1472
|
});
|
|
1386
1473
|
if (track?.readyState === "ended") {
|
|
@@ -1393,7 +1480,9 @@ var MediaManager = class extends Resource4 {
|
|
|
1393
1480
|
ctx
|
|
1394
1481
|
};
|
|
1395
1482
|
ctx.onDispose(() => delete this._state.pulledAudioTracks[name]);
|
|
1396
|
-
|
|
1483
|
+
return {
|
|
1484
|
+
shouldRetry: false
|
|
1485
|
+
};
|
|
1397
1486
|
}
|
|
1398
1487
|
case "video": {
|
|
1399
1488
|
const mediaStream = new MediaStream();
|
|
@@ -1407,43 +1496,62 @@ var MediaManager = class extends Resource4 {
|
|
|
1407
1496
|
track.stop();
|
|
1408
1497
|
delete this._state.pulledVideoStreams[name];
|
|
1409
1498
|
});
|
|
1410
|
-
|
|
1499
|
+
return {
|
|
1500
|
+
shouldRetry: false
|
|
1501
|
+
};
|
|
1411
1502
|
}
|
|
1412
1503
|
default:
|
|
1413
1504
|
throw new Error(`Invalid track kind: ${track?.kind}`);
|
|
1414
1505
|
}
|
|
1415
1506
|
} catch (err) {
|
|
1416
|
-
log4.
|
|
1507
|
+
log4.info("failed to pull track", {
|
|
1417
1508
|
err,
|
|
1418
1509
|
name
|
|
1419
1510
|
}, {
|
|
1420
|
-
F:
|
|
1421
|
-
L:
|
|
1511
|
+
F: __dxlog_file5,
|
|
1512
|
+
L: 347,
|
|
1422
1513
|
S: this,
|
|
1423
1514
|
C: (f, a) => f(...a)
|
|
1424
1515
|
});
|
|
1425
1516
|
void ctx.dispose();
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1517
|
+
return {
|
|
1518
|
+
shouldRetry: true
|
|
1519
|
+
};
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
async _maybePushTrack(track, previousTrack, encodings) {
|
|
1523
|
+
if (!track && !previousTrack) {
|
|
1524
|
+
return {
|
|
1525
|
+
track: void 0
|
|
1526
|
+
};
|
|
1527
|
+
}
|
|
1528
|
+
const ctx = this._ctx.derive();
|
|
1529
|
+
try {
|
|
1530
|
+
return {
|
|
1531
|
+
track: await this._state.peer.pushTrack({
|
|
1532
|
+
ctx,
|
|
1533
|
+
track: track ?? null,
|
|
1534
|
+
previousTrack,
|
|
1535
|
+
encodings
|
|
1536
|
+
})
|
|
1537
|
+
};
|
|
1538
|
+
} catch (err) {
|
|
1539
|
+
log4.info("failed to push track", {
|
|
1540
|
+
err,
|
|
1541
|
+
track,
|
|
1542
|
+
previousTrack,
|
|
1543
|
+
encodings
|
|
1429
1544
|
}, {
|
|
1430
|
-
F:
|
|
1431
|
-
L:
|
|
1545
|
+
F: __dxlog_file5,
|
|
1546
|
+
L: 373,
|
|
1432
1547
|
S: this,
|
|
1433
1548
|
C: (f, a) => f(...a)
|
|
1434
1549
|
});
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
if (!track && !previousTrack) {
|
|
1440
|
-
return;
|
|
1550
|
+
void ctx.dispose();
|
|
1551
|
+
return {
|
|
1552
|
+
shouldRetry: true
|
|
1553
|
+
};
|
|
1441
1554
|
}
|
|
1442
|
-
return this._state.peer.pushTrack({
|
|
1443
|
-
track: track ?? null,
|
|
1444
|
-
previousTrack,
|
|
1445
|
-
encodings
|
|
1446
|
-
});
|
|
1447
1555
|
}
|
|
1448
1556
|
};
|
|
1449
1557
|
_ts_decorate2([
|
|
@@ -1454,11 +1562,10 @@ _ts_decorate2([
|
|
|
1454
1562
|
], MediaManager.prototype, "leave", null);
|
|
1455
1563
|
|
|
1456
1564
|
// src/calls/call-manager.ts
|
|
1457
|
-
import {
|
|
1565
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
1458
1566
|
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
1459
1567
|
import { Resource as Resource5 } from "@dxos/context";
|
|
1460
|
-
import { invariant as
|
|
1461
|
-
import { live } from "@dxos/live-object";
|
|
1568
|
+
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1462
1569
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1463
1570
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
1464
1571
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1466,55 +1573,92 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
1466
1573
|
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;
|
|
1467
1574
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1468
1575
|
}
|
|
1469
|
-
var
|
|
1576
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
|
|
1470
1577
|
var CallManager = class extends Resource5 {
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
get
|
|
1493
|
-
|
|
1494
|
-
}
|
|
1495
|
-
|
|
1496
|
-
get
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1578
|
+
_client;
|
|
1579
|
+
_registry;
|
|
1580
|
+
callStateUpdated = new Event4();
|
|
1581
|
+
// TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
|
|
1582
|
+
mediaStateUpdated = new Event4();
|
|
1583
|
+
left = new Event4();
|
|
1584
|
+
/**
|
|
1585
|
+
* Atom-based state. Updated via `_updateState()`.
|
|
1586
|
+
* CAUTION: Do not change directly.
|
|
1587
|
+
*/
|
|
1588
|
+
_stateAtom = Atom.make({
|
|
1589
|
+
call: {},
|
|
1590
|
+
media: {
|
|
1591
|
+
pulledAudioTracks: {},
|
|
1592
|
+
pulledVideoStreams: {}
|
|
1593
|
+
}
|
|
1594
|
+
});
|
|
1595
|
+
// Derived atoms for reactive subscriptions.
|
|
1596
|
+
_roomIdAtom = Atom.make((get) => get(this._stateAtom).call.roomId);
|
|
1597
|
+
_raisedHandAtom = Atom.make((get) => get(this._stateAtom).call.raisedHand ?? false);
|
|
1598
|
+
_speakingAtom = Atom.make((get) => get(this._stateAtom).call.speaking ?? false);
|
|
1599
|
+
_joinedAtom = Atom.make((get) => get(this._stateAtom).call.joined ?? false);
|
|
1600
|
+
_selfAtom = Atom.make((get) => get(this._stateAtom).call.self ?? {});
|
|
1601
|
+
_tracksAtom = Atom.make((get) => get(this._stateAtom).call.tracks ?? {});
|
|
1602
|
+
_usersAtom = Atom.make((get) => get(this._stateAtom).call.users ?? []);
|
|
1603
|
+
_mediaAtom = Atom.make((get) => get(this._stateAtom).media);
|
|
1604
|
+
_audioTracksToPlayAtom = Atom.make((get) => {
|
|
1605
|
+
const state = get(this._stateAtom);
|
|
1606
|
+
return (state.call.users ?? []).map((user) => user.tracks?.audioEnabled ? user.tracks?.audio : void 0).filter(isNonNullable2).map((track) => state.media.pulledAudioTracks[track]?.track).filter(isNonNullable2);
|
|
1607
|
+
});
|
|
1608
|
+
_videoStreamAtomFamily = Atom.family((name) => Atom.make((get) => get(this._stateAtom).media.pulledVideoStreams[name]?.stream));
|
|
1609
|
+
_activityAtomFamily = Atom.family((key) => Atom.make((get) => get(this._stateAtom).call.activities?.[key]));
|
|
1610
|
+
_swarmSynchronizer;
|
|
1611
|
+
_mediaManager;
|
|
1612
|
+
//
|
|
1613
|
+
// Derived atoms for reactive UI subscriptions.
|
|
1614
|
+
//
|
|
1615
|
+
/** Derived atom for roomId. */
|
|
1616
|
+
get roomIdAtom() {
|
|
1617
|
+
return this._roomIdAtom;
|
|
1618
|
+
}
|
|
1619
|
+
/** Derived atom for raisedHand. */
|
|
1620
|
+
get raisedHandAtom() {
|
|
1621
|
+
return this._raisedHandAtom;
|
|
1622
|
+
}
|
|
1623
|
+
/** Derived atom for speaking. */
|
|
1624
|
+
get speakingAtom() {
|
|
1625
|
+
return this._speakingAtom;
|
|
1626
|
+
}
|
|
1627
|
+
/** Derived atom for joined. */
|
|
1628
|
+
get joinedAtom() {
|
|
1629
|
+
return this._joinedAtom;
|
|
1630
|
+
}
|
|
1631
|
+
/** Derived atom for self. */
|
|
1632
|
+
get selfAtom() {
|
|
1633
|
+
return this._selfAtom;
|
|
1634
|
+
}
|
|
1635
|
+
/** Derived atom for tracks. */
|
|
1636
|
+
get tracksAtom() {
|
|
1637
|
+
return this._tracksAtom;
|
|
1638
|
+
}
|
|
1639
|
+
/** Derived atom for users. */
|
|
1640
|
+
get usersAtom() {
|
|
1641
|
+
return this._usersAtom;
|
|
1642
|
+
}
|
|
1643
|
+
/** Derived atom for media. */
|
|
1644
|
+
get mediaAtom() {
|
|
1645
|
+
return this._mediaAtom;
|
|
1646
|
+
}
|
|
1647
|
+
/** Derived atom for audioTracksToPlay. */
|
|
1648
|
+
get audioTracksToPlayAtom() {
|
|
1649
|
+
return this._audioTracksToPlayAtom;
|
|
1650
|
+
}
|
|
1651
|
+
/** Returns the full state atom for reactive subscriptions. */
|
|
1652
|
+
get stateAtom() {
|
|
1653
|
+
return this._stateAtom;
|
|
1654
|
+
}
|
|
1655
|
+
/** Returns a derived atom for a video stream by name. */
|
|
1656
|
+
videoStreamAtom(name) {
|
|
1657
|
+
return this._videoStreamAtomFamily(name);
|
|
1658
|
+
}
|
|
1659
|
+
/** Returns a derived atom for an activity by key. */
|
|
1660
|
+
activityAtom(key) {
|
|
1661
|
+
return this._activityAtomFamily(key);
|
|
1518
1662
|
}
|
|
1519
1663
|
setRoomId(roomId) {
|
|
1520
1664
|
this._swarmSynchronizer._setRoomId(roomId);
|
|
@@ -1547,19 +1691,13 @@ var CallManager = class extends Resource5 {
|
|
|
1547
1691
|
return this._mediaManager.turnScreenshareOff();
|
|
1548
1692
|
}
|
|
1549
1693
|
// TODO(burdon): Can this be mocked?
|
|
1550
|
-
constructor(_client) {
|
|
1551
|
-
super(), this._client = _client, this.
|
|
1552
|
-
call: {},
|
|
1553
|
-
media: {
|
|
1554
|
-
pulledAudioTracks: {},
|
|
1555
|
-
pulledVideoStreams: {}
|
|
1556
|
-
}
|
|
1557
|
-
}), this._raisedHandSignal = computed(() => this._state.call.raisedHand ?? false), this._speakingSignal = computed(() => this._state.call.speaking ?? false), this._joinedSignal = computed(() => this._state.call.joined ?? false);
|
|
1694
|
+
constructor(_client, _registry) {
|
|
1695
|
+
super(), this._client = _client, this._registry = _registry;
|
|
1558
1696
|
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1559
1697
|
const networkService = this._client.services.services.NetworkService;
|
|
1560
|
-
|
|
1561
|
-
F:
|
|
1562
|
-
L:
|
|
1698
|
+
invariant5(networkService, "network service not found", {
|
|
1699
|
+
F: __dxlog_file6,
|
|
1700
|
+
L: 180,
|
|
1563
1701
|
S: this,
|
|
1564
1702
|
A: [
|
|
1565
1703
|
"networkService",
|
|
@@ -1608,10 +1746,11 @@ var CallManager = class extends Resource5 {
|
|
|
1608
1746
|
this._swarmSynchronizer.setJoined(false);
|
|
1609
1747
|
await this._swarmSynchronizer.leave();
|
|
1610
1748
|
await this._mediaManager.leave();
|
|
1611
|
-
|
|
1749
|
+
const roomId = this._registry.get(this._roomIdAtom);
|
|
1750
|
+
roomId && this.left.emit(roomId);
|
|
1612
1751
|
}
|
|
1613
1752
|
_onCallStateUpdated(state) {
|
|
1614
|
-
const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self
|
|
1753
|
+
const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self.id)?.flatMap((user) => [
|
|
1615
1754
|
user.tracks?.video,
|
|
1616
1755
|
user.tracks?.audio,
|
|
1617
1756
|
user.tracks?.screenshare
|
|
@@ -1641,8 +1780,10 @@ var CallManager = class extends Resource5 {
|
|
|
1641
1780
|
* Only this method is allowed to change state.
|
|
1642
1781
|
*/
|
|
1643
1782
|
_updateState() {
|
|
1644
|
-
this.
|
|
1645
|
-
|
|
1783
|
+
this._registry.set(this._stateAtom, {
|
|
1784
|
+
call: this._swarmSynchronizer._getState(),
|
|
1785
|
+
media: this._mediaManager._getState()
|
|
1786
|
+
});
|
|
1646
1787
|
}
|
|
1647
1788
|
};
|
|
1648
1789
|
_ts_decorate3([
|
|
@@ -1666,4 +1807,4 @@ export {
|
|
|
1666
1807
|
MediaManager,
|
|
1667
1808
|
CallManager
|
|
1668
1809
|
};
|
|
1669
|
-
//# sourceMappingURL=chunk-
|
|
1810
|
+
//# sourceMappingURL=chunk-ERK254BS.mjs.map
|