@dxos/plugin-thread 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393
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/neutral/CallDebugPanel-CXWTCS7A.mjs +172 -0
- package/dist/lib/neutral/CallDebugPanel-CXWTCS7A.mjs.map +7 -0
- package/dist/lib/neutral/CallSidebar-4USJZ2SB.mjs +25 -0
- package/dist/lib/neutral/CallSidebar-4USJZ2SB.mjs.map +7 -0
- package/dist/lib/neutral/ChannelChat-6YTD5HWL.mjs +10 -0
- package/dist/lib/neutral/ChannelContainer-XHBF2NCK.mjs +9 -0
- package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs +208 -0
- package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs.map +7 -0
- package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs +61 -0
- package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs.map +7 -0
- package/dist/lib/neutral/ThreadPlugin.mjs +89 -0
- package/dist/lib/neutral/ThreadPlugin.mjs.map +7 -0
- package/dist/lib/neutral/ThreadPlugin.node.mjs +40 -0
- package/dist/lib/neutral/ThreadPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/ThreadSettings-5Z5XIHG3.mjs +15 -0
- package/dist/lib/neutral/ThreadSettings-5Z5XIHG3.mjs.map +7 -0
- package/dist/lib/{browser/add-message-VPPFFLFL.mjs → neutral/add-message-HV5R66K4.mjs} +12 -22
- package/dist/lib/neutral/add-message-HV5R66K4.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-JDLHZ4XO.mjs +173 -0
- package/dist/lib/neutral/app-graph-builder-JDLHZ4XO.mjs.map +7 -0
- package/dist/lib/neutral/append-channel-message-PO33DR5V.mjs +40 -0
- package/dist/lib/neutral/append-channel-message-PO33DR5V.mjs.map +7 -0
- package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs +15 -0
- package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +8 -0
- package/dist/lib/neutral/call-manager-JFA4DLWR.mjs +24 -0
- package/dist/lib/neutral/call-manager-JFA4DLWR.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +29 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-44D7D4ZX.mjs +20 -0
- package/dist/lib/neutral/chunk-44D7D4ZX.mjs.map +7 -0
- package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-5T5LPLBN.mjs} +5 -6
- package/dist/lib/neutral/chunk-5T5LPLBN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-CROE4U4O.mjs +100 -0
- package/dist/lib/neutral/chunk-CROE4U4O.mjs.map +7 -0
- package/dist/lib/neutral/chunk-D5LGFCUY.mjs +55 -0
- package/dist/lib/neutral/chunk-D5LGFCUY.mjs.map +7 -0
- package/dist/lib/neutral/chunk-FWSMZWBO.mjs +178 -0
- package/dist/lib/neutral/chunk-FWSMZWBO.mjs.map +7 -0
- package/dist/lib/neutral/chunk-JLY4NVTA.mjs +38 -0
- package/dist/lib/neutral/chunk-JLY4NVTA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-KRXHIW4P.mjs +164 -0
- package/dist/lib/neutral/chunk-KRXHIW4P.mjs.map +7 -0
- package/dist/lib/neutral/chunk-MXJYXUS2.mjs +8 -0
- package/dist/lib/neutral/chunk-MXJYXUS2.mjs.map +7 -0
- package/dist/lib/{browser/chunk-VPM44Z35.mjs → neutral/chunk-OZRSYMYO.mjs} +101 -85
- package/dist/lib/neutral/chunk-OZRSYMYO.mjs.map +7 -0
- package/dist/lib/{browser/index.mjs → neutral/chunk-PZ7WTAA2.mjs} +88 -900
- package/dist/lib/neutral/chunk-PZ7WTAA2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-S2AKEA2K.mjs +202 -0
- package/dist/lib/neutral/chunk-S2AKEA2K.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +1230 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +19 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/{browser/create-UGT7V733.mjs → neutral/create-C3CICN35.mjs} +8 -11
- package/dist/lib/neutral/create-C3CICN35.mjs.map +7 -0
- package/dist/lib/neutral/create-channel-UEQESOFT.mjs +19 -0
- package/dist/lib/neutral/create-channel-UEQESOFT.mjs.map +7 -0
- package/dist/lib/neutral/create-object-HIEWSBZB.mjs +27 -0
- package/dist/lib/neutral/create-object-HIEWSBZB.mjs.map +7 -0
- package/dist/lib/{browser/create-proposals-CMK7S7VS.mjs → neutral/create-proposals-OZ4NCBBS.mjs} +5 -6
- package/dist/lib/neutral/create-proposals-OZ4NCBBS.mjs.map +7 -0
- package/dist/lib/{browser/delete-FSFVU6ZA.mjs → neutral/delete-AVFYFWMY.mjs} +8 -10
- package/dist/lib/neutral/delete-AVFYFWMY.mjs.map +7 -0
- package/dist/lib/{browser/delete-message-XL5M5J33.mjs → neutral/delete-message-EV2MKRTB.mjs} +9 -19
- package/dist/lib/neutral/delete-message-EV2MKRTB.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +19 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +68 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/markdown-BUORNCPG.mjs +83 -0
- package/dist/lib/neutral/markdown-BUORNCPG.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +10 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/on-create-space-NQF7WGEB.mjs +23 -0
- package/dist/lib/neutral/on-create-space-NQF7WGEB.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs +13 -0
- package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-root-VMMNUSSL.mjs +18 -0
- package/dist/lib/neutral/react-root-VMMNUSSL.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-WPSVOTVG.mjs +94 -0
- package/dist/lib/neutral/react-surface-WPSVOTVG.mjs.map +7 -0
- package/dist/lib/{browser/restore-2ZGMKUSD.mjs → neutral/restore-MGLYOJ3Y.mjs} +6 -7
- package/dist/lib/neutral/restore-MGLYOJ3Y.mjs.map +7 -0
- package/dist/lib/{browser/restore-message-OYEGWPII.mjs → neutral/restore-message-ZIOA2MQJ.mjs} +8 -17
- package/dist/lib/neutral/restore-message-ZIOA2MQJ.mjs.map +7 -0
- package/dist/lib/{browser/select-VG2XLULE.mjs → neutral/select-CVCGBDHA.mjs} +7 -9
- package/dist/lib/neutral/select-CVCGBDHA.mjs.map +7 -0
- package/dist/lib/neutral/settings-HK4EB6TF.mjs +30 -0
- package/dist/lib/neutral/settings-HK4EB6TF.mjs.map +7 -0
- package/dist/lib/neutral/state-UU7VEAKV.mjs +22 -0
- package/dist/lib/neutral/state-UU7VEAKV.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +58 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/{browser/toggle-resolved-MM6YC5BU.mjs → neutral/toggle-resolved-ZM4BHON5.mjs} +8 -17
- package/dist/lib/neutral/toggle-resolved-ZM4BHON5.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +90 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +12 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs +54 -0
- package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs.map +7 -0
- package/dist/types/src/ThreadPlugin.d.ts +1 -0
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/ThreadPlugin.node.d.ts +4 -0
- package/dist/types/src/ThreadPlugin.node.d.ts.map +1 -0
- package/dist/types/src/ThreadPlugin.test.d.ts +2 -0
- package/dist/types/src/ThreadPlugin.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/thread-blueprint.d.ts +2 -2
- package/dist/types/src/blueprints/thread-blueprint.d.ts.map +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/speaking-monitor.d.ts +0 -3
- package/dist/types/src/calls/speaking-monitor.d.ts.map +1 -1
- package/dist/types/src/calls/types.d.ts.map +1 -1
- package/dist/types/src/calls/util/audio.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +2 -2
- package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
- package/dist/types/src/calls/util/history-cache.d.ts.map +1 -1
- package/dist/types/src/calls/util/media.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.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +2 -2
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +9 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -1
- package/dist/types/src/components/Call/Call.d.ts +32 -4
- package/dist/types/src/components/Call/Call.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts +5 -5
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +51 -0
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
- package/dist/types/src/components/Chat/index.d.ts +2 -0
- package/dist/types/src/components/Chat/index.d.ts.map +1 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -1
- package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +70 -70
- package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -1
- package/dist/types/src/components/Lobby/Lobby.d.ts +24 -3
- 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/MessagePanel/MessagePanel.d.ts.map +1 -1
- package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +70 -70
- 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/ResponsivePanel.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +70 -70
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +70 -70
- package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -1
- package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +20 -0
- package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
- package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +1 -1
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +70 -70
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -1
- package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
- package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
- package/dist/types/src/containers/{ChatContainer/ChatContainer.stories.d.ts → ThreadContainer/ThreadContainer.stories.d.ts} +71 -71
- package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
- package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +2 -1
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts +3 -3
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/operations/add-message.d.ts +3 -3
- package/dist/types/src/operations/add-message.d.ts.map +1 -1
- package/dist/types/src/operations/append-channel-message.d.ts +5 -0
- package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
- package/dist/types/src/operations/create-channel.d.ts +3 -3
- package/dist/types/src/operations/create-channel.d.ts.map +1 -1
- package/dist/types/src/operations/create-proposals.d.ts +3 -3
- package/dist/types/src/operations/create-proposals.d.ts.map +1 -1
- package/dist/types/src/operations/create.d.ts +3 -3
- package/dist/types/src/operations/create.d.ts.map +1 -1
- package/dist/types/src/operations/delete-message.d.ts +3 -3
- package/dist/types/src/operations/delete-message.d.ts.map +1 -1
- package/dist/types/src/operations/delete.d.ts +3 -3
- package/dist/types/src/operations/delete.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +1 -2
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/on-create-space.d.ts +3 -3
- package/dist/types/src/operations/on-create-space.d.ts.map +1 -1
- package/dist/types/src/operations/restore-message.d.ts +3 -3
- package/dist/types/src/operations/restore-message.d.ts.map +1 -1
- package/dist/types/src/operations/restore.d.ts +3 -3
- package/dist/types/src/operations/restore.d.ts.map +1 -1
- package/dist/types/src/operations/select.d.ts +3 -3
- package/dist/types/src/operations/select.d.ts.map +1 -1
- package/dist/types/src/operations/toggle-resolved.d.ts +3 -3
- package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing/data.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -1
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +70 -70
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/ThreadCapabilities.d.ts +26 -0
- package/dist/types/src/types/ThreadCapabilities.d.ts.map +1 -0
- package/dist/types/src/{operations/definitions.d.ts → types/ThreadOperation.d.ts} +864 -1673
- package/dist/types/src/types/ThreadOperation.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +1 -1
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +6 -3
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +124 -86
- package/src/ThreadPlugin.node.ts +39 -0
- package/src/ThreadPlugin.test.ts +37 -0
- package/src/ThreadPlugin.tsx +13 -57
- package/src/blueprints/thread-blueprint.ts +3 -4
- package/src/calls/util/calls-service.ts +3 -1
- package/src/calls/util/stub-media-streams.ts +3 -1
- package/src/capabilities/app-graph-builder.ts +21 -19
- package/src/capabilities/blueprint-definition.ts +2 -0
- package/src/capabilities/call-manager.ts +1 -1
- package/src/capabilities/create-object.ts +29 -0
- package/src/capabilities/index.ts +3 -1
- package/src/capabilities/markdown.ts +6 -2
- package/src/capabilities/operation-handler.ts +1 -1
- package/src/capabilities/react-surface.tsx +13 -7
- package/src/capabilities/settings.ts +1 -3
- package/src/capabilities/undo-mappings.ts +1 -1
- package/src/components/Call/Call.tsx +5 -5
- package/src/components/Call/Toolbar.tsx +1 -1
- package/src/components/Chat/Chat.tsx +258 -0
- package/src/components/Chat/index.ts +5 -0
- package/src/components/CommentsPanel/CommentsPanel.stories.tsx +6 -4
- package/src/components/CommentsPanel/CommentsPanel.tsx +4 -4
- package/src/components/CommentsPanel/CommentsThread.tsx +2 -3
- package/src/components/Lobby/Lobby.tsx +5 -4
- package/src/components/MessagePanel/MessagePanel.tsx +8 -9
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +2 -1
- package/src/components/ResponsiveGrid/ResponsivePanel.stories.tsx +2 -1
- package/src/components/ResponsiveGrid/ResponsivePanel.tsx +3 -5
- package/src/components/ThreadSettings/ThreadSettings.stories.tsx +2 -1
- package/src/components/index.ts +1 -0
- package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
- package/src/containers/ChannelChat/index.ts +8 -0
- package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +54 -10
- package/src/containers/ChannelContainer/ChannelContainer.tsx +4 -4
- package/src/containers/ThreadCompanion/ThreadCompanion.tsx +10 -12
- package/src/containers/{ChatContainer/ChatContainer.stories.tsx → ThreadContainer/ThreadContainer.stories.tsx} +10 -11
- package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
- package/src/containers/ThreadContainer/index.ts +8 -0
- package/src/containers/index.ts +2 -1
- package/src/extensions/command.ts +1 -1
- package/src/extensions/threads.ts +9 -9
- package/src/hooks/analytics.ts +1 -1
- package/src/index.ts +4 -3
- package/src/operations/add-message.ts +7 -7
- package/src/operations/append-channel-message.ts +37 -0
- package/src/operations/create-channel.ts +4 -4
- package/src/operations/create-proposals.ts +3 -3
- package/src/operations/create.ts +4 -4
- package/src/operations/delete-message.ts +6 -6
- package/src/operations/delete.ts +4 -4
- package/src/operations/index.ts +2 -4
- package/src/operations/on-create-space.ts +4 -4
- package/src/operations/restore-message.ts +5 -5
- package/src/operations/restore.ts +4 -4
- package/src/operations/select.ts +3 -3
- package/src/operations/toggle-resolved.ts +5 -5
- package/src/plugin.ts +11 -0
- package/src/testing/index.ts +1 -1
- package/src/translations.ts +1 -1
- package/src/types/ThreadCapabilities.ts +41 -0
- package/src/{operations/definitions.ts → types/ThreadOperation.ts} +14 -13
- package/src/types/index.ts +4 -2
- package/src/types/types.ts +0 -2
- package/src/util.ts +36 -4
- package/dist/lib/browser/add-message-VPPFFLFL.mjs.map +0 -7
- package/dist/lib/browser/blueprints/index.mjs.map +0 -7
- package/dist/lib/browser/chunk-MESW3R4Q.mjs +0 -61
- package/dist/lib/browser/chunk-MESW3R4Q.mjs.map +0 -7
- package/dist/lib/browser/chunk-VPM44Z35.mjs.map +0 -7
- package/dist/lib/browser/create-UGT7V733.mjs.map +0 -7
- package/dist/lib/browser/create-channel-EF67LCS6.mjs +0 -21
- package/dist/lib/browser/create-channel-EF67LCS6.mjs.map +0 -7
- package/dist/lib/browser/create-channel-thread-CCZTSWQ6.mjs +0 -28
- package/dist/lib/browser/create-channel-thread-CCZTSWQ6.mjs.map +0 -7
- package/dist/lib/browser/create-proposals-CMK7S7VS.mjs.map +0 -7
- package/dist/lib/browser/delete-FSFVU6ZA.mjs.map +0 -7
- package/dist/lib/browser/delete-message-XL5M5J33.mjs.map +0 -7
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/on-create-space-VYS2JGVT.mjs +0 -25
- package/dist/lib/browser/on-create-space-VYS2JGVT.mjs.map +0 -7
- package/dist/lib/browser/operations/index.mjs +0 -14
- package/dist/lib/browser/operations/index.mjs.map +0 -7
- package/dist/lib/browser/restore-2ZGMKUSD.mjs.map +0 -7
- package/dist/lib/browser/restore-message-OYEGWPII.mjs.map +0 -7
- package/dist/lib/browser/select-VG2XLULE.mjs.map +0 -7
- package/dist/lib/browser/toggle-resolved-MM6YC5BU.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -12
- package/dist/lib/node-esm/add-message-XWKHLNS6.mjs +0 -98
- package/dist/lib/node-esm/add-message-XWKHLNS6.mjs.map +0 -7
- package/dist/lib/node-esm/blueprints/index.mjs +0 -38
- package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-JTHXNWKJ.mjs +0 -260
- package/dist/lib/node-esm/chunk-JTHXNWKJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SDRAQNSQ.mjs +0 -62
- package/dist/lib/node-esm/chunk-SDRAQNSQ.mjs.map +0 -7
- package/dist/lib/node-esm/create-XAYNDVU2.mjs +0 -56
- package/dist/lib/node-esm/create-XAYNDVU2.mjs.map +0 -7
- package/dist/lib/node-esm/create-channel-UYWUNB3L.mjs +0 -22
- package/dist/lib/node-esm/create-channel-UYWUNB3L.mjs.map +0 -7
- package/dist/lib/node-esm/create-channel-thread-UQF2SBHS.mjs +0 -29
- package/dist/lib/node-esm/create-channel-thread-UQF2SBHS.mjs.map +0 -7
- package/dist/lib/node-esm/create-proposals-5FJNURKH.mjs +0 -58
- package/dist/lib/node-esm/create-proposals-5FJNURKH.mjs.map +0 -7
- package/dist/lib/node-esm/delete-WRODXR3E.mjs +0 -60
- package/dist/lib/node-esm/delete-WRODXR3E.mjs.map +0 -7
- package/dist/lib/node-esm/delete-message-TAHCYTW2.mjs +0 -65
- package/dist/lib/node-esm/delete-message-TAHCYTW2.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -2335
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/on-create-space-XDY2YXPV.mjs +0 -26
- package/dist/lib/node-esm/on-create-space-XDY2YXPV.mjs.map +0 -7
- package/dist/lib/node-esm/operations/index.mjs +0 -15
- package/dist/lib/node-esm/operations/index.mjs.map +0 -7
- package/dist/lib/node-esm/restore-T3QA7TSL.mjs +0 -34
- package/dist/lib/node-esm/restore-T3QA7TSL.mjs.map +0 -7
- package/dist/lib/node-esm/restore-message-WFTEVBEV.mjs +0 -43
- package/dist/lib/node-esm/restore-message-WFTEVBEV.mjs.map +0 -7
- package/dist/lib/node-esm/select-Q4UDWJJF.mjs +0 -27
- package/dist/lib/node-esm/select-Q4UDWJJF.mjs.map +0 -7
- package/dist/lib/node-esm/toggle-resolved-33XTAK2H.mjs +0 -46
- package/dist/lib/node-esm/toggle-resolved-33XTAK2H.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -13
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +0 -16
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +0 -1
- package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +0 -1
- package/dist/types/src/containers/ChatContainer/index.d.ts +0 -4
- package/dist/types/src/containers/ChatContainer/index.d.ts.map +0 -1
- package/dist/types/src/operations/create-channel-thread.d.ts +0 -5
- package/dist/types/src/operations/create-channel-thread.d.ts.map +0 -1
- package/dist/types/src/operations/definitions.d.ts.map +0 -1
- package/dist/types/src/testing/stories.d.ts +0 -3
- package/dist/types/src/testing/stories.d.ts.map +0 -1
- package/dist/types/src/types/Channel.d.ts +0 -715
- package/dist/types/src/types/Channel.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -24
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/src/containers/ChatContainer/ChatContainer.tsx +0 -131
- package/src/containers/ChatContainer/index.ts +0 -8
- package/src/operations/create-channel-thread.ts +0 -26
- package/src/testing/stories.ts +0 -51
- package/src/types/Channel.ts +0 -37
- package/src/types/capabilities.ts +0 -36
- /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/ChannelChat-6YTD5HWL.mjs.map} +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → neutral/ChannelContainer-XHBF2NCK.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
|
@@ -1,27 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// src/calls/call-manager.ts
|
|
7
|
-
import { Atom } from "@effect-atom/atom-react";
|
|
8
|
-
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
9
|
-
import { Resource as Resource5 } from "@dxos/context";
|
|
10
|
-
import { invariant as invariant6 } from "@dxos/invariant";
|
|
11
|
-
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
12
|
-
|
|
13
|
-
// src/calls/call-swarm-synchronizer.ts
|
|
14
|
-
import md5Hex from "md5-hex";
|
|
15
|
-
import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
|
|
16
|
-
import { Context, Resource } from "@dxos/context";
|
|
17
|
-
import { generateName } from "@dxos/display-name";
|
|
18
|
-
import { invariant as invariant2 } from "@dxos/invariant";
|
|
19
|
-
import { PublicKey } from "@dxos/keys";
|
|
20
|
-
import { log } from "@dxos/log";
|
|
21
|
-
import { buf as buf2 } from "@dxos/protocols/buf";
|
|
22
|
-
import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
23
|
-
import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
|
|
24
|
-
import { isNonNullable } from "@dxos/util";
|
|
2
|
+
createBlackCanvasStreamTrack,
|
|
3
|
+
createInaudibleAudioStreamTrack
|
|
4
|
+
} from "./chunk-CROE4U4O.mjs";
|
|
25
5
|
|
|
26
6
|
// src/calls/types.ts
|
|
27
7
|
import { invariant } from "@dxos/invariant";
|
|
@@ -39,33 +19,9 @@ var codec = {
|
|
|
39
19
|
};
|
|
40
20
|
var TrackNameCodec = {
|
|
41
21
|
encode: (trackData) => {
|
|
42
|
-
invariant(trackData.sessionId, void 0, {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
S: void 0,
|
|
46
|
-
A: [
|
|
47
|
-
"trackData.sessionId",
|
|
48
|
-
""
|
|
49
|
-
]
|
|
50
|
-
});
|
|
51
|
-
invariant(trackData.trackName, void 0, {
|
|
52
|
-
F: __dxlog_file,
|
|
53
|
-
L: 66,
|
|
54
|
-
S: void 0,
|
|
55
|
-
A: [
|
|
56
|
-
"trackData.trackName",
|
|
57
|
-
""
|
|
58
|
-
]
|
|
59
|
-
});
|
|
60
|
-
invariant(trackData.mid, void 0, {
|
|
61
|
-
F: __dxlog_file,
|
|
62
|
-
L: 67,
|
|
63
|
-
S: void 0,
|
|
64
|
-
A: [
|
|
65
|
-
"trackData.mid",
|
|
66
|
-
""
|
|
67
|
-
]
|
|
68
|
-
});
|
|
22
|
+
invariant(trackData.sessionId, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 20, S: void 0, A: ["trackData.sessionId", ""] });
|
|
23
|
+
invariant(trackData.trackName, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 21, S: void 0, A: ["trackData.trackName", ""] });
|
|
24
|
+
invariant(trackData.mid, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 22, S: void 0, A: ["trackData.mid", ""] });
|
|
69
25
|
return trackData.sessionId + "/" + trackData.trackName + "/" + trackData.mid;
|
|
70
26
|
},
|
|
71
27
|
decode: (name) => {
|
|
@@ -80,13 +36,24 @@ var TrackNameCodec = {
|
|
|
80
36
|
};
|
|
81
37
|
|
|
82
38
|
// src/calls/call-swarm-synchronizer.ts
|
|
39
|
+
import md5Hex from "md5-hex";
|
|
40
|
+
import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
|
|
41
|
+
import { Context, Resource } from "@dxos/context";
|
|
42
|
+
import { generateName } from "@dxos/display-name";
|
|
43
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
44
|
+
import { PublicKey } from "@dxos/keys";
|
|
45
|
+
import { log } from "@dxos/log";
|
|
46
|
+
import { buf as buf2 } from "@dxos/protocols/buf";
|
|
47
|
+
import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
48
|
+
import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
|
|
49
|
+
import { isNonNullable } from "@dxos/util";
|
|
50
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
|
|
83
51
|
function _ts_decorate(decorators, target, key, desc) {
|
|
84
52
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
85
53
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
86
54
|
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;
|
|
87
55
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
88
56
|
}
|
|
89
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
|
|
90
57
|
var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
|
|
91
58
|
var CallSwarmSynchronizer = class extends Resource {
|
|
92
59
|
stateUpdated = new Event();
|
|
@@ -169,12 +136,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
169
136
|
if (this._swarmCtx) {
|
|
170
137
|
log.verbose("joined to a different room", {
|
|
171
138
|
roomId
|
|
172
|
-
}, {
|
|
173
|
-
F: __dxlog_file2,
|
|
174
|
-
L: 152,
|
|
175
|
-
S: this,
|
|
176
|
-
C: (f, a) => f(...a)
|
|
177
|
-
});
|
|
139
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 102, S: this });
|
|
178
140
|
return;
|
|
179
141
|
}
|
|
180
142
|
this._state.roomId = roomId;
|
|
@@ -192,28 +154,9 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
192
154
|
this._reconcileSwarmStateTask = void 0;
|
|
193
155
|
}
|
|
194
156
|
async join() {
|
|
195
|
-
invariant2(this._state.roomId, void 0, {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
S: this,
|
|
199
|
-
A: [
|
|
200
|
-
"this._state.roomId",
|
|
201
|
-
""
|
|
202
|
-
]
|
|
203
|
-
});
|
|
204
|
-
invariant2(!this._swarmCtx, "Already joined", {
|
|
205
|
-
F: __dxlog_file2,
|
|
206
|
-
L: 177,
|
|
207
|
-
S: this,
|
|
208
|
-
A: [
|
|
209
|
-
"!this._swarmCtx",
|
|
210
|
-
"'Already joined'"
|
|
211
|
-
]
|
|
212
|
-
});
|
|
213
|
-
this._swarmCtx = new Context(void 0, {
|
|
214
|
-
F: __dxlog_file2,
|
|
215
|
-
L: 179
|
|
216
|
-
});
|
|
157
|
+
invariant2(this._state.roomId, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 122, S: this, A: ["this._state.roomId", ""] });
|
|
158
|
+
invariant2(!this._swarmCtx, "Already joined", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 123, S: this, A: ["!this._swarmCtx", "'Already joined'"] });
|
|
159
|
+
this._swarmCtx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 124 });
|
|
217
160
|
const topic = getTopic(this._state.roomId);
|
|
218
161
|
log("joining swarm", {
|
|
219
162
|
topic,
|
|
@@ -221,12 +164,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
221
164
|
identityKey: this._identityKey,
|
|
222
165
|
peerKey: this._deviceKey
|
|
223
166
|
}
|
|
224
|
-
}, {
|
|
225
|
-
F: __dxlog_file2,
|
|
226
|
-
L: 181,
|
|
227
|
-
S: this,
|
|
228
|
-
C: (f, a) => f(...a)
|
|
229
|
-
});
|
|
167
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 126, S: this });
|
|
230
168
|
const stream = this._networkService.subscribeSwarmState({
|
|
231
169
|
topic
|
|
232
170
|
});
|
|
@@ -240,24 +178,14 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
240
178
|
identityKey: this._identityKey,
|
|
241
179
|
peerKey: this._deviceKey
|
|
242
180
|
}
|
|
243
|
-
}, {
|
|
244
|
-
F: __dxlog_file2,
|
|
245
|
-
L: 188,
|
|
246
|
-
S: this,
|
|
247
|
-
C: (f, a) => f(...a)
|
|
248
|
-
});
|
|
181
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 140, S: this });
|
|
249
182
|
void this._networkService.leaveSwarm({
|
|
250
183
|
topic,
|
|
251
184
|
peer: {
|
|
252
185
|
identityKey: this._identityKey,
|
|
253
186
|
peerKey: this._deviceKey
|
|
254
187
|
}
|
|
255
|
-
}).catch((err) => log.catch(err, void 0, {
|
|
256
|
-
F: __dxlog_file2,
|
|
257
|
-
L: 194,
|
|
258
|
-
S: this,
|
|
259
|
-
C: (f, a) => f(...a)
|
|
260
|
-
}));
|
|
188
|
+
}).catch((err) => log.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 153, S: this }));
|
|
261
189
|
}
|
|
262
190
|
window.removeEventListener("beforeunload", cleanup);
|
|
263
191
|
};
|
|
@@ -321,15 +249,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
321
249
|
}
|
|
322
250
|
async _reconcileSwarmState() {
|
|
323
251
|
const swarmEvent = this._lastSwarmEvent;
|
|
324
|
-
invariant2(swarmEvent, void 0, {
|
|
325
|
-
F: __dxlog_file2,
|
|
326
|
-
L: 273,
|
|
327
|
-
S: this,
|
|
328
|
-
A: [
|
|
329
|
-
"swarmEvent",
|
|
330
|
-
""
|
|
331
|
-
]
|
|
332
|
-
});
|
|
252
|
+
invariant2(swarmEvent, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 216, S: this, A: ["swarmEvent", ""] });
|
|
333
253
|
const peers = [
|
|
334
254
|
...swarmEvent.peers ?? [],
|
|
335
255
|
...(swarmEvent.inactivePeers ?? []).filter(({ disconnected, connectionState }) => connectionState === ConnectionState.DISCONNECTED_ABRUPT && disconnected && disconnected > Date.now() - DISCONNECTED_ABRUPT_TIMEOUT)
|
|
@@ -341,12 +261,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
341
261
|
log.error("error decoding peer state", {
|
|
342
262
|
error,
|
|
343
263
|
peer
|
|
344
|
-
}, {
|
|
345
|
-
F: __dxlog_file2,
|
|
346
|
-
L: 290,
|
|
347
|
-
S: this,
|
|
348
|
-
C: (f, a) => f(...a)
|
|
349
|
-
});
|
|
264
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 227, S: this });
|
|
350
265
|
return void 0;
|
|
351
266
|
}
|
|
352
267
|
}).filter(isNonNullable);
|
|
@@ -354,12 +269,7 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
354
269
|
this._state.self = users.find((user) => user.id === this._deviceKey);
|
|
355
270
|
log("reconciling swarm state", {
|
|
356
271
|
users
|
|
357
|
-
}, {
|
|
358
|
-
F: __dxlog_file2,
|
|
359
|
-
L: 297,
|
|
360
|
-
S: this,
|
|
361
|
-
C: (f, a) => f(...a)
|
|
362
|
-
});
|
|
272
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 236, S: this });
|
|
363
273
|
if (users.length === 0) {
|
|
364
274
|
return;
|
|
365
275
|
}
|
|
@@ -400,16 +310,6 @@ var LamportTimestampCrdt = class {
|
|
|
400
310
|
};
|
|
401
311
|
var getTopic = (roomId) => PublicKey.fromHex(md5Hex(roomId));
|
|
402
312
|
|
|
403
|
-
// src/calls/media-manager.ts
|
|
404
|
-
import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
|
|
405
|
-
import { Resource as Resource4, cancelWithContext as cancelWithContext2 } from "@dxos/context";
|
|
406
|
-
import { invariant as invariant5 } from "@dxos/invariant";
|
|
407
|
-
import { log as log4 } from "@dxos/log";
|
|
408
|
-
|
|
409
|
-
// src/calls/speaking-monitor.ts
|
|
410
|
-
import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
|
|
411
|
-
import { Resource as Resource3 } from "@dxos/context";
|
|
412
|
-
|
|
413
313
|
// src/calls/util/audio.ts
|
|
414
314
|
var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure }) => {
|
|
415
315
|
let timeout = -1;
|
|
@@ -581,12 +481,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
581
481
|
if (peerConnection.connectionState === "failed" || peerConnection.connectionState === "closed") {
|
|
582
482
|
log2.info("calls connection failed", {
|
|
583
483
|
state: peerConnection.connectionState
|
|
584
|
-
}, {
|
|
585
|
-
F: __dxlog_file3,
|
|
586
|
-
L: 120,
|
|
587
|
-
S: this,
|
|
588
|
-
C: (f, a) => f(...a)
|
|
589
|
-
});
|
|
484
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 58, S: this });
|
|
590
485
|
void this._persistentLifecycle.scheduleRestart();
|
|
591
486
|
}
|
|
592
487
|
});
|
|
@@ -596,34 +491,19 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
596
491
|
if (peerConnection.iceConnectionState === "failed" || peerConnection.iceConnectionState === "closed") {
|
|
597
492
|
log2.info("calls connection to ICEs failed", {
|
|
598
493
|
state: peerConnection.iceConnectionState
|
|
599
|
-
}, {
|
|
600
|
-
F: __dxlog_file3,
|
|
601
|
-
L: 129,
|
|
602
|
-
S: this,
|
|
603
|
-
C: (f, a) => f(...a)
|
|
604
|
-
});
|
|
494
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 68, S: this });
|
|
605
495
|
void this._persistentLifecycle.scheduleRestart();
|
|
606
496
|
} else if (peerConnection.iceConnectionState === "disconnected") {
|
|
607
497
|
const timeoutSeconds = 7;
|
|
608
498
|
iceTimeout = window.setTimeout(() => {
|
|
609
499
|
if (peerConnection.iceConnectionState === "connected") {
|
|
610
|
-
log2.info("calls iceConnectionState is connected", void 0, {
|
|
611
|
-
F: __dxlog_file3,
|
|
612
|
-
L: 138,
|
|
613
|
-
S: this,
|
|
614
|
-
C: (f, a) => f(...a)
|
|
615
|
-
});
|
|
500
|
+
log2.info("calls iceConnectionState is connected", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 79, S: this });
|
|
616
501
|
return;
|
|
617
502
|
}
|
|
618
503
|
log2.info("calls iceConnectionState timed out", {
|
|
619
504
|
state: peerConnection.iceConnectionState,
|
|
620
505
|
timeoutSeconds
|
|
621
|
-
}, {
|
|
622
|
-
F: __dxlog_file3,
|
|
623
|
-
L: 142,
|
|
624
|
-
S: this,
|
|
625
|
-
C: (f, a) => f(...a)
|
|
626
|
-
});
|
|
506
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 82, S: this });
|
|
627
507
|
void this._persistentLifecycle.scheduleRestart();
|
|
628
508
|
}, timeoutSeconds * 1e3);
|
|
629
509
|
}
|
|
@@ -631,12 +511,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
631
511
|
return peerConnection;
|
|
632
512
|
}
|
|
633
513
|
async _initiateCallSession() {
|
|
634
|
-
log2("creating new session", void 0, {
|
|
635
|
-
F: __dxlog_file3,
|
|
636
|
-
L: 152,
|
|
637
|
-
S: this,
|
|
638
|
-
C: (f, a) => f(...a)
|
|
639
|
-
});
|
|
514
|
+
log2("creating new session", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 93, S: this });
|
|
640
515
|
const { sessionId } = await this._fetch("/sessions/new?SESSION", {
|
|
641
516
|
method: "POST"
|
|
642
517
|
});
|
|
@@ -658,12 +533,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
658
533
|
log2.error("error while fetching from Calls service", {
|
|
659
534
|
status: response.status,
|
|
660
535
|
text: await response.text()
|
|
661
|
-
}, {
|
|
662
|
-
F: __dxlog_file3,
|
|
663
|
-
L: 168,
|
|
664
|
-
S: this,
|
|
665
|
-
C: (f, a) => f(...a)
|
|
666
|
-
});
|
|
536
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 113, S: this });
|
|
667
537
|
throw new Error("Error while fetching from Calls service");
|
|
668
538
|
}
|
|
669
539
|
try {
|
|
@@ -692,22 +562,12 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
692
562
|
error,
|
|
693
563
|
text,
|
|
694
564
|
status: response.status
|
|
695
|
-
}, {
|
|
696
|
-
F: __dxlog_file3,
|
|
697
|
-
L: 195,
|
|
698
|
-
S: this,
|
|
699
|
-
C: (f, a) => f(...a)
|
|
700
|
-
});
|
|
565
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 141, S: this });
|
|
701
566
|
throw error;
|
|
702
567
|
}
|
|
703
568
|
}
|
|
704
569
|
async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
|
|
705
|
-
log2.verbose("pushing track ", trackName, {
|
|
706
|
-
F: __dxlog_file3,
|
|
707
|
-
L: 217,
|
|
708
|
-
S: this,
|
|
709
|
-
C: (f, a) => f(...a)
|
|
710
|
-
});
|
|
570
|
+
log2.verbose("pushing track ", trackName, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 150, S: this });
|
|
711
571
|
const pushedTrackPromise = this.pushTrackDispatcher.doBulkRequest({
|
|
712
572
|
trackName,
|
|
713
573
|
transceiver
|
|
@@ -729,15 +589,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
729
589
|
}))
|
|
730
590
|
})
|
|
731
591
|
});
|
|
732
|
-
invariant3(response.tracks !== void 0, void 0, {
|
|
733
|
-
F: __dxlog_file3,
|
|
734
|
-
L: 242,
|
|
735
|
-
S: this,
|
|
736
|
-
A: [
|
|
737
|
-
"response.tracks !== undefined",
|
|
738
|
-
""
|
|
739
|
-
]
|
|
740
|
-
});
|
|
592
|
+
invariant3(response.tracks !== void 0, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 174, S: this, A: ["response.tracks !== undefined", ""] });
|
|
741
593
|
if (!response.errorCode) {
|
|
742
594
|
await peerConnection.setRemoteDescription(new RTCSessionDescription(response.sessionDescription));
|
|
743
595
|
await peerConnectionIsConnected(peerConnection);
|
|
@@ -754,12 +606,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
754
606
|
location: "remote"
|
|
755
607
|
};
|
|
756
608
|
} else {
|
|
757
|
-
log2.error("missing track data", void 0, {
|
|
758
|
-
F: __dxlog_file3,
|
|
759
|
-
L: 266,
|
|
760
|
-
S: this,
|
|
761
|
-
C: (f, a) => f(...a)
|
|
762
|
-
});
|
|
609
|
+
log2.error("missing track data", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 195, S: this });
|
|
763
610
|
}
|
|
764
611
|
});
|
|
765
612
|
const onDispose = async () => {
|
|
@@ -773,25 +620,12 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
773
620
|
}
|
|
774
621
|
async pushTrack({ track, encodings = [], ctx, previousTrack }) {
|
|
775
622
|
await this.waitUntilOpen();
|
|
776
|
-
invariant3(this.session, void 0, {
|
|
777
|
-
F: __dxlog_file3,
|
|
778
|
-
L: 294,
|
|
779
|
-
S: this,
|
|
780
|
-
A: [
|
|
781
|
-
"this.session",
|
|
782
|
-
""
|
|
783
|
-
]
|
|
784
|
-
});
|
|
623
|
+
invariant3(this.session, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 209, S: this, A: ["this.session", ""] });
|
|
785
624
|
log2("trying to push track", {
|
|
786
625
|
track,
|
|
787
626
|
previousTrack,
|
|
788
627
|
encodings
|
|
789
|
-
}, {
|
|
790
|
-
F: __dxlog_file3,
|
|
791
|
-
L: 295,
|
|
792
|
-
S: this,
|
|
793
|
-
C: (f, a) => f(...a)
|
|
794
|
-
});
|
|
628
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 210, S: this });
|
|
795
629
|
if (previousTrack) {
|
|
796
630
|
const transceiver2 = this.session.peerConnection.getTransceivers().find((t) => t.mid === previousTrack.mid);
|
|
797
631
|
if (transceiver2?.sender.track === track) {
|
|
@@ -799,52 +633,24 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
799
633
|
track,
|
|
800
634
|
previousTrack,
|
|
801
635
|
transceiver: transceiver2
|
|
802
|
-
}, {
|
|
803
|
-
F: __dxlog_file3,
|
|
804
|
-
L: 299,
|
|
805
|
-
S: this,
|
|
806
|
-
C: (f, a) => f(...a)
|
|
807
|
-
});
|
|
636
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 218, S: this });
|
|
808
637
|
return previousTrack;
|
|
809
638
|
} else if (transceiver2) {
|
|
810
639
|
log2.verbose("replacing track", {
|
|
811
640
|
track,
|
|
812
641
|
previousTrack,
|
|
813
642
|
transceiver: transceiver2
|
|
814
|
-
}, {
|
|
815
|
-
|
|
816
|
-
L: 302,
|
|
817
|
-
S: this,
|
|
818
|
-
C: (f, a) => f(...a)
|
|
819
|
-
});
|
|
820
|
-
transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
|
|
821
|
-
F: __dxlog_file3,
|
|
822
|
-
L: 303,
|
|
823
|
-
S: this,
|
|
824
|
-
C: (f, a) => f(...a)
|
|
825
|
-
}));
|
|
643
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 225, S: this });
|
|
644
|
+
transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 230, S: this }));
|
|
826
645
|
return previousTrack;
|
|
827
646
|
}
|
|
828
647
|
}
|
|
829
|
-
invariant3(track, void 0, {
|
|
830
|
-
F: __dxlog_file3,
|
|
831
|
-
L: 307,
|
|
832
|
-
S: this,
|
|
833
|
-
A: [
|
|
834
|
-
"track",
|
|
835
|
-
""
|
|
836
|
-
]
|
|
837
|
-
});
|
|
648
|
+
invariant3(track, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 234, S: this, A: ["track", ""] });
|
|
838
649
|
const stableId = crypto.randomUUID();
|
|
839
650
|
const transceiver = this.session.peerConnection.addTransceiver(track, {
|
|
840
651
|
direction: "sendonly"
|
|
841
652
|
});
|
|
842
|
-
log2.verbose("creating transceiver", void 0, {
|
|
843
|
-
F: __dxlog_file3,
|
|
844
|
-
L: 312,
|
|
845
|
-
S: this,
|
|
846
|
-
C: (f, a) => f(...a)
|
|
847
|
-
});
|
|
653
|
+
log2.verbose("creating transceiver", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 240, S: this });
|
|
848
654
|
const pushedTrackData = await this._pushTrackInBulk({
|
|
849
655
|
ctx,
|
|
850
656
|
peerConnection: this.session.peerConnection,
|
|
@@ -852,15 +658,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
852
658
|
sessionId: this.session.sessionId,
|
|
853
659
|
trackName: stableId
|
|
854
660
|
});
|
|
855
|
-
invariant3(pushedTrackData, void 0, {
|
|
856
|
-
F: __dxlog_file3,
|
|
857
|
-
L: 321,
|
|
858
|
-
S: this,
|
|
859
|
-
A: [
|
|
860
|
-
"pushedTrackData",
|
|
861
|
-
""
|
|
862
|
-
]
|
|
863
|
-
});
|
|
661
|
+
invariant3(pushedTrackData, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 248, S: this, A: ["pushedTrackData", ""] });
|
|
864
662
|
const parameters = transceiver.sender.getParameters();
|
|
865
663
|
encodings.forEach((encoding, i) => {
|
|
866
664
|
const existing = parameters.encodings[i];
|
|
@@ -869,12 +667,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
869
667
|
...encoding
|
|
870
668
|
};
|
|
871
669
|
});
|
|
872
|
-
transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
|
|
873
|
-
F: __dxlog_file3,
|
|
874
|
-
L: 328,
|
|
875
|
-
S: this,
|
|
876
|
-
C: (f, a) => f(...a)
|
|
877
|
-
}));
|
|
670
|
+
transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 257, S: this }));
|
|
878
671
|
return pushedTrackData;
|
|
879
672
|
}
|
|
880
673
|
// TODO(mykola): Add retry logic if the tracks fails to pull.
|
|
@@ -882,12 +675,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
882
675
|
let mid = "";
|
|
883
676
|
log2("pulling track", {
|
|
884
677
|
trackName: trackData.trackName
|
|
885
|
-
}, {
|
|
886
|
-
F: __dxlog_file3,
|
|
887
|
-
L: 346,
|
|
888
|
-
S: this,
|
|
889
|
-
C: (f, a) => f(...a)
|
|
890
|
-
});
|
|
678
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 263, S: this });
|
|
891
679
|
const pulledTrackPromise = this.pullTrackDispatcher.doBulkRequest(trackData, (tracks) => this.taskScheduler.schedule(async () => {
|
|
892
680
|
const newTrackResponse = await this._fetch(`/sessions/${sessionId}/tracks/new?PULLING`, {
|
|
893
681
|
method: "POST",
|
|
@@ -898,15 +686,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
898
686
|
if (newTrackResponse.errorCode) {
|
|
899
687
|
throw new Error(newTrackResponse.errorDescription);
|
|
900
688
|
}
|
|
901
|
-
invariant3(newTrackResponse.tracks, void 0, {
|
|
902
|
-
F: __dxlog_file3,
|
|
903
|
-
L: 359,
|
|
904
|
-
S: this,
|
|
905
|
-
A: [
|
|
906
|
-
"newTrackResponse.tracks",
|
|
907
|
-
""
|
|
908
|
-
]
|
|
909
|
-
});
|
|
689
|
+
invariant3(newTrackResponse.tracks, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 276, S: this, A: ["newTrackResponse.tracks", ""] });
|
|
910
690
|
const trackMap = tracks.reduce((acc, track) => {
|
|
911
691
|
const pulledTrackData = newTrackResponse.tracks?.find((t) => t.trackName === track.trackName && t.sessionId === track.sessionId);
|
|
912
692
|
if (pulledTrackData && pulledTrackData.mid) {
|
|
@@ -945,32 +725,17 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
945
725
|
return trackInfo.resolvedTrack.then((track) => {
|
|
946
726
|
mid = trackInfo.mid;
|
|
947
727
|
return track;
|
|
948
|
-
}).catch((err) => log2.catch(err, void 0, {
|
|
949
|
-
F: __dxlog_file3,
|
|
950
|
-
L: 411,
|
|
951
|
-
S: this,
|
|
952
|
-
C: (f, a) => f(...a)
|
|
953
|
-
}));
|
|
728
|
+
}).catch((err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 315, S: this }));
|
|
954
729
|
} else {
|
|
955
730
|
log2.info("missing track info", {
|
|
956
731
|
trackData,
|
|
957
732
|
availableTracks: Array.from(trackMap.keys())
|
|
958
|
-
}, {
|
|
959
|
-
F: __dxlog_file3,
|
|
960
|
-
L: 413,
|
|
961
|
-
S: this,
|
|
962
|
-
C: (f, a) => f(...a)
|
|
963
|
-
});
|
|
733
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 317, S: this });
|
|
964
734
|
}
|
|
965
735
|
});
|
|
966
736
|
const onDispose = async () => {
|
|
967
737
|
if (mid) {
|
|
968
|
-
log2("closing pulled track ", trackData.trackName, {
|
|
969
|
-
F: __dxlog_file3,
|
|
970
|
-
L: 419,
|
|
971
|
-
S: this,
|
|
972
|
-
C: (f, a) => f(...a)
|
|
973
|
-
});
|
|
738
|
+
log2("closing pulled track ", trackData.trackName, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 325, S: this });
|
|
974
739
|
await this._closeTrackInBulk(peerConnection, mid, sessionId);
|
|
975
740
|
mid = "";
|
|
976
741
|
}
|
|
@@ -981,15 +746,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
981
746
|
}
|
|
982
747
|
async pullTrack({ ctx, trackData }) {
|
|
983
748
|
await this.waitUntilOpen();
|
|
984
|
-
invariant3(this.session, void 0, {
|
|
985
|
-
F: __dxlog_file3,
|
|
986
|
-
L: 440,
|
|
987
|
-
S: this,
|
|
988
|
-
A: [
|
|
989
|
-
"this.session",
|
|
990
|
-
""
|
|
991
|
-
]
|
|
992
|
-
});
|
|
749
|
+
invariant3(this.session, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 336, S: this, A: ["this.session", ""] });
|
|
993
750
|
const session = this.session;
|
|
994
751
|
return this._pullTrackInBulk({
|
|
995
752
|
peerConnection: session.peerConnection,
|
|
@@ -1080,12 +837,7 @@ var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
|
1080
837
|
};
|
|
1081
838
|
var acquireTrack = async (device, constraints) => {
|
|
1082
839
|
const { deviceId, label } = device;
|
|
1083
|
-
log3.info(`requesting ${label}`, void 0, {
|
|
1084
|
-
F: __dxlog_file4,
|
|
1085
|
-
L: 23,
|
|
1086
|
-
S: void 0,
|
|
1087
|
-
C: (f, a) => f(...a)
|
|
1088
|
-
});
|
|
840
|
+
log3.info(`requesting ${label}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 15, S: void 0 });
|
|
1089
841
|
const mediaStream = await navigator.mediaDevices.getUserMedia(device.kind === "videoinput" ? {
|
|
1090
842
|
video: {
|
|
1091
843
|
...constraints,
|
|
@@ -1123,108 +875,9 @@ var getScreenshare = async ({ contentHint }) => {
|
|
|
1123
875
|
return ms;
|
|
1124
876
|
};
|
|
1125
877
|
|
|
1126
|
-
// src/calls/util/stub-media-streams.ts
|
|
1127
|
-
import { scheduleTaskInterval as scheduleTaskInterval2, waitForCondition } from "@dxos/async";
|
|
1128
|
-
import { cancelWithContext } from "@dxos/context";
|
|
1129
|
-
import { invariant as invariant4 } from "@dxos/invariant";
|
|
1130
|
-
var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/stub-media-streams.ts";
|
|
1131
|
-
var createBlackCanvasStreamTrack = async ({ ctx, width, height }) => {
|
|
1132
|
-
const canvas = document.createElement("canvas");
|
|
1133
|
-
canvas.width = width;
|
|
1134
|
-
canvas.height = height;
|
|
1135
|
-
const canvasCtx = canvas.getContext("2d");
|
|
1136
|
-
invariant4(canvasCtx, void 0, {
|
|
1137
|
-
F: __dxlog_file5,
|
|
1138
|
-
L: 28,
|
|
1139
|
-
S: void 0,
|
|
1140
|
-
A: [
|
|
1141
|
-
"canvasCtx",
|
|
1142
|
-
""
|
|
1143
|
-
]
|
|
1144
|
-
});
|
|
1145
|
-
const drawFrame = () => {
|
|
1146
|
-
canvasCtx.fillStyle = "black";
|
|
1147
|
-
canvasCtx.fillRect(0, 0, canvas.width, canvas.height);
|
|
1148
|
-
};
|
|
1149
|
-
scheduleTaskInterval2(ctx, async () => drawFrame(), 200);
|
|
1150
|
-
const track = canvas.captureStream().getVideoTracks()[0];
|
|
1151
|
-
drawFrame();
|
|
1152
|
-
await cancelWithContext(ctx, waitForCondition({
|
|
1153
|
-
condition: () => track.readyState === "live",
|
|
1154
|
-
timeout: 1e3
|
|
1155
|
-
}));
|
|
1156
|
-
return track;
|
|
1157
|
-
};
|
|
1158
|
-
var audioContextStartedPreviously = false;
|
|
1159
|
-
var userGestureEvents = [
|
|
1160
|
-
"click",
|
|
1161
|
-
"contextmenu",
|
|
1162
|
-
"auxclick",
|
|
1163
|
-
"dblclick",
|
|
1164
|
-
"mousedown",
|
|
1165
|
-
"mouseup",
|
|
1166
|
-
"pointerup",
|
|
1167
|
-
"touchend",
|
|
1168
|
-
"keydown",
|
|
1169
|
-
"keyup"
|
|
1170
|
-
];
|
|
1171
|
-
var createInaudibleAudioStreamTrack = async ({ ctx }) => {
|
|
1172
|
-
const audioContext = new window.AudioContext();
|
|
1173
|
-
const oscillator = audioContext.createOscillator();
|
|
1174
|
-
oscillator.type = "triangle";
|
|
1175
|
-
oscillator.frequency.setValueAtTime(20, audioContext.currentTime);
|
|
1176
|
-
const gainNode = audioContext.createGain();
|
|
1177
|
-
gainNode.gain.setValueAtTime(0, audioContext.currentTime);
|
|
1178
|
-
oscillator.connect(gainNode);
|
|
1179
|
-
const destination = audioContext.createMediaStreamDestination();
|
|
1180
|
-
gainNode.connect(destination);
|
|
1181
|
-
let oscillatorStarted = false;
|
|
1182
|
-
const ensureOscillatorStarted = () => {
|
|
1183
|
-
if (oscillatorStarted) return;
|
|
1184
|
-
oscillator.start();
|
|
1185
|
-
oscillatorStarted = true;
|
|
1186
|
-
};
|
|
1187
|
-
const stateChangeHandler = () => {
|
|
1188
|
-
if (audioContext.state === "running") {
|
|
1189
|
-
audioContextStartedPreviously = true;
|
|
1190
|
-
ensureOscillatorStarted();
|
|
1191
|
-
}
|
|
1192
|
-
if (audioContext.state === "suspended" || audioContext.state === "interrupted") {
|
|
1193
|
-
resumeAudioContext();
|
|
1194
|
-
}
|
|
1195
|
-
};
|
|
1196
|
-
audioContext.addEventListener("statechange", stateChangeHandler);
|
|
1197
|
-
const resumeAudioContext = () => {
|
|
1198
|
-
void audioContext.resume().then(() => {
|
|
1199
|
-
cleanUpUserGestureListeners();
|
|
1200
|
-
});
|
|
1201
|
-
};
|
|
1202
|
-
const cleanUpUserGestureListeners = () => {
|
|
1203
|
-
userGestureEvents.forEach((gesture) => {
|
|
1204
|
-
document.removeEventListener(gesture, resumeAudioContext, {
|
|
1205
|
-
capture: true
|
|
1206
|
-
});
|
|
1207
|
-
});
|
|
1208
|
-
};
|
|
1209
|
-
if (audioContextStartedPreviously) {
|
|
1210
|
-
resumeAudioContext();
|
|
1211
|
-
} else {
|
|
1212
|
-
userGestureEvents.forEach((gesture) => {
|
|
1213
|
-
document.addEventListener(gesture, resumeAudioContext, {
|
|
1214
|
-
capture: true
|
|
1215
|
-
});
|
|
1216
|
-
});
|
|
1217
|
-
}
|
|
1218
|
-
ctx.onDispose(async () => {
|
|
1219
|
-
cleanUpUserGestureListeners();
|
|
1220
|
-
oscillator.disconnect();
|
|
1221
|
-
oscillator.stop();
|
|
1222
|
-
await audioContext.close();
|
|
1223
|
-
});
|
|
1224
|
-
return destination.stream.getAudioTracks()[0];
|
|
1225
|
-
};
|
|
1226
|
-
|
|
1227
878
|
// src/calls/speaking-monitor.ts
|
|
879
|
+
import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
|
|
880
|
+
import { Resource as Resource3 } from "@dxos/context";
|
|
1228
881
|
var NOT_SPEAKING_AFTER = 500;
|
|
1229
882
|
var START_SPEAKING_THRESHOLD = 0.05;
|
|
1230
883
|
var CONTINUE_SPEAKING_THRESHOLD = 0.02;
|
|
@@ -1291,13 +944,17 @@ var SpeakingMonitor = class extends Resource3 {
|
|
|
1291
944
|
};
|
|
1292
945
|
|
|
1293
946
|
// src/calls/media-manager.ts
|
|
947
|
+
import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
|
|
948
|
+
import { Resource as Resource4, cancelWithContext } from "@dxos/context";
|
|
949
|
+
import { invariant as invariant4 } from "@dxos/invariant";
|
|
950
|
+
import { log as log4 } from "@dxos/log";
|
|
951
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
|
|
1294
952
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
1295
953
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1296
954
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1297
955
|
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;
|
|
1298
956
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1299
957
|
}
|
|
1300
|
-
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
|
|
1301
958
|
var VIDEO_WIDTH = 1280;
|
|
1302
959
|
var VIDEO_HEIGHT = 720;
|
|
1303
960
|
var MAX_WEB_CAM_FRAMERATE = 24;
|
|
@@ -1453,13 +1110,8 @@ var MediaManager = class extends Resource4 {
|
|
|
1453
1110
|
this._pullTracksTask.schedule();
|
|
1454
1111
|
}
|
|
1455
1112
|
async _reconcilePulledMedia() {
|
|
1456
|
-
log4("reconciling tracks", void 0, {
|
|
1457
|
-
|
|
1458
|
-
L: 229,
|
|
1459
|
-
S: this,
|
|
1460
|
-
C: (f, a) => f(...a)
|
|
1461
|
-
});
|
|
1462
|
-
await cancelWithContext2(this._ctx, sleep2(800));
|
|
1113
|
+
log4("reconciling tracks", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 171, S: this });
|
|
1114
|
+
await cancelWithContext(this._ctx, sleep2(800));
|
|
1463
1115
|
const trackNames = this._trackToReconcile;
|
|
1464
1116
|
const tracksToPull = trackNames.filter((name) => !this._state.pulledAudioTracks[name] && !this._state.pulledVideoStreams[name]);
|
|
1465
1117
|
const audioTracksToClose = Object.entries(this._state.pulledAudioTracks).filter(([key]) => !trackNames.some((name) => name === key));
|
|
@@ -1471,12 +1123,7 @@ var MediaManager = class extends Resource4 {
|
|
|
1471
1123
|
audioTracksToClose,
|
|
1472
1124
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1473
1125
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1474
|
-
}, {
|
|
1475
|
-
F: __dxlog_file6,
|
|
1476
|
-
L: 247,
|
|
1477
|
-
S: this,
|
|
1478
|
-
C: (f, a) => f(...a)
|
|
1479
|
-
});
|
|
1126
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 180, S: this });
|
|
1480
1127
|
const pullResults = await Promise.all(tracksToPull.map((name) => this._pullTrack(name)));
|
|
1481
1128
|
await Promise.all([
|
|
1482
1129
|
...audioTracksToClose,
|
|
@@ -1485,32 +1132,14 @@ var MediaManager = class extends Resource4 {
|
|
|
1485
1132
|
log4("reconciled tracks", {
|
|
1486
1133
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
1487
1134
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1488
|
-
}, {
|
|
1489
|
-
F: __dxlog_file6,
|
|
1490
|
-
L: 262,
|
|
1491
|
-
S: this,
|
|
1492
|
-
C: (f, a) => f(...a)
|
|
1493
|
-
});
|
|
1135
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 195, S: this });
|
|
1494
1136
|
this.stateUpdated.emit(this._state);
|
|
1495
1137
|
if (pullResults.some(({ shouldRetry }) => shouldRetry)) {
|
|
1496
|
-
await
|
|
1138
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1497
1139
|
log4.info("retrying pull tracks", {
|
|
1498
1140
|
tracksToPull
|
|
1499
|
-
}, {
|
|
1500
|
-
|
|
1501
|
-
L: 270,
|
|
1502
|
-
S: this,
|
|
1503
|
-
C: (f, a) => f(...a)
|
|
1504
|
-
});
|
|
1505
|
-
invariant5(this._pullTracksTask, void 0, {
|
|
1506
|
-
F: __dxlog_file6,
|
|
1507
|
-
L: 271,
|
|
1508
|
-
S: this,
|
|
1509
|
-
A: [
|
|
1510
|
-
"this._pullTracksTask",
|
|
1511
|
-
""
|
|
1512
|
-
]
|
|
1513
|
-
});
|
|
1141
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 202, S: this });
|
|
1142
|
+
invariant4(this._pullTracksTask, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 205, S: this, A: ["this._pullTracksTask", ""] });
|
|
1514
1143
|
this._pullTracksTask.schedule();
|
|
1515
1144
|
}
|
|
1516
1145
|
}
|
|
@@ -1550,26 +1179,13 @@ var MediaManager = class extends Resource4 {
|
|
|
1550
1179
|
this.stateUpdated.emit(this._state);
|
|
1551
1180
|
}
|
|
1552
1181
|
if (shouldRetry) {
|
|
1553
|
-
await
|
|
1182
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1554
1183
|
log4.info("retrying push tracks", {
|
|
1555
1184
|
pushVideoResult,
|
|
1556
1185
|
pushAudioResult,
|
|
1557
1186
|
pushScreenshareResult
|
|
1558
|
-
}, {
|
|
1559
|
-
|
|
1560
|
-
L: 310,
|
|
1561
|
-
S: this,
|
|
1562
|
-
C: (f, a) => f(...a)
|
|
1563
|
-
});
|
|
1564
|
-
invariant5(this._pushTracksTask, void 0, {
|
|
1565
|
-
F: __dxlog_file6,
|
|
1566
|
-
L: 311,
|
|
1567
|
-
S: this,
|
|
1568
|
-
A: [
|
|
1569
|
-
"this._pushTracksTask",
|
|
1570
|
-
""
|
|
1571
|
-
]
|
|
1572
|
-
});
|
|
1187
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 246, S: this });
|
|
1188
|
+
invariant4(this._pushTracksTask, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 251, S: this, A: ["this._pushTracksTask", ""] });
|
|
1573
1189
|
this._pushTracksTask.schedule();
|
|
1574
1190
|
}
|
|
1575
1191
|
}
|
|
@@ -1621,12 +1237,7 @@ var MediaManager = class extends Resource4 {
|
|
|
1621
1237
|
log4.info("failed to pull track", {
|
|
1622
1238
|
err,
|
|
1623
1239
|
name
|
|
1624
|
-
}, {
|
|
1625
|
-
F: __dxlog_file6,
|
|
1626
|
-
L: 347,
|
|
1627
|
-
S: this,
|
|
1628
|
-
C: (f, a) => f(...a)
|
|
1629
|
-
});
|
|
1240
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 303, S: this });
|
|
1630
1241
|
void ctx.dispose();
|
|
1631
1242
|
return {
|
|
1632
1243
|
shouldRetry: true
|
|
@@ -1655,12 +1266,7 @@ var MediaManager = class extends Resource4 {
|
|
|
1655
1266
|
track,
|
|
1656
1267
|
previousTrack,
|
|
1657
1268
|
encodings
|
|
1658
|
-
}, {
|
|
1659
|
-
F: __dxlog_file6,
|
|
1660
|
-
L: 373,
|
|
1661
|
-
S: this,
|
|
1662
|
-
C: (f, a) => f(...a)
|
|
1663
|
-
});
|
|
1269
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 330, S: this });
|
|
1664
1270
|
void ctx.dispose();
|
|
1665
1271
|
return {
|
|
1666
1272
|
shouldRetry: true
|
|
@@ -1676,13 +1282,18 @@ _ts_decorate2([
|
|
|
1676
1282
|
], MediaManager.prototype, "leave", null);
|
|
1677
1283
|
|
|
1678
1284
|
// src/calls/call-manager.ts
|
|
1285
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
1286
|
+
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
1287
|
+
import { Resource as Resource5 } from "@dxos/context";
|
|
1288
|
+
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1289
|
+
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1290
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
|
|
1679
1291
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
1680
1292
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1681
1293
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1682
1294
|
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;
|
|
1683
1295
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1684
1296
|
}
|
|
1685
|
-
var __dxlog_file7 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
|
|
1686
1297
|
var CallManager = class extends Resource5 {
|
|
1687
1298
|
_client;
|
|
1688
1299
|
_registry;
|
|
@@ -1804,15 +1415,7 @@ var CallManager = class extends Resource5 {
|
|
|
1804
1415
|
super(), this._client = _client, this._registry = _registry;
|
|
1805
1416
|
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1806
1417
|
const networkService = this._client.services.services.NetworkService;
|
|
1807
|
-
|
|
1808
|
-
F: __dxlog_file7,
|
|
1809
|
-
L: 180,
|
|
1810
|
-
S: this,
|
|
1811
|
-
A: [
|
|
1812
|
-
"networkService",
|
|
1813
|
-
"'network service not found'"
|
|
1814
|
-
]
|
|
1815
|
-
});
|
|
1418
|
+
invariant5(networkService, "network service not found", { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 128, S: this, A: ["networkService", "'network service not found'"] });
|
|
1816
1419
|
this._swarmSynchronizer = new CallSwarmSynchronizer({
|
|
1817
1420
|
networkService
|
|
1818
1421
|
});
|
|
@@ -1902,433 +1505,18 @@ _ts_decorate3([
|
|
|
1902
1505
|
synchronized3
|
|
1903
1506
|
], CallManager.prototype, "leave", null);
|
|
1904
1507
|
|
|
1905
|
-
// src/hooks/analytics.ts
|
|
1906
|
-
import { useCallback } from "react";
|
|
1907
|
-
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
1908
|
-
import { Obj } from "@dxos/echo";
|
|
1909
|
-
import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
|
|
1910
|
-
import { useOnTransition } from "@dxos/react-ui";
|
|
1911
|
-
var useOnEditAnalytics = (message, textBlock, editing) => {
|
|
1912
|
-
const { invokePromise } = useOperationInvoker();
|
|
1913
|
-
const onEdit = useCallback(() => {
|
|
1914
|
-
if (!message || !textBlock) {
|
|
1915
|
-
return;
|
|
1916
|
-
}
|
|
1917
|
-
const db = Obj.getDatabase(message);
|
|
1918
|
-
if (!db) {
|
|
1919
|
-
return;
|
|
1920
|
-
}
|
|
1921
|
-
void invokePromise(ObservabilityOperation.SendEvent, {
|
|
1922
|
-
name: "threads.message.update",
|
|
1923
|
-
properties: {
|
|
1924
|
-
spaceId: db.spaceId,
|
|
1925
|
-
messageId: message.id,
|
|
1926
|
-
messageLength: textBlock?.text.length
|
|
1927
|
-
}
|
|
1928
|
-
});
|
|
1929
|
-
}, [
|
|
1930
|
-
invokePromise,
|
|
1931
|
-
message,
|
|
1932
|
-
textBlock
|
|
1933
|
-
]);
|
|
1934
|
-
useOnTransition(editing, true, false, onEdit);
|
|
1935
|
-
};
|
|
1936
|
-
|
|
1937
|
-
// src/hooks/useBlackCanvasStreamTrack.tsx
|
|
1938
|
-
import { useEffect, useState } from "react";
|
|
1939
|
-
import { scheduleTask as scheduleTask2 } from "@dxos/async";
|
|
1940
|
-
import { Context as Context2 } from "@dxos/context";
|
|
1941
|
-
var __dxlog_file8 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/hooks/useBlackCanvasStreamTrack.tsx";
|
|
1942
|
-
var useBlackCanvasStreamTrack = () => {
|
|
1943
|
-
const [blackCanvasStreamTrack, setBlackCanvasStreamTrack] = useState(void 0);
|
|
1944
|
-
useEffect(() => {
|
|
1945
|
-
const ctx = new Context2(void 0, {
|
|
1946
|
-
F: __dxlog_file8,
|
|
1947
|
-
L: 15
|
|
1948
|
-
});
|
|
1949
|
-
scheduleTask2(ctx, async () => {
|
|
1950
|
-
const blackCanvasStreamTrack2 = await createBlackCanvasStreamTrack({
|
|
1951
|
-
ctx,
|
|
1952
|
-
width: 720,
|
|
1953
|
-
height: 480
|
|
1954
|
-
});
|
|
1955
|
-
setBlackCanvasStreamTrack(blackCanvasStreamTrack2);
|
|
1956
|
-
});
|
|
1957
|
-
return () => {
|
|
1958
|
-
void ctx.dispose();
|
|
1959
|
-
};
|
|
1960
|
-
}, []);
|
|
1961
|
-
return blackCanvasStreamTrack;
|
|
1962
|
-
};
|
|
1963
|
-
|
|
1964
|
-
// src/hooks/useDebugMode.ts
|
|
1965
|
-
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
1966
|
-
var useDebugMode = () => {
|
|
1967
|
-
const [enabled, setEnabled] = useState2(false);
|
|
1968
|
-
useEffect2(() => {
|
|
1969
|
-
const handler = (ev) => {
|
|
1970
|
-
if (ev.key.toLowerCase() === "d" && ev.ctrlKey) {
|
|
1971
|
-
ev.preventDefault();
|
|
1972
|
-
setEnabled(!enabled);
|
|
1973
|
-
}
|
|
1974
|
-
};
|
|
1975
|
-
document.addEventListener("keypress", handler);
|
|
1976
|
-
return () => {
|
|
1977
|
-
document.removeEventListener("keypress", handler);
|
|
1978
|
-
};
|
|
1979
|
-
}, [
|
|
1980
|
-
enabled
|
|
1981
|
-
]);
|
|
1982
|
-
return enabled;
|
|
1983
|
-
};
|
|
1984
|
-
|
|
1985
|
-
// src/hooks/useInaudibleAudioStreamTrack.tsx
|
|
1986
|
-
import { useEffect as useEffect3, useState as useState3 } from "react";
|
|
1987
|
-
import { scheduleTask as scheduleTask3 } from "@dxos/async";
|
|
1988
|
-
import { Context as Context3 } from "@dxos/context";
|
|
1989
|
-
var __dxlog_file9 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/hooks/useInaudibleAudioStreamTrack.tsx";
|
|
1990
|
-
var useInaudibleAudioStreamTrack = () => {
|
|
1991
|
-
const [audioStreamTrack, setAudioStreamTrack] = useState3(void 0);
|
|
1992
|
-
useEffect3(() => {
|
|
1993
|
-
const ctx = new Context3(void 0, {
|
|
1994
|
-
F: __dxlog_file9,
|
|
1995
|
-
L: 15
|
|
1996
|
-
});
|
|
1997
|
-
scheduleTask3(ctx, async () => {
|
|
1998
|
-
const audioStreamTrack2 = await createInaudibleAudioStreamTrack({
|
|
1999
|
-
ctx
|
|
2000
|
-
});
|
|
2001
|
-
setAudioStreamTrack(audioStreamTrack2);
|
|
2002
|
-
});
|
|
2003
|
-
return () => {
|
|
2004
|
-
void ctx.dispose();
|
|
2005
|
-
};
|
|
2006
|
-
}, []);
|
|
2007
|
-
return audioStreamTrack;
|
|
2008
|
-
};
|
|
2009
|
-
|
|
2010
|
-
// src/hooks/useStatus.ts
|
|
2011
|
-
import { useEffect as useEffect4, useState as useState4 } from "react";
|
|
2012
|
-
var useStatus = (space, channel) => {
|
|
2013
|
-
const [processing, setProcessing] = useState4(false);
|
|
2014
|
-
useEffect4(() => {
|
|
2015
|
-
if (!space || !channel) {
|
|
2016
|
-
return;
|
|
2017
|
-
}
|
|
2018
|
-
const unsubscribe = space.listen(`status/${channel}`, (status) => {
|
|
2019
|
-
const { event } = status.payload ?? {};
|
|
2020
|
-
setProcessing(event === "processing");
|
|
2021
|
-
});
|
|
2022
|
-
const t = setInterval(() => {
|
|
2023
|
-
setProcessing((prev) => {
|
|
2024
|
-
if (typeof prev?.ts === "number" && Date.now() - prev.ts > 3e4) {
|
|
2025
|
-
return void 0;
|
|
2026
|
-
} else {
|
|
2027
|
-
return prev;
|
|
2028
|
-
}
|
|
2029
|
-
});
|
|
2030
|
-
}, 1e3);
|
|
2031
|
-
return () => {
|
|
2032
|
-
unsubscribe();
|
|
2033
|
-
clearInterval(t);
|
|
2034
|
-
};
|
|
2035
|
-
}, [
|
|
2036
|
-
space,
|
|
2037
|
-
channel
|
|
2038
|
-
]);
|
|
2039
|
-
return processing;
|
|
2040
|
-
};
|
|
2041
|
-
|
|
2042
|
-
// src/hooks/useVideoStreamTrack.tsx
|
|
2043
|
-
import { useEffect as useEffect5, useRef, useState as useState5 } from "react";
|
|
2044
|
-
var useVideoStreamTrack = (videoElement, videoSrc) => {
|
|
2045
|
-
const [videoStreamTrack, setVideoStreamTrack] = useState5(void 0);
|
|
2046
|
-
const hadRun = useRef(false);
|
|
2047
|
-
useEffect5(() => {
|
|
2048
|
-
if (!videoElement.current || hadRun.current || !videoSrc) {
|
|
2049
|
-
return;
|
|
2050
|
-
}
|
|
2051
|
-
hadRun.current = true;
|
|
2052
|
-
videoElement.current.addEventListener("playing", () => {
|
|
2053
|
-
if (videoStreamTrack) {
|
|
2054
|
-
return;
|
|
2055
|
-
}
|
|
2056
|
-
const stream = videoElement.current.captureStream();
|
|
2057
|
-
const track = stream.getTracks()[0];
|
|
2058
|
-
if (track && !videoStreamTrack) {
|
|
2059
|
-
setVideoStreamTrack(track);
|
|
2060
|
-
}
|
|
2061
|
-
stream.onaddtrack = (event) => {
|
|
2062
|
-
if (event.track.kind === "video" && !videoStreamTrack) {
|
|
2063
|
-
setVideoStreamTrack(event.track);
|
|
2064
|
-
}
|
|
2065
|
-
};
|
|
2066
|
-
});
|
|
2067
|
-
videoElement.current.src = videoSrc;
|
|
2068
|
-
}, [
|
|
2069
|
-
videoElement.current,
|
|
2070
|
-
videoSrc
|
|
2071
|
-
]);
|
|
2072
|
-
return videoStreamTrack;
|
|
2073
|
-
};
|
|
2074
|
-
|
|
2075
|
-
// src/meta.ts
|
|
2076
|
-
import { trim } from "@dxos/util";
|
|
2077
|
-
var meta = {
|
|
2078
|
-
id: "org.dxos.plugin.thread",
|
|
2079
|
-
name: "Chat",
|
|
2080
|
-
description: trim`
|
|
2081
|
-
Multi-modal communication platform supporting text chat, voice, and video conferencing.
|
|
2082
|
-
Create threaded conversations and add contextual comments directly on any workspace object.
|
|
2083
|
-
`,
|
|
2084
|
-
icon: "ph--video-conference--regular",
|
|
2085
|
-
iconHue: "rose",
|
|
2086
|
-
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread"
|
|
2087
|
-
};
|
|
2088
|
-
var THREAD_ITEM = `${meta.id}.item`;
|
|
2089
|
-
|
|
2090
|
-
// src/ThreadPlugin.tsx
|
|
2091
|
-
import * as Effect from "effect/Effect";
|
|
2092
|
-
import * as Option from "effect/Option";
|
|
2093
|
-
import { Capability, Plugin } from "@dxos/app-framework";
|
|
2094
|
-
import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
|
|
2095
|
-
import { Annotation, Ref, Type as Type2 } from "@dxos/echo";
|
|
2096
|
-
import { Operation } from "@dxos/operation";
|
|
2097
|
-
import { ClientEvents } from "@dxos/plugin-client/types";
|
|
2098
|
-
import { MarkdownEvents } from "@dxos/plugin-markdown";
|
|
2099
|
-
import { SpaceOperation } from "@dxos/plugin-space/operations";
|
|
2100
|
-
import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space/types";
|
|
2101
|
-
import { translations as threadTranslations } from "@dxos/react-ui-thread";
|
|
2102
|
-
import { AnchoredTo, Message, Thread } from "@dxos/types";
|
|
2103
|
-
import { AppGraphBuilder, BlueprintDefinition, CallManager as CallManager2, Markdown, OperationHandler, UndoMappings, ReactRoot, ReactSurface, ThreadState } from "#capabilities";
|
|
2104
|
-
import { THREAD_ITEM as THREAD_ITEM2, meta as meta3 } from "#meta";
|
|
2105
|
-
import { ThreadOperation } from "#operations";
|
|
2106
|
-
import { Channel as Channel2 } from "#types";
|
|
2107
|
-
|
|
2108
|
-
// src/translations.ts
|
|
2109
|
-
import { Type } from "@dxos/echo";
|
|
2110
|
-
import { meta as meta2 } from "#meta";
|
|
2111
|
-
import { Channel } from "#types";
|
|
2112
|
-
var translations = [
|
|
2113
|
-
{
|
|
2114
|
-
"en-US": {
|
|
2115
|
-
[Type.getTypename(Channel.Channel)]: {
|
|
2116
|
-
"typename.label": "Channel",
|
|
2117
|
-
"typename.label_zero": "Channels",
|
|
2118
|
-
"typename.label_one": "Channel",
|
|
2119
|
-
"typename.label_other": "Channels",
|
|
2120
|
-
"object-name.placeholder": "New channel",
|
|
2121
|
-
"add-object.label": "Add channel",
|
|
2122
|
-
"rename-object.label": "Rename channel",
|
|
2123
|
-
"delete-object.label": "Delete channel",
|
|
2124
|
-
"object-deleted.label": "Channel deleted"
|
|
2125
|
-
},
|
|
2126
|
-
[meta2.id]: {
|
|
2127
|
-
"plugin.name": "Chat",
|
|
2128
|
-
"channel-title.label": "Title",
|
|
2129
|
-
"message.placeholder": "Reply\u2026",
|
|
2130
|
-
"activity.message": "Processing\u2026",
|
|
2131
|
-
"anonymous.label": "Anonymous",
|
|
2132
|
-
"delete-message-block.label": "Delete message block",
|
|
2133
|
-
"detached-thread.label": "Referenced content was removed",
|
|
2134
|
-
"delete-thread.label": "Delete thread",
|
|
2135
|
-
"resolve-thread.label": "Resolve thread",
|
|
2136
|
-
"thread-deleted.label": "Thread deleted",
|
|
2137
|
-
"message-deleted.label": "Message deleted",
|
|
2138
|
-
"comments.heading": "Comments",
|
|
2139
|
-
"chat.heading": "Chat",
|
|
2140
|
-
"draft.button": "DRAFT",
|
|
2141
|
-
"no-comments.title": "Comments",
|
|
2142
|
-
"no-comments.message": "Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.",
|
|
2143
|
-
"toggle-show-resolved.label": "Show resolved",
|
|
2144
|
-
"unnamed-object-threads.label": "Threads",
|
|
2145
|
-
"mark-as-resolved.label": "Mark as resolved",
|
|
2146
|
-
"mark-as-unresolved.label": "Mark as unresolved",
|
|
2147
|
-
"save-message.label": "Save",
|
|
2148
|
-
"edit-message.label": "Edit",
|
|
2149
|
-
"delete-message.label": "Delete message",
|
|
2150
|
-
"accept-proposal.label": "Accept proposal",
|
|
2151
|
-
"open-comments-panel.label": "Show Comments",
|
|
2152
|
-
"comments.label": "Comments",
|
|
2153
|
-
"show-all.label": "All comments",
|
|
2154
|
-
"show-unresolved.label": "Unresolved comments",
|
|
2155
|
-
"add-comment.label": "Add comment",
|
|
2156
|
-
"channel-companion.label": "Channel",
|
|
2157
|
-
"call-panel.label": "Active Call",
|
|
2158
|
-
"display-name.label": "Display name",
|
|
2159
|
-
"display-name.description": "Set your display name before joining a meeting.",
|
|
2160
|
-
"display-name-input.placeholder": "Enter your name",
|
|
2161
|
-
"set-display-name.label": "Continue",
|
|
2162
|
-
"call-tab.label": "Call",
|
|
2163
|
-
"meeting-status.title": "Calls",
|
|
2164
|
-
"share-meeting-link.label": "Share meeting",
|
|
2165
|
-
"show-webrtc-stats.title": "WebRTC Stats",
|
|
2166
|
-
"show-calls-history.title": "Service History",
|
|
2167
|
-
"meeting-summary.label": "Summary",
|
|
2168
|
-
"summarize.label": "Summarize",
|
|
2169
|
-
"summarizing.label": "Creating summary...",
|
|
2170
|
-
"create-summary.message": "A summary doesn\u2019t exist for this meeting yet. Create one now?",
|
|
2171
|
-
"icon-pin.label": "Pin video",
|
|
2172
|
-
"icon-unpin.label": "Unpin video",
|
|
2173
|
-
"icon-wave.label": "Waving",
|
|
2174
|
-
"icon-muted.label": "Muted",
|
|
2175
|
-
"join-call.button": "Join",
|
|
2176
|
-
"leave-call.button": "Leave",
|
|
2177
|
-
"mic-on.button": "Unmute",
|
|
2178
|
-
"mic-off.button": "Mute",
|
|
2179
|
-
"camera-on.button": "Turn camera on",
|
|
2180
|
-
"camera-off.button": "Turn camera off",
|
|
2181
|
-
"camera-off.label": "Camera off",
|
|
2182
|
-
"raise-hand.button": "Raise hand",
|
|
2183
|
-
"lower-hand.button": "Lower hand",
|
|
2184
|
-
"screenshare-on.button": "Share screen",
|
|
2185
|
-
"screenshare-off.button": "Stop streaming",
|
|
2186
|
-
"channel-toolbar.title": "Channel actions",
|
|
2187
|
-
"start-video-call.menu": "Start video call"
|
|
2188
|
-
}
|
|
2189
|
-
}
|
|
2190
|
-
}
|
|
2191
|
-
];
|
|
2192
|
-
|
|
2193
|
-
// src/ThreadPlugin.tsx
|
|
2194
|
-
var ThreadPlugin = Plugin.define(meta3).pipe(
|
|
2195
|
-
AppPlugin.addAppGraphModule({
|
|
2196
|
-
activate: AppGraphBuilder
|
|
2197
|
-
}),
|
|
2198
|
-
AppPlugin.addBlueprintDefinitionModule({
|
|
2199
|
-
activate: BlueprintDefinition
|
|
2200
|
-
}),
|
|
2201
|
-
AppPlugin.addMetadataModule({
|
|
2202
|
-
metadata: [
|
|
2203
|
-
{
|
|
2204
|
-
id: Type2.getTypename(Channel2.Channel),
|
|
2205
|
-
metadata: {
|
|
2206
|
-
icon: Annotation.IconAnnotation.get(Channel2.Channel).pipe(Option.getOrThrow).icon,
|
|
2207
|
-
iconHue: Annotation.IconAnnotation.get(Channel2.Channel).pipe(Option.getOrThrow).hue ?? "white",
|
|
2208
|
-
createObject: (props, options) => Effect.gen(function* () {
|
|
2209
|
-
const object = Channel2.make(props);
|
|
2210
|
-
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
2211
|
-
object,
|
|
2212
|
-
target: options.target,
|
|
2213
|
-
hidden: true,
|
|
2214
|
-
targetNodeId: options.targetNodeId
|
|
2215
|
-
});
|
|
2216
|
-
})
|
|
2217
|
-
}
|
|
2218
|
-
},
|
|
2219
|
-
{
|
|
2220
|
-
id: Type2.getTypename(Thread.Thread),
|
|
2221
|
-
metadata: {
|
|
2222
|
-
// TODO(wittjosiah): Move out of metadata.
|
|
2223
|
-
loadReferences: async (thread) => await Ref.Array.loadAll(thread.messages ?? [])
|
|
2224
|
-
}
|
|
2225
|
-
},
|
|
2226
|
-
{
|
|
2227
|
-
id: THREAD_ITEM2,
|
|
2228
|
-
metadata: {
|
|
2229
|
-
parse: (item, type) => {
|
|
2230
|
-
switch (type) {
|
|
2231
|
-
case "node":
|
|
2232
|
-
return {
|
|
2233
|
-
id: item.id,
|
|
2234
|
-
label: item.name,
|
|
2235
|
-
data: item
|
|
2236
|
-
};
|
|
2237
|
-
case "object":
|
|
2238
|
-
return item;
|
|
2239
|
-
case "view-object":
|
|
2240
|
-
return {
|
|
2241
|
-
id: `${item.id}-view`,
|
|
2242
|
-
object: item
|
|
2243
|
-
};
|
|
2244
|
-
}
|
|
2245
|
-
}
|
|
2246
|
-
}
|
|
2247
|
-
}
|
|
2248
|
-
]
|
|
2249
|
-
}),
|
|
2250
|
-
AppPlugin.addOperationHandlerModule({
|
|
2251
|
-
activate: OperationHandler
|
|
2252
|
-
}),
|
|
2253
|
-
AppPlugin.addOperationHandlerModule({
|
|
2254
|
-
id: "undo-mappings",
|
|
2255
|
-
activate: UndoMappings
|
|
2256
|
-
}),
|
|
2257
|
-
AppPlugin.addReactRootModule({
|
|
2258
|
-
activate: ReactRoot
|
|
2259
|
-
}),
|
|
2260
|
-
AppPlugin.addSchemaModule({
|
|
2261
|
-
schema: [
|
|
2262
|
-
AnchoredTo.AnchoredTo,
|
|
2263
|
-
Channel2.Channel,
|
|
2264
|
-
Message.Message,
|
|
2265
|
-
Thread.Thread
|
|
2266
|
-
]
|
|
2267
|
-
}),
|
|
2268
|
-
AppPlugin.addSurfaceModule({
|
|
2269
|
-
activate: ReactSurface
|
|
2270
|
-
}),
|
|
2271
|
-
AppPlugin.addTranslationsModule({
|
|
2272
|
-
translations: [
|
|
2273
|
-
...translations,
|
|
2274
|
-
...threadTranslations
|
|
2275
|
-
]
|
|
2276
|
-
}),
|
|
2277
|
-
Plugin.addModule({
|
|
2278
|
-
id: "call-manager",
|
|
2279
|
-
activatesOn: ClientEvents.ClientReady,
|
|
2280
|
-
activate: CallManager2
|
|
2281
|
-
}),
|
|
2282
|
-
// TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
|
|
2283
|
-
// Plugin.addModule({
|
|
2284
|
-
// id: 'settings',
|
|
2285
|
-
// activatesOn: Events.SetupSettings,
|
|
2286
|
-
// activate: ThreadSettings,
|
|
2287
|
-
// }),
|
|
2288
|
-
Plugin.addModule({
|
|
2289
|
-
id: "state",
|
|
2290
|
-
// TODO(wittjosiah): Does not integrate with settings store.
|
|
2291
|
-
// Should this be a different event?
|
|
2292
|
-
// Should settings store be renamed to be more generic?
|
|
2293
|
-
activatesOn: AppActivationEvents.SetupSettings,
|
|
2294
|
-
activate: ThreadState
|
|
2295
|
-
}),
|
|
2296
|
-
Plugin.addModule({
|
|
2297
|
-
id: "on-space-created",
|
|
2298
|
-
activatesOn: SpaceEvents.SpaceCreated,
|
|
2299
|
-
activate: () => Effect.succeed(Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(ThreadOperation.OnCreateSpace, params)))
|
|
2300
|
-
}),
|
|
2301
|
-
Plugin.addModule({
|
|
2302
|
-
id: "markdown",
|
|
2303
|
-
activatesOn: MarkdownEvents.SetupExtensions,
|
|
2304
|
-
activate: Markdown
|
|
2305
|
-
}),
|
|
2306
|
-
Plugin.make
|
|
2307
|
-
);
|
|
2308
1508
|
export {
|
|
2309
1509
|
CALLS_URL,
|
|
2310
|
-
|
|
1510
|
+
codec,
|
|
1511
|
+
TrackNameCodec,
|
|
2311
1512
|
CallSwarmSynchronizer,
|
|
1513
|
+
monitorAudioLevel,
|
|
2312
1514
|
CallsServicePeer,
|
|
2313
|
-
|
|
2314
|
-
SpeakingMonitor,
|
|
2315
|
-
THREAD_ITEM,
|
|
2316
|
-
ThreadCapabilities,
|
|
2317
|
-
ThreadPlugin,
|
|
2318
|
-
TrackNameCodec,
|
|
2319
|
-
codec,
|
|
2320
|
-
createBlackCanvasStreamTrack,
|
|
2321
|
-
createInaudibleAudioStreamTrack,
|
|
1515
|
+
getUserMediaTrack,
|
|
2322
1516
|
getDeviceList,
|
|
2323
1517
|
getScreenshare,
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
useBlackCanvasStreamTrack,
|
|
2328
|
-
useDebugMode,
|
|
2329
|
-
useInaudibleAudioStreamTrack,
|
|
2330
|
-
useOnEditAnalytics,
|
|
2331
|
-
useStatus,
|
|
2332
|
-
useVideoStreamTrack
|
|
1518
|
+
SpeakingMonitor,
|
|
1519
|
+
MediaManager,
|
|
1520
|
+
CallManager
|
|
2333
1521
|
};
|
|
2334
|
-
//# sourceMappingURL=
|
|
1522
|
+
//# sourceMappingURL=chunk-PZ7WTAA2.mjs.map
|