@dxos/plugin-thread 0.8.3 → 0.8.4-main.03d5cd7b56
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-YVXU6BOQ.mjs +25 -0
- package/dist/lib/neutral/CallSidebar-YVXU6BOQ.mjs.map +7 -0
- package/dist/lib/neutral/ChannelChat-EKQYQQXZ.mjs +10 -0
- package/dist/lib/neutral/ChannelContainer-XXMX5X43.mjs +9 -0
- package/dist/lib/neutral/ThreadCompanion-YGA2ORTJ.mjs +208 -0
- package/dist/lib/neutral/ThreadCompanion-YGA2ORTJ.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/neutral/add-message-WX3LCGZC.mjs +87 -0
- package/dist/lib/neutral/add-message-WX3LCGZC.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-BBHAUCMZ.mjs +173 -0
- package/dist/lib/neutral/app-graph-builder-BBHAUCMZ.mjs.map +7 -0
- package/dist/lib/neutral/append-channel-message-J7N6UEBL.mjs +40 -0
- package/dist/lib/neutral/append-channel-message-J7N6UEBL.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/neutral/chunk-4SVMVL4L.mjs +164 -0
- package/dist/lib/neutral/chunk-4SVMVL4L.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5T5LPLBN.mjs +36 -0
- package/dist/lib/neutral/chunk-5T5LPLBN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BFHJWC3L.mjs +276 -0
- package/dist/lib/neutral/chunk-BFHJWC3L.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-EACFR36K.mjs +55 -0
- package/dist/lib/neutral/chunk-EACFR36K.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-J5LGTIGS.mjs +10 -0
- package/dist/lib/{node-esm/chunk-PGRP3O4O.mjs → neutral/chunk-JLY4NVTA.mjs} +14 -9
- package/dist/lib/neutral/chunk-JLY4NVTA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-NGZVEPJV.mjs +8 -0
- package/dist/lib/neutral/chunk-NGZVEPJV.mjs.map +7 -0
- package/dist/lib/{node-esm/chunk-WXNPD542.mjs → neutral/chunk-PZ7WTAA2.mjs} +317 -505
- package/dist/lib/neutral/chunk-PZ7WTAA2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-UQFTL6TV.mjs +202 -0
- package/dist/lib/neutral/chunk-UQFTL6TV.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/neutral/create-DGJZRLG7.mjs +52 -0
- package/dist/lib/neutral/create-DGJZRLG7.mjs.map +7 -0
- package/dist/lib/neutral/create-channel-RP646IAE.mjs +19 -0
- package/dist/lib/neutral/create-channel-RP646IAE.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/neutral/create-proposals-CPLU4YC6.mjs +56 -0
- package/dist/lib/neutral/create-proposals-CPLU4YC6.mjs.map +7 -0
- package/dist/lib/neutral/delete-MKKME2FE.mjs +57 -0
- package/dist/lib/neutral/delete-MKKME2FE.mjs.map +7 -0
- package/dist/lib/neutral/delete-message-UBZH3SZA.mjs +54 -0
- package/dist/lib/neutral/delete-message-UBZH3SZA.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +19 -0
- package/dist/lib/neutral/index.mjs +68 -0
- package/dist/lib/neutral/markdown-XQLZYS2O.mjs +83 -0
- package/dist/lib/neutral/markdown-XQLZYS2O.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-MRLZYOJR.mjs +23 -0
- package/dist/lib/neutral/on-create-space-MRLZYOJR.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/neutral/restore-SUXNC6GE.mjs +32 -0
- package/dist/lib/neutral/restore-SUXNC6GE.mjs.map +7 -0
- package/dist/lib/neutral/restore-message-2TPJB32Y.mjs +33 -0
- package/dist/lib/neutral/restore-message-2TPJB32Y.mjs.map +7 -0
- package/dist/lib/neutral/select-H5RMZH43.mjs +24 -0
- package/dist/lib/neutral/select-H5RMZH43.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/neutral/toggle-resolved-HKZ4IRHG.mjs +36 -0
- package/dist/lib/neutral/toggle-resolved-HKZ4IRHG.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 +3 -1
- 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/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/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 +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 +11 -6
- 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 +2 -2
- package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +23 -0
- package/dist/types/src/calls-service.stories.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/call-manager.d.ts +3 -2
- 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 +19 -13
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +3 -2
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root.d.ts +4 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +5 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +5 -5
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
- package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
- 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 +6 -6
- 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 +13 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +160 -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 +24 -3
- 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.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +160 -5
- 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 +164 -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/ThreadSettings/ThreadSettings.d.ts +6 -0
- package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -0
- package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +161 -0
- package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ThreadSettings/index.d.ts +2 -0
- package/dist/types/src/components/ThreadSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +5 -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 +2 -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 +2 -0
- package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
- 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 +12 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +162 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts +2 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +8 -0
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts +2 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
- 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/ThreadContainer/ThreadContainer.stories.d.ts +162 -0
- 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 +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 +9 -4
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- 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 +3 -0
- 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/useInaudibleAudioStreamTrack.d.ts +2 -0
- package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts.map +1 -0
- package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts +3 -0
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +2 -2
- 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/operations/add-message.d.ts +5 -0
- package/dist/types/src/operations/add-message.d.ts.map +1 -0
- 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 +5 -0
- package/dist/types/src/operations/create-channel.d.ts.map +1 -0
- package/dist/types/src/operations/create-proposals.d.ts +5 -0
- package/dist/types/src/operations/create-proposals.d.ts.map +1 -0
- package/dist/types/src/operations/create.d.ts +5 -0
- package/dist/types/src/operations/create.d.ts.map +1 -0
- package/dist/types/src/operations/delete-message.d.ts +5 -0
- package/dist/types/src/operations/delete-message.d.ts.map +1 -0
- package/dist/types/src/operations/delete.d.ts +5 -0
- package/dist/types/src/operations/delete.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/on-create-space.d.ts +5 -0
- package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
- package/dist/types/src/operations/restore-message.d.ts +5 -0
- package/dist/types/src/operations/restore-message.d.ts.map +1 -0
- package/dist/types/src/operations/restore.d.ts +5 -0
- package/dist/types/src/operations/restore.d.ts.map +1 -0
- package/dist/types/src/operations/select.d.ts +5 -0
- package/dist/types/src/operations/select.d.ts.map +1 -0
- package/dist/types/src/operations/toggle-resolved.d.ts +5 -0
- package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -0
- 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 +5 -0
- package/dist/types/src/testing/data.d.ts.map +1 -0
- 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 +144 -194
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +5 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- 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/types/ThreadOperation.d.ts +1995 -0
- package/dist/types/src/types/ThreadOperation.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +3 -325
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +21 -3
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +150 -80
- package/src/ThreadPlugin.node.ts +39 -0
- package/src/ThreadPlugin.test.ts +37 -0
- package/src/ThreadPlugin.tsx +64 -147
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/thread-blueprint.ts +36 -0
- package/src/calls/call-manager.ts +78 -50
- package/src/calls/call-swarm-synchronizer.ts +3 -3
- package/src/calls/media-manager.ts +77 -41
- package/src/calls/types.ts +8 -4
- package/src/calls/util/calls-service.ts +74 -19
- package/src/calls/util/stub-media-streams.ts +65 -9
- package/src/calls/util/task-scheduling.ts +4 -4
- package/src/calls-service.stories.tsx +230 -0
- package/src/capabilities/app-graph-builder.ts +176 -161
- package/src/capabilities/blueprint-definition.ts +19 -0
- package/src/capabilities/call-manager.ts +18 -10
- package/src/capabilities/create-object.ts +29 -0
- package/src/capabilities/index.ts +17 -11
- package/src/capabilities/markdown.ts +54 -36
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-root.tsx +12 -9
- package/src/capabilities/react-surface.tsx +83 -74
- package/src/capabilities/settings.ts +26 -12
- package/src/capabilities/state.ts +14 -17
- package/src/capabilities/undo-mappings.ts +46 -0
- package/src/components/Call/Call.tsx +17 -12
- package/src/components/Call/Toolbar.tsx +63 -46
- package/src/components/Chat/Chat.tsx +258 -0
- package/src/components/Chat/index.ts +5 -0
- package/src/components/CommentsPanel/CommentsPanel.stories.tsx +95 -0
- package/src/components/CommentsPanel/CommentsPanel.tsx +71 -0
- package/src/components/CommentsPanel/CommentsThread.tsx +171 -0
- package/src/components/CommentsPanel/index.ts +6 -0
- package/src/components/Lobby/Lobby.tsx +21 -17
- package/src/components/Media/AudioStream.tsx +2 -2
- package/src/components/Media/VideoObject.stories.tsx +37 -30
- package/src/components/Media/VideoObject.tsx +1 -1
- package/src/components/MessagePanel/MessagePanel.tsx +221 -0
- package/src/components/MessagePanel/index.ts +5 -0
- package/src/components/Participant/Participant.tsx +35 -15
- package/src/components/Participant/ParticipantGrid.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +51 -49
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +6 -6
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +15 -12
- package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +12 -12
- package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +7 -9
- package/src/components/ResponsiveGrid/index.ts +1 -1
- package/src/components/ThreadSettings/ThreadSettings.stories.tsx +32 -0
- package/src/components/ThreadSettings/ThreadSettings.tsx +20 -0
- package/src/components/ThreadSettings/index.ts +5 -0
- package/src/components/index.ts +6 -12
- package/src/containers/CallDebugPanel/CallDebugPanel.tsx +173 -0
- package/src/containers/CallDebugPanel/index.ts +5 -0
- package/src/containers/CallSidebar/CallSidebar.tsx +18 -0
- package/src/containers/CallSidebar/index.ts +5 -0
- package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
- package/src/containers/ChannelChat/index.ts +8 -0
- package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +105 -0
- package/src/containers/ChannelContainer/ChannelContainer.tsx +223 -0
- package/src/containers/ChannelContainer/index.ts +5 -0
- package/src/containers/ThreadCompanion/ThreadCompanion.tsx +215 -0
- package/src/containers/ThreadCompanion/index.ts +5 -0
- package/src/containers/ThreadContainer/ThreadContainer.stories.tsx +86 -0
- package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
- package/src/containers/ThreadContainer/index.ts +8 -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 +89 -44
- package/src/hooks/analytics.ts +22 -21
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useBlackCanvasStreamTrack.tsx +27 -0
- package/src/hooks/useDebugMode.ts +1 -1
- package/src/hooks/useInaudibleAudioStreamTrack.tsx +27 -0
- package/src/hooks/useVideoStreamTrack.tsx +36 -0
- package/src/index.ts +4 -3
- package/src/meta.ts +11 -7
- package/src/operations/add-message.ts +81 -0
- package/src/operations/append-channel-message.ts +37 -0
- package/src/operations/create-channel.ts +20 -0
- package/src/operations/create-proposals.ts +49 -0
- package/src/operations/create.ts +48 -0
- package/src/operations/delete-message.ts +53 -0
- package/src/operations/delete.ts +63 -0
- package/src/operations/index.ts +20 -0
- package/src/operations/on-create-space.ts +27 -0
- package/src/operations/restore-message.ts +38 -0
- package/src/operations/restore.ts +38 -0
- package/src/operations/select.ts +24 -0
- package/src/operations/toggle-resolved.ts +41 -0
- package/src/plugin.ts +11 -0
- package/src/testing/data.ts +49 -0
- package/src/testing/index.ts +1 -1
- package/src/translations.ts +77 -73
- package/src/types/Settings.ts +10 -0
- package/src/types/ThreadCapabilities.ts +41 -0
- package/src/types/ThreadOperation.ts +179 -0
- package/src/types/index.ts +4 -1
- package/src/types/types.ts +4 -92
- package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
- package/src/typings.d.ts +8 -0
- package/src/util.ts +38 -6
- package/dist/lib/browser/ChannelContainer-PKFBVENP.mjs +0 -15
- package/dist/lib/browser/ChatContainer-RSOKYAMK.mjs +0 -14
- package/dist/lib/browser/app-graph-builder-OY7R7EJP.mjs +0 -171
- package/dist/lib/browser/app-graph-builder-OY7R7EJP.mjs.map +0 -7
- package/dist/lib/browser/call-manager-APQAZWHT.mjs +0 -23
- package/dist/lib/browser/call-manager-APQAZWHT.mjs.map +0 -7
- package/dist/lib/browser/chunk-4H4A264L.mjs +0 -1708
- package/dist/lib/browser/chunk-4H4A264L.mjs.map +0 -7
- package/dist/lib/browser/chunk-5P5BH5GE.mjs +0 -88
- package/dist/lib/browser/chunk-5P5BH5GE.mjs.map +0 -7
- package/dist/lib/browser/chunk-6NBVNXTM.mjs +0 -21
- package/dist/lib/browser/chunk-6NBVNXTM.mjs.map +0 -7
- package/dist/lib/browser/chunk-AEXWNS6Z.mjs +0 -128
- package/dist/lib/browser/chunk-AEXWNS6Z.mjs.map +0 -7
- package/dist/lib/browser/chunk-IIUTBDVB.mjs +0 -17
- package/dist/lib/browser/chunk-IIUTBDVB.mjs.map +0 -7
- package/dist/lib/browser/chunk-JKQUJOTX.mjs +0 -31
- package/dist/lib/browser/chunk-JKQUJOTX.mjs.map +0 -7
- package/dist/lib/browser/chunk-PG5CTFKK.mjs +0 -550
- package/dist/lib/browser/chunk-PG5CTFKK.mjs.map +0 -7
- package/dist/lib/browser/chunk-R5MDLUPC.mjs +0 -18
- package/dist/lib/browser/chunk-R5MDLUPC.mjs.map +0 -7
- package/dist/lib/browser/chunk-TAFSCSUR.mjs +0 -351
- package/dist/lib/browser/chunk-TAFSCSUR.mjs.map +0 -7
- package/dist/lib/browser/chunk-XZKBN3NS.mjs +0 -983
- package/dist/lib/browser/chunk-XZKBN3NS.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -308
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-FK2MDVDT.mjs +0 -353
- package/dist/lib/browser/intent-resolver-FK2MDVDT.mjs.map +0 -7
- package/dist/lib/browser/markdown-TE5SWWNJ.mjs +0 -169
- package/dist/lib/browser/markdown-TE5SWWNJ.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-root-NK3A4VG7.mjs +0 -27
- package/dist/lib/browser/react-root-NK3A4VG7.mjs.map +0 -7
- package/dist/lib/browser/react-surface-VXUJKSOG.mjs +0 -108
- package/dist/lib/browser/react-surface-VXUJKSOG.mjs.map +0 -7
- package/dist/lib/browser/settings-RB2RSLXV.mjs +0 -22
- package/dist/lib/browser/settings-RB2RSLXV.mjs.map +0 -7
- package/dist/lib/browser/state-RKL5MSDP.mjs +0 -34
- package/dist/lib/browser/state-RKL5MSDP.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -16
- package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs +0 -36
- package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs.map +0 -7
- package/dist/lib/node/ChatContainer-GCOM3M56.cjs +0 -35
- package/dist/lib/node/ChatContainer-GCOM3M56.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs +0 -179
- package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs.map +0 -7
- package/dist/lib/node/call-manager-HV2XJW5O.cjs +0 -37
- package/dist/lib/node/call-manager-HV2XJW5O.cjs.map +0 -7
- package/dist/lib/node/chunk-44I33JDT.cjs +0 -1731
- package/dist/lib/node/chunk-44I33JDT.cjs.map +0 -7
- package/dist/lib/node/chunk-4YSNVPWU.cjs +0 -37
- package/dist/lib/node/chunk-4YSNVPWU.cjs.map +0 -7
- package/dist/lib/node/chunk-E3WBZTTI.cjs +0 -371
- package/dist/lib/node/chunk-E3WBZTTI.cjs.map +0 -7
- package/dist/lib/node/chunk-ERG7G6FF.cjs +0 -59
- package/dist/lib/node/chunk-ERG7G6FF.cjs.map +0 -7
- package/dist/lib/node/chunk-FUXJAVFZ.cjs +0 -108
- package/dist/lib/node/chunk-FUXJAVFZ.cjs.map +0 -7
- package/dist/lib/node/chunk-HLMCEE5K.cjs +0 -41
- package/dist/lib/node/chunk-HLMCEE5K.cjs.map +0 -7
- package/dist/lib/node/chunk-IP533AMV.cjs +0 -554
- package/dist/lib/node/chunk-IP533AMV.cjs.map +0 -7
- package/dist/lib/node/chunk-LR5NENBE.cjs +0 -54
- package/dist/lib/node/chunk-LR5NENBE.cjs.map +0 -7
- package/dist/lib/node/chunk-UM36TPCT.cjs +0 -984
- package/dist/lib/node/chunk-UM36TPCT.cjs.map +0 -7
- package/dist/lib/node/chunk-ZGDN3XBR.cjs +0 -149
- package/dist/lib/node/chunk-ZGDN3XBR.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -310
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs +0 -363
- package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs.map +0 -7
- package/dist/lib/node/markdown-GQIPJS2F.cjs +0 -178
- package/dist/lib/node/markdown-GQIPJS2F.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-root-6HHDMULJ.cjs +0 -51
- package/dist/lib/node/react-root-6HHDMULJ.cjs.map +0 -7
- package/dist/lib/node/react-surface-NBH42NN2.cjs +0 -122
- package/dist/lib/node/react-surface-NBH42NN2.cjs.map +0 -7
- package/dist/lib/node/settings-4LQSFEDK.cjs +0 -36
- package/dist/lib/node/settings-4LQSFEDK.cjs.map +0 -7
- package/dist/lib/node/state-IY5XX3H2.cjs +0 -50
- package/dist/lib/node/state-IY5XX3H2.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs +0 -38
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-O4QJII2P.mjs +0 -16
- package/dist/lib/node-esm/ChatContainer-F6CSADV7.mjs +0 -15
- package/dist/lib/node-esm/app-graph-builder-BAHBHYWI.mjs +0 -172
- package/dist/lib/node-esm/app-graph-builder-BAHBHYWI.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-UUYXLF4T.mjs +0 -24
- package/dist/lib/node-esm/call-manager-UUYXLF4T.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2RNIPFDA.mjs +0 -984
- package/dist/lib/node-esm/chunk-2RNIPFDA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ESQC6SYE.mjs +0 -19
- package/dist/lib/node-esm/chunk-ESQC6SYE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-K4KAUOKT.mjs +0 -19
- package/dist/lib/node-esm/chunk-K4KAUOKT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-O3V45YJP.mjs +0 -90
- package/dist/lib/node-esm/chunk-O3V45YJP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-O63QJPQX.mjs +0 -23
- package/dist/lib/node-esm/chunk-O63QJPQX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P6RLFCNT.mjs +0 -352
- package/dist/lib/node-esm/chunk-P6RLFCNT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PGRP3O4O.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UJMPYKT3.mjs +0 -129
- package/dist/lib/node-esm/chunk-UJMPYKT3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UZWVVFT3.mjs +0 -551
- package/dist/lib/node-esm/chunk-UZWVVFT3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WXNPD542.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -309
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-BU73VYW3.mjs +0 -354
- package/dist/lib/node-esm/intent-resolver-BU73VYW3.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-HJUWNBLS.mjs +0 -170
- package/dist/lib/node-esm/markdown-HJUWNBLS.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-root-RUXOAQNW.mjs +0 -28
- package/dist/lib/node-esm/react-root-RUXOAQNW.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ELXFYKP6.mjs +0 -109
- package/dist/lib/node-esm/react-surface-ELXFYKP6.mjs.map +0 -7
- package/dist/lib/node-esm/settings-EA7DFSM6.mjs +0 -23
- package/dist/lib/node-esm/settings-EA7DFSM6.mjs.map +0 -7
- package/dist/lib/node-esm/state-6AUTNROZ.mjs +0 -35
- package/dist/lib/node-esm/state-6AUTNROZ.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -17
- 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/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 -6
- 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/CommentContainer.d.ts +0 -13
- package/dist/types/src/components/CommentContainer.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/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/peers.stories.d.ts +0 -11
- package/dist/types/src/peers.stories.d.ts.map +0 -1
- package/dist/types/src/testing/stories.d.ts +0 -2
- package/dist/types/src/testing/stories.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -133
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/capabilities.ts +0 -33
- package/src/capabilities/intent-resolver.ts +0 -296
- 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/ChannelContainer.tsx +0 -199
- package/src/components/Chat.stories.tsx +0 -88
- package/src/components/ChatContainer.tsx +0 -140
- package/src/components/CommentContainer.tsx +0 -198
- package/src/components/Comments.stories.tsx +0 -85
- package/src/components/CommentsContainer.tsx +0 -66
- package/src/components/MessageContainer.tsx +0 -167
- package/src/components/ThreadComplementary.tsx +0 -151
- package/src/components/ThreadSettings.tsx +0 -17
- package/src/components/testing.ts +0 -29
- package/src/peers.stories.tsx +0 -189
- package/src/testing/stories.ts +0 -50
- package/src/types/schema.ts +0 -33
- /package/dist/lib/{browser/ChannelContainer-PKFBVENP.mjs.map → neutral/ChannelChat-EKQYQQXZ.mjs.map} +0 -0
- /package/dist/lib/{browser/ChatContainer-RSOKYAMK.mjs.map → neutral/ChannelContainer-XXMX5X43.mjs.map} +0 -0
- /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/ChannelContainer-O4QJII2P.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral/hooks}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/ChatContainer-F6CSADV7.mjs.map → neutral/index.mjs.map} +0 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// src/calls/util/stub-media-streams.ts
|
|
2
|
+
import { scheduleTaskInterval, waitForCondition } from "@dxos/async";
|
|
3
|
+
import { cancelWithContext } from "@dxos/context";
|
|
4
|
+
import { invariant } from "@dxos/invariant";
|
|
5
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/stub-media-streams.ts";
|
|
6
|
+
var createBlackCanvasStreamTrack = async ({ ctx, width, height }) => {
|
|
7
|
+
const canvas = document.createElement("canvas");
|
|
8
|
+
canvas.width = width;
|
|
9
|
+
canvas.height = height;
|
|
10
|
+
const canvasCtx = canvas.getContext("2d");
|
|
11
|
+
invariant(canvasCtx, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 16, S: void 0, A: ["canvasCtx", ""] });
|
|
12
|
+
const drawFrame = () => {
|
|
13
|
+
canvasCtx.fillStyle = "black";
|
|
14
|
+
canvasCtx.fillRect(0, 0, canvas.width, canvas.height);
|
|
15
|
+
};
|
|
16
|
+
scheduleTaskInterval(ctx, async () => drawFrame(), 200);
|
|
17
|
+
const track = canvas.captureStream().getVideoTracks()[0];
|
|
18
|
+
drawFrame();
|
|
19
|
+
await cancelWithContext(ctx, waitForCondition({
|
|
20
|
+
condition: () => track.readyState === "live",
|
|
21
|
+
timeout: 1e3
|
|
22
|
+
}));
|
|
23
|
+
return track;
|
|
24
|
+
};
|
|
25
|
+
var audioContextStartedPreviously = false;
|
|
26
|
+
var userGestureEvents = [
|
|
27
|
+
"click",
|
|
28
|
+
"contextmenu",
|
|
29
|
+
"auxclick",
|
|
30
|
+
"dblclick",
|
|
31
|
+
"mousedown",
|
|
32
|
+
"mouseup",
|
|
33
|
+
"pointerup",
|
|
34
|
+
"touchend",
|
|
35
|
+
"keydown",
|
|
36
|
+
"keyup"
|
|
37
|
+
];
|
|
38
|
+
var createInaudibleAudioStreamTrack = async ({ ctx }) => {
|
|
39
|
+
const audioContext = new window.AudioContext();
|
|
40
|
+
const oscillator = audioContext.createOscillator();
|
|
41
|
+
oscillator.type = "triangle";
|
|
42
|
+
oscillator.frequency.setValueAtTime(20, audioContext.currentTime);
|
|
43
|
+
const gainNode = audioContext.createGain();
|
|
44
|
+
gainNode.gain.setValueAtTime(0, audioContext.currentTime);
|
|
45
|
+
oscillator.connect(gainNode);
|
|
46
|
+
const destination = audioContext.createMediaStreamDestination();
|
|
47
|
+
gainNode.connect(destination);
|
|
48
|
+
let oscillatorStarted = false;
|
|
49
|
+
const ensureOscillatorStarted = () => {
|
|
50
|
+
if (oscillatorStarted) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
oscillator.start();
|
|
54
|
+
oscillatorStarted = true;
|
|
55
|
+
};
|
|
56
|
+
const stateChangeHandler = () => {
|
|
57
|
+
if (audioContext.state === "running") {
|
|
58
|
+
audioContextStartedPreviously = true;
|
|
59
|
+
ensureOscillatorStarted();
|
|
60
|
+
}
|
|
61
|
+
if (audioContext.state === "suspended" || audioContext.state === "interrupted") {
|
|
62
|
+
resumeAudioContext();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
audioContext.addEventListener("statechange", stateChangeHandler);
|
|
66
|
+
const resumeAudioContext = () => {
|
|
67
|
+
void audioContext.resume().then(() => {
|
|
68
|
+
cleanUpUserGestureListeners();
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
const cleanUpUserGestureListeners = () => {
|
|
72
|
+
userGestureEvents.forEach((gesture) => {
|
|
73
|
+
document.removeEventListener(gesture, resumeAudioContext, {
|
|
74
|
+
capture: true
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
if (audioContextStartedPreviously) {
|
|
79
|
+
resumeAudioContext();
|
|
80
|
+
} else {
|
|
81
|
+
userGestureEvents.forEach((gesture) => {
|
|
82
|
+
document.addEventListener(gesture, resumeAudioContext, {
|
|
83
|
+
capture: true
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
ctx.onDispose(async () => {
|
|
88
|
+
cleanUpUserGestureListeners();
|
|
89
|
+
oscillator.disconnect();
|
|
90
|
+
oscillator.stop();
|
|
91
|
+
await audioContext.close();
|
|
92
|
+
});
|
|
93
|
+
return destination.stream.getAudioTracks()[0];
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export {
|
|
97
|
+
createBlackCanvasStreamTrack,
|
|
98
|
+
createInaudibleAudioStreamTrack
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=chunk-CROE4U4O.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/calls/util/stub-media-streams.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n//\n\nimport { scheduleTaskInterval, waitForCondition } from '@dxos/async';\nimport { type Context, cancelWithContext } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\n\n/**\n * Creates a black canvas stream track.\n * We need this to to have black rectangle video that is live (have frames) when video feed is disabled.\n */\nexport const createBlackCanvasStreamTrack = async ({\n ctx,\n width,\n height,\n}: {\n ctx: Context;\n width: number;\n height: number;\n}): Promise<MediaStreamTrack> => {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n\n const canvasCtx = canvas.getContext('2d');\n invariant(canvasCtx);\n const drawFrame = () => {\n canvasCtx.fillStyle = 'black';\n canvasCtx.fillRect(0, 0, canvas.width, canvas.height);\n };\n scheduleTaskInterval(ctx, async () => drawFrame(), 200);\n\n const track = canvas.captureStream().getVideoTracks()[0];\n drawFrame();\n\n await cancelWithContext(ctx, waitForCondition({ condition: () => track.readyState === 'live', timeout: 1_000 }));\n\n return track;\n};\n\nlet audioContextStartedPreviously = false;\nconst userGestureEvents = [\n 'click',\n 'contextmenu',\n 'auxclick',\n 'dblclick',\n 'mousedown',\n 'mouseup',\n 'pointerup',\n 'touchend',\n 'keydown',\n 'keyup',\n];\n\n/**\n * Creates an inaudible audio stream track.\n * We need this to have audio track available when audio is disabled.\n */\nexport const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context }): Promise<MediaStreamTrack> => {\n const audioContext = new window.AudioContext();\n\n const oscillator = audioContext.createOscillator();\n oscillator.type = 'triangle';\n oscillator.frequency.setValueAtTime(20, audioContext.currentTime);\n\n const gainNode = audioContext.createGain();\n gainNode.gain.setValueAtTime(0, audioContext.currentTime);\n oscillator.connect(gainNode);\n\n const destination = audioContext.createMediaStreamDestination();\n gainNode.connect(destination);\n\n let oscillatorStarted = false;\n const ensureOscillatorStarted = () => {\n if (oscillatorStarted) {\n return;\n }\n oscillator.start();\n oscillatorStarted = true;\n };\n\n const stateChangeHandler = () => {\n if (audioContext.state === 'running') {\n audioContextStartedPreviously = true;\n ensureOscillatorStarted();\n }\n\n if (audioContext.state === 'suspended' || (audioContext.state as string) === 'interrupted') {\n resumeAudioContext();\n }\n };\n\n audioContext.addEventListener('statechange', stateChangeHandler);\n\n const resumeAudioContext = () => {\n void audioContext.resume().then(() => {\n cleanUpUserGestureListeners();\n });\n };\n\n const cleanUpUserGestureListeners = () => {\n userGestureEvents.forEach((gesture) => {\n document.removeEventListener(gesture, resumeAudioContext, {\n capture: true,\n });\n });\n };\n\n if (audioContextStartedPreviously) {\n resumeAudioContext();\n } else {\n userGestureEvents.forEach((gesture) => {\n document.addEventListener(gesture, resumeAudioContext, {\n capture: true,\n });\n });\n }\n\n ctx.onDispose(async () => {\n cleanUpUserGestureListeners();\n oscillator.disconnect();\n oscillator.stop();\n await audioContext.close();\n });\n\n return destination.stream.getAudioTracks()[0];\n};\n"],
|
|
5
|
+
"mappings": ";AAKA,SAASA,sBAAsBC,wBAAwB;AACvD,SAAuBC,yBAAyB;AAChD,SAASC,iBAAiB;AAE1B,IAAA,eAAA;AAcSC,IAAK,+BAAGA,OAAAA,EAAAA,KAAAA,OAAAA,OAAAA,MAAAA;AACfC,QAAAA,SAAa,SAAGC,cAAAA,QAAAA;AAEhB,SAAMC,QAAAA;AACNJ,SAAAA,SAAUI;AACV,QAAMC,YAAY,OAAA,WAAA,IAAA;YAChBD,WAAUE,QAAY,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,QAAA,GAAA,CAAA,aAAA,EAAA,EAAA,CAAA;QACtBF,YAAUG,MAAQ;AACpB,cAAA,YAAA;AACAV,cAAAA,SAAqBW,GAAK,GAAA,OAAYH,OAAAA,OAAa,MAAA;EAEnD;AACAA,uBAAAA,KAAAA,YAAAA,UAAAA,GAAAA,GAAAA;AAEA,QAAMN,QAAAA,OAAAA,cAAuBD,EAAAA,eAAiB,EAAA,CAAA;YAAEW;QAA8CC,kBAAS,KAAA,iBAAA;IAAM,WAAA,MAAA,MAAA,eAAA;IAE7G,SAAOC;EACP,CAAA,CAAA;AAEEC,SAAAA;AACJ;IACE,gCAAA;IACA,oBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;EAED;;AAOQC,IAAAA,kCAA0BC,OAAgB,EAAA,IAAA,MAAA;AAChDD,QAAAA,eAAkB,IAAA,OAAA,aAAA;AAClBA,QAAAA,aAAWE,aAAUC,iBAAmBC;AAExC,aAAMC,OAAWD;AACjBC,aAASC,UAAKH,eAAkBC,IAAAA,aAAaG,WAAW;AACxDP,QAAAA,WAAWQ,aAAQH,WAAAA;AAEnB,WAAMI,KAAAA,eAAcL,GAAAA,aAAaM,WAAAA;AACjCL,aAASG,QAAQC,QAAAA;AAEjB,QAAIE,cAAAA,aAAoB,6BAAA;AACxB,WAAMC,QAAAA,WAAAA;MACJ,oBAAID;kCACF,MAAA;AACF,QAAA,mBAAA;AACAX;IACAW;AACF,eAAA,MAAA;AAEA,wBAAME;;6BAEFd,MAAAA;QACAa,aAAAA,UAAAA,WAAAA;AACF,sCAAA;AAEIR,8BAAuB;;AAE3B,QAAA,aAAA,UAAA,eAAA,aAAA,UAAA,eAAA;AACF,yBAAA;IAEAA;EAEA;eACOA,iBAAmB,eAAQ,kBAAA;6BAC9BU,MAAAA;AACF,SAAA,aAAA,OAAA,EAAA,KAAA,MAAA;AACF,kCAAA;IAEA,CAAA;;sCAEgC,MAACC;sBAClB,QAAA,CAAA,YAAA;AACX,eAAA,oBAAA,SAAA,oBAAA;QACF,SAAA;MACF,CAAA;IAEIhB,CAAAA;;AAEJ,MAAA,+BAAO;AACLiB,uBAAkBC;;sBAEL,QAAA,CAAA,YAAA;AACX,eAAA,iBAAA,SAAA,oBAAA;QACF,SAAA;MACF,CAAA;IAEIC,CAAAA;;MAEFlB,UAAAA,YAAWmB;AACXnB,gCAAe;AACf,eAAMI,WAAagB;AACrB,eAAA,KAAA;AAEA,UAAOX,aAAYY,MAAOC;EAC1B,CAAA;;;",
|
|
6
|
+
"names": ["scheduleTaskInterval", "waitForCondition", "cancelWithContext", "invariant", "width", "canvas", "height", "canvasCtx", "drawFrame", "fillStyle", "fillRect", "ctx", "condition", "timeout", "track", "audioContextStartedPreviously", "oscillator", "createOscillator", "frequency", "setValueAtTime", "audioContext", "gainNode", "gain", "currentTime", "connect", "destination", "createMediaStreamDestination", "oscillatorStarted", "ensureOscillatorStarted", "stateChangeHandler", "cleanUpUserGestureListeners", "gesture", "userGestureEvents", "forEach", "onDispose", "disconnect", "close", "stream", "getAudioTracks"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// src/containers/ChannelChat/ChannelChat.tsx
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
4
|
+
import { Filter, Obj, Query } from "@dxos/echo";
|
|
5
|
+
import { useMembers, useQuery } from "@dxos/react-client/echo";
|
|
6
|
+
import { useIdentity } from "@dxos/react-client/halo";
|
|
7
|
+
import { Message } from "@dxos/types";
|
|
8
|
+
import { composable, composableProps } from "@dxos/ui-theme";
|
|
9
|
+
import { Chat } from "#components";
|
|
10
|
+
import { useStatus } from "#hooks";
|
|
11
|
+
import { ThreadOperation } from "#types";
|
|
12
|
+
var ChannelChat = composable(({ space, channel, ...props }, forwardedRef) => {
|
|
13
|
+
const identity = useIdentity();
|
|
14
|
+
const members = useMembers(space.id);
|
|
15
|
+
const id = Obj.getDXN(channel).toString();
|
|
16
|
+
const activity = useStatus(space, id);
|
|
17
|
+
const { invokePromise } = useOperationInvoker();
|
|
18
|
+
const feed = channel.feed?.target;
|
|
19
|
+
const messages = useQuery(space.db, feed ? Query.select(Filter.type(Message.Message)).from(feed) : Query.select(Filter.nothing()));
|
|
20
|
+
const readOnly = Obj.getMeta(channel).keys.length > 0;
|
|
21
|
+
const handleSend = (text) => {
|
|
22
|
+
if (readOnly) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
void invokePromise(ThreadOperation.AppendChannelMessage, {
|
|
26
|
+
channel,
|
|
27
|
+
sender: {
|
|
28
|
+
identityDid: identity.did
|
|
29
|
+
},
|
|
30
|
+
text
|
|
31
|
+
});
|
|
32
|
+
return true;
|
|
33
|
+
};
|
|
34
|
+
return /* @__PURE__ */ React.createElement(Chat, {
|
|
35
|
+
...composableProps(props),
|
|
36
|
+
id,
|
|
37
|
+
identity,
|
|
38
|
+
members,
|
|
39
|
+
messages,
|
|
40
|
+
activity,
|
|
41
|
+
onSend: handleSend,
|
|
42
|
+
orientation: "bottom",
|
|
43
|
+
readOnly,
|
|
44
|
+
ref: forwardedRef
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// src/containers/ChannelChat/index.ts
|
|
49
|
+
var ChannelChat_default = ChannelChat;
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
ChannelChat,
|
|
53
|
+
ChannelChat_default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=chunk-EACFR36K.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/ChannelChat/ChannelChat.tsx", "../../../src/containers/ChannelChat/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { type Space, useMembers, useQuery } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { type Channel, Message } from '@dxos/types';\nimport { composable, composableProps } from '@dxos/ui-theme';\n\nimport { Chat } from '#components';\nimport { useStatus } from '#hooks';\nimport { ThreadOperation } from '#types';\n\nexport type ChannelChatProps = {\n space: Space;\n channel: Channel.Channel;\n};\n\n/**\n * Channel chat: composer pinned to the bottom of the panel, messages scrolling\n * above it (newest at the bottom). Threading via `Message.threadId` is\n * intentionally not reconstructed in this round.\n *\n * Externally-synced channels (any Channel carrying foreign-key `Obj.Meta`,\n * e.g. Slack/Discord-sourced rooms) render read-only — the composer is\n * suppressed because there's no local-write path back to the source.\n */\nexport const ChannelChat = composable<HTMLDivElement, ChannelChatProps>(\n ({ space, channel, ...props }, forwardedRef) => {\n const identity = useIdentity()!;\n const members = useMembers(space.id);\n const id = Obj.getDXN(channel).toString();\n const activity = useStatus(space, id);\n const { invokePromise } = useOperationInvoker();\n\n const feed = channel.feed?.target;\n const messages = useQuery(\n space.db,\n feed ? Query.select(Filter.type(Message.Message)).from(feed) : Query.select(Filter.nothing()),\n ) as Message.Message[];\n\n const readOnly = Obj.getMeta(channel).keys.length > 0;\n\n const handleSend = (text: string) => {\n if (readOnly) {\n return false;\n }\n void invokePromise(ThreadOperation.AppendChannelMessage, {\n channel,\n sender: { identityDid: identity.did },\n text,\n });\n return true;\n };\n\n return (\n <Chat\n {...composableProps(props)}\n id={id}\n identity={identity}\n members={members}\n messages={messages}\n activity={activity}\n onSend={handleSend}\n orientation='bottom'\n readOnly={readOnly}\n ref={forwardedRef}\n />\n );\n },\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { ChannelChat } from './ChannelChat';\n\nexport { ChannelChat };\nexport default ChannelChat;\n"],
|
|
5
|
+
"mappings": ";AAIA,OAAOA,WAAW;AAElB,SAASC,2BAA2B;AACpC,SAASC,QAAQC,KAAKC,aAAa;AACnC,SAAqBC,YAAYC,gBAAgB;AACjD,SAASC,mBAAmB;AAC5B,SAAuBC,eAAe;AACtC,SAASC,YAAYC,uBAAuB;AAE5C,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAgBzB,IAAMC,cAAcL,WACzB,CAAC,EAAEM,OAAOC,SAAS,GAAGC,MAAAA,GAASC,iBAAAA;AAC7B,QAAMC,WAAWZ,YAAAA;AACjB,QAAMa,UAAUf,WAAWU,MAAMM,EAAE;AACnC,QAAMA,KAAKlB,IAAImB,OAAON,OAAAA,EAASO,SAAQ;AACvC,QAAMC,WAAWZ,UAAUG,OAAOM,EAAAA;AAClC,QAAM,EAAEI,cAAa,IAAKxB,oBAAAA;AAE1B,QAAMyB,OAAOV,QAAQU,MAAMC;AAC3B,QAAMC,WAAWtB,SACfS,MAAMc,IACNH,OAAOtB,MAAM0B,OAAO5B,OAAO6B,KAAKvB,QAAQA,OAAO,CAAA,EAAGwB,KAAKN,IAAAA,IAAQtB,MAAM0B,OAAO5B,OAAO+B,QAAO,CAAA,CAAA;AAG5F,QAAMC,WAAW/B,IAAIgC,QAAQnB,OAAAA,EAASoB,KAAKC,SAAS;AAEpD,QAAMC,aAAa,CAACC,SAAAA;AAClB,QAAIL,UAAU;AACZ,aAAO;IACT;AACA,SAAKT,cAAcZ,gBAAgB2B,sBAAsB;MACvDxB;MACAyB,QAAQ;QAAEC,aAAavB,SAASwB;MAAI;MACpCJ;IACF,CAAA;AACA,WAAO;EACT;AAEA,SACE,sBAAA,cAAC5B,MAAAA;IACE,GAAGD,gBAAgBO,KAAAA;IACpBI;IACAF;IACAC;IACAQ;IACAJ;IACAoB,QAAQN;IACRO,aAAY;IACZX;IACAY,KAAK5B;;AAGX,CAAA;;;AClEF,IAAA,sBAAe6B;",
|
|
6
|
+
"names": ["React", "useOperationInvoker", "Filter", "Obj", "Query", "useMembers", "useQuery", "useIdentity", "Message", "composable", "composableProps", "Chat", "useStatus", "ThreadOperation", "ChannelChat", "space", "channel", "props", "forwardedRef", "identity", "members", "id", "getDXN", "toString", "activity", "invokePromise", "feed", "target", "messages", "db", "select", "type", "from", "nothing", "readOnly", "getMeta", "keys", "length", "handleSend", "text", "AppendChannelMessage", "sender", "identityDid", "did", "onSend", "orientation", "ref", "ChannelChat"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createBlackCanvasStreamTrack,
|
|
3
|
+
createInaudibleAudioStreamTrack
|
|
4
|
+
} from "./chunk-CROE4U4O.mjs";
|
|
5
|
+
|
|
6
|
+
// src/hooks/analytics.ts
|
|
7
|
+
import { useCallback } from "react";
|
|
8
|
+
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
9
|
+
import { Obj } from "@dxos/echo";
|
|
10
|
+
import { ObservabilityOperation } from "@dxos/plugin-observability";
|
|
11
|
+
import { useOnTransition } from "@dxos/react-ui";
|
|
12
|
+
var useOnEditAnalytics = (message, textBlock, editing) => {
|
|
13
|
+
const { invokePromise } = useOperationInvoker();
|
|
14
|
+
const onEdit = useCallback(() => {
|
|
15
|
+
if (!message || !textBlock) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const db = Obj.getDatabase(message);
|
|
19
|
+
if (!db) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
void invokePromise(ObservabilityOperation.SendEvent, {
|
|
23
|
+
name: "threads.message.update",
|
|
24
|
+
properties: {
|
|
25
|
+
spaceId: db.spaceId,
|
|
26
|
+
messageId: message.id,
|
|
27
|
+
messageLength: textBlock?.text.length
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}, [
|
|
31
|
+
invokePromise,
|
|
32
|
+
message,
|
|
33
|
+
textBlock
|
|
34
|
+
]);
|
|
35
|
+
useOnTransition(editing, true, false, onEdit);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// src/hooks/useBlackCanvasStreamTrack.tsx
|
|
39
|
+
import { useEffect, useState } from "react";
|
|
40
|
+
import { scheduleTask } from "@dxos/async";
|
|
41
|
+
import { Context } from "@dxos/context";
|
|
42
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/hooks/useBlackCanvasStreamTrack.tsx";
|
|
43
|
+
var useBlackCanvasStreamTrack = () => {
|
|
44
|
+
const [blackCanvasStreamTrack, setBlackCanvasStreamTrack] = useState(void 0);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 11 });
|
|
47
|
+
scheduleTask(ctx, async () => {
|
|
48
|
+
const blackCanvasStreamTrack2 = await createBlackCanvasStreamTrack({
|
|
49
|
+
ctx,
|
|
50
|
+
width: 720,
|
|
51
|
+
height: 480
|
|
52
|
+
});
|
|
53
|
+
setBlackCanvasStreamTrack(blackCanvasStreamTrack2);
|
|
54
|
+
});
|
|
55
|
+
return () => {
|
|
56
|
+
void ctx.dispose();
|
|
57
|
+
};
|
|
58
|
+
}, []);
|
|
59
|
+
return blackCanvasStreamTrack;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// src/hooks/useDebugMode.ts
|
|
63
|
+
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
64
|
+
var useDebugMode = () => {
|
|
65
|
+
const [enabled, setEnabled] = useState2(false);
|
|
66
|
+
useEffect2(() => {
|
|
67
|
+
const handler = (ev) => {
|
|
68
|
+
if (ev.key.toLowerCase() === "d" && ev.ctrlKey) {
|
|
69
|
+
ev.preventDefault();
|
|
70
|
+
setEnabled(!enabled);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
document.addEventListener("keypress", handler);
|
|
74
|
+
return () => {
|
|
75
|
+
document.removeEventListener("keypress", handler);
|
|
76
|
+
};
|
|
77
|
+
}, [
|
|
78
|
+
enabled
|
|
79
|
+
]);
|
|
80
|
+
return enabled;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
// src/hooks/useInaudibleAudioStreamTrack.tsx
|
|
84
|
+
import { useEffect as useEffect3, useState as useState3 } from "react";
|
|
85
|
+
import { scheduleTask as scheduleTask2 } from "@dxos/async";
|
|
86
|
+
import { Context as Context2 } from "@dxos/context";
|
|
87
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/hooks/useInaudibleAudioStreamTrack.tsx";
|
|
88
|
+
var useInaudibleAudioStreamTrack = () => {
|
|
89
|
+
const [audioStreamTrack, setAudioStreamTrack] = useState3(void 0);
|
|
90
|
+
useEffect3(() => {
|
|
91
|
+
const ctx = new Context2(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 11 });
|
|
92
|
+
scheduleTask2(ctx, async () => {
|
|
93
|
+
const audioStreamTrack2 = await createInaudibleAudioStreamTrack({
|
|
94
|
+
ctx
|
|
95
|
+
});
|
|
96
|
+
setAudioStreamTrack(audioStreamTrack2);
|
|
97
|
+
});
|
|
98
|
+
return () => {
|
|
99
|
+
void ctx.dispose();
|
|
100
|
+
};
|
|
101
|
+
}, []);
|
|
102
|
+
return audioStreamTrack;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// src/hooks/useStatus.ts
|
|
106
|
+
import { useEffect as useEffect4, useState as useState4 } from "react";
|
|
107
|
+
var useStatus = (space, channel) => {
|
|
108
|
+
const [processing, setProcessing] = useState4(false);
|
|
109
|
+
useEffect4(() => {
|
|
110
|
+
if (!space || !channel) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const unsubscribe = space.listen(`status/${channel}`, (status) => {
|
|
114
|
+
const { event } = status.payload ?? {};
|
|
115
|
+
setProcessing(event === "processing");
|
|
116
|
+
});
|
|
117
|
+
const t = setInterval(() => {
|
|
118
|
+
setProcessing((prev) => {
|
|
119
|
+
if (typeof prev?.ts === "number" && Date.now() - prev.ts > 3e4) {
|
|
120
|
+
return void 0;
|
|
121
|
+
} else {
|
|
122
|
+
return prev;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}, 1e3);
|
|
126
|
+
return () => {
|
|
127
|
+
unsubscribe();
|
|
128
|
+
clearInterval(t);
|
|
129
|
+
};
|
|
130
|
+
}, [
|
|
131
|
+
space,
|
|
132
|
+
channel
|
|
133
|
+
]);
|
|
134
|
+
return processing;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// src/hooks/useVideoStreamTrack.tsx
|
|
138
|
+
import { useEffect as useEffect5, useRef, useState as useState5 } from "react";
|
|
139
|
+
var useVideoStreamTrack = (videoElement, videoSrc) => {
|
|
140
|
+
const [videoStreamTrack, setVideoStreamTrack] = useState5(void 0);
|
|
141
|
+
const hadRun = useRef(false);
|
|
142
|
+
useEffect5(() => {
|
|
143
|
+
if (!videoElement.current || hadRun.current || !videoSrc) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
hadRun.current = true;
|
|
147
|
+
videoElement.current.addEventListener("playing", () => {
|
|
148
|
+
if (videoStreamTrack) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const stream = videoElement.current.captureStream();
|
|
152
|
+
const track = stream.getTracks()[0];
|
|
153
|
+
if (track && !videoStreamTrack) {
|
|
154
|
+
setVideoStreamTrack(track);
|
|
155
|
+
}
|
|
156
|
+
stream.onaddtrack = (event) => {
|
|
157
|
+
if (event.track.kind === "video" && !videoStreamTrack) {
|
|
158
|
+
setVideoStreamTrack(event.track);
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
});
|
|
162
|
+
videoElement.current.src = videoSrc;
|
|
163
|
+
}, [
|
|
164
|
+
videoElement.current,
|
|
165
|
+
videoSrc
|
|
166
|
+
]);
|
|
167
|
+
return videoStreamTrack;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
export {
|
|
171
|
+
useOnEditAnalytics,
|
|
172
|
+
useBlackCanvasStreamTrack,
|
|
173
|
+
useDebugMode,
|
|
174
|
+
useInaudibleAudioStreamTrack,
|
|
175
|
+
useStatus,
|
|
176
|
+
useVideoStreamTrack
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=chunk-FWSMZWBO.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/analytics.ts", "../../../src/hooks/useBlackCanvasStreamTrack.tsx", "../../../src/hooks/useDebugMode.ts", "../../../src/hooks/useInaudibleAudioStreamTrack.tsx", "../../../src/hooks/useStatus.ts", "../../../src/hooks/useVideoStreamTrack.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { ObservabilityOperation } from '@dxos/plugin-observability';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type ContentBlock } from '@dxos/types';\n\nexport const useOnEditAnalytics = (\n message: any | undefined,\n textBlock: ContentBlock.Text | undefined,\n editing: boolean,\n) => {\n const { invokePromise } = useOperationInvoker();\n\n const onEdit = useCallback(() => {\n if (!message || !textBlock) {\n return;\n }\n\n const db = Obj.getDatabase(message);\n if (!db) {\n return;\n }\n\n void invokePromise(ObservabilityOperation.SendEvent, {\n name: 'threads.message.update',\n properties: {\n spaceId: db.spaceId,\n messageId: message.id,\n messageLength: textBlock?.text.length,\n },\n });\n }, [invokePromise, message, textBlock]);\n\n useOnTransition(editing, true, false, onEdit);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createBlackCanvasStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useBlackCanvasStreamTrack = () => {\n const [blackCanvasStreamTrack, setBlackCanvasStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const blackCanvasStreamTrack = await createBlackCanvasStreamTrack({ ctx, width: 720, height: 480 });\n setBlackCanvasStreamTrack(blackCanvasStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return blackCanvasStreamTrack;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\n// TODO(burdon): Standardize across plugins/composer.\nexport const useDebugMode = () => {\n const [enabled, setEnabled] = useState(false);\n useEffect(() => {\n const handler = (ev: KeyboardEvent) => {\n if (ev.key.toLowerCase() === 'd' && ev.ctrlKey) {\n ev.preventDefault();\n setEnabled(!enabled);\n }\n };\n\n document.addEventListener('keypress', handler);\n return () => {\n document.removeEventListener('keypress', handler);\n };\n }, [enabled]);\n\n return enabled;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createInaudibleAudioStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useInaudibleAudioStreamTrack = () => {\n const [audioStreamTrack, setAudioStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const audioStreamTrack = await createInaudibleAudioStreamTrack({ ctx });\n setAudioStreamTrack(audioStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return audioStreamTrack;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\n// TODO(burdon): Generalize and factor out.\nexport const useStatus = (space?: Space, channel?: string) => {\n const [processing, setProcessing] = useState(false);\n useEffect(() => {\n if (!space || !channel) {\n return;\n }\n\n const unsubscribe = space.listen(`status/${channel}`, (status) => {\n const { event } = status.payload ?? {};\n setProcessing(event === 'processing');\n });\n\n const t = setInterval(() => {\n setProcessing((prev: any) => {\n if (typeof prev?.ts === 'number' && Date.now() - prev.ts > 30_000) {\n return undefined;\n } else {\n return prev;\n }\n });\n }, 1_000);\n\n return () => {\n unsubscribe();\n clearInterval(t);\n };\n }, [space, channel]);\n\n return processing;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type RefObject, useEffect, useRef, useState } from 'react';\n\nexport const useVideoStreamTrack = (videoElement: RefObject<HTMLVideoElement | null>, videoSrc: string) => {\n // Get video stream track.\n const [videoStreamTrack, setVideoStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n const hadRun = useRef(false);\n useEffect(() => {\n // This is done to capture only one video stream.\n if (!videoElement.current || hadRun.current || !videoSrc) {\n return;\n }\n hadRun.current = true;\n videoElement.current.addEventListener('playing', () => {\n if (videoStreamTrack) {\n return;\n }\n const stream = (videoElement.current as any).captureStream();\n const track = stream.getTracks()[0];\n if (track && !videoStreamTrack) {\n setVideoStreamTrack(track);\n }\n stream.onaddtrack = (event: MediaStreamTrackEvent) => {\n if (event.track.kind === 'video' && !videoStreamTrack) {\n setVideoStreamTrack(event.track);\n }\n };\n });\n videoElement.current.src = videoSrc;\n }, [videoElement.current, videoSrc]);\n\n return videoStreamTrack;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,SAASA,mBAAmB;AAE5B,SAASC,2BAA2B;AACpC,SAASC,WAAW;AACpB,SAASC,8BAA8B;AACvC,SAASC,uBAAuB;AAGzB,IAAMC,qBAAqB,CAChCC,SACAC,WACAC,YAAAA;AAEA,QAAM,EAAEC,cAAa,IAAKR,oBAAAA;AAE1B,QAAMS,SAASV,YAAY,MAAA;AACzB,QAAI,CAACM,WAAW,CAACC,WAAW;AAC1B;IACF;AAEA,UAAMI,KAAKT,IAAIU,YAAYN,OAAAA;AAC3B,QAAI,CAACK,IAAI;AACP;IACF;AAEA,SAAKF,cAAcN,uBAAuBU,WAAW;MACnDC,MAAM;MACNC,YAAY;QACVC,SAASL,GAAGK;QACZC,WAAWX,QAAQY;QACnBC,eAAeZ,WAAWa,KAAKC;MACjC;IACF,CAAA;EACF,GAAG;IAACZ;IAAeH;IAASC;GAAU;AAEtCH,kBAAgBI,SAAS,MAAM,OAAOE,MAAAA;AACxC;;;ACpCA,SAASY,WAAWC,gBAAgB;AAEpC,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AAIxB,IAAA,eAAaC;AAEXC,IAAAA,4BAAU,MAAA;QACR,CAAA,wBAAgBC,yBAAAA,IAAAA,SAAAA,MAAAA;YAChBC,MAAAA;UACE,MAAMC,IAAAA,QAAAA,QAAAA,EAAAA,YAA+BC,YAAAA,GAAAA,cAAAA,GAA6B,GAAA,CAAA;iBAAEC,KAAAA,YAAAA;YAAKC,0BAAO,MAAA,6BAAA;QAAKC;QAAY,OAAA;QACjGC,QAAAA;MACF,CAAA;AAEA,gCAAOL,uBAAA;;AAEP,WAAA,MAAA;AACG,WAAA,IAAA,QAAA;IAEL;EACA,GAAA,CAAA,CAAA;;;;;ACtBF,SAASM,aAAAA,YAAWC,YAAAA,iBAAgB;AAG7B,IAAMC,eAAe,MAAA;AAC1B,QAAM,CAACC,SAASC,UAAAA,IAAcH,UAAS,KAAA;AACvCD,EAAAA,WAAU,MAAA;AACR,UAAMK,UAAU,CAACC,OAAAA;AACf,UAAIA,GAAGC,IAAIC,YAAW,MAAO,OAAOF,GAAGG,SAAS;AAC9CH,WAAGI,eAAc;AACjBN,mBAAW,CAACD,OAAAA;MACd;IACF;AAEAQ,aAASC,iBAAiB,YAAYP,OAAAA;AACtC,WAAO,MAAA;AACLM,eAASE,oBAAoB,YAAYR,OAAAA;IAC3C;EACF,GAAG;IAACF;GAAQ;AAEZ,SAAOA;AACT;;;ACpBA,SAASW,aAAAA,YAAWC,YAAAA,iBAAgB;AAEpC,SAASC,gBAAAA,qBAAoB;AAC7B,SAASC,WAAAA,gBAAe;AAIxB,IAAAC,gBAAaC;AAEXC,IAAAA,+BAAU,MAAA;QACR,CAAA,kBAAgBC,mBAAAA,IAAAA,UAAAA,MAAAA;aAChBC,MAAAA;UACE,MAAMC,IAAAA,SAAAA,QAAmB,EAAA,YAAMC,YAAAA,GAAAA,eAAgC,GAAA,GAAA,CAAA;kBAAEC,KAAAA,YAAAA;AAAI,YAAAF,oBAAA,MAAA,gCAAA;QACrEG;MACF,CAAA;AAEA,0BAAOH,iBAAA;;AAEP,WAAA,MAAA;AACG,WAAA,IAAA,QAAA;IAEL;EACA,GAAA,CAAA,CAAA;;;;;ACtBF,SAASI,aAAAA,YAAWC,YAAAA,iBAAgB;AAK7B,IAAMC,YAAY,CAACC,OAAeC,YAAAA;AACvC,QAAM,CAACC,YAAYC,aAAAA,IAAiBL,UAAS,KAAA;AAC7CD,EAAAA,WAAU,MAAA;AACR,QAAI,CAACG,SAAS,CAACC,SAAS;AACtB;IACF;AAEA,UAAMG,cAAcJ,MAAMK,OAAO,UAAUJ,OAAAA,IAAW,CAACK,WAAAA;AACrD,YAAM,EAAEC,MAAK,IAAKD,OAAOE,WAAW,CAAC;AACrCL,oBAAcI,UAAU,YAAA;IAC1B,CAAA;AAEA,UAAME,IAAIC,YAAY,MAAA;AACpBP,oBAAc,CAACQ,SAAAA;AACb,YAAI,OAAOA,MAAMC,OAAO,YAAYC,KAAKC,IAAG,IAAKH,KAAKC,KAAK,KAAQ;AACjE,iBAAOG;QACT,OAAO;AACL,iBAAOJ;QACT;MACF,CAAA;IACF,GAAG,GAAA;AAEH,WAAO,MAAA;AACLP,kBAAAA;AACAY,oBAAcP,CAAAA;IAChB;EACF,GAAG;IAACT;IAAOC;GAAQ;AAEnB,SAAOC;AACT;;;AClCA,SAAyBe,aAAAA,YAAWC,QAAQC,YAAAA,iBAAgB;AAErD,IAAMC,sBAAsB,CAACC,cAAkDC,aAAAA;AAEpF,QAAM,CAACC,kBAAkBC,mBAAAA,IAAuBL,UAAuCM,MAAAA;AACvF,QAAMC,SAASR,OAAO,KAAA;AACtBD,EAAAA,WAAU,MAAA;AAER,QAAI,CAACI,aAAaM,WAAWD,OAAOC,WAAW,CAACL,UAAU;AACxD;IACF;AACAI,WAAOC,UAAU;AACjBN,iBAAaM,QAAQC,iBAAiB,WAAW,MAAA;AAC/C,UAAIL,kBAAkB;AACpB;MACF;AACA,YAAMM,SAAUR,aAAaM,QAAgBG,cAAa;AAC1D,YAAMC,QAAQF,OAAOG,UAAS,EAAG,CAAA;AACjC,UAAID,SAAS,CAACR,kBAAkB;AAC9BC,4BAAoBO,KAAAA;MACtB;AACAF,aAAOI,aAAa,CAACC,UAAAA;AACnB,YAAIA,MAAMH,MAAMI,SAAS,WAAW,CAACZ,kBAAkB;AACrDC,8BAAoBU,MAAMH,KAAK;QACjC;MACF;IACF,CAAA;AACAV,iBAAaM,QAAQS,MAAMd;EAC7B,GAAG;IAACD,aAAaM;IAASL;GAAS;AAEnC,SAAOC;AACT;",
|
|
6
|
+
"names": ["useCallback", "useOperationInvoker", "Obj", "ObservabilityOperation", "useOnTransition", "useOnEditAnalytics", "message", "textBlock", "editing", "invokePromise", "onEdit", "db", "getDatabase", "SendEvent", "name", "properties", "spaceId", "messageId", "id", "messageLength", "text", "length", "useEffect", "useState", "scheduleTask", "Context", "useBlackCanvasStreamTrack", "useEffect", "Context", "scheduleTask", "blackCanvasStreamTrack", "createBlackCanvasStreamTrack", "ctx", "width", "height", "setBlackCanvasStreamTrack", "useEffect", "useState", "useDebugMode", "enabled", "setEnabled", "handler", "ev", "key", "toLowerCase", "ctrlKey", "preventDefault", "document", "addEventListener", "removeEventListener", "useEffect", "useState", "scheduleTask", "Context", "__dxlog_file", "useInaudibleAudioStreamTrack", "useEffect", "Context", "scheduleTask", "audioStreamTrack", "createInaudibleAudioStreamTrack", "ctx", "setAudioStreamTrack", "useEffect", "useState", "useStatus", "space", "channel", "processing", "setProcessing", "unsubscribe", "listen", "status", "event", "payload", "t", "setInterval", "prev", "ts", "Date", "now", "undefined", "clearInterval", "useEffect", "useRef", "useState", "useVideoStreamTrack", "videoElement", "videoSrc", "videoStreamTrack", "setVideoStreamTrack", "undefined", "hadRun", "current", "addEventListener", "stream", "captureStream", "track", "getTracks", "onaddtrack", "event", "kind", "src"]
|
|
7
|
+
}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// packages/plugins/plugin-thread/src/util.ts
|
|
4
|
-
import { Match } from "effect";
|
|
1
|
+
// src/util.ts
|
|
2
|
+
import * as Match from "effect/Match";
|
|
5
3
|
import { generateName } from "@dxos/display-name";
|
|
6
|
-
import { hexToFallback } from "@dxos/util";
|
|
7
|
-
var
|
|
8
|
-
|
|
4
|
+
import { hexToFallback, toFallback } from "@dxos/util";
|
|
5
|
+
var hashString = (s) => {
|
|
6
|
+
let h = 0;
|
|
7
|
+
for (let i = 0; i < s.length; i++) {
|
|
8
|
+
h = h * 31 + s.charCodeAt(i) | 0;
|
|
9
|
+
}
|
|
10
|
+
return h >>> 0;
|
|
11
|
+
};
|
|
12
|
+
var getMessageMetadata = (id, identity, fallbackSender) => {
|
|
13
|
+
const fallback = identity?.identityKey ? hexToFallback(identity.identityKey.toHex()) : toFallback(hashString(fallbackSender?.name ?? fallbackSender?.email ?? "0"));
|
|
9
14
|
return {
|
|
10
15
|
id,
|
|
11
16
|
authorId: identity?.did,
|
|
12
|
-
authorName: identity?.profile?.displayName ?? (identity?.identityKey ? generateName(identity.identityKey.toHex()) : void 0),
|
|
17
|
+
authorName: identity?.profile?.displayName ?? (identity?.identityKey ? generateName(identity.identityKey.toHex()) : void 0) ?? fallbackSender?.name ?? fallbackSender?.email,
|
|
13
18
|
authorAvatarProps: {
|
|
14
19
|
hue: identity?.profile?.data?.hue ?? fallback.hue,
|
|
15
20
|
emoji: identity?.profile?.data?.emoji ?? fallback.emoji
|
|
@@ -30,4 +35,4 @@ export {
|
|
|
30
35
|
getMessageMetadata,
|
|
31
36
|
getAnchor
|
|
32
37
|
};
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
38
|
+
//# sourceMappingURL=chunk-JLY4NVTA.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Match from 'effect/Match';\n\nimport { generateName } from '@dxos/display-name';\nimport { type PublicKey } from '@dxos/react-client';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { type Selection } from '@dxos/react-ui-attention';\nimport { type MessageMetadata } from '@dxos/react-ui-thread';\nimport { hexToFallback, toFallback } from '@dxos/util';\n\nexport type MessagePropertiesProvider = (identityKey: PublicKey | undefined) => MessageMetadata;\n\n/**\n * Stable hash for an arbitrary string — used as the avatar-fallback seed for\n * external senders who have no DXOS identity (e.g. Slack/Discord-synced\n * messages). djb2-ish, only stability matters.\n *\n * Coerced to unsigned 32-bit via `>>> 0` because `toFallback` does a plain\n * modulo against `idEmoji.length * idHue.length` and JavaScript's `%`\n * preserves the sign of the dividend — a negative hash would index\n * `idEmoji[-x]` and `idHue[-x]` to `undefined`, causing the avatar to fall\n * through to `Avatar.Content`'s default red/ghost.\n */\nconst hashString = (s: string): number => {\n let h = 0;\n for (let i = 0; i < s.length; i++) {\n h = (h * 31 + s.charCodeAt(i)) | 0;\n }\n return h >>> 0;\n};\n\nexport const getMessageMetadata = (\n id: string,\n identity?: Identity,\n /**\n * Externally-sourced sender info (Slack/Discord/etc). Used only when no\n * matching DXOS `identity` is available — provides `name`/`email` for the\n * author label and a stable seed for the avatar fallback.\n */\n fallbackSender?: { name?: string; email?: string },\n): MessageMetadata => {\n const fallback = identity?.identityKey\n ? hexToFallback(identity.identityKey.toHex())\n : toFallback(hashString(fallbackSender?.name ?? fallbackSender?.email ?? '0'));\n return {\n id,\n authorId: identity?.did,\n authorName:\n identity?.profile?.displayName ??\n (identity?.identityKey ? generateName(identity.identityKey.toHex()) : undefined) ??\n fallbackSender?.name ??\n fallbackSender?.email,\n authorAvatarProps: {\n hue: identity?.profile?.data?.hue ?? fallback.hue,\n emoji: identity?.profile?.data?.emoji ?? fallback.emoji,\n },\n };\n};\n\nexport const getAnchor = Match.type<Selection | undefined>().pipe(\n Match.when({ mode: 'single' }, (s) => s.id),\n Match.when({ mode: 'multi' }, (s) => (s.ids.length > 0 ? s.ids.join(',') : undefined)),\n Match.when({ mode: 'range' }, (s) => (s.from && s.to ? `${s.from}:${s.to}` : undefined)),\n Match.when({ mode: 'multi-range' }, (s) => s.ranges[0] && `${s.ranges[0].from}:${s.ranges[0].to}`),\n Match.when(undefined, () => undefined),\n Match.exhaustive,\n);\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,WAAW;AAEvB,SAASC,oBAAoB;AAK7B,SAASC,eAAeC,kBAAkB;AAe1C,IAAMC,aAAa,CAACC,MAAAA;AAClB,MAAIC,IAAI;AACR,WAASC,IAAI,GAAGA,IAAIF,EAAEG,QAAQD,KAAK;AACjCD,QAAKA,IAAI,KAAKD,EAAEI,WAAWF,CAAAA,IAAM;EACnC;AACA,SAAOD,MAAM;AACf;AAEO,IAAMI,qBAAqB,CAChCC,IACAC,UAMAC,mBAAAA;AAEA,QAAMC,WAAWF,UAAUG,cACvBb,cAAcU,SAASG,YAAYC,MAAK,CAAA,IACxCb,WAAWC,WAAWS,gBAAgBI,QAAQJ,gBAAgBK,SAAS,GAAA,CAAA;AAC3E,SAAO;IACLP;IACAQ,UAAUP,UAAUQ;IACpBC,YACET,UAAUU,SAASC,gBAClBX,UAAUG,cAAcd,aAAaW,SAASG,YAAYC,MAAK,CAAA,IAAMQ,WACtEX,gBAAgBI,QAChBJ,gBAAgBK;IAClBO,mBAAmB;MACjBC,KAAKd,UAAUU,SAASK,MAAMD,OAAOZ,SAASY;MAC9CE,OAAOhB,UAAUU,SAASK,MAAMC,SAASd,SAASc;IACpD;EACF;AACF;AAEO,IAAMC,YAAkBC,WAAI,EAA0BC,KACrDC,WAAK;EAAEC,MAAM;AAAS,GAAG,CAAC5B,MAAMA,EAAEM,EAAE,GACpCqB,WAAK;EAAEC,MAAM;AAAQ,GAAG,CAAC5B,MAAOA,EAAE6B,IAAI1B,SAAS,IAAIH,EAAE6B,IAAIC,KAAK,GAAA,IAAOX,MAAAA,GACrEQ,WAAK;EAAEC,MAAM;AAAQ,GAAG,CAAC5B,MAAOA,EAAE+B,QAAQ/B,EAAEgC,KAAK,GAAGhC,EAAE+B,IAAI,IAAI/B,EAAEgC,EAAE,KAAKb,MAAAA,GACvEQ,WAAK;EAAEC,MAAM;AAAc,GAAG,CAAC5B,MAAMA,EAAEiC,OAAO,CAAA,KAAM,GAAGjC,EAAEiC,OAAO,CAAA,EAAGF,IAAI,IAAI/B,EAAEiC,OAAO,CAAA,EAAGD,EAAE,EAAE,GAC3FL,WAAKR,QAAW,MAAMA,MAAAA,GACtBe,gBAAU;",
|
|
6
|
+
"names": ["Match", "generateName", "hexToFallback", "toFallback", "hashString", "s", "h", "i", "length", "charCodeAt", "getMessageMetadata", "id", "identity", "fallbackSender", "fallback", "identityKey", "toHex", "name", "email", "authorId", "did", "authorName", "profile", "displayName", "undefined", "authorAvatarProps", "hue", "data", "emoji", "getAnchor", "type", "pipe", "when", "mode", "ids", "join", "from", "to", "ranges", "exhaustive"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// src/operations/index.ts
|
|
2
|
+
import { OperationHandlerSet } from "@dxos/compute";
|
|
3
|
+
var ThreadOperationHandlerSet = OperationHandlerSet.lazy(() => import("./add-message-WX3LCGZC.mjs"), () => import("./append-channel-message-J7N6UEBL.mjs"), () => import("./create-DGJZRLG7.mjs"), () => import("./create-channel-RP646IAE.mjs"), () => import("./create-proposals-CPLU4YC6.mjs"), () => import("./delete-MKKME2FE.mjs"), () => import("./delete-message-UBZH3SZA.mjs"), () => import("./on-create-space-MRLZYOJR.mjs"), () => import("./restore-SUXNC6GE.mjs"), () => import("./restore-message-2TPJB32Y.mjs"), () => import("./select-H5RMZH43.mjs"), () => import("./toggle-resolved-HKZ4IRHG.mjs"));
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
ThreadOperationHandlerSet
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=chunk-NGZVEPJV.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const ThreadOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./add-message'),\n () => import('./append-channel-message'),\n () => import('./create'),\n () => import('./create-channel'),\n () => import('./create-proposals'),\n () => import('./delete'),\n () => import('./delete-message'),\n () => import('./on-create-space'),\n () => import('./restore'),\n () => import('./restore-message'),\n () => import('./select'),\n () => import('./toggle-resolved'),\n);\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,4BAA4BD,oBAAoBE,KAC3D,MAAM,OAAO,4BAAA,GACb,MAAM,OAAO,uCAAA,GACb,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,+BAAA,GACb,MAAM,OAAO,iCAAA,GACb,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,+BAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,wBAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,gCAAA,CAAA;",
|
|
6
|
+
"names": ["OperationHandlerSet", "ThreadOperationHandlerSet", "lazy"]
|
|
7
|
+
}
|