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