@dxos/plugin-thread 0.8.4-main.2e9d522 → 0.8.4-main.5ea62a8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/ChannelContainer-GHDNEZT2.mjs +16 -0
- package/dist/lib/browser/{ChatContainer-AIGIWAUG.mjs → ChatContainer-42ALOWUA.mjs} +4 -4
- package/dist/lib/browser/{app-graph-builder-N7BE5TYW.mjs → app-graph-builder-FHAOPO57.mjs} +5 -5
- package/dist/lib/browser/app-graph-builder-FHAOPO57.mjs.map +7 -0
- package/dist/lib/browser/{call-manager-NIPDYUVD.mjs → call-manager-EW2QC6Q4.mjs} +4 -4
- package/dist/lib/browser/call-manager-EW2QC6Q4.mjs.map +7 -0
- package/dist/lib/browser/chunk-2I277V52.mjs +23 -0
- package/dist/lib/browser/{chunk-4OYAYON2.mjs.map → chunk-2I277V52.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-ERWASUQK.mjs → chunk-2P3GVRHP.mjs} +38 -6
- package/dist/lib/{node-esm/chunk-25ABSYP2.mjs.map → browser/chunk-2P3GVRHP.mjs.map} +4 -4
- package/dist/lib/browser/{chunk-LGSDKXPF.mjs → chunk-4APCDRSH.mjs} +1 -1
- package/dist/lib/browser/{chunk-LGSDKXPF.mjs.map → chunk-4APCDRSH.mjs.map} +1 -1
- package/dist/lib/browser/chunk-H63NDV62.mjs +376 -0
- package/dist/lib/browser/chunk-H63NDV62.mjs.map +7 -0
- package/dist/lib/browser/chunk-J26C57ZY.mjs +548 -0
- package/dist/lib/browser/chunk-J26C57ZY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6NSMBO3B.mjs → chunk-KEXJGF2R.mjs} +4 -4
- package/dist/lib/browser/chunk-KEXJGF2R.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GCLD5ESP.mjs → chunk-KTWYVC5X.mjs} +22 -12
- package/dist/lib/browser/chunk-KTWYVC5X.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KWPRNHTK.mjs → chunk-TQJYDFBU.mjs} +232 -230
- package/dist/lib/browser/chunk-TQJYDFBU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZE7KWN36.mjs → chunk-TUSBPMNU.mjs} +398 -174
- package/dist/lib/browser/chunk-TUSBPMNU.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +18 -8
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-JFGLZ6VI.mjs → intent-resolver-IB5GYU2D.mjs} +68 -9
- package/dist/lib/browser/intent-resolver-IB5GYU2D.mjs.map +7 -0
- package/dist/lib/browser/{markdown-GEXBVJYN.mjs → markdown-Z677YORA.mjs} +4 -4
- package/dist/lib/browser/markdown-Z677YORA.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-X4UIVGTX.mjs → react-root-PTTTW2MO.mjs} +9 -9
- package/dist/lib/browser/{react-surface-YCYEFBPM.mjs → react-surface-X2VB6P37.mjs} +9 -9
- package/dist/lib/browser/react-surface-X2VB6P37.mjs.map +7 -0
- package/dist/lib/browser/{settings-E32MTL7A.mjs → settings-GRKEID73.mjs} +2 -2
- package/dist/lib/browser/{state-H6CYONWE.mjs → state-2T4KDWBX.mjs} +2 -2
- package/dist/lib/browser/{state-H6CYONWE.mjs.map → state-2T4KDWBX.mjs.map} +2 -2
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs +80 -0
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node-esm/{ChannelContainer-DET6T5N2.mjs → ChannelContainer-D5E2S6AI.mjs} +7 -7
- package/dist/lib/node-esm/{ChatContainer-IQUWU426.mjs → ChatContainer-4EGHKHIU.mjs} +4 -4
- package/dist/lib/node-esm/{app-graph-builder-VCW76Z6V.mjs → app-graph-builder-XEYWX5FC.mjs} +5 -5
- package/dist/lib/node-esm/app-graph-builder-XEYWX5FC.mjs.map +7 -0
- package/dist/lib/node-esm/{call-manager-D6O5ZJJ4.mjs → call-manager-N3KASRDQ.mjs} +4 -4
- package/dist/lib/node-esm/call-manager-N3KASRDQ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-C3XFMUAY.mjs → chunk-CCE5LHBE.mjs} +232 -230
- package/dist/lib/node-esm/chunk-CCE5LHBE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-25ABSYP2.mjs → chunk-CTZ75IFK.mjs} +38 -6
- package/dist/lib/node-esm/chunk-CTZ75IFK.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IHDNQLLR.mjs → chunk-JR7KESLL.mjs} +398 -174
- package/dist/lib/node-esm/chunk-JR7KESLL.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NNKKNW57.mjs +549 -0
- package/dist/lib/node-esm/chunk-NNKKNW57.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TDFHTCZZ.mjs → chunk-P6E247RF.mjs} +22 -12
- package/dist/lib/node-esm/chunk-P6E247RF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-75RJ5DJI.mjs → chunk-PYTVBN5J.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-75RJ5DJI.mjs.map → chunk-PYTVBN5J.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-OU5BYIDO.mjs → chunk-S3D7DTBF.mjs} +4 -4
- package/dist/lib/node-esm/chunk-S3D7DTBF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UHZQTPXU.mjs +377 -0
- package/dist/lib/node-esm/chunk-UHZQTPXU.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs +25 -0
- package/dist/lib/node-esm/{chunk-GW37AAM4.mjs.map → chunk-UJ2QNRLS.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +18 -8
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-OXGNQ44Y.mjs → intent-resolver-VIMI5VLH.mjs} +68 -9
- package/dist/lib/node-esm/intent-resolver-VIMI5VLH.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-LIJZDK2J.mjs → markdown-FL4IXLRP.mjs} +4 -4
- package/dist/lib/node-esm/markdown-FL4IXLRP.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-M7J6PZVW.mjs → react-root-2HHRRUME.mjs} +9 -9
- package/dist/lib/node-esm/{react-surface-IRSEKM42.mjs → react-surface-OLN3XNND.mjs} +9 -9
- package/dist/lib/node-esm/react-surface-OLN3XNND.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SJ24YG7M.mjs → settings-F2ODVNNW.mjs} +2 -2
- package/dist/lib/node-esm/{state-D7WNDT3N.mjs → state-62TQKQVB.mjs} +2 -2
- package/dist/lib/node-esm/{state-D7WNDT3N.mjs.map → state-62TQKQVB.mjs.map} +2 -2
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs +81 -0
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/ThreadPlugin.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 +1 -1
- package/dist/types/src/calls/media-manager.d.ts.map +1 -1
- package/dist/types/src/calls/types.d.ts +1 -1
- package/dist/types/src/calls/types.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +2 -2
- package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
- package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +10 -8
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/call-manager.d.ts +1 -1
- package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +2 -2
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -10
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +1 -1
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/toolkit.d.ts +5 -0
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
- package/dist/types/src/components/Call/Call.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +87 -3
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts +89 -4
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts +154 -3
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts +2 -2
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
- 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 +15 -3
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +4 -1
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- 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/ResponsiveContainer.stories.d.ts +152 -2
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +154 -3
- 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/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/command-extension.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +1 -0
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts +2 -2
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -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/useVideoStreamTrack.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +122 -107
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +253 -168
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +51 -47
- package/src/ThreadPlugin.tsx +9 -2
- package/src/calls/call-manager.ts +1 -1
- package/src/calls/call-swarm-synchronizer.ts +1 -1
- package/src/calls/media-manager.ts +58 -33
- package/src/calls/types.ts +1 -1
- package/src/calls/util/calls-service.ts +56 -10
- package/src/calls/util/stub-media-streams.ts +4 -5
- package/src/calls-service.stories.tsx +76 -60
- package/src/capabilities/app-graph-builder.ts +8 -5
- package/src/capabilities/call-manager.ts +3 -2
- package/src/capabilities/capabilities.ts +2 -2
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/intent-resolver.ts +39 -4
- package/src/capabilities/markdown.ts +4 -3
- package/src/capabilities/react-surface.tsx +5 -4
- package/src/capabilities/state.ts +2 -1
- package/src/capabilities/toolkit.ts +78 -0
- package/src/components/Call/Call.tsx +3 -2
- package/src/components/Call/Toolbar.tsx +2 -2
- package/src/components/CallDebugPanel.tsx +1 -1
- package/src/components/CallSidebar.tsx +2 -1
- package/src/components/ChannelContainer.stories.tsx +6 -5
- package/src/components/ChannelContainer.tsx +7 -6
- package/src/components/Chat.stories.tsx +28 -26
- package/src/components/ChatContainer.tsx +8 -4
- package/src/components/Comments.stories.tsx +33 -29
- package/src/components/CommentsContainer.tsx +2 -1
- package/src/components/CommentsThreadContainer.tsx +9 -7
- package/src/components/Lobby/Lobby.tsx +1 -1
- package/src/components/Media/VideoObject.stories.tsx +30 -27
- package/src/components/MessageContainer.tsx +43 -9
- package/src/components/Participant/Participant.tsx +13 -7
- package/src/components/Participant/ParticipantGrid.tsx +2 -1
- package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +6 -5
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +42 -39
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +2 -2
- package/src/components/ThreadComplementary.tsx +38 -8
- package/src/components/ThreadSettings.tsx +2 -2
- package/src/components/command-extension.ts +5 -2
- package/src/components/testing.ts +22 -0
- package/src/extensions/threads.ts +6 -6
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useBlackCanvasStreamTrack.tsx +27 -0
- package/src/hooks/useDebugMode.ts +1 -1
- package/src/hooks/useVideoStreamTrack.tsx +5 -2
- package/src/testing/stories.ts +2 -2
- package/src/translations.ts +1 -0
- package/src/types/types.ts +21 -12
- package/src/typings.d.ts +8 -0
- package/dist/lib/browser/ChannelContainer-IY2UIRLF.mjs +0 -16
- package/dist/lib/browser/app-graph-builder-N7BE5TYW.mjs.map +0 -7
- package/dist/lib/browser/call-manager-NIPDYUVD.mjs.map +0 -7
- package/dist/lib/browser/chunk-4OYAYON2.mjs +0 -21
- package/dist/lib/browser/chunk-6NSMBO3B.mjs.map +0 -7
- package/dist/lib/browser/chunk-ERWASUQK.mjs.map +0 -7
- package/dist/lib/browser/chunk-GCLD5ESP.mjs.map +0 -7
- package/dist/lib/browser/chunk-KWPRNHTK.mjs.map +0 -7
- package/dist/lib/browser/chunk-VUWC4IJM.mjs +0 -479
- package/dist/lib/browser/chunk-VUWC4IJM.mjs.map +0 -7
- package/dist/lib/browser/chunk-XLPJXUKO.mjs +0 -367
- package/dist/lib/browser/chunk-XLPJXUKO.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZE7KWN36.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-JFGLZ6VI.mjs.map +0 -7
- package/dist/lib/browser/markdown-GEXBVJYN.mjs.map +0 -7
- package/dist/lib/browser/react-surface-YCYEFBPM.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-VCW76Z6V.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-D6O5ZJJ4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2MFNK53T.mjs +0 -480
- package/dist/lib/node-esm/chunk-2MFNK53T.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-C3XFMUAY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GW37AAM4.mjs +0 -23
- package/dist/lib/node-esm/chunk-IHDNQLLR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-J4NSON5Q.mjs +0 -368
- package/dist/lib/node-esm/chunk-J4NSON5Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OU5BYIDO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-OXGNQ44Y.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-LIJZDK2J.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-IRSEKM42.mjs.map +0 -7
- /package/dist/lib/browser/{ChannelContainer-IY2UIRLF.mjs.map → ChannelContainer-GHDNEZT2.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-AIGIWAUG.mjs.map → ChatContainer-42ALOWUA.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-X4UIVGTX.mjs.map → react-root-PTTTW2MO.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-E32MTL7A.mjs.map → settings-GRKEID73.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChannelContainer-DET6T5N2.mjs.map → ChannelContainer-D5E2S6AI.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-IQUWU426.mjs.map → ChatContainer-4EGHKHIU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-M7J6PZVW.mjs.map → react-root-2HHRRUME.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-SJ24YG7M.mjs.map → settings-F2ODVNNW.mjs.map} +0 -0
|
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
createBlackCanvasStreamTrack,
|
|
4
4
|
createInaudibleAudioStreamTrack
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-S3D7DTBF.mjs";
|
|
6
6
|
|
|
7
7
|
// src/calls/types.ts
|
|
8
8
|
import { buf } from "@dxos/protocols/buf";
|
|
@@ -42,6 +42,19 @@ import { buf as buf2 } from "@dxos/protocols/buf";
|
|
|
42
42
|
import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
|
|
43
43
|
import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
|
|
44
44
|
import { isNonNullable } from "@dxos/util";
|
|
45
|
+
function _define_property(obj, key, value) {
|
|
46
|
+
if (key in obj) {
|
|
47
|
+
Object.defineProperty(obj, key, {
|
|
48
|
+
value,
|
|
49
|
+
enumerable: true,
|
|
50
|
+
configurable: true,
|
|
51
|
+
writable: true
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
obj[key] = value;
|
|
55
|
+
}
|
|
56
|
+
return obj;
|
|
57
|
+
}
|
|
45
58
|
function _ts_decorate(decorators, target, key, desc) {
|
|
46
59
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
47
60
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -51,21 +64,6 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
51
64
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
|
|
52
65
|
var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
|
|
53
66
|
var CallSwarmSynchronizer = class extends Resource {
|
|
54
|
-
constructor({ networkService }) {
|
|
55
|
-
super();
|
|
56
|
-
this.stateUpdated = new Event();
|
|
57
|
-
this._state = {
|
|
58
|
-
activities: {}
|
|
59
|
-
};
|
|
60
|
-
this._lastSwarmEvent = void 0;
|
|
61
|
-
this._reconcileSwarmStateTask = void 0;
|
|
62
|
-
this._identityKey = void 0;
|
|
63
|
-
this._deviceKey = void 0;
|
|
64
|
-
this._displayName = void 0;
|
|
65
|
-
this._swarmCtx = void 0;
|
|
66
|
-
this._sendStateTask = void 0;
|
|
67
|
-
this._networkService = networkService;
|
|
68
|
-
}
|
|
69
67
|
/**
|
|
70
68
|
* @internal
|
|
71
69
|
*/
|
|
@@ -339,6 +337,12 @@ var CallSwarmSynchronizer = class extends Resource {
|
|
|
339
337
|
scheduleTaskInterval(this._ctx, async () => this._reconcileSwarmStateTask.schedule(), Math.min(DISCONNECTED_ABRUPT_TIMEOUT / 2, 1e3));
|
|
340
338
|
}
|
|
341
339
|
}
|
|
340
|
+
constructor({ networkService }) {
|
|
341
|
+
super(), _define_property(this, "stateUpdated", new Event()), _define_property(this, "_state", {
|
|
342
|
+
activities: {}
|
|
343
|
+
}), _define_property(this, "_networkService", void 0), _define_property(this, "_lastSwarmEvent", void 0), _define_property(this, "_reconcileSwarmStateTask", void 0), _define_property(this, "_identityKey", void 0), _define_property(this, "_deviceKey", void 0), _define_property(this, "_displayName", void 0), _define_property(this, "_swarmCtx", void 0), _define_property(this, "_sendStateTask", void 0);
|
|
344
|
+
this._networkService = networkService;
|
|
345
|
+
}
|
|
342
346
|
};
|
|
343
347
|
_ts_decorate([
|
|
344
348
|
synchronized
|
|
@@ -404,17 +408,26 @@ var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure })
|
|
|
404
408
|
};
|
|
405
409
|
|
|
406
410
|
// src/calls/util/calls-service.ts
|
|
407
|
-
import { PersistentLifecycle } from "@dxos/async";
|
|
411
|
+
import { PersistentLifecycle, Trigger, scheduleTask } from "@dxos/async";
|
|
408
412
|
import { Resource as Resource2 } from "@dxos/context";
|
|
409
413
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
410
414
|
import { log as log2 } from "@dxos/log";
|
|
411
415
|
|
|
412
416
|
// src/calls/util/history-cache.ts
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
+
function _define_property2(obj, key, value) {
|
|
418
|
+
if (key in obj) {
|
|
419
|
+
Object.defineProperty(obj, key, {
|
|
420
|
+
value,
|
|
421
|
+
enumerable: true,
|
|
422
|
+
configurable: true,
|
|
423
|
+
writable: true
|
|
424
|
+
});
|
|
425
|
+
} else {
|
|
426
|
+
obj[key] = value;
|
|
417
427
|
}
|
|
428
|
+
return obj;
|
|
429
|
+
}
|
|
430
|
+
var HistoryCache = class {
|
|
418
431
|
push(...messages) {
|
|
419
432
|
if (this._messages.length >= this._limit) {
|
|
420
433
|
this._messages.shift();
|
|
@@ -424,53 +437,98 @@ var HistoryCache = class {
|
|
|
424
437
|
get() {
|
|
425
438
|
return this._messages;
|
|
426
439
|
}
|
|
440
|
+
constructor(limit = 100) {
|
|
441
|
+
_define_property2(this, "_limit", void 0);
|
|
442
|
+
_define_property2(this, "_messages", void 0);
|
|
443
|
+
this._limit = limit;
|
|
444
|
+
this._messages = [];
|
|
445
|
+
}
|
|
427
446
|
};
|
|
428
447
|
|
|
429
448
|
// src/calls/util/task-scheduling.ts
|
|
449
|
+
function _check_private_redeclaration(obj, privateCollection) {
|
|
450
|
+
if (privateCollection.has(obj)) {
|
|
451
|
+
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
455
|
+
if (descriptor.get) {
|
|
456
|
+
return descriptor.get.call(receiver);
|
|
457
|
+
}
|
|
458
|
+
return descriptor.value;
|
|
459
|
+
}
|
|
460
|
+
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
461
|
+
if (descriptor.set) {
|
|
462
|
+
descriptor.set.call(receiver, value);
|
|
463
|
+
} else {
|
|
464
|
+
if (!descriptor.writable) {
|
|
465
|
+
throw new TypeError("attempted to set read only private field");
|
|
466
|
+
}
|
|
467
|
+
descriptor.value = value;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
471
|
+
if (!privateMap.has(receiver)) {
|
|
472
|
+
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
473
|
+
}
|
|
474
|
+
return privateMap.get(receiver);
|
|
475
|
+
}
|
|
476
|
+
function _class_private_field_get(receiver, privateMap) {
|
|
477
|
+
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
|
|
478
|
+
return _class_apply_descriptor_get(receiver, descriptor);
|
|
479
|
+
}
|
|
480
|
+
function _class_private_field_init(obj, privateMap, value) {
|
|
481
|
+
_check_private_redeclaration(obj, privateMap);
|
|
482
|
+
privateMap.set(obj, value);
|
|
483
|
+
}
|
|
484
|
+
function _class_private_field_set(receiver, privateMap, value) {
|
|
485
|
+
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
|
|
486
|
+
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
487
|
+
return value;
|
|
488
|
+
}
|
|
430
489
|
var DefaultBatchSizeLimit = 64;
|
|
490
|
+
var _schedulerChain = /* @__PURE__ */ new WeakMap();
|
|
431
491
|
var FIFOScheduler = class {
|
|
432
|
-
#schedulerChain;
|
|
433
|
-
constructor() {
|
|
434
|
-
this.#schedulerChain = Promise.resolve();
|
|
435
|
-
}
|
|
436
492
|
schedule(task) {
|
|
437
493
|
return new Promise((resolve, reject) => {
|
|
438
|
-
this
|
|
494
|
+
_class_private_field_set(this, _schedulerChain, _class_private_field_get(this, _schedulerChain).then(async () => {
|
|
439
495
|
try {
|
|
440
496
|
resolve(await task());
|
|
441
497
|
} catch (error) {
|
|
442
498
|
reject(error);
|
|
443
499
|
}
|
|
444
|
-
});
|
|
500
|
+
}));
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
constructor() {
|
|
504
|
+
_class_private_field_init(this, _schedulerChain, {
|
|
505
|
+
writable: true,
|
|
506
|
+
value: void 0
|
|
445
507
|
});
|
|
508
|
+
_class_private_field_set(this, _schedulerChain, Promise.resolve());
|
|
446
509
|
}
|
|
447
510
|
};
|
|
511
|
+
var _currentBatch = /* @__PURE__ */ new WeakMap();
|
|
512
|
+
var _currentBulkResponse = /* @__PURE__ */ new WeakMap();
|
|
513
|
+
var _batchSizeLimit = /* @__PURE__ */ new WeakMap();
|
|
448
514
|
var BulkRequestDispatcher = class {
|
|
449
|
-
#currentBatch;
|
|
450
|
-
#currentBulkResponse;
|
|
451
|
-
#batchSizeLimit;
|
|
452
|
-
constructor(batchSizeLimit = DefaultBatchSizeLimit) {
|
|
453
|
-
this.#currentBatch = [];
|
|
454
|
-
this.#currentBulkResponse = null;
|
|
455
|
-
this.#batchSizeLimit = batchSizeLimit;
|
|
456
|
-
}
|
|
457
515
|
/**
|
|
458
516
|
* Returns a bulk response promise.
|
|
459
517
|
* At the event loop iteration end, the accumulated entries will be dispatched as a bulk request.
|
|
460
518
|
*/
|
|
461
519
|
doBulkRequest(params, bulkRequestFunc) {
|
|
462
|
-
if (this
|
|
463
|
-
this
|
|
464
|
-
this
|
|
520
|
+
if (_class_private_field_get(this, _currentBatch).length >= _class_private_field_get(this, _batchSizeLimit)) {
|
|
521
|
+
_class_private_field_set(this, _currentBatch, []);
|
|
522
|
+
_class_private_field_set(this, _currentBulkResponse, null);
|
|
465
523
|
}
|
|
466
|
-
this
|
|
467
|
-
if (this
|
|
468
|
-
return this
|
|
524
|
+
_class_private_field_get(this, _currentBatch).push(params);
|
|
525
|
+
if (_class_private_field_get(this, _currentBulkResponse) != null) {
|
|
526
|
+
return _class_private_field_get(this, _currentBulkResponse);
|
|
469
527
|
}
|
|
470
|
-
const batch = this
|
|
471
|
-
this
|
|
528
|
+
const batch = _class_private_field_get(this, _currentBatch);
|
|
529
|
+
_class_private_field_set(this, _currentBulkResponse, new Promise((resolve, reject) => {
|
|
472
530
|
setTimeout(() => {
|
|
473
|
-
this
|
|
531
|
+
_class_private_field_set(this, _currentBulkResponse, null);
|
|
474
532
|
const batchCopy = batch.splice(0, batch.length);
|
|
475
533
|
bulkRequestFunc(batchCopy).then((result) => {
|
|
476
534
|
resolve(result);
|
|
@@ -478,28 +536,45 @@ var BulkRequestDispatcher = class {
|
|
|
478
536
|
reject(err);
|
|
479
537
|
});
|
|
480
538
|
}, 0);
|
|
539
|
+
}));
|
|
540
|
+
return _class_private_field_get(this, _currentBulkResponse);
|
|
541
|
+
}
|
|
542
|
+
constructor(batchSizeLimit = DefaultBatchSizeLimit) {
|
|
543
|
+
_class_private_field_init(this, _currentBatch, {
|
|
544
|
+
writable: true,
|
|
545
|
+
value: void 0
|
|
546
|
+
});
|
|
547
|
+
_class_private_field_init(this, _currentBulkResponse, {
|
|
548
|
+
writable: true,
|
|
549
|
+
value: void 0
|
|
481
550
|
});
|
|
482
|
-
|
|
551
|
+
_class_private_field_init(this, _batchSizeLimit, {
|
|
552
|
+
writable: true,
|
|
553
|
+
value: void 0
|
|
554
|
+
});
|
|
555
|
+
_class_private_field_set(this, _currentBatch, []);
|
|
556
|
+
_class_private_field_set(this, _currentBulkResponse, null);
|
|
557
|
+
_class_private_field_set(this, _batchSizeLimit, batchSizeLimit);
|
|
483
558
|
}
|
|
484
559
|
};
|
|
485
560
|
|
|
486
561
|
// src/calls/util/calls-service.ts
|
|
562
|
+
function _define_property3(obj, key, value) {
|
|
563
|
+
if (key in obj) {
|
|
564
|
+
Object.defineProperty(obj, key, {
|
|
565
|
+
value,
|
|
566
|
+
enumerable: true,
|
|
567
|
+
configurable: true,
|
|
568
|
+
writable: true
|
|
569
|
+
});
|
|
570
|
+
} else {
|
|
571
|
+
obj[key] = value;
|
|
572
|
+
}
|
|
573
|
+
return obj;
|
|
574
|
+
}
|
|
487
575
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
|
|
488
576
|
var NETWORK_TIMEOUT = 5e3;
|
|
489
577
|
var CallsServicePeer = class extends Resource2 {
|
|
490
|
-
constructor(config) {
|
|
491
|
-
super();
|
|
492
|
-
this.history = new HistoryCache(100);
|
|
493
|
-
this._persistentLifecycle = new PersistentLifecycle({
|
|
494
|
-
start: () => this._startSession(),
|
|
495
|
-
stop: (session) => this._stopSession(session)
|
|
496
|
-
});
|
|
497
|
-
this.taskScheduler = new FIFOScheduler();
|
|
498
|
-
this.pushTrackDispatcher = new BulkRequestDispatcher(32);
|
|
499
|
-
this.pullTrackDispatcher = new BulkRequestDispatcher(32);
|
|
500
|
-
this.closeTrackDispatcher = new BulkRequestDispatcher(32);
|
|
501
|
-
this._config = config;
|
|
502
|
-
}
|
|
503
578
|
async _open(ctx) {
|
|
504
579
|
await this._persistentLifecycle.open(ctx);
|
|
505
580
|
}
|
|
@@ -531,7 +606,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
531
606
|
state: peerConnection.connectionState
|
|
532
607
|
}, {
|
|
533
608
|
F: __dxlog_file2,
|
|
534
|
-
L:
|
|
609
|
+
L: 119,
|
|
535
610
|
S: this,
|
|
536
611
|
C: (f, a) => f(...a)
|
|
537
612
|
});
|
|
@@ -546,7 +621,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
546
621
|
state: peerConnection.iceConnectionState
|
|
547
622
|
}, {
|
|
548
623
|
F: __dxlog_file2,
|
|
549
|
-
L:
|
|
624
|
+
L: 128,
|
|
550
625
|
S: this,
|
|
551
626
|
C: (f, a) => f(...a)
|
|
552
627
|
});
|
|
@@ -557,7 +632,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
557
632
|
if (peerConnection.iceConnectionState === "connected") {
|
|
558
633
|
log2.info("calls iceConnectionState is connected", void 0, {
|
|
559
634
|
F: __dxlog_file2,
|
|
560
|
-
L:
|
|
635
|
+
L: 137,
|
|
561
636
|
S: this,
|
|
562
637
|
C: (f, a) => f(...a)
|
|
563
638
|
});
|
|
@@ -568,7 +643,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
568
643
|
timeoutSeconds
|
|
569
644
|
}, {
|
|
570
645
|
F: __dxlog_file2,
|
|
571
|
-
L:
|
|
646
|
+
L: 141,
|
|
572
647
|
S: this,
|
|
573
648
|
C: (f, a) => f(...a)
|
|
574
649
|
});
|
|
@@ -581,7 +656,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
581
656
|
async _initiateCallSession() {
|
|
582
657
|
log2("creating new session", void 0, {
|
|
583
658
|
F: __dxlog_file2,
|
|
584
|
-
L:
|
|
659
|
+
L: 151,
|
|
585
660
|
S: this,
|
|
586
661
|
C: (f, a) => f(...a)
|
|
587
662
|
});
|
|
@@ -607,7 +682,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
607
682
|
text: await response.text()
|
|
608
683
|
}, {
|
|
609
684
|
F: __dxlog_file2,
|
|
610
|
-
L:
|
|
685
|
+
L: 166,
|
|
611
686
|
S: this,
|
|
612
687
|
C: (f, a) => f(...a)
|
|
613
688
|
});
|
|
@@ -639,7 +714,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
639
714
|
status: response.status
|
|
640
715
|
}, {
|
|
641
716
|
F: __dxlog_file2,
|
|
642
|
-
L:
|
|
717
|
+
L: 191,
|
|
643
718
|
S: this,
|
|
644
719
|
C: (f, a) => f(...a)
|
|
645
720
|
});
|
|
@@ -649,7 +724,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
649
724
|
async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
|
|
650
725
|
log2.verbose("pushing track ", trackName, {
|
|
651
726
|
F: __dxlog_file2,
|
|
652
|
-
L:
|
|
727
|
+
L: 213,
|
|
653
728
|
S: this,
|
|
654
729
|
C: (f, a) => f(...a)
|
|
655
730
|
});
|
|
@@ -676,7 +751,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
676
751
|
});
|
|
677
752
|
invariant2(response.tracks !== void 0, void 0, {
|
|
678
753
|
F: __dxlog_file2,
|
|
679
|
-
L:
|
|
754
|
+
L: 238,
|
|
680
755
|
S: this,
|
|
681
756
|
A: [
|
|
682
757
|
"response.tracks !== undefined",
|
|
@@ -690,9 +765,10 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
690
765
|
return {
|
|
691
766
|
tracks: response.tracks
|
|
692
767
|
};
|
|
693
|
-
})).then(({ tracks }) => {
|
|
768
|
+
})).then(async ({ tracks }) => {
|
|
694
769
|
const trackData = tracks.find((t) => t.mid === transceiver.mid);
|
|
695
770
|
if (trackData) {
|
|
771
|
+
await waitForTransceiverToSendData(ctx, transceiver);
|
|
696
772
|
return {
|
|
697
773
|
...trackData,
|
|
698
774
|
sessionId,
|
|
@@ -701,18 +777,11 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
701
777
|
} else {
|
|
702
778
|
log2.error("missing track data", void 0, {
|
|
703
779
|
F: __dxlog_file2,
|
|
704
|
-
L:
|
|
780
|
+
L: 262,
|
|
705
781
|
S: this,
|
|
706
782
|
C: (f, a) => f(...a)
|
|
707
783
|
});
|
|
708
784
|
}
|
|
709
|
-
}).catch((err) => {
|
|
710
|
-
log2.catch(err, void 0, {
|
|
711
|
-
F: __dxlog_file2,
|
|
712
|
-
L: 261,
|
|
713
|
-
S: this,
|
|
714
|
-
C: (f, a) => f(...a)
|
|
715
|
-
});
|
|
716
785
|
});
|
|
717
786
|
const onDispose = async () => {
|
|
718
787
|
if (transceiver.mid) {
|
|
@@ -727,7 +796,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
727
796
|
await this.waitUntilOpen();
|
|
728
797
|
invariant2(this.session, void 0, {
|
|
729
798
|
F: __dxlog_file2,
|
|
730
|
-
L:
|
|
799
|
+
L: 290,
|
|
731
800
|
S: this,
|
|
732
801
|
A: [
|
|
733
802
|
"this.session",
|
|
@@ -740,7 +809,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
740
809
|
encodings
|
|
741
810
|
}, {
|
|
742
811
|
F: __dxlog_file2,
|
|
743
|
-
L:
|
|
812
|
+
L: 291,
|
|
744
813
|
S: this,
|
|
745
814
|
C: (f, a) => f(...a)
|
|
746
815
|
});
|
|
@@ -753,7 +822,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
753
822
|
transceiver: transceiver2
|
|
754
823
|
}, {
|
|
755
824
|
F: __dxlog_file2,
|
|
756
|
-
L:
|
|
825
|
+
L: 295,
|
|
757
826
|
S: this,
|
|
758
827
|
C: (f, a) => f(...a)
|
|
759
828
|
});
|
|
@@ -765,13 +834,13 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
765
834
|
transceiver: transceiver2
|
|
766
835
|
}, {
|
|
767
836
|
F: __dxlog_file2,
|
|
768
|
-
L:
|
|
837
|
+
L: 298,
|
|
769
838
|
S: this,
|
|
770
839
|
C: (f, a) => f(...a)
|
|
771
840
|
});
|
|
772
841
|
transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
|
|
773
842
|
F: __dxlog_file2,
|
|
774
|
-
L:
|
|
843
|
+
L: 299,
|
|
775
844
|
S: this,
|
|
776
845
|
C: (f, a) => f(...a)
|
|
777
846
|
}));
|
|
@@ -780,7 +849,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
780
849
|
}
|
|
781
850
|
invariant2(track, void 0, {
|
|
782
851
|
F: __dxlog_file2,
|
|
783
|
-
L:
|
|
852
|
+
L: 303,
|
|
784
853
|
S: this,
|
|
785
854
|
A: [
|
|
786
855
|
"track",
|
|
@@ -793,7 +862,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
793
862
|
});
|
|
794
863
|
log2.verbose("creating transceiver", void 0, {
|
|
795
864
|
F: __dxlog_file2,
|
|
796
|
-
L:
|
|
865
|
+
L: 308,
|
|
797
866
|
S: this,
|
|
798
867
|
C: (f, a) => f(...a)
|
|
799
868
|
});
|
|
@@ -806,7 +875,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
806
875
|
});
|
|
807
876
|
invariant2(pushedTrackData, void 0, {
|
|
808
877
|
F: __dxlog_file2,
|
|
809
|
-
L:
|
|
878
|
+
L: 317,
|
|
810
879
|
S: this,
|
|
811
880
|
A: [
|
|
812
881
|
"pushedTrackData",
|
|
@@ -823,7 +892,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
823
892
|
});
|
|
824
893
|
transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
|
|
825
894
|
F: __dxlog_file2,
|
|
826
|
-
L:
|
|
895
|
+
L: 324,
|
|
827
896
|
S: this,
|
|
828
897
|
C: (f, a) => f(...a)
|
|
829
898
|
}));
|
|
@@ -836,7 +905,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
836
905
|
trackName: trackData.trackName
|
|
837
906
|
}, {
|
|
838
907
|
F: __dxlog_file2,
|
|
839
|
-
L:
|
|
908
|
+
L: 342,
|
|
840
909
|
S: this,
|
|
841
910
|
C: (f, a) => f(...a)
|
|
842
911
|
});
|
|
@@ -852,7 +921,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
852
921
|
}
|
|
853
922
|
invariant2(newTrackResponse.tracks, void 0, {
|
|
854
923
|
F: __dxlog_file2,
|
|
855
|
-
L:
|
|
924
|
+
L: 355,
|
|
856
925
|
S: this,
|
|
857
926
|
A: [
|
|
858
927
|
"newTrackResponse.tracks",
|
|
@@ -899,7 +968,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
899
968
|
return track;
|
|
900
969
|
}).catch((err) => log2.catch(err, void 0, {
|
|
901
970
|
F: __dxlog_file2,
|
|
902
|
-
L:
|
|
971
|
+
L: 407,
|
|
903
972
|
S: this,
|
|
904
973
|
C: (f, a) => f(...a)
|
|
905
974
|
}));
|
|
@@ -909,7 +978,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
909
978
|
availableTracks: Array.from(trackMap.keys())
|
|
910
979
|
}, {
|
|
911
980
|
F: __dxlog_file2,
|
|
912
|
-
L:
|
|
981
|
+
L: 409,
|
|
913
982
|
S: this,
|
|
914
983
|
C: (f, a) => f(...a)
|
|
915
984
|
});
|
|
@@ -919,7 +988,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
919
988
|
if (mid) {
|
|
920
989
|
log2("closing pulled track ", trackData.trackName, {
|
|
921
990
|
F: __dxlog_file2,
|
|
922
|
-
L:
|
|
991
|
+
L: 415,
|
|
923
992
|
S: this,
|
|
924
993
|
C: (f, a) => f(...a)
|
|
925
994
|
});
|
|
@@ -935,7 +1004,7 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
935
1004
|
await this.waitUntilOpen();
|
|
936
1005
|
invariant2(this.session, void 0, {
|
|
937
1006
|
F: __dxlog_file2,
|
|
938
|
-
L:
|
|
1007
|
+
L: 436,
|
|
939
1008
|
S: this,
|
|
940
1009
|
A: [
|
|
941
1010
|
"this.session",
|
|
@@ -987,6 +1056,13 @@ var CallsServicePeer = class extends Resource2 {
|
|
|
987
1056
|
}
|
|
988
1057
|
}));
|
|
989
1058
|
}
|
|
1059
|
+
constructor(config) {
|
|
1060
|
+
super(), _define_property3(this, "history", new HistoryCache(100)), _define_property3(this, "_persistentLifecycle", new PersistentLifecycle({
|
|
1061
|
+
start: () => this._startSession(),
|
|
1062
|
+
stop: (session) => this._stopSession(session)
|
|
1063
|
+
})), _define_property3(this, "_config", void 0), _define_property3(this, "taskScheduler", new FIFOScheduler()), _define_property3(this, "pushTrackDispatcher", new BulkRequestDispatcher(32)), _define_property3(this, "pullTrackDispatcher", new BulkRequestDispatcher(32)), _define_property3(this, "closeTrackDispatcher", new BulkRequestDispatcher(32));
|
|
1064
|
+
this._config = config;
|
|
1065
|
+
}
|
|
990
1066
|
};
|
|
991
1067
|
var resolveTrack = async (peerConnection, compare, timeout = NETWORK_TIMEOUT) => new Promise((resolve, reject) => {
|
|
992
1068
|
setTimeout(reject, timeout);
|
|
@@ -1018,12 +1094,50 @@ var peerConnectionIsConnected = async (peerConnection) => {
|
|
|
1018
1094
|
await connected;
|
|
1019
1095
|
}
|
|
1020
1096
|
};
|
|
1097
|
+
var INITIAL_DELAY = 50;
|
|
1098
|
+
var MAX_DELAY = 500;
|
|
1099
|
+
var MAX_RETRIES = 50;
|
|
1100
|
+
var WAIT_FOR_DATA_TIMEOUT = 2e4;
|
|
1101
|
+
var waitForTransceiverToSendData = async (ctx, transceiver) => {
|
|
1102
|
+
let delay = INITIAL_DELAY;
|
|
1103
|
+
let checks = 0;
|
|
1104
|
+
const waitForData = new Trigger();
|
|
1105
|
+
ctx.onDispose(() => waitForData.throw(new Error("Transceiver was closed")));
|
|
1106
|
+
const checkStats = async () => {
|
|
1107
|
+
if (ctx.disposed) return;
|
|
1108
|
+
try {
|
|
1109
|
+
const stats = await transceiver.sender.getStats();
|
|
1110
|
+
let dataFound = false;
|
|
1111
|
+
stats.forEach((stat) => {
|
|
1112
|
+
if (stat.type === "outbound-rtp" && stat.bytesSent > 0) {
|
|
1113
|
+
dataFound = true;
|
|
1114
|
+
}
|
|
1115
|
+
});
|
|
1116
|
+
if (dataFound) {
|
|
1117
|
+
waitForData.wake();
|
|
1118
|
+
return;
|
|
1119
|
+
}
|
|
1120
|
+
} catch {
|
|
1121
|
+
}
|
|
1122
|
+
checks++;
|
|
1123
|
+
if (checks > MAX_RETRIES) {
|
|
1124
|
+
waitForData.throw(new Error("Transceiver did not send data"));
|
|
1125
|
+
return;
|
|
1126
|
+
}
|
|
1127
|
+
delay = Math.min(delay * 2, MAX_DELAY);
|
|
1128
|
+
scheduleTask(ctx, checkStats, delay);
|
|
1129
|
+
};
|
|
1130
|
+
void checkStats();
|
|
1131
|
+
return waitForData.wait({
|
|
1132
|
+
timeout: WAIT_FOR_DATA_TIMEOUT
|
|
1133
|
+
});
|
|
1134
|
+
};
|
|
1021
1135
|
|
|
1022
1136
|
// src/calls/util/media.ts
|
|
1023
1137
|
import { log as log3 } from "@dxos/log";
|
|
1024
1138
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
|
|
1025
1139
|
var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
|
|
1026
|
-
deviceList
|
|
1140
|
+
deviceList ?? (deviceList = (await getDeviceList()).filter((device) => device.kind === kind));
|
|
1027
1141
|
const firstDevice = deviceList[0];
|
|
1028
1142
|
if (!firstDevice) {
|
|
1029
1143
|
throw new Error("No devices found");
|
|
@@ -1078,14 +1192,24 @@ var getScreenshare = async ({ contentHint }) => {
|
|
|
1078
1192
|
// src/calls/speaking-monitor.ts
|
|
1079
1193
|
import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
|
|
1080
1194
|
import { Resource as Resource3 } from "@dxos/context";
|
|
1195
|
+
function _define_property4(obj, key, value) {
|
|
1196
|
+
if (key in obj) {
|
|
1197
|
+
Object.defineProperty(obj, key, {
|
|
1198
|
+
value,
|
|
1199
|
+
enumerable: true,
|
|
1200
|
+
configurable: true,
|
|
1201
|
+
writable: true
|
|
1202
|
+
});
|
|
1203
|
+
} else {
|
|
1204
|
+
obj[key] = value;
|
|
1205
|
+
}
|
|
1206
|
+
return obj;
|
|
1207
|
+
}
|
|
1081
1208
|
var NOT_SPEAKING_AFTER = 500;
|
|
1082
1209
|
var START_SPEAKING_THRESHOLD = 0.05;
|
|
1083
1210
|
var CONTINUE_SPEAKING_THRESHOLD = 0.02;
|
|
1084
1211
|
var MIN_EVENT_INTERVAL = 100;
|
|
1085
1212
|
var SpeakingMonitor = class extends Resource3 {
|
|
1086
|
-
constructor(_mediaStreamTrack) {
|
|
1087
|
-
super(), this._mediaStreamTrack = _mediaStreamTrack, this.speakingChanged = new Event2(), this._isSpeaking = false, this._lastEventTime = 0;
|
|
1088
|
-
}
|
|
1089
1213
|
get isSpeaking() {
|
|
1090
1214
|
return this._isSpeaking;
|
|
1091
1215
|
}
|
|
@@ -1129,12 +1253,36 @@ var SpeakingMonitor = class extends Resource3 {
|
|
|
1129
1253
|
this._lastEventTime = Date.now();
|
|
1130
1254
|
this.speakingChanged.emit(this._isSpeaking);
|
|
1131
1255
|
}
|
|
1256
|
+
constructor(_mediaStreamTrack) {
|
|
1257
|
+
super(), _define_property4(this, "_mediaStreamTrack", void 0), /**
|
|
1258
|
+
* Event that is emitted when the user starts or stops speaking.
|
|
1259
|
+
* It is debounced to prevent rapid state changes.
|
|
1260
|
+
*/
|
|
1261
|
+
_define_property4(this, "speakingChanged", void 0), /**
|
|
1262
|
+
* Real state of the user speaking.
|
|
1263
|
+
*/
|
|
1264
|
+
_define_property4(this, "_isSpeaking", void 0), _define_property4(this, "_lastEventTime", void 0), _define_property4(this, "_deferredUpdate", void 0), this._mediaStreamTrack = _mediaStreamTrack, this.speakingChanged = new Event2(), this._isSpeaking = false, this._lastEventTime = 0;
|
|
1265
|
+
}
|
|
1132
1266
|
};
|
|
1133
1267
|
|
|
1134
1268
|
// src/calls/media-manager.ts
|
|
1135
1269
|
import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
|
|
1136
|
-
import {
|
|
1270
|
+
import { Resource as Resource4, cancelWithContext } from "@dxos/context";
|
|
1271
|
+
import { invariant as invariant3 } from "@dxos/invariant";
|
|
1137
1272
|
import { log as log4 } from "@dxos/log";
|
|
1273
|
+
function _define_property5(obj, key, value) {
|
|
1274
|
+
if (key in obj) {
|
|
1275
|
+
Object.defineProperty(obj, key, {
|
|
1276
|
+
value,
|
|
1277
|
+
enumerable: true,
|
|
1278
|
+
configurable: true,
|
|
1279
|
+
writable: true
|
|
1280
|
+
});
|
|
1281
|
+
} else {
|
|
1282
|
+
obj[key] = value;
|
|
1283
|
+
}
|
|
1284
|
+
return obj;
|
|
1285
|
+
}
|
|
1138
1286
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
1139
1287
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1140
1288
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1146,23 +1294,9 @@ var VIDEO_WIDTH = 1280;
|
|
|
1146
1294
|
var VIDEO_HEIGHT = 720;
|
|
1147
1295
|
var MAX_WEB_CAM_FRAMERATE = 24;
|
|
1148
1296
|
var MAX_WEB_CAM_BITRATE = 12e5;
|
|
1149
|
-
var RETRY_INTERVAL =
|
|
1150
|
-
var USE_INAUDIBLE_AUDIO =
|
|
1297
|
+
var RETRY_INTERVAL = 100;
|
|
1298
|
+
var USE_INAUDIBLE_AUDIO = true;
|
|
1151
1299
|
var MediaManager = class extends Resource4 {
|
|
1152
|
-
constructor() {
|
|
1153
|
-
super(...arguments);
|
|
1154
|
-
this.stateUpdated = new Event3();
|
|
1155
|
-
this._state = {
|
|
1156
|
-
pulledVideoStreams: {},
|
|
1157
|
-
pulledAudioTracks: {}
|
|
1158
|
-
};
|
|
1159
|
-
this._speakingMonitor = void 0;
|
|
1160
|
-
this._trackToReconcile = [];
|
|
1161
|
-
this._blackCanvasStreamTrack = void 0;
|
|
1162
|
-
this._inaudibleAudioStreamTrack = void 0;
|
|
1163
|
-
this._pushTracksTask = void 0;
|
|
1164
|
-
this._pullTracksTask = void 0;
|
|
1165
|
-
}
|
|
1166
1300
|
get isSpeaking() {
|
|
1167
1301
|
return this._speakingMonitor?.isSpeaking;
|
|
1168
1302
|
}
|
|
@@ -1302,7 +1436,7 @@ var MediaManager = class extends Resource4 {
|
|
|
1302
1436
|
async _reconcilePulledMedia() {
|
|
1303
1437
|
log4("reconciling tracks", void 0, {
|
|
1304
1438
|
F: __dxlog_file4,
|
|
1305
|
-
L:
|
|
1439
|
+
L: 223,
|
|
1306
1440
|
S: this,
|
|
1307
1441
|
C: (f, a) => f(...a)
|
|
1308
1442
|
});
|
|
@@ -1320,11 +1454,11 @@ var MediaManager = class extends Resource4 {
|
|
|
1320
1454
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1321
1455
|
}, {
|
|
1322
1456
|
F: __dxlog_file4,
|
|
1323
|
-
L:
|
|
1457
|
+
L: 242,
|
|
1324
1458
|
S: this,
|
|
1325
1459
|
C: (f, a) => f(...a)
|
|
1326
1460
|
});
|
|
1327
|
-
await Promise.all(tracksToPull.map((name) => this._pullTrack(name)));
|
|
1461
|
+
const pullResults = await Promise.all(tracksToPull.map((name) => this._pullTrack(name)));
|
|
1328
1462
|
await Promise.all([
|
|
1329
1463
|
...audioTracksToClose,
|
|
1330
1464
|
...videoStreamsToClose
|
|
@@ -1334,47 +1468,91 @@ var MediaManager = class extends Resource4 {
|
|
|
1334
1468
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
|
|
1335
1469
|
}, {
|
|
1336
1470
|
F: __dxlog_file4,
|
|
1337
|
-
L:
|
|
1471
|
+
L: 257,
|
|
1338
1472
|
S: this,
|
|
1339
1473
|
C: (f, a) => f(...a)
|
|
1340
1474
|
});
|
|
1341
1475
|
this.stateUpdated.emit(this._state);
|
|
1476
|
+
if (pullResults.some(({ shouldRetry }) => shouldRetry)) {
|
|
1477
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1478
|
+
log4.info("retrying pull tracks", {
|
|
1479
|
+
tracksToPull
|
|
1480
|
+
}, {
|
|
1481
|
+
F: __dxlog_file4,
|
|
1482
|
+
L: 265,
|
|
1483
|
+
S: this,
|
|
1484
|
+
C: (f, a) => f(...a)
|
|
1485
|
+
});
|
|
1486
|
+
invariant3(this._pullTracksTask, void 0, {
|
|
1487
|
+
F: __dxlog_file4,
|
|
1488
|
+
L: 266,
|
|
1489
|
+
S: this,
|
|
1490
|
+
A: [
|
|
1491
|
+
"this._pullTracksTask",
|
|
1492
|
+
""
|
|
1493
|
+
]
|
|
1494
|
+
});
|
|
1495
|
+
this._pullTracksTask.schedule();
|
|
1496
|
+
}
|
|
1342
1497
|
}
|
|
1343
1498
|
async _pushTracks() {
|
|
1344
1499
|
if (!this._state.peer?.isOpen) {
|
|
1345
1500
|
return;
|
|
1346
1501
|
}
|
|
1347
1502
|
let updated = false;
|
|
1348
|
-
const [
|
|
1349
|
-
this.
|
|
1503
|
+
const [pushVideoResult, pushAudioResult, pushScreenshareResult] = await Promise.all([
|
|
1504
|
+
this._maybePushTrack(this._state.videoTrack, this._state.pushedVideoTrack, [
|
|
1350
1505
|
{
|
|
1351
1506
|
maxFramerate: MAX_WEB_CAM_FRAMERATE,
|
|
1352
1507
|
maxBitrate: MAX_WEB_CAM_BITRATE
|
|
1353
1508
|
}
|
|
1354
1509
|
]),
|
|
1355
|
-
this.
|
|
1510
|
+
this._maybePushTrack(this._state.audioTrack, this._state.pushedAudioTrack, [
|
|
1356
1511
|
{
|
|
1357
1512
|
networkPriority: "high"
|
|
1358
1513
|
}
|
|
1359
1514
|
]),
|
|
1360
|
-
this.
|
|
1515
|
+
this._maybePushTrack(this._state.screenshareTrack, this._state.pushedScreenshareTrack)
|
|
1361
1516
|
]);
|
|
1362
|
-
if (
|
|
1363
|
-
this._state.pushedVideoTrack =
|
|
1517
|
+
if (pushVideoResult.track !== this._state.pushedVideoTrack) {
|
|
1518
|
+
this._state.pushedVideoTrack = pushVideoResult.track;
|
|
1364
1519
|
updated = true;
|
|
1365
1520
|
}
|
|
1366
|
-
if (
|
|
1367
|
-
this._state.pushedAudioTrack =
|
|
1521
|
+
if (pushAudioResult.track !== this._state.pushedAudioTrack) {
|
|
1522
|
+
this._state.pushedAudioTrack = pushAudioResult.track;
|
|
1368
1523
|
updated = true;
|
|
1369
1524
|
}
|
|
1370
|
-
if (
|
|
1371
|
-
this._state.pushedScreenshareTrack =
|
|
1525
|
+
if (pushScreenshareResult.track !== this._state.pushedScreenshareTrack) {
|
|
1526
|
+
this._state.pushedScreenshareTrack = pushScreenshareResult.track;
|
|
1372
1527
|
updated = true;
|
|
1373
1528
|
}
|
|
1374
|
-
|
|
1375
|
-
|
|
1529
|
+
const shouldRetry = pushVideoResult.shouldRetry || pushAudioResult.shouldRetry || pushScreenshareResult.shouldRetry;
|
|
1530
|
+
if (updated) {
|
|
1531
|
+
this.stateUpdated.emit(this._state);
|
|
1532
|
+
}
|
|
1533
|
+
if (shouldRetry) {
|
|
1534
|
+
await cancelWithContext(this._ctx, sleep2(RETRY_INTERVAL));
|
|
1535
|
+
log4.info("retrying push tracks", {
|
|
1536
|
+
pushVideoResult,
|
|
1537
|
+
pushAudioResult,
|
|
1538
|
+
pushScreenshareResult
|
|
1539
|
+
}, {
|
|
1540
|
+
F: __dxlog_file4,
|
|
1541
|
+
L: 306,
|
|
1542
|
+
S: this,
|
|
1543
|
+
C: (f, a) => f(...a)
|
|
1544
|
+
});
|
|
1545
|
+
invariant3(this._pushTracksTask, void 0, {
|
|
1546
|
+
F: __dxlog_file4,
|
|
1547
|
+
L: 307,
|
|
1548
|
+
S: this,
|
|
1549
|
+
A: [
|
|
1550
|
+
"this._pushTracksTask",
|
|
1551
|
+
""
|
|
1552
|
+
]
|
|
1553
|
+
});
|
|
1554
|
+
this._pushTracksTask.schedule();
|
|
1376
1555
|
}
|
|
1377
|
-
this.stateUpdated.emit(this._state);
|
|
1378
1556
|
}
|
|
1379
1557
|
async _pullTrack(name) {
|
|
1380
1558
|
const ctx = this._ctx.derive();
|
|
@@ -1394,7 +1572,9 @@ var MediaManager = class extends Resource4 {
|
|
|
1394
1572
|
ctx
|
|
1395
1573
|
};
|
|
1396
1574
|
ctx.onDispose(() => delete this._state.pulledAudioTracks[name]);
|
|
1397
|
-
|
|
1575
|
+
return {
|
|
1576
|
+
shouldRetry: false
|
|
1577
|
+
};
|
|
1398
1578
|
}
|
|
1399
1579
|
case "video": {
|
|
1400
1580
|
const mediaStream = new MediaStream();
|
|
@@ -1408,43 +1588,68 @@ var MediaManager = class extends Resource4 {
|
|
|
1408
1588
|
track.stop();
|
|
1409
1589
|
delete this._state.pulledVideoStreams[name];
|
|
1410
1590
|
});
|
|
1411
|
-
|
|
1591
|
+
return {
|
|
1592
|
+
shouldRetry: false
|
|
1593
|
+
};
|
|
1412
1594
|
}
|
|
1413
1595
|
default:
|
|
1414
1596
|
throw new Error(`Invalid track kind: ${track?.kind}`);
|
|
1415
1597
|
}
|
|
1416
1598
|
} catch (err) {
|
|
1417
|
-
log4.
|
|
1599
|
+
log4.info("failed to pull track", {
|
|
1418
1600
|
err,
|
|
1419
1601
|
name
|
|
1420
1602
|
}, {
|
|
1421
1603
|
F: __dxlog_file4,
|
|
1422
|
-
L:
|
|
1604
|
+
L: 342,
|
|
1423
1605
|
S: this,
|
|
1424
1606
|
C: (f, a) => f(...a)
|
|
1425
1607
|
});
|
|
1426
1608
|
void ctx.dispose();
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1609
|
+
return {
|
|
1610
|
+
shouldRetry: true
|
|
1611
|
+
};
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1614
|
+
async _maybePushTrack(track, previousTrack, encodings) {
|
|
1615
|
+
if (!track && !previousTrack) {
|
|
1616
|
+
return {
|
|
1617
|
+
track: void 0
|
|
1618
|
+
};
|
|
1619
|
+
}
|
|
1620
|
+
const ctx = this._ctx.derive();
|
|
1621
|
+
try {
|
|
1622
|
+
return {
|
|
1623
|
+
track: await this._state.peer.pushTrack({
|
|
1624
|
+
ctx,
|
|
1625
|
+
track: track ?? null,
|
|
1626
|
+
previousTrack,
|
|
1627
|
+
encodings
|
|
1628
|
+
})
|
|
1629
|
+
};
|
|
1630
|
+
} catch (err) {
|
|
1631
|
+
log4.info("failed to push track", {
|
|
1632
|
+
err,
|
|
1633
|
+
track,
|
|
1634
|
+
previousTrack,
|
|
1635
|
+
encodings
|
|
1430
1636
|
}, {
|
|
1431
1637
|
F: __dxlog_file4,
|
|
1432
|
-
L:
|
|
1638
|
+
L: 369,
|
|
1433
1639
|
S: this,
|
|
1434
1640
|
C: (f, a) => f(...a)
|
|
1435
1641
|
});
|
|
1436
|
-
|
|
1642
|
+
void ctx.dispose();
|
|
1643
|
+
return {
|
|
1644
|
+
shouldRetry: true
|
|
1645
|
+
};
|
|
1437
1646
|
}
|
|
1438
1647
|
}
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
track: track ?? null,
|
|
1445
|
-
previousTrack,
|
|
1446
|
-
encodings
|
|
1447
|
-
});
|
|
1648
|
+
constructor(...args) {
|
|
1649
|
+
super(...args), _define_property5(this, "stateUpdated", new Event3()), _define_property5(this, "_state", {
|
|
1650
|
+
pulledVideoStreams: {},
|
|
1651
|
+
pulledAudioTracks: {}
|
|
1652
|
+
}), _define_property5(this, "_speakingMonitor", void 0), _define_property5(this, "_trackToReconcile", []), _define_property5(this, "_blackCanvasStreamTrack", void 0), _define_property5(this, "_inaudibleAudioStreamTrack", void 0), _define_property5(this, "_pushTracksTask", void 0), _define_property5(this, "_pullTracksTask", void 0);
|
|
1448
1653
|
}
|
|
1449
1654
|
};
|
|
1450
1655
|
_ts_decorate2([
|
|
@@ -1458,9 +1663,22 @@ _ts_decorate2([
|
|
|
1458
1663
|
import { computed } from "@preact/signals-core";
|
|
1459
1664
|
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
1460
1665
|
import { Resource as Resource5 } from "@dxos/context";
|
|
1461
|
-
import { invariant as
|
|
1666
|
+
import { invariant as invariant4 } from "@dxos/invariant";
|
|
1462
1667
|
import { live } from "@dxos/live-object";
|
|
1463
1668
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1669
|
+
function _define_property6(obj, key, value) {
|
|
1670
|
+
if (key in obj) {
|
|
1671
|
+
Object.defineProperty(obj, key, {
|
|
1672
|
+
value,
|
|
1673
|
+
enumerable: true,
|
|
1674
|
+
configurable: true,
|
|
1675
|
+
writable: true
|
|
1676
|
+
});
|
|
1677
|
+
} else {
|
|
1678
|
+
obj[key] = value;
|
|
1679
|
+
}
|
|
1680
|
+
return obj;
|
|
1681
|
+
}
|
|
1464
1682
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
1465
1683
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1466
1684
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1547,31 +1765,6 @@ var CallManager = class extends Resource5 {
|
|
|
1547
1765
|
turnScreenshareOff() {
|
|
1548
1766
|
return this._mediaManager.turnScreenshareOff();
|
|
1549
1767
|
}
|
|
1550
|
-
// TODO(burdon): Can this be mocked?
|
|
1551
|
-
constructor(_client) {
|
|
1552
|
-
super(), this._client = _client, this.callStateUpdated = new Event4(), this.mediaStateUpdated = new Event4(), this.left = new Event4(), this._state = live({
|
|
1553
|
-
call: {},
|
|
1554
|
-
media: {
|
|
1555
|
-
pulledAudioTracks: {},
|
|
1556
|
-
pulledVideoStreams: {}
|
|
1557
|
-
}
|
|
1558
|
-
}), this._raisedHandSignal = computed(() => this._state.call.raisedHand ?? false), this._speakingSignal = computed(() => this._state.call.speaking ?? false), this._joinedSignal = computed(() => this._state.call.joined ?? false);
|
|
1559
|
-
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1560
|
-
const networkService = this._client.services.services.NetworkService;
|
|
1561
|
-
invariant3(networkService, "network service not found", {
|
|
1562
|
-
F: __dxlog_file5,
|
|
1563
|
-
L: 159,
|
|
1564
|
-
S: this,
|
|
1565
|
-
A: [
|
|
1566
|
-
"networkService",
|
|
1567
|
-
"'network service not found'"
|
|
1568
|
-
]
|
|
1569
|
-
});
|
|
1570
|
-
this._swarmSynchronizer = new CallSwarmSynchronizer({
|
|
1571
|
-
networkService
|
|
1572
|
-
});
|
|
1573
|
-
this._mediaManager = new MediaManager();
|
|
1574
|
-
}
|
|
1575
1768
|
async _open() {
|
|
1576
1769
|
await this._mediaManager.open();
|
|
1577
1770
|
await this._swarmSynchronizer.open();
|
|
@@ -1645,6 +1838,37 @@ var CallManager = class extends Resource5 {
|
|
|
1645
1838
|
this._state.call = this._swarmSynchronizer._getState();
|
|
1646
1839
|
this._state.media = this._mediaManager._getState();
|
|
1647
1840
|
}
|
|
1841
|
+
// TODO(burdon): Can this be mocked?
|
|
1842
|
+
constructor(_client) {
|
|
1843
|
+
super(), _define_property6(this, "_client", void 0), _define_property6(this, "callStateUpdated", void 0), // TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
|
|
1844
|
+
_define_property6(this, "mediaStateUpdated", void 0), _define_property6(this, "left", void 0), /**
|
|
1845
|
+
* Live object state. Is changed on internal events.
|
|
1846
|
+
* CAUTION: Do not change directly.
|
|
1847
|
+
*/
|
|
1848
|
+
_define_property6(this, "_state", void 0), // TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
|
|
1849
|
+
_define_property6(this, "_raisedHandSignal", void 0), _define_property6(this, "_speakingSignal", void 0), _define_property6(this, "_joinedSignal", void 0), _define_property6(this, "_swarmSynchronizer", void 0), _define_property6(this, "_mediaManager", void 0), this._client = _client, this.callStateUpdated = new Event4(), this.mediaStateUpdated = new Event4(), this.left = new Event4(), this._state = live({
|
|
1850
|
+
call: {},
|
|
1851
|
+
media: {
|
|
1852
|
+
pulledAudioTracks: {},
|
|
1853
|
+
pulledVideoStreams: {}
|
|
1854
|
+
}
|
|
1855
|
+
}), this._raisedHandSignal = computed(() => this._state.call.raisedHand ?? false), this._speakingSignal = computed(() => this._state.call.speaking ?? false), this._joinedSignal = computed(() => this._state.call.joined ?? false);
|
|
1856
|
+
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1857
|
+
const networkService = this._client.services.services.NetworkService;
|
|
1858
|
+
invariant4(networkService, "network service not found", {
|
|
1859
|
+
F: __dxlog_file5,
|
|
1860
|
+
L: 159,
|
|
1861
|
+
S: this,
|
|
1862
|
+
A: [
|
|
1863
|
+
"networkService",
|
|
1864
|
+
"'network service not found'"
|
|
1865
|
+
]
|
|
1866
|
+
});
|
|
1867
|
+
this._swarmSynchronizer = new CallSwarmSynchronizer({
|
|
1868
|
+
networkService
|
|
1869
|
+
});
|
|
1870
|
+
this._mediaManager = new MediaManager();
|
|
1871
|
+
}
|
|
1648
1872
|
};
|
|
1649
1873
|
_ts_decorate3([
|
|
1650
1874
|
synchronized3
|
|
@@ -1667,4 +1891,4 @@ export {
|
|
|
1667
1891
|
MediaManager,
|
|
1668
1892
|
CallManager
|
|
1669
1893
|
};
|
|
1670
|
-
//# sourceMappingURL=chunk-
|
|
1894
|
+
//# sourceMappingURL=chunk-JR7KESLL.mjs.map
|