@dxos/plugin-thread 0.8.4-main.5ea62a8 → 0.8.4-main.ae835ea

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.
Files changed (244) hide show
  1. package/dist/lib/browser/ChannelContainer-SVV4ZX5T.mjs +16 -0
  2. package/dist/lib/browser/ChatContainer-ALFWQ65B.mjs +15 -0
  3. package/dist/lib/browser/{app-graph-builder-FHAOPO57.mjs → app-graph-builder-ACBXRBOS.mjs} +20 -20
  4. package/dist/lib/browser/app-graph-builder-ACBXRBOS.mjs.map +7 -0
  5. package/dist/lib/browser/{call-manager-EW2QC6Q4.mjs → call-manager-P3MYR2JS.mjs} +7 -7
  6. package/dist/lib/browser/{call-manager-EW2QC6Q4.mjs.map → call-manager-P3MYR2JS.mjs.map} +1 -1
  7. package/dist/lib/browser/{chunk-H63NDV62.mjs → chunk-6CUDBEYP.mjs} +12 -11
  8. package/dist/lib/browser/chunk-6CUDBEYP.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-BBTXGRIR.mjs +18 -0
  10. package/dist/lib/browser/chunk-BBTXGRIR.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
  12. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-TQJYDFBU.mjs → chunk-DJOUMWEL.mjs} +20 -18
  14. package/dist/lib/browser/chunk-DJOUMWEL.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-2P3GVRHP.mjs → chunk-HDEQRBOC.mjs} +2 -2
  16. package/dist/lib/browser/{chunk-2P3GVRHP.mjs.map → chunk-HDEQRBOC.mjs.map} +2 -2
  17. package/dist/lib/browser/{chunk-J26C57ZY.mjs → chunk-IQSXEHOW.mjs} +139 -69
  18. package/dist/lib/browser/chunk-IQSXEHOW.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-K2DUJRFJ.mjs +27 -0
  20. package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-L6F2AG6W.mjs +23 -0
  22. package/dist/lib/browser/{chunk-TUSBPMNU.mjs → chunk-US5ZQYC3.mjs} +267 -367
  23. package/dist/lib/browser/chunk-US5ZQYC3.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-UTSLSZED.mjs +178 -0
  25. package/dist/lib/browser/chunk-UTSLSZED.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-KEXJGF2R.mjs → chunk-XYUJXHYV.mjs} +53 -3
  27. package/dist/lib/browser/chunk-XYUJXHYV.mjs.map +7 -0
  28. package/dist/lib/browser/index.mjs +23 -22
  29. package/dist/lib/browser/index.mjs.map +3 -3
  30. package/dist/lib/browser/{intent-resolver-IB5GYU2D.mjs → intent-resolver-5POQTZ24.mjs} +25 -34
  31. package/dist/lib/browser/intent-resolver-5POQTZ24.mjs.map +7 -0
  32. package/dist/lib/browser/{markdown-Z677YORA.mjs → markdown-L7LDNF56.mjs} +9 -9
  33. package/dist/lib/browser/markdown-L7LDNF56.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/react-root-RCJLK4EP.mjs +28 -0
  36. package/dist/lib/browser/react-root-RCJLK4EP.mjs.map +7 -0
  37. package/dist/lib/browser/{react-surface-X2VB6P37.mjs → react-surface-IC576W2W.mjs} +27 -27
  38. package/dist/lib/browser/react-surface-IC576W2W.mjs.map +7 -0
  39. package/dist/lib/browser/{settings-GRKEID73.mjs → settings-5FYGBOGI.mjs} +5 -5
  40. package/dist/lib/browser/{settings-GRKEID73.mjs.map → settings-5FYGBOGI.mjs.map} +1 -1
  41. package/dist/lib/browser/{state-2T4KDWBX.mjs → state-36REWXO5.mjs} +5 -5
  42. package/dist/lib/browser/{state-2T4KDWBX.mjs.map → state-36REWXO5.mjs.map} +1 -1
  43. package/dist/lib/browser/toolkit-PXASLYEQ.mjs +74 -0
  44. package/dist/lib/browser/toolkit-PXASLYEQ.mjs.map +7 -0
  45. package/dist/lib/browser/types/index.mjs +7 -9
  46. package/dist/lib/node-esm/ChannelContainer-63GMQ753.mjs +17 -0
  47. package/dist/lib/node-esm/{ChatContainer-4EGHKHIU.mjs → ChatContainer-MFKPXMIK.mjs} +6 -6
  48. package/dist/lib/node-esm/{app-graph-builder-XEYWX5FC.mjs → app-graph-builder-JXD7KY3G.mjs} +20 -20
  49. package/dist/lib/node-esm/app-graph-builder-JXD7KY3G.mjs.map +7 -0
  50. package/dist/lib/node-esm/{call-manager-N3KASRDQ.mjs → call-manager-FCEFP7EJ.mjs} +7 -7
  51. package/dist/lib/node-esm/{call-manager-N3KASRDQ.mjs.map → call-manager-FCEFP7EJ.mjs.map} +1 -1
  52. package/dist/lib/node-esm/{chunk-CTZ75IFK.mjs → chunk-2MMJF7DW.mjs} +2 -2
  53. package/dist/lib/node-esm/{chunk-CTZ75IFK.mjs.map → chunk-2MMJF7DW.mjs.map} +2 -2
  54. package/dist/lib/node-esm/{chunk-S3D7DTBF.mjs → chunk-2V3WSLUZ.mjs} +53 -3
  55. package/dist/lib/node-esm/chunk-2V3WSLUZ.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
  57. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-AFDO2SUZ.mjs +25 -0
  59. package/dist/lib/node-esm/{chunk-JR7KESLL.mjs → chunk-KGYDYYKJ.mjs} +267 -367
  60. package/dist/lib/node-esm/chunk-KGYDYYKJ.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-UHZQTPXU.mjs → chunk-NWUUMKVQ.mjs} +12 -11
  62. package/dist/lib/node-esm/chunk-NWUUMKVQ.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-NNKKNW57.mjs → chunk-Q7AKKZNY.mjs} +139 -69
  64. package/dist/lib/node-esm/chunk-Q7AKKZNY.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-CCE5LHBE.mjs → chunk-QCQAAU6J.mjs} +20 -18
  66. package/dist/lib/node-esm/chunk-QCQAAU6J.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-TYLLHI46.mjs +179 -0
  68. package/dist/lib/node-esm/chunk-TYLLHI46.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-XI45H4IV.mjs +28 -0
  70. package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs +19 -0
  72. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs.map +7 -0
  73. package/dist/lib/node-esm/index.mjs +23 -22
  74. package/dist/lib/node-esm/index.mjs.map +3 -3
  75. package/dist/lib/node-esm/{intent-resolver-VIMI5VLH.mjs → intent-resolver-63NV3XD2.mjs} +25 -34
  76. package/dist/lib/node-esm/intent-resolver-63NV3XD2.mjs.map +7 -0
  77. package/dist/lib/node-esm/{markdown-FL4IXLRP.mjs → markdown-ZQW7MI5U.mjs} +9 -9
  78. package/dist/lib/node-esm/markdown-ZQW7MI5U.mjs.map +7 -0
  79. package/dist/lib/node-esm/meta.json +1 -1
  80. package/dist/lib/node-esm/react-root-4IDB2SN2.mjs +29 -0
  81. package/dist/lib/node-esm/react-root-4IDB2SN2.mjs.map +7 -0
  82. package/dist/lib/node-esm/{react-surface-OLN3XNND.mjs → react-surface-O4LGTAZ3.mjs} +27 -27
  83. package/dist/lib/node-esm/react-surface-O4LGTAZ3.mjs.map +7 -0
  84. package/dist/lib/node-esm/{settings-F2ODVNNW.mjs → settings-EOBQUZSW.mjs} +5 -5
  85. package/dist/lib/node-esm/{settings-F2ODVNNW.mjs.map → settings-EOBQUZSW.mjs.map} +1 -1
  86. package/dist/lib/node-esm/{state-62TQKQVB.mjs → state-X3W67GTL.mjs} +5 -5
  87. package/dist/lib/node-esm/{state-62TQKQVB.mjs.map → state-X3W67GTL.mjs.map} +1 -1
  88. package/dist/lib/node-esm/toolkit-X2KA4FNC.mjs +75 -0
  89. package/dist/lib/node-esm/toolkit-X2KA4FNC.mjs.map +7 -0
  90. package/dist/lib/node-esm/types/index.mjs +7 -9
  91. package/dist/types/src/ThreadPlugin.d.ts +1 -1
  92. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  93. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  94. package/dist/types/src/calls/types.d.ts.map +1 -1
  95. package/dist/types/src/calls/util/calls-service.d.ts +2 -0
  96. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  97. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  98. package/dist/types/src/calls-service.stories.d.ts +0 -1
  99. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  102. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/toolkit.d.ts +21 -2
  105. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  106. package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
  107. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  108. package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
  109. package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
  110. package/dist/types/src/components/ChannelContainer.d.ts +2 -2
  111. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/ChannelContainer.stories.d.ts +74 -8
  113. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/Chat.stories.d.ts +74 -6
  115. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/ChatContainer.d.ts +6 -5
  117. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  118. package/dist/types/src/components/Comments.stories.d.ts +3 -2
  119. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  120. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  121. package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
  122. package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
  123. package/dist/types/src/components/Media/VideoObject.stories.d.ts +5 -3
  124. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +4 -2
  126. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +4 -2
  128. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/ThreadSettings.d.ts +1 -1
  130. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  131. package/dist/types/src/components/index.d.ts +1 -1
  132. package/dist/types/src/components/index.d.ts.map +1 -1
  133. package/dist/types/src/components/testing.d.ts +3 -3
  134. package/dist/types/src/components/testing.d.ts.map +1 -1
  135. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  136. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
  137. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  138. package/dist/types/src/meta.d.ts +1 -2
  139. package/dist/types/src/meta.d.ts.map +1 -1
  140. package/dist/types/src/testing/stories.d.ts.map +1 -1
  141. package/dist/types/src/translations.d.ts +73 -6
  142. package/dist/types/src/translations.d.ts.map +1 -1
  143. package/dist/types/src/types/Channel.d.ts +16 -0
  144. package/dist/types/src/types/Channel.d.ts.map +1 -0
  145. package/dist/types/src/types/{schema.d.ts → Thread.d.ts} +18 -28
  146. package/dist/types/src/types/Thread.d.ts.map +1 -0
  147. package/dist/types/src/types/index.d.ts +2 -1
  148. package/dist/types/src/types/index.d.ts.map +1 -1
  149. package/dist/types/src/types/types.d.ts +37 -50
  150. package/dist/types/src/types/types.d.ts.map +1 -1
  151. package/dist/types/tsconfig.tsbuildinfo +1 -1
  152. package/package.json +59 -59
  153. package/src/ThreadPlugin.tsx +133 -130
  154. package/src/calls/call-manager.ts +1 -1
  155. package/src/calls/media-manager.ts +2 -1
  156. package/src/calls/types.ts +7 -3
  157. package/src/calls/util/calls-service.ts +12 -7
  158. package/src/calls/util/stub-media-streams.ts +60 -2
  159. package/src/calls-service.stories.tsx +2 -5
  160. package/src/capabilities/app-graph-builder.ts +17 -14
  161. package/src/capabilities/capabilities.ts +7 -7
  162. package/src/capabilities/intent-resolver.ts +14 -19
  163. package/src/capabilities/react-root.tsx +2 -2
  164. package/src/capabilities/react-surface.tsx +15 -15
  165. package/src/capabilities/toolkit.ts +18 -11
  166. package/src/components/Call/Toolbar.tsx +6 -6
  167. package/src/components/CallDebugPanel.tsx +108 -49
  168. package/src/components/ChannelContainer.stories.tsx +9 -9
  169. package/src/components/ChannelContainer.tsx +14 -11
  170. package/src/components/Chat.stories.tsx +13 -18
  171. package/src/components/ChatContainer.tsx +26 -17
  172. package/src/components/Comments.stories.tsx +8 -13
  173. package/src/components/CommentsContainer.tsx +2 -2
  174. package/src/components/CommentsThreadContainer.tsx +19 -14
  175. package/src/components/Media/VideoObject.stories.tsx +12 -7
  176. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +3 -4
  177. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +3 -4
  178. package/src/components/ThreadComplementary.tsx +7 -7
  179. package/src/components/ThreadSettings.tsx +4 -5
  180. package/src/components/testing.ts +5 -5
  181. package/src/extensions/threads.ts +5 -5
  182. package/src/hooks/useVideoStreamTrack.tsx +1 -1
  183. package/src/meta.ts +9 -5
  184. package/src/testing/stories.ts +3 -6
  185. package/src/translations.ts +5 -3
  186. package/src/types/Channel.ts +27 -0
  187. package/src/types/Thread.ts +26 -0
  188. package/src/types/index.ts +2 -1
  189. package/src/types/types.ts +10 -9
  190. package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
  191. package/src/util.ts +1 -1
  192. package/dist/lib/browser/ChannelContainer-GHDNEZT2.mjs +0 -16
  193. package/dist/lib/browser/ChatContainer-42ALOWUA.mjs +0 -15
  194. package/dist/lib/browser/app-graph-builder-FHAOPO57.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-2I277V52.mjs +0 -23
  196. package/dist/lib/browser/chunk-4APCDRSH.mjs +0 -18
  197. package/dist/lib/browser/chunk-4APCDRSH.mjs.map +0 -7
  198. package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
  199. package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
  200. package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
  201. package/dist/lib/browser/chunk-H63NDV62.mjs.map +0 -7
  202. package/dist/lib/browser/chunk-J26C57ZY.mjs.map +0 -7
  203. package/dist/lib/browser/chunk-KEXJGF2R.mjs.map +0 -7
  204. package/dist/lib/browser/chunk-KTWYVC5X.mjs +0 -147
  205. package/dist/lib/browser/chunk-KTWYVC5X.mjs.map +0 -7
  206. package/dist/lib/browser/chunk-TQJYDFBU.mjs.map +0 -7
  207. package/dist/lib/browser/chunk-TUSBPMNU.mjs.map +0 -7
  208. package/dist/lib/browser/intent-resolver-IB5GYU2D.mjs.map +0 -7
  209. package/dist/lib/browser/markdown-Z677YORA.mjs.map +0 -7
  210. package/dist/lib/browser/react-root-PTTTW2MO.mjs +0 -28
  211. package/dist/lib/browser/react-root-PTTTW2MO.mjs.map +0 -7
  212. package/dist/lib/browser/react-surface-X2VB6P37.mjs.map +0 -7
  213. package/dist/lib/browser/toolkit-KUPIIFC6.mjs +0 -80
  214. package/dist/lib/browser/toolkit-KUPIIFC6.mjs.map +0 -7
  215. package/dist/lib/node-esm/ChannelContainer-D5E2S6AI.mjs +0 -17
  216. package/dist/lib/node-esm/app-graph-builder-XEYWX5FC.mjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
  218. package/dist/lib/node-esm/chunk-CCE5LHBE.mjs.map +0 -7
  219. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
  220. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
  221. package/dist/lib/node-esm/chunk-JR7KESLL.mjs.map +0 -7
  222. package/dist/lib/node-esm/chunk-NNKKNW57.mjs.map +0 -7
  223. package/dist/lib/node-esm/chunk-P6E247RF.mjs +0 -148
  224. package/dist/lib/node-esm/chunk-P6E247RF.mjs.map +0 -7
  225. package/dist/lib/node-esm/chunk-PYTVBN5J.mjs +0 -19
  226. package/dist/lib/node-esm/chunk-PYTVBN5J.mjs.map +0 -7
  227. package/dist/lib/node-esm/chunk-S3D7DTBF.mjs.map +0 -7
  228. package/dist/lib/node-esm/chunk-UHZQTPXU.mjs.map +0 -7
  229. package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs +0 -25
  230. package/dist/lib/node-esm/intent-resolver-VIMI5VLH.mjs.map +0 -7
  231. package/dist/lib/node-esm/markdown-FL4IXLRP.mjs.map +0 -7
  232. package/dist/lib/node-esm/react-root-2HHRRUME.mjs +0 -29
  233. package/dist/lib/node-esm/react-root-2HHRRUME.mjs.map +0 -7
  234. package/dist/lib/node-esm/react-surface-OLN3XNND.mjs.map +0 -7
  235. package/dist/lib/node-esm/toolkit-KZIS7G36.mjs +0 -81
  236. package/dist/lib/node-esm/toolkit-KZIS7G36.mjs.map +0 -7
  237. package/dist/types/src/types/schema.d.ts.map +0 -1
  238. package/src/types/schema.ts +0 -33
  239. /package/dist/lib/browser/{ChannelContainer-GHDNEZT2.mjs.map → ChannelContainer-SVV4ZX5T.mjs.map} +0 -0
  240. /package/dist/lib/browser/{ChatContainer-42ALOWUA.mjs.map → ChatContainer-ALFWQ65B.mjs.map} +0 -0
  241. /package/dist/lib/browser/{chunk-2I277V52.mjs.map → chunk-L6F2AG6W.mjs.map} +0 -0
  242. /package/dist/lib/node-esm/{ChannelContainer-D5E2S6AI.mjs.map → ChannelContainer-63GMQ753.mjs.map} +0 -0
  243. /package/dist/lib/node-esm/{ChatContainer-4EGHKHIU.mjs.map → ChatContainer-MFKPXMIK.mjs.map} +0 -0
  244. /package/dist/lib/node-esm/{chunk-UJ2QNRLS.mjs.map → chunk-AFDO2SUZ.mjs.map} +0 -0
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  createBlackCanvasStreamTrack,
3
3
  createInaudibleAudioStreamTrack
4
- } from "./chunk-KEXJGF2R.mjs";
4
+ } from "./chunk-XYUJXHYV.mjs";
5
5
 
6
6
  // src/calls/types.ts
7
+ import { invariant } from "@dxos/invariant";
7
8
  import { buf } from "@dxos/protocols/buf";
8
9
  import { UserStateSchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
10
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/types.ts";
9
11
  var CALLS_URL = "https://calls-service.dxos.workers.dev";
10
12
  var codec = {
11
13
  encode: (message) => {
@@ -17,14 +19,42 @@ var codec = {
17
19
  };
18
20
  var TrackNameCodec = {
19
21
  encode: (trackData) => {
20
- return trackData.sessionId + "/" + trackData.trackName;
22
+ invariant(trackData.sessionId, void 0, {
23
+ F: __dxlog_file,
24
+ L: 65,
25
+ S: void 0,
26
+ A: [
27
+ "trackData.sessionId",
28
+ ""
29
+ ]
30
+ });
31
+ invariant(trackData.trackName, void 0, {
32
+ F: __dxlog_file,
33
+ L: 66,
34
+ S: void 0,
35
+ A: [
36
+ "trackData.trackName",
37
+ ""
38
+ ]
39
+ });
40
+ invariant(trackData.mid, void 0, {
41
+ F: __dxlog_file,
42
+ L: 67,
43
+ S: void 0,
44
+ A: [
45
+ "trackData.mid",
46
+ ""
47
+ ]
48
+ });
49
+ return trackData.sessionId + "/" + trackData.trackName + "/" + trackData.mid;
21
50
  },
22
51
  decode: (name) => {
23
- const [sessionId, trackName] = name.split("/");
52
+ const [sessionId, trackName, mid] = name.split("/");
24
53
  return {
25
54
  sessionId,
26
55
  trackName,
27
- location: "remote"
56
+ location: "remote",
57
+ mid
28
58
  };
29
59
  }
30
60
  };
@@ -34,35 +64,38 @@ import md5Hex from "md5-hex";
34
64
  import { DeferredTask, Event, scheduleTaskInterval, synchronized } from "@dxos/async";
35
65
  import { Context, Resource } from "@dxos/context";
36
66
  import { generateName } from "@dxos/display-name";
37
- import { invariant } from "@dxos/invariant";
67
+ import { invariant as invariant2 } from "@dxos/invariant";
38
68
  import { PublicKey } from "@dxos/keys";
39
69
  import { log } from "@dxos/log";
40
70
  import { buf as buf2 } from "@dxos/protocols/buf";
41
71
  import { ActivitySchema } from "@dxos/protocols/buf/dxos/edge/calls_pb";
42
72
  import { ConnectionState } from "@dxos/protocols/proto/dxos/edge/messenger";
43
73
  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
- }
57
74
  function _ts_decorate(decorators, target, key, desc) {
58
75
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
59
76
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
60
77
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
61
78
  return c > 3 && r && Object.defineProperty(target, key, r), r;
62
79
  }
63
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
80
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-swarm-synchronizer.ts";
64
81
  var DISCONNECTED_ABRUPT_TIMEOUT = 1e4;
65
82
  var CallSwarmSynchronizer = class extends Resource {
83
+ stateUpdated = new Event();
84
+ _state = {
85
+ activities: {}
86
+ };
87
+ _networkService;
88
+ _lastSwarmEvent = void 0;
89
+ _reconcileSwarmStateTask = void 0;
90
+ _identityKey = void 0;
91
+ _deviceKey = void 0;
92
+ _displayName = void 0;
93
+ _swarmCtx = void 0;
94
+ _sendStateTask = void 0;
95
+ constructor({ networkService }) {
96
+ super();
97
+ this._networkService = networkService;
98
+ }
66
99
  /**
67
100
  * @internal
68
101
  */
@@ -128,7 +161,7 @@ var CallSwarmSynchronizer = class extends Resource {
128
161
  log.verbose("joined to a different room", {
129
162
  roomId
130
163
  }, {
131
- F: __dxlog_file,
164
+ F: __dxlog_file2,
132
165
  L: 152,
133
166
  S: this,
134
167
  C: (f, a) => f(...a)
@@ -150,8 +183,8 @@ var CallSwarmSynchronizer = class extends Resource {
150
183
  this._reconcileSwarmStateTask = void 0;
151
184
  }
152
185
  async join() {
153
- invariant(this._state.roomId, void 0, {
154
- F: __dxlog_file,
186
+ invariant2(this._state.roomId, void 0, {
187
+ F: __dxlog_file2,
155
188
  L: 176,
156
189
  S: this,
157
190
  A: [
@@ -159,8 +192,8 @@ var CallSwarmSynchronizer = class extends Resource {
159
192
  ""
160
193
  ]
161
194
  });
162
- invariant(!this._swarmCtx, "Already joined", {
163
- F: __dxlog_file,
195
+ invariant2(!this._swarmCtx, "Already joined", {
196
+ F: __dxlog_file2,
164
197
  L: 177,
165
198
  S: this,
166
199
  A: [
@@ -169,7 +202,7 @@ var CallSwarmSynchronizer = class extends Resource {
169
202
  ]
170
203
  });
171
204
  this._swarmCtx = new Context(void 0, {
172
- F: __dxlog_file,
205
+ F: __dxlog_file2,
173
206
  L: 179
174
207
  });
175
208
  const topic = getTopic(this._state.roomId);
@@ -180,7 +213,7 @@ var CallSwarmSynchronizer = class extends Resource {
180
213
  peerKey: this._deviceKey
181
214
  }
182
215
  }, {
183
- F: __dxlog_file,
216
+ F: __dxlog_file2,
184
217
  L: 181,
185
218
  S: this,
186
219
  C: (f, a) => f(...a)
@@ -199,7 +232,7 @@ var CallSwarmSynchronizer = class extends Resource {
199
232
  peerKey: this._deviceKey
200
233
  }
201
234
  }, {
202
- F: __dxlog_file,
235
+ F: __dxlog_file2,
203
236
  L: 188,
204
237
  S: this,
205
238
  C: (f, a) => f(...a)
@@ -211,7 +244,7 @@ var CallSwarmSynchronizer = class extends Resource {
211
244
  peerKey: this._deviceKey
212
245
  }
213
246
  }).catch((err) => log.catch(err, void 0, {
214
- F: __dxlog_file,
247
+ F: __dxlog_file2,
215
248
  L: 194,
216
249
  S: this,
217
250
  C: (f, a) => f(...a)
@@ -279,8 +312,8 @@ var CallSwarmSynchronizer = class extends Resource {
279
312
  }
280
313
  async _reconcileSwarmState() {
281
314
  const swarmEvent = this._lastSwarmEvent;
282
- invariant(swarmEvent, void 0, {
283
- F: __dxlog_file,
315
+ invariant2(swarmEvent, void 0, {
316
+ F: __dxlog_file2,
284
317
  L: 273,
285
318
  S: this,
286
319
  A: [
@@ -300,7 +333,7 @@ var CallSwarmSynchronizer = class extends Resource {
300
333
  error,
301
334
  peer
302
335
  }, {
303
- F: __dxlog_file,
336
+ F: __dxlog_file2,
304
337
  L: 290,
305
338
  S: this,
306
339
  C: (f, a) => f(...a)
@@ -313,7 +346,7 @@ var CallSwarmSynchronizer = class extends Resource {
313
346
  log("reconciling swarm state", {
314
347
  users
315
348
  }, {
316
- F: __dxlog_file,
349
+ F: __dxlog_file2,
317
350
  L: 297,
318
351
  S: this,
319
352
  C: (f, a) => f(...a)
@@ -336,12 +369,6 @@ var CallSwarmSynchronizer = class extends Resource {
336
369
  scheduleTaskInterval(this._ctx, async () => this._reconcileSwarmStateTask.schedule(), Math.min(DISCONNECTED_ABRUPT_TIMEOUT / 2, 1e3));
337
370
  }
338
371
  }
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
- }
345
372
  };
346
373
  _ts_decorate([
347
374
  synchronized
@@ -409,24 +436,17 @@ var monitorAudioLevel = ({ mediaStreamTrack, intervalMs = 1e3 / 10, onMeasure })
409
436
  // src/calls/util/calls-service.ts
410
437
  import { PersistentLifecycle, Trigger, scheduleTask } from "@dxos/async";
411
438
  import { Resource as Resource2 } from "@dxos/context";
412
- import { invariant as invariant2 } from "@dxos/invariant";
439
+ import { invariant as invariant3 } from "@dxos/invariant";
413
440
  import { log as log2 } from "@dxos/log";
414
441
 
415
442
  // src/calls/util/history-cache.ts
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;
426
- }
427
- return obj;
428
- }
429
443
  var HistoryCache = class {
444
+ _limit;
445
+ _messages;
446
+ constructor(limit = 100) {
447
+ this._limit = limit;
448
+ this._messages = [];
449
+ }
430
450
  push(...messages) {
431
451
  if (this._messages.length >= this._limit) {
432
452
  this._messages.shift();
@@ -436,98 +456,53 @@ var HistoryCache = class {
436
456
  get() {
437
457
  return this._messages;
438
458
  }
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
- }
445
459
  };
446
460
 
447
461
  // 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
- }
488
462
  var DefaultBatchSizeLimit = 64;
489
- var _schedulerChain = /* @__PURE__ */ new WeakMap();
490
463
  var FIFOScheduler = class {
464
+ #schedulerChain;
465
+ constructor() {
466
+ this.#schedulerChain = Promise.resolve();
467
+ }
491
468
  schedule(task) {
492
469
  return new Promise((resolve, reject) => {
493
- _class_private_field_set(this, _schedulerChain, _class_private_field_get(this, _schedulerChain).then(async () => {
470
+ this.#schedulerChain = this.#schedulerChain.then(async () => {
494
471
  try {
495
472
  resolve(await task());
496
473
  } catch (error) {
497
474
  reject(error);
498
475
  }
499
- }));
500
- });
501
- }
502
- constructor() {
503
- _class_private_field_init(this, _schedulerChain, {
504
- writable: true,
505
- value: void 0
476
+ });
506
477
  });
507
- _class_private_field_set(this, _schedulerChain, Promise.resolve());
508
478
  }
509
479
  };
510
- var _currentBatch = /* @__PURE__ */ new WeakMap();
511
- var _currentBulkResponse = /* @__PURE__ */ new WeakMap();
512
- var _batchSizeLimit = /* @__PURE__ */ new WeakMap();
513
480
  var BulkRequestDispatcher = class {
481
+ #currentBatch;
482
+ #currentBulkResponse;
483
+ #batchSizeLimit;
484
+ constructor(batchSizeLimit = DefaultBatchSizeLimit) {
485
+ this.#currentBatch = [];
486
+ this.#currentBulkResponse = null;
487
+ this.#batchSizeLimit = batchSizeLimit;
488
+ }
514
489
  /**
515
490
  * Returns a bulk response promise.
516
491
  * At the event loop iteration end, the accumulated entries will be dispatched as a bulk request.
517
492
  */
518
493
  doBulkRequest(params, bulkRequestFunc) {
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);
494
+ if (this.#currentBatch.length >= this.#batchSizeLimit) {
495
+ this.#currentBatch = [];
496
+ this.#currentBulkResponse = null;
522
497
  }
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);
498
+ this.#currentBatch.push(params);
499
+ if (this.#currentBulkResponse != null) {
500
+ return this.#currentBulkResponse;
526
501
  }
527
- const batch = _class_private_field_get(this, _currentBatch);
528
- _class_private_field_set(this, _currentBulkResponse, new Promise((resolve, reject) => {
502
+ const batch = this.#currentBatch;
503
+ this.#currentBulkResponse = new Promise((resolve, reject) => {
529
504
  setTimeout(() => {
530
- _class_private_field_set(this, _currentBulkResponse, null);
505
+ this.#currentBulkResponse = null;
531
506
  const batchCopy = batch.splice(0, batch.length);
532
507
  bulkRequestFunc(batchCopy).then((result) => {
533
508
  resolve(result);
@@ -535,45 +510,29 @@ var BulkRequestDispatcher = class {
535
510
  reject(err);
536
511
  });
537
512
  }, 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
513
  });
546
- _class_private_field_init(this, _currentBulkResponse, {
547
- writable: true,
548
- value: void 0
549
- });
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);
514
+ return this.#currentBulkResponse;
557
515
  }
558
516
  };
559
517
 
560
518
  // 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
- }
574
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
519
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/calls-service.ts";
575
520
  var NETWORK_TIMEOUT = 5e3;
576
521
  var CallsServicePeer = class extends Resource2 {
522
+ history = new HistoryCache(100);
523
+ _persistentLifecycle = new PersistentLifecycle({
524
+ start: () => this._startSession(),
525
+ stop: (session) => this._stopSession(session)
526
+ });
527
+ _config;
528
+ taskScheduler = new FIFOScheduler();
529
+ pushTrackDispatcher = new BulkRequestDispatcher(32);
530
+ pullTrackDispatcher = new BulkRequestDispatcher(32);
531
+ closeTrackDispatcher = new BulkRequestDispatcher(32);
532
+ constructor(config) {
533
+ super();
534
+ this._config = config;
535
+ }
577
536
  async _open(ctx) {
578
537
  await this._persistentLifecycle.open(ctx);
579
538
  }
@@ -601,11 +560,11 @@ var CallsServicePeer = class extends Resource2 {
601
560
  });
602
561
  peerConnection.addEventListener("connectionstatechange", () => {
603
562
  if (peerConnection.connectionState === "failed" || peerConnection.connectionState === "closed") {
604
- log2.warn("calls connection failed", {
563
+ log2.info("calls connection failed", {
605
564
  state: peerConnection.connectionState
606
565
  }, {
607
- F: __dxlog_file2,
608
- L: 119,
566
+ F: __dxlog_file3,
567
+ L: 121,
609
568
  S: this,
610
569
  C: (f, a) => f(...a)
611
570
  });
@@ -616,11 +575,11 @@ var CallsServicePeer = class extends Resource2 {
616
575
  peerConnection.addEventListener("iceconnectionstatechange", () => {
617
576
  clearTimeout(iceTimeout);
618
577
  if (peerConnection.iceConnectionState === "failed" || peerConnection.iceConnectionState === "closed") {
619
- log2.warn("calls connection to ICEs failed", {
578
+ log2.info("calls connection to ICEs failed", {
620
579
  state: peerConnection.iceConnectionState
621
580
  }, {
622
- F: __dxlog_file2,
623
- L: 128,
581
+ F: __dxlog_file3,
582
+ L: 130,
624
583
  S: this,
625
584
  C: (f, a) => f(...a)
626
585
  });
@@ -630,19 +589,19 @@ var CallsServicePeer = class extends Resource2 {
630
589
  iceTimeout = window.setTimeout(() => {
631
590
  if (peerConnection.iceConnectionState === "connected") {
632
591
  log2.info("calls iceConnectionState is connected", void 0, {
633
- F: __dxlog_file2,
634
- L: 137,
592
+ F: __dxlog_file3,
593
+ L: 139,
635
594
  S: this,
636
595
  C: (f, a) => f(...a)
637
596
  });
638
597
  return;
639
598
  }
640
- log2.warn("calls iceConnectionState timed out", {
599
+ log2.info("calls iceConnectionState timed out", {
641
600
  state: peerConnection.iceConnectionState,
642
601
  timeoutSeconds
643
602
  }, {
644
- F: __dxlog_file2,
645
- L: 141,
603
+ F: __dxlog_file3,
604
+ L: 143,
646
605
  S: this,
647
606
  C: (f, a) => f(...a)
648
607
  });
@@ -654,8 +613,8 @@ var CallsServicePeer = class extends Resource2 {
654
613
  }
655
614
  async _initiateCallSession() {
656
615
  log2("creating new session", void 0, {
657
- F: __dxlog_file2,
658
- L: 151,
616
+ F: __dxlog_file3,
617
+ L: 153,
659
618
  S: this,
660
619
  C: (f, a) => f(...a)
661
620
  });
@@ -666,6 +625,7 @@ var CallsServicePeer = class extends Resource2 {
666
625
  }
667
626
  async _fetch(relativePath, requestInit) {
668
627
  this.history.push({
628
+ endpoint: relativePath,
669
629
  type: "request",
670
630
  time: (/* @__PURE__ */ new Date()).toISOString(),
671
631
  method: requestInit?.method ?? "GET",
@@ -680,8 +640,8 @@ var CallsServicePeer = class extends Resource2 {
680
640
  status: response.status,
681
641
  text: await response.text()
682
642
  }, {
683
- F: __dxlog_file2,
684
- L: 166,
643
+ F: __dxlog_file3,
644
+ L: 169,
685
645
  S: this,
686
646
  C: (f, a) => f(...a)
687
647
  });
@@ -690,6 +650,7 @@ var CallsServicePeer = class extends Resource2 {
690
650
  try {
691
651
  const data = await response.clone().json();
692
652
  this.history.push({
653
+ endpoint: relativePath,
693
654
  type: "response",
694
655
  time: (/* @__PURE__ */ new Date()).toISOString(),
695
656
  status: response.status,
@@ -702,6 +663,7 @@ var CallsServicePeer = class extends Resource2 {
702
663
  } catch (error) {
703
664
  const text = await response.text();
704
665
  this.history.push({
666
+ endpoint: relativePath,
705
667
  type: "response",
706
668
  time: (/* @__PURE__ */ new Date()).toISOString(),
707
669
  status: response.status,
@@ -712,8 +674,8 @@ var CallsServicePeer = class extends Resource2 {
712
674
  text,
713
675
  status: response.status
714
676
  }, {
715
- F: __dxlog_file2,
716
- L: 191,
677
+ F: __dxlog_file3,
678
+ L: 196,
717
679
  S: this,
718
680
  C: (f, a) => f(...a)
719
681
  });
@@ -722,8 +684,8 @@ var CallsServicePeer = class extends Resource2 {
722
684
  }
723
685
  async _pushTrackInBulk({ ctx, peerConnection, transceiver, sessionId, trackName }) {
724
686
  log2.verbose("pushing track ", trackName, {
725
- F: __dxlog_file2,
726
- L: 213,
687
+ F: __dxlog_file3,
688
+ L: 218,
727
689
  S: this,
728
690
  C: (f, a) => f(...a)
729
691
  });
@@ -748,9 +710,9 @@ var CallsServicePeer = class extends Resource2 {
748
710
  }))
749
711
  })
750
712
  });
751
- invariant2(response.tracks !== void 0, void 0, {
752
- F: __dxlog_file2,
753
- L: 238,
713
+ invariant3(response.tracks !== void 0, void 0, {
714
+ F: __dxlog_file3,
715
+ L: 243,
754
716
  S: this,
755
717
  A: [
756
718
  "response.tracks !== undefined",
@@ -767,7 +729,6 @@ var CallsServicePeer = class extends Resource2 {
767
729
  })).then(async ({ tracks }) => {
768
730
  const trackData = tracks.find((t) => t.mid === transceiver.mid);
769
731
  if (trackData) {
770
- await waitForTransceiverToSendData(ctx, transceiver);
771
732
  return {
772
733
  ...trackData,
773
734
  sessionId,
@@ -775,8 +736,8 @@ var CallsServicePeer = class extends Resource2 {
775
736
  };
776
737
  } else {
777
738
  log2.error("missing track data", void 0, {
778
- F: __dxlog_file2,
779
- L: 262,
739
+ F: __dxlog_file3,
740
+ L: 267,
780
741
  S: this,
781
742
  C: (f, a) => f(...a)
782
743
  });
@@ -793,9 +754,9 @@ var CallsServicePeer = class extends Resource2 {
793
754
  }
794
755
  async pushTrack({ track, encodings = [], ctx, previousTrack }) {
795
756
  await this.waitUntilOpen();
796
- invariant2(this.session, void 0, {
797
- F: __dxlog_file2,
798
- L: 290,
757
+ invariant3(this.session, void 0, {
758
+ F: __dxlog_file3,
759
+ L: 295,
799
760
  S: this,
800
761
  A: [
801
762
  "this.session",
@@ -807,8 +768,8 @@ var CallsServicePeer = class extends Resource2 {
807
768
  previousTrack,
808
769
  encodings
809
770
  }, {
810
- F: __dxlog_file2,
811
- L: 291,
771
+ F: __dxlog_file3,
772
+ L: 296,
812
773
  S: this,
813
774
  C: (f, a) => f(...a)
814
775
  });
@@ -820,8 +781,8 @@ var CallsServicePeer = class extends Resource2 {
820
781
  previousTrack,
821
782
  transceiver: transceiver2
822
783
  }, {
823
- F: __dxlog_file2,
824
- L: 295,
784
+ F: __dxlog_file3,
785
+ L: 300,
825
786
  S: this,
826
787
  C: (f, a) => f(...a)
827
788
  });
@@ -832,23 +793,23 @@ var CallsServicePeer = class extends Resource2 {
832
793
  previousTrack,
833
794
  transceiver: transceiver2
834
795
  }, {
835
- F: __dxlog_file2,
836
- L: 298,
796
+ F: __dxlog_file3,
797
+ L: 303,
837
798
  S: this,
838
799
  C: (f, a) => f(...a)
839
800
  });
840
801
  transceiver2.sender.replaceTrack(track).catch((err) => log2.catch(err, void 0, {
841
- F: __dxlog_file2,
842
- L: 299,
802
+ F: __dxlog_file3,
803
+ L: 304,
843
804
  S: this,
844
805
  C: (f, a) => f(...a)
845
806
  }));
846
807
  return previousTrack;
847
808
  }
848
809
  }
849
- invariant2(track, void 0, {
850
- F: __dxlog_file2,
851
- L: 303,
810
+ invariant3(track, void 0, {
811
+ F: __dxlog_file3,
812
+ L: 308,
852
813
  S: this,
853
814
  A: [
854
815
  "track",
@@ -860,8 +821,8 @@ var CallsServicePeer = class extends Resource2 {
860
821
  direction: "sendonly"
861
822
  });
862
823
  log2.verbose("creating transceiver", void 0, {
863
- F: __dxlog_file2,
864
- L: 308,
824
+ F: __dxlog_file3,
825
+ L: 313,
865
826
  S: this,
866
827
  C: (f, a) => f(...a)
867
828
  });
@@ -872,9 +833,9 @@ var CallsServicePeer = class extends Resource2 {
872
833
  sessionId: this.session.sessionId,
873
834
  trackName: stableId
874
835
  });
875
- invariant2(pushedTrackData, void 0, {
876
- F: __dxlog_file2,
877
- L: 317,
836
+ invariant3(pushedTrackData, void 0, {
837
+ F: __dxlog_file3,
838
+ L: 322,
878
839
  S: this,
879
840
  A: [
880
841
  "pushedTrackData",
@@ -890,8 +851,8 @@ var CallsServicePeer = class extends Resource2 {
890
851
  };
891
852
  });
892
853
  transceiver.sender.setParameters(parameters).catch((err) => log2.catch(err, void 0, {
893
- F: __dxlog_file2,
894
- L: 324,
854
+ F: __dxlog_file3,
855
+ L: 329,
895
856
  S: this,
896
857
  C: (f, a) => f(...a)
897
858
  }));
@@ -903,8 +864,8 @@ var CallsServicePeer = class extends Resource2 {
903
864
  log2("pulling track", {
904
865
  trackName: trackData.trackName
905
866
  }, {
906
- F: __dxlog_file2,
907
- L: 342,
867
+ F: __dxlog_file3,
868
+ L: 347,
908
869
  S: this,
909
870
  C: (f, a) => f(...a)
910
871
  });
@@ -918,9 +879,9 @@ var CallsServicePeer = class extends Resource2 {
918
879
  if (newTrackResponse.errorCode) {
919
880
  throw new Error(newTrackResponse.errorDescription);
920
881
  }
921
- invariant2(newTrackResponse.tracks, void 0, {
922
- F: __dxlog_file2,
923
- L: 355,
882
+ invariant3(newTrackResponse.tracks, void 0, {
883
+ F: __dxlog_file3,
884
+ L: 360,
924
885
  S: this,
925
886
  A: [
926
887
  "newTrackResponse.tracks",
@@ -966,18 +927,18 @@ var CallsServicePeer = class extends Resource2 {
966
927
  mid = trackInfo.mid;
967
928
  return track;
968
929
  }).catch((err) => log2.catch(err, void 0, {
969
- F: __dxlog_file2,
970
- L: 407,
930
+ F: __dxlog_file3,
931
+ L: 412,
971
932
  S: this,
972
933
  C: (f, a) => f(...a)
973
934
  }));
974
935
  } else {
975
- log2.warn("missing track info", {
936
+ log2.info("missing track info", {
976
937
  trackData,
977
938
  availableTracks: Array.from(trackMap.keys())
978
939
  }, {
979
- F: __dxlog_file2,
980
- L: 409,
940
+ F: __dxlog_file3,
941
+ L: 414,
981
942
  S: this,
982
943
  C: (f, a) => f(...a)
983
944
  });
@@ -986,8 +947,8 @@ var CallsServicePeer = class extends Resource2 {
986
947
  const onDispose = async () => {
987
948
  if (mid) {
988
949
  log2("closing pulled track ", trackData.trackName, {
989
- F: __dxlog_file2,
990
- L: 415,
950
+ F: __dxlog_file3,
951
+ L: 420,
991
952
  S: this,
992
953
  C: (f, a) => f(...a)
993
954
  });
@@ -1001,9 +962,9 @@ var CallsServicePeer = class extends Resource2 {
1001
962
  }
1002
963
  async pullTrack({ ctx, trackData }) {
1003
964
  await this.waitUntilOpen();
1004
- invariant2(this.session, void 0, {
1005
- F: __dxlog_file2,
1006
- L: 436,
965
+ invariant3(this.session, void 0, {
966
+ F: __dxlog_file3,
967
+ L: 441,
1007
968
  S: this,
1008
969
  A: [
1009
970
  "this.session",
@@ -1055,13 +1016,6 @@ var CallsServicePeer = class extends Resource2 {
1055
1016
  }
1056
1017
  }));
1057
1018
  }
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
- }
1065
1019
  };
1066
1020
  var resolveTrack = async (peerConnection, compare, timeout = NETWORK_TIMEOUT) => new Promise((resolve, reject) => {
1067
1021
  setTimeout(reject, timeout);
@@ -1093,50 +1047,12 @@ var peerConnectionIsConnected = async (peerConnection) => {
1093
1047
  await connected;
1094
1048
  }
1095
1049
  };
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
- };
1134
1050
 
1135
1051
  // src/calls/util/media.ts
1136
1052
  import { log as log3 } from "@dxos/log";
1137
- var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
1053
+ var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/util/media.ts";
1138
1054
  var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
1139
- deviceList ?? (deviceList = (await getDeviceList()).filter((device) => device.kind === kind));
1055
+ deviceList ??= (await getDeviceList()).filter((device) => device.kind === kind);
1140
1056
  const firstDevice = deviceList[0];
1141
1057
  if (!firstDevice) {
1142
1058
  throw new Error("No devices found");
@@ -1146,7 +1062,7 @@ var getUserMediaTrack = async (kind, constraints = {}, deviceList) => {
1146
1062
  var acquireTrack = async (device, constraints) => {
1147
1063
  const { deviceId, label } = device;
1148
1064
  log3.info(`requesting ${label}`, void 0, {
1149
- F: __dxlog_file3,
1065
+ F: __dxlog_file4,
1150
1066
  L: 23,
1151
1067
  S: void 0,
1152
1068
  C: (f, a) => f(...a)
@@ -1191,24 +1107,26 @@ var getScreenshare = async ({ contentHint }) => {
1191
1107
  // src/calls/speaking-monitor.ts
1192
1108
  import { DeferredTask as DeferredTask2, Event as Event2, sleep } from "@dxos/async";
1193
1109
  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
- }
1207
1110
  var NOT_SPEAKING_AFTER = 500;
1208
1111
  var START_SPEAKING_THRESHOLD = 0.05;
1209
1112
  var CONTINUE_SPEAKING_THRESHOLD = 0.02;
1210
1113
  var MIN_EVENT_INTERVAL = 100;
1211
1114
  var SpeakingMonitor = class extends Resource3 {
1115
+ _mediaStreamTrack;
1116
+ /**
1117
+ * Event that is emitted when the user starts or stops speaking.
1118
+ * It is debounced to prevent rapid state changes.
1119
+ */
1120
+ speakingChanged = new Event2();
1121
+ /**
1122
+ * Real state of the user speaking.
1123
+ */
1124
+ _isSpeaking = false;
1125
+ _lastEventTime = 0;
1126
+ _deferredUpdate;
1127
+ constructor(_mediaStreamTrack) {
1128
+ super(), this._mediaStreamTrack = _mediaStreamTrack;
1129
+ }
1212
1130
  get isSpeaking() {
1213
1131
  return this._isSpeaking;
1214
1132
  }
@@ -1252,43 +1170,20 @@ var SpeakingMonitor = class extends Resource3 {
1252
1170
  this._lastEventTime = Date.now();
1253
1171
  this.speakingChanged.emit(this._isSpeaking);
1254
1172
  }
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
- }
1265
1173
  };
1266
1174
 
1267
1175
  // src/calls/media-manager.ts
1268
1176
  import { DeferredTask as DeferredTask3, Event as Event3, sleep as sleep2, synchronized as synchronized2 } from "@dxos/async";
1269
1177
  import { Resource as Resource4, cancelWithContext } from "@dxos/context";
1270
- import { invariant as invariant3 } from "@dxos/invariant";
1178
+ import { invariant as invariant4 } from "@dxos/invariant";
1271
1179
  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
- }
1285
1180
  function _ts_decorate2(decorators, target, key, desc) {
1286
1181
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1287
1182
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1288
1183
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1289
1184
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1290
1185
  }
1291
- var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
1186
+ var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/media-manager.ts";
1292
1187
  var VIDEO_WIDTH = 1280;
1293
1188
  var VIDEO_HEIGHT = 720;
1294
1189
  var MAX_WEB_CAM_FRAMERATE = 24;
@@ -1296,6 +1191,17 @@ var MAX_WEB_CAM_BITRATE = 12e5;
1296
1191
  var RETRY_INTERVAL = 100;
1297
1192
  var USE_INAUDIBLE_AUDIO = true;
1298
1193
  var MediaManager = class extends Resource4 {
1194
+ stateUpdated = new Event3();
1195
+ _state = {
1196
+ pulledVideoStreams: {},
1197
+ pulledAudioTracks: {}
1198
+ };
1199
+ _speakingMonitor = void 0;
1200
+ _trackToReconcile = [];
1201
+ _blackCanvasStreamTrack = void 0;
1202
+ _inaudibleAudioStreamTrack = void 0;
1203
+ _pushTracksTask = void 0;
1204
+ _pullTracksTask = void 0;
1299
1205
  get isSpeaking() {
1300
1206
  return this._speakingMonitor?.isSpeaking;
1301
1207
  }
@@ -1434,7 +1340,7 @@ var MediaManager = class extends Resource4 {
1434
1340
  }
1435
1341
  async _reconcilePulledMedia() {
1436
1342
  log4("reconciling tracks", void 0, {
1437
- F: __dxlog_file4,
1343
+ F: __dxlog_file5,
1438
1344
  L: 223,
1439
1345
  S: this,
1440
1346
  C: (f, a) => f(...a)
@@ -1452,7 +1358,7 @@ var MediaManager = class extends Resource4 {
1452
1358
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
1453
1359
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
1454
1360
  }, {
1455
- F: __dxlog_file4,
1361
+ F: __dxlog_file5,
1456
1362
  L: 242,
1457
1363
  S: this,
1458
1364
  C: (f, a) => f(...a)
@@ -1466,7 +1372,7 @@ var MediaManager = class extends Resource4 {
1466
1372
  currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
1467
1373
  currentVideoStreams: Object.keys(this._state.pulledVideoStreams)
1468
1374
  }, {
1469
- F: __dxlog_file4,
1375
+ F: __dxlog_file5,
1470
1376
  L: 257,
1471
1377
  S: this,
1472
1378
  C: (f, a) => f(...a)
@@ -1477,13 +1383,13 @@ var MediaManager = class extends Resource4 {
1477
1383
  log4.info("retrying pull tracks", {
1478
1384
  tracksToPull
1479
1385
  }, {
1480
- F: __dxlog_file4,
1386
+ F: __dxlog_file5,
1481
1387
  L: 265,
1482
1388
  S: this,
1483
1389
  C: (f, a) => f(...a)
1484
1390
  });
1485
- invariant3(this._pullTracksTask, void 0, {
1486
- F: __dxlog_file4,
1391
+ invariant4(this._pullTracksTask, void 0, {
1392
+ F: __dxlog_file5,
1487
1393
  L: 266,
1488
1394
  S: this,
1489
1395
  A: [
@@ -1536,13 +1442,13 @@ var MediaManager = class extends Resource4 {
1536
1442
  pushAudioResult,
1537
1443
  pushScreenshareResult
1538
1444
  }, {
1539
- F: __dxlog_file4,
1445
+ F: __dxlog_file5,
1540
1446
  L: 306,
1541
1447
  S: this,
1542
1448
  C: (f, a) => f(...a)
1543
1449
  });
1544
- invariant3(this._pushTracksTask, void 0, {
1545
- F: __dxlog_file4,
1450
+ invariant4(this._pushTracksTask, void 0, {
1451
+ F: __dxlog_file5,
1546
1452
  L: 307,
1547
1453
  S: this,
1548
1454
  A: [
@@ -1558,7 +1464,10 @@ var MediaManager = class extends Resource4 {
1558
1464
  try {
1559
1465
  const trackData = TrackNameCodec.decode(name);
1560
1466
  const track = await this._state.peer.pullTrack({
1561
- trackData,
1467
+ trackData: {
1468
+ ...trackData,
1469
+ mid: void 0
1470
+ },
1562
1471
  ctx
1563
1472
  });
1564
1473
  if (track?.readyState === "ended") {
@@ -1599,8 +1508,8 @@ var MediaManager = class extends Resource4 {
1599
1508
  err,
1600
1509
  name
1601
1510
  }, {
1602
- F: __dxlog_file4,
1603
- L: 342,
1511
+ F: __dxlog_file5,
1512
+ L: 343,
1604
1513
  S: this,
1605
1514
  C: (f, a) => f(...a)
1606
1515
  });
@@ -1633,8 +1542,8 @@ var MediaManager = class extends Resource4 {
1633
1542
  previousTrack,
1634
1543
  encodings
1635
1544
  }, {
1636
- F: __dxlog_file4,
1637
- L: 369,
1545
+ F: __dxlog_file5,
1546
+ L: 370,
1638
1547
  S: this,
1639
1548
  C: (f, a) => f(...a)
1640
1549
  });
@@ -1644,12 +1553,6 @@ var MediaManager = class extends Resource4 {
1644
1553
  };
1645
1554
  }
1646
1555
  }
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);
1652
- }
1653
1556
  };
1654
1557
  _ts_decorate2([
1655
1558
  synchronized2
@@ -1662,30 +1565,39 @@ _ts_decorate2([
1662
1565
  import { computed } from "@preact/signals-core";
1663
1566
  import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
1664
1567
  import { Resource as Resource5 } from "@dxos/context";
1665
- import { invariant as invariant4 } from "@dxos/invariant";
1568
+ import { invariant as invariant5 } from "@dxos/invariant";
1666
1569
  import { live } from "@dxos/live-object";
1667
1570
  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
- }
1681
1571
  function _ts_decorate3(decorators, target, key, desc) {
1682
1572
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1683
1573
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1684
1574
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1685
1575
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1686
1576
  }
1687
- var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
1577
+ var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
1688
1578
  var CallManager = class extends Resource5 {
1579
+ _client;
1580
+ callStateUpdated = new Event4();
1581
+ // TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
1582
+ mediaStateUpdated = new Event4();
1583
+ left = new Event4();
1584
+ /**
1585
+ * Live object state. Is changed on internal events.
1586
+ * CAUTION: Do not change directly.
1587
+ */
1588
+ _state = live({
1589
+ call: {},
1590
+ media: {
1591
+ pulledAudioTracks: {},
1592
+ pulledVideoStreams: {}
1593
+ }
1594
+ });
1595
+ // TODO(wittjosiah): This shouldn't be necessary, live-object's signals should be granular.
1596
+ _raisedHandSignal = computed(() => this._state.call.raisedHand ?? false);
1597
+ _speakingSignal = computed(() => this._state.call.speaking ?? false);
1598
+ _joinedSignal = computed(() => this._state.call.joined ?? false);
1599
+ _swarmSynchronizer;
1600
+ _mediaManager;
1689
1601
  /** @reactive */
1690
1602
  get roomId() {
1691
1603
  return this._state.call.roomId;
@@ -1764,6 +1676,25 @@ var CallManager = class extends Resource5 {
1764
1676
  turnScreenshareOff() {
1765
1677
  return this._mediaManager.turnScreenshareOff();
1766
1678
  }
1679
+ // TODO(burdon): Can this be mocked?
1680
+ constructor(_client) {
1681
+ super(), this._client = _client;
1682
+ this._client.config.getOrThrow("runtime.services.edge.url");
1683
+ const networkService = this._client.services.services.NetworkService;
1684
+ invariant5(networkService, "network service not found", {
1685
+ F: __dxlog_file6,
1686
+ L: 159,
1687
+ S: this,
1688
+ A: [
1689
+ "networkService",
1690
+ "'network service not found'"
1691
+ ]
1692
+ });
1693
+ this._swarmSynchronizer = new CallSwarmSynchronizer({
1694
+ networkService
1695
+ });
1696
+ this._mediaManager = new MediaManager();
1697
+ }
1767
1698
  async _open() {
1768
1699
  await this._mediaManager.open();
1769
1700
  await this._swarmSynchronizer.open();
@@ -1804,7 +1735,7 @@ var CallManager = class extends Resource5 {
1804
1735
  this.roomId && this.left.emit(this.roomId);
1805
1736
  }
1806
1737
  _onCallStateUpdated(state) {
1807
- const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self?.id)?.flatMap((user) => [
1738
+ const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self.id)?.flatMap((user) => [
1808
1739
  user.tracks?.video,
1809
1740
  user.tracks?.audio,
1810
1741
  user.tracks?.screenshare
@@ -1837,37 +1768,6 @@ var CallManager = class extends Resource5 {
1837
1768
  this._state.call = this._swarmSynchronizer._getState();
1838
1769
  this._state.media = this._mediaManager._getState();
1839
1770
  }
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
- }
1871
1771
  };
1872
1772
  _ts_decorate3([
1873
1773
  synchronized3
@@ -1890,4 +1790,4 @@ export {
1890
1790
  MediaManager,
1891
1791
  CallManager
1892
1792
  };
1893
- //# sourceMappingURL=chunk-TUSBPMNU.mjs.map
1793
+ //# sourceMappingURL=chunk-US5ZQYC3.mjs.map