@dxos/client-services 0.8.3 → 0.8.4-main.05e74ebcff

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 (263) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/chunk-QCWEHHJW.mjs +24 -0
  4. package/dist/lib/browser/chunk-QCWEHHJW.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-LBG3C332.mjs → chunk-U2YFOK57.mjs} +3848 -5128
  6. package/dist/lib/browser/chunk-U2YFOK57.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-XJRPB3GA.mjs +22 -0
  8. package/dist/lib/browser/chunk-XJRPB3GA.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +454 -148
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/packlets/diagnostics/browser-diagnostics-broadcast.mjs +88 -0
  13. package/dist/lib/browser/packlets/diagnostics/browser-diagnostics-broadcast.mjs.map +7 -0
  14. package/dist/lib/browser/packlets/diagnostics/diagnostics-broadcast.mjs +11 -0
  15. package/dist/lib/browser/packlets/diagnostics/diagnostics-broadcast.mjs.map +7 -0
  16. package/dist/lib/browser/packlets/locks/browser.mjs +86 -0
  17. package/dist/lib/browser/packlets/locks/browser.mjs.map +7 -0
  18. package/dist/lib/browser/packlets/locks/node.mjs +48 -0
  19. package/dist/lib/browser/packlets/locks/node.mjs.map +7 -0
  20. package/dist/lib/browser/testing/index.mjs +40 -41
  21. package/dist/lib/browser/testing/index.mjs.map +3 -3
  22. package/dist/lib/node-esm/chunk-2DT3MZRL.mjs +22 -0
  23. package/dist/lib/node-esm/chunk-2DT3MZRL.mjs.map +7 -0
  24. package/dist/lib/node-esm/chunk-2SZHAWBN.mjs +24 -0
  25. package/dist/lib/node-esm/chunk-2SZHAWBN.mjs.map +7 -0
  26. package/dist/lib/node-esm/{chunk-SKGQLRKS.mjs → chunk-OMK2O7UD.mjs} +3247 -4395
  27. package/dist/lib/node-esm/chunk-OMK2O7UD.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +454 -148
  29. package/dist/lib/node-esm/index.mjs.map +4 -4
  30. package/dist/lib/node-esm/meta.json +1 -1
  31. package/dist/lib/node-esm/packlets/diagnostics/browser-diagnostics-broadcast.mjs +88 -0
  32. package/dist/lib/node-esm/packlets/diagnostics/browser-diagnostics-broadcast.mjs.map +7 -0
  33. package/dist/lib/node-esm/packlets/diagnostics/diagnostics-broadcast.mjs +11 -0
  34. package/dist/lib/node-esm/packlets/diagnostics/diagnostics-broadcast.mjs.map +7 -0
  35. package/dist/lib/node-esm/packlets/locks/browser.mjs +86 -0
  36. package/dist/lib/node-esm/packlets/locks/browser.mjs.map +7 -0
  37. package/dist/lib/node-esm/packlets/locks/node.mjs +48 -0
  38. package/dist/lib/node-esm/packlets/locks/node.mjs.map +7 -0
  39. package/dist/lib/node-esm/testing/index.mjs +40 -41
  40. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  41. package/dist/types/src/index.d.ts +1 -0
  42. package/dist/types/src/index.d.ts.map +1 -1
  43. package/dist/types/src/packlets/agents/edge-agent-manager.d.ts +3 -2
  44. package/dist/types/src/packlets/agents/edge-agent-manager.d.ts.map +1 -1
  45. package/dist/types/src/packlets/agents/edge-agent-service.d.ts +3 -2
  46. package/dist/types/src/packlets/agents/edge-agent-service.d.ts.map +1 -1
  47. package/dist/types/src/packlets/devices/devices-service.d.ts.map +1 -1
  48. package/dist/types/src/packlets/devtools/devtools.d.ts +20 -20
  49. package/dist/types/src/packlets/devtools/devtools.d.ts.map +1 -1
  50. package/dist/types/src/packlets/devtools/feeds.d.ts +1 -1
  51. package/dist/types/src/packlets/devtools/feeds.d.ts.map +1 -1
  52. package/dist/types/src/packlets/devtools/keys.d.ts.map +1 -1
  53. package/dist/types/src/packlets/devtools/metadata.d.ts.map +1 -1
  54. package/dist/types/src/packlets/devtools/network.d.ts +1 -1
  55. package/dist/types/src/packlets/devtools/network.d.ts.map +1 -1
  56. package/dist/types/src/packlets/devtools/spaces.d.ts.map +1 -1
  57. package/dist/types/src/packlets/diagnostics/browser-diagnostics-broadcast.d.ts +1 -1
  58. package/dist/types/src/packlets/diagnostics/browser-diagnostics-broadcast.d.ts.map +1 -1
  59. package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts +1 -1
  60. package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -1
  61. package/dist/types/src/packlets/diagnostics/diagnostics-collector.d.ts.map +1 -1
  62. package/dist/types/src/packlets/diagnostics/diagnostics.d.ts +3 -4
  63. package/dist/types/src/packlets/diagnostics/diagnostics.d.ts.map +1 -1
  64. package/dist/types/src/packlets/diagnostics/index.d.ts +1 -1
  65. package/dist/types/src/packlets/diagnostics/index.d.ts.map +1 -1
  66. package/dist/types/src/packlets/identity/authenticator.d.ts +2 -2
  67. package/dist/types/src/packlets/identity/authenticator.d.ts.map +1 -1
  68. package/dist/types/src/packlets/identity/contacts-service.d.ts +1 -1
  69. package/dist/types/src/packlets/identity/contacts-service.d.ts.map +1 -1
  70. package/dist/types/src/packlets/identity/identity-manager.d.ts +7 -7
  71. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  72. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts +8 -7
  73. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts.map +1 -1
  74. package/dist/types/src/packlets/identity/identity-service.d.ts +6 -10
  75. package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
  76. package/dist/types/src/packlets/identity/identity.d.ts +9 -12
  77. package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
  78. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts +6 -5
  79. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts.map +1 -1
  80. package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts +2 -2
  81. package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts.map +1 -1
  82. package/dist/types/src/packlets/invitations/index.d.ts +1 -1
  83. package/dist/types/src/packlets/invitations/index.d.ts.map +1 -1
  84. package/dist/types/src/packlets/invitations/invitation-guest-extenstion.d.ts.map +1 -1
  85. package/dist/types/src/packlets/invitations/invitation-host-extension.d.ts.map +1 -1
  86. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts +8 -5
  87. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts.map +1 -1
  88. package/dist/types/src/packlets/invitations/invitation-state.d.ts.map +1 -1
  89. package/dist/types/src/packlets/invitations/invitation-topology.d.ts.map +1 -1
  90. package/dist/types/src/packlets/invitations/invitations-handler.d.ts +4 -4
  91. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  92. package/dist/types/src/packlets/invitations/invitations-manager.d.ts +3 -3
  93. package/dist/types/src/packlets/invitations/invitations-manager.d.ts.map +1 -1
  94. package/dist/types/src/packlets/invitations/invitations-service.d.ts +4 -4
  95. package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
  96. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts +5 -4
  97. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
  98. package/dist/types/src/packlets/invitations/utils.d.ts.map +1 -1
  99. package/dist/types/src/packlets/locks/browser.d.ts.map +1 -1
  100. package/dist/types/src/packlets/locks/index.d.ts +2 -2
  101. package/dist/types/src/packlets/locks/index.d.ts.map +1 -1
  102. package/dist/types/src/packlets/locks/node.d.ts.map +1 -1
  103. package/dist/types/src/packlets/logging/logging-service.d.ts +5 -1
  104. package/dist/types/src/packlets/logging/logging-service.d.ts.map +1 -1
  105. package/dist/types/src/packlets/network/network-service.d.ts +7 -6
  106. package/dist/types/src/packlets/network/network-service.d.ts.map +1 -1
  107. package/dist/types/src/packlets/services/client-rpc-server.d.ts +5 -5
  108. package/dist/types/src/packlets/services/client-rpc-server.d.ts.map +1 -1
  109. package/dist/types/src/packlets/services/feed-syncer.d.ts +59 -0
  110. package/dist/types/src/packlets/services/feed-syncer.d.ts.map +1 -0
  111. package/dist/types/src/packlets/services/feed-syncer.test.d.ts +2 -0
  112. package/dist/types/src/packlets/services/feed-syncer.test.d.ts.map +1 -0
  113. package/dist/types/src/packlets/services/platform.d.ts.map +1 -1
  114. package/dist/types/src/packlets/services/service-context.d.ts +14 -10
  115. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  116. package/dist/types/src/packlets/services/service-host.d.ts +21 -8
  117. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  118. package/dist/types/src/packlets/services/service-registry.d.ts.map +1 -1
  119. package/dist/types/src/packlets/services/util.d.ts.map +1 -1
  120. package/dist/types/src/packlets/space-export/archive-format.d.ts +9 -0
  121. package/dist/types/src/packlets/space-export/archive-format.d.ts.map +1 -0
  122. package/dist/types/src/packlets/space-export/index.d.ts +4 -1
  123. package/dist/types/src/packlets/space-export/index.d.ts.map +1 -1
  124. package/dist/types/src/packlets/space-export/serialized-space-reader.d.ts +23 -0
  125. package/dist/types/src/packlets/space-export/serialized-space-reader.d.ts.map +1 -0
  126. package/dist/types/src/packlets/space-export/serialized-space-writer.d.ts +36 -0
  127. package/dist/types/src/packlets/space-export/serialized-space-writer.d.ts.map +1 -0
  128. package/dist/types/src/packlets/space-export/space-archive-reader.d.ts +9 -1
  129. package/dist/types/src/packlets/space-export/space-archive-reader.d.ts.map +1 -1
  130. package/dist/types/src/packlets/space-export/space-archive-writer.d.ts +8 -2
  131. package/dist/types/src/packlets/space-export/space-archive-writer.d.ts.map +1 -1
  132. package/dist/types/src/packlets/space-export/space-archive.test.d.ts +2 -0
  133. package/dist/types/src/packlets/space-export/space-archive.test.d.ts.map +1 -0
  134. package/dist/types/src/packlets/spaces/automerge-space-state.d.ts +1 -1
  135. package/dist/types/src/packlets/spaces/automerge-space-state.d.ts.map +1 -1
  136. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +31 -20
  137. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  138. package/dist/types/src/packlets/spaces/data-space.d.ts +30 -13
  139. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  140. package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts +2 -2
  141. package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts.map +1 -1
  142. package/dist/types/src/packlets/spaces/epoch-migrations.d.ts.map +1 -1
  143. package/dist/types/src/packlets/spaces/genesis.d.ts +2 -1
  144. package/dist/types/src/packlets/spaces/genesis.d.ts.map +1 -1
  145. package/dist/types/src/packlets/spaces/notarization-plugin.d.ts +6 -9
  146. package/dist/types/src/packlets/spaces/notarization-plugin.d.ts.map +1 -1
  147. package/dist/types/src/packlets/spaces/spaces-service.d.ts +11 -8
  148. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  149. package/dist/types/src/packlets/storage/level.d.ts.map +1 -1
  150. package/dist/types/src/packlets/storage/profile-archive.d.ts.map +1 -1
  151. package/dist/types/src/packlets/storage/storage.d.ts.map +1 -1
  152. package/dist/types/src/packlets/storage/util.d.ts.map +1 -1
  153. package/dist/types/src/packlets/system/system-service.d.ts +2 -2
  154. package/dist/types/src/packlets/system/system-service.d.ts.map +1 -1
  155. package/dist/types/src/packlets/testing/credential-utils.d.ts.map +1 -1
  156. package/dist/types/src/packlets/testing/invitation-utils.d.ts +6 -3
  157. package/dist/types/src/packlets/testing/invitation-utils.d.ts.map +1 -1
  158. package/dist/types/src/packlets/testing/test-builder.d.ts +8 -7
  159. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  160. package/dist/types/src/packlets/worker/worker-runtime.d.ts +41 -4
  161. package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
  162. package/dist/types/src/packlets/worker/worker-session.d.ts +2 -4
  163. package/dist/types/src/packlets/worker/worker-session.d.ts.map +1 -1
  164. package/dist/types/src/testing/setup.d.ts.map +1 -1
  165. package/dist/types/src/version.d.ts +1 -1
  166. package/dist/types/src/version.d.ts.map +1 -1
  167. package/dist/types/tsconfig.tsbuildinfo +1 -1
  168. package/package.json +73 -56
  169. package/src/index.ts +1 -0
  170. package/src/packlets/agents/edge-agent-manager.ts +10 -7
  171. package/src/packlets/agents/edge-agent-service.ts +17 -5
  172. package/src/packlets/devices/devices-service.test.ts +3 -3
  173. package/src/packlets/devices/devices-service.ts +2 -2
  174. package/src/packlets/devtools/devtools.ts +29 -29
  175. package/src/packlets/devtools/feeds.ts +2 -2
  176. package/src/packlets/devtools/network.ts +1 -1
  177. package/src/packlets/diagnostics/browser-diagnostics-broadcast.ts +1 -1
  178. package/src/packlets/diagnostics/diagnostics-broadcast.ts +1 -1
  179. package/src/packlets/diagnostics/diagnostics-collector.ts +1 -1
  180. package/src/packlets/diagnostics/diagnostics.ts +2 -3
  181. package/src/packlets/diagnostics/index.ts +1 -1
  182. package/src/packlets/identity/authenticator.node.test.ts +1 -1
  183. package/src/packlets/identity/authenticator.ts +3 -3
  184. package/src/packlets/identity/contacts-service.ts +2 -2
  185. package/src/packlets/identity/identity-manager.test.ts +8 -8
  186. package/src/packlets/identity/identity-manager.ts +25 -24
  187. package/src/packlets/identity/identity-recovery-manager.ts +22 -18
  188. package/src/packlets/identity/identity-service.test.ts +8 -28
  189. package/src/packlets/identity/identity-service.ts +13 -80
  190. package/src/packlets/identity/identity.test.ts +11 -11
  191. package/src/packlets/identity/identity.ts +17 -39
  192. package/src/packlets/invitations/device-invitation-protocol.test.ts +4 -4
  193. package/src/packlets/invitations/device-invitation-protocol.ts +8 -6
  194. package/src/packlets/invitations/edge-invitation-handler.ts +10 -6
  195. package/src/packlets/invitations/index.ts +1 -1
  196. package/src/packlets/invitations/invitation-guest-extenstion.ts +7 -5
  197. package/src/packlets/invitations/invitation-host-extension.ts +15 -16
  198. package/src/packlets/invitations/invitation-protocol.ts +8 -5
  199. package/src/packlets/invitations/invitation-state.ts +1 -15
  200. package/src/packlets/invitations/invitations-handler.test.ts +301 -292
  201. package/src/packlets/invitations/invitations-handler.ts +77 -25
  202. package/src/packlets/invitations/invitations-manager.ts +43 -18
  203. package/src/packlets/invitations/invitations-service.ts +10 -10
  204. package/src/packlets/invitations/space-invitation-protocol.test.ts +26 -25
  205. package/src/packlets/invitations/space-invitation-protocol.ts +13 -17
  206. package/src/packlets/invitations/utils.ts +1 -1
  207. package/src/packlets/locks/browser.ts +1 -1
  208. package/src/packlets/locks/index.ts +2 -2
  209. package/src/packlets/logging/logging-service.ts +22 -17
  210. package/src/packlets/logging/logging.test.ts +1 -1
  211. package/src/packlets/network/network-service.test.ts +3 -3
  212. package/src/packlets/network/network-service.ts +12 -10
  213. package/src/packlets/services/client-rpc-server.ts +20 -17
  214. package/src/packlets/services/feed-syncer.test.ts +340 -0
  215. package/src/packlets/services/feed-syncer.ts +377 -0
  216. package/src/packlets/services/platform.ts +7 -1
  217. package/src/packlets/services/service-context.test.ts +4 -3
  218. package/src/packlets/services/service-context.ts +160 -67
  219. package/src/packlets/services/service-host.test.ts +10 -9
  220. package/src/packlets/services/service-host.ts +88 -49
  221. package/src/packlets/services/service-registry.test.ts +1 -1
  222. package/src/packlets/space-export/archive-format.ts +42 -0
  223. package/src/packlets/space-export/index.ts +4 -1
  224. package/src/packlets/space-export/serialized-space-reader.ts +111 -0
  225. package/src/packlets/space-export/serialized-space-writer.ts +252 -0
  226. package/src/packlets/space-export/space-archive-reader.ts +65 -4
  227. package/src/packlets/space-export/space-archive-writer.ts +44 -6
  228. package/src/packlets/space-export/space-archive.test.ts +461 -0
  229. package/src/packlets/space-export/tar.test.ts +1 -1
  230. package/src/packlets/spaces/automerge-space-state.ts +1 -1
  231. package/src/packlets/spaces/data-space-manager.test.ts +79 -13
  232. package/src/packlets/spaces/data-space-manager.ts +134 -129
  233. package/src/packlets/spaces/data-space.ts +71 -42
  234. package/src/packlets/spaces/edge-feed-replicator.test.ts +4 -4
  235. package/src/packlets/spaces/edge-feed-replicator.ts +13 -11
  236. package/src/packlets/spaces/epoch-migrations.ts +6 -5
  237. package/src/packlets/spaces/genesis.ts +6 -1
  238. package/src/packlets/spaces/notarization-plugin.test.ts +3 -3
  239. package/src/packlets/spaces/notarization-plugin.ts +13 -12
  240. package/src/packlets/spaces/spaces-service.test.ts +20 -12
  241. package/src/packlets/spaces/spaces-service.ts +140 -38
  242. package/src/packlets/storage/profile-archive.ts +1 -1
  243. package/src/packlets/storage/storage.ts +7 -8
  244. package/src/packlets/system/system-service.test.ts +1 -1
  245. package/src/packlets/system/system-service.ts +4 -4
  246. package/src/packlets/testing/invitation-utils.ts +11 -7
  247. package/src/packlets/testing/test-builder.ts +39 -13
  248. package/src/packlets/worker/worker-runtime.ts +189 -17
  249. package/src/packlets/worker/worker-session.ts +15 -21
  250. package/src/version.ts +1 -5
  251. package/README.yml +0 -5
  252. package/dist/lib/browser/chunk-LBG3C332.mjs.map +0 -7
  253. package/dist/lib/node/chunk-LMGLGOUU.cjs +0 -9311
  254. package/dist/lib/node/chunk-LMGLGOUU.cjs.map +0 -7
  255. package/dist/lib/node/index.cjs +0 -437
  256. package/dist/lib/node/index.cjs.map +0 -7
  257. package/dist/lib/node/meta.json +0 -1
  258. package/dist/lib/node/testing/index.cjs +0 -452
  259. package/dist/lib/node/testing/index.cjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-SKGQLRKS.mjs.map +0 -7
  261. package/dist/types/src/packlets/identity/default-space-state-machine.d.ts +0 -19
  262. package/dist/types/src/packlets/identity/default-space-state-machine.d.ts.map +0 -1
  263. package/src/packlets/identity/default-space-state-machine.ts +0 -44
@@ -0,0 +1,88 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "../../chunk-2SZHAWBN.mjs";
3
+
4
+ // src/packlets/diagnostics/browser-diagnostics-broadcast.ts
5
+ import { Trigger } from "@dxos/async";
6
+ import { log } from "@dxos/log";
7
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/diagnostics/browser-diagnostics-broadcast.ts";
8
+ var CHANNEL_NAME = "dxos.diagnostics.broadcast";
9
+ var createCollectDiagnosticsBroadcastSender = () => {
10
+ return {
11
+ broadcastDiagnosticsRequest: async () => {
12
+ let expectedResponse = "probe-ack";
13
+ let channel;
14
+ try {
15
+ const trigger = new Trigger();
16
+ channel = new BroadcastChannel(CHANNEL_NAME);
17
+ channel.onmessage = (msg) => {
18
+ if (expectedResponse === msg.data.type) {
19
+ trigger.wake(msg.data);
20
+ }
21
+ };
22
+ channel.postMessage({
23
+ type: "probe"
24
+ });
25
+ await trigger.wait({
26
+ timeout: 200
27
+ });
28
+ expectedResponse = "receive-diagnostics";
29
+ trigger.reset();
30
+ channel.postMessage({
31
+ type: "request-diagnostics"
32
+ });
33
+ const diagnostics = await trigger.wait({
34
+ timeout: 5e3
35
+ });
36
+ return diagnostics.payload;
37
+ } catch (e) {
38
+ const errorDescription = e instanceof Error ? e.message : JSON.stringify(e);
39
+ return {
40
+ expectedResponse,
41
+ errorDescription
42
+ };
43
+ } finally {
44
+ safeClose(channel);
45
+ }
46
+ }
47
+ };
48
+ };
49
+ var createCollectDiagnosticsBroadcastHandler = (systemService) => {
50
+ let channel;
51
+ return {
52
+ start: () => {
53
+ channel = new BroadcastChannel(CHANNEL_NAME);
54
+ channel.onmessage = async (message) => {
55
+ try {
56
+ if (message.data.type === "probe") {
57
+ channel?.postMessage({
58
+ type: "probe-ack"
59
+ });
60
+ } else if (message.data.type === "request-diagnostics") {
61
+ const diagnostics = await systemService.getDiagnostics({});
62
+ channel?.postMessage({
63
+ type: "receive-diagnostics",
64
+ payload: diagnostics
65
+ });
66
+ }
67
+ } catch (error) {
68
+ log.catch(error, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 73, S: void 0 });
69
+ }
70
+ };
71
+ },
72
+ stop: () => {
73
+ safeClose(channel);
74
+ channel = void 0;
75
+ }
76
+ };
77
+ };
78
+ var safeClose = (channel) => {
79
+ try {
80
+ channel?.close();
81
+ } catch (e) {
82
+ }
83
+ };
84
+ export {
85
+ createCollectDiagnosticsBroadcastHandler,
86
+ createCollectDiagnosticsBroadcastSender
87
+ };
88
+ //# sourceMappingURL=browser-diagnostics-broadcast.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/packlets/diagnostics/browser-diagnostics-broadcast.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { log } from '@dxos/log';\nimport { type SystemService } from '@dxos/protocols/proto/dxos/client/services';\n\nimport {\n type CollectDiagnosticsBroadcastHandler,\n type CollectDiagnosticsBroadcastSender,\n} from './diagnostics-collector';\n\nconst CHANNEL_NAME = 'dxos.diagnostics.broadcast';\n\nenum MessageType {\n PROBE = 'probe',\n PROBE_ACK = 'probe-ack',\n REQUEST_DIAGNOSTICS = 'request-diagnostics',\n RECEIVE_DIAGNOSTICS = 'receive-diagnostics',\n}\n\ninterface Message {\n type: MessageType;\n payload?: any;\n}\n\nexport const createCollectDiagnosticsBroadcastSender = (): CollectDiagnosticsBroadcastSender => {\n return {\n broadcastDiagnosticsRequest: async () => {\n let expectedResponse = MessageType.PROBE_ACK;\n let channel: BroadcastChannel | undefined;\n try {\n const trigger = new Trigger<Message>();\n channel = new BroadcastChannel(CHANNEL_NAME);\n channel.onmessage = (msg) => {\n if (expectedResponse === msg.data.type) {\n trigger.wake(msg.data);\n }\n };\n channel.postMessage({ type: MessageType.PROBE });\n await trigger.wait({ timeout: 200 });\n expectedResponse = MessageType.RECEIVE_DIAGNOSTICS;\n trigger.reset();\n channel.postMessage({ type: MessageType.REQUEST_DIAGNOSTICS });\n const diagnostics = await trigger.wait({ timeout: 5000 });\n return diagnostics.payload;\n } catch (e) {\n const errorDescription = e instanceof Error ? e.message : JSON.stringify(e);\n return { expectedResponse, errorDescription };\n } finally {\n safeClose(channel);\n }\n },\n };\n};\n\nexport const createCollectDiagnosticsBroadcastHandler = (\n systemService: SystemService,\n): CollectDiagnosticsBroadcastHandler => {\n let channel: BroadcastChannel | undefined;\n return {\n start: () => {\n channel = new BroadcastChannel(CHANNEL_NAME);\n channel.onmessage = async (message) => {\n try {\n if (message.data.type === MessageType.PROBE) {\n channel?.postMessage({ type: MessageType.PROBE_ACK });\n } else if (message.data.type === MessageType.REQUEST_DIAGNOSTICS) {\n const diagnostics = await systemService.getDiagnostics({});\n channel?.postMessage({\n type: MessageType.RECEIVE_DIAGNOSTICS,\n payload: diagnostics,\n });\n }\n } catch (error) {\n log.catch(error);\n }\n };\n },\n stop: () => {\n safeClose(channel);\n channel = undefined;\n },\n };\n};\n\nconst safeClose = (channel?: BroadcastChannel) => {\n try {\n channel?.close();\n } catch (e) {\n // ignored\n }\n};\n"],
5
+ "mappings": ";;;;AAIA,SAASA,eAAe;AACxB,SAASC,WAAW;AAQpB,IAAA,eAAMC;;IAgBFC,0CAA6B,MAAA;;iCAEvBC,YAAAA;AACJ,UAAI,mBAAA;UACF;UACAA;AACAA,cAAAA,UAAQC,IAAY,QAACC;kBACfC,IAAAA,iBAAqBD,YAAa;gBACpCE,YAAY,CAACF,QAAIG;AACnB,cAAA,qBAAA,IAAA,KAAA,MAAA;AACF,oBAAA,KAAA,IAAA,IAAA;UACAL;;AAA8C,gBAAA,YAAA;UAC9C,MAAMI;;AAA4B,cAAA,QAAA,KAAA;UAClCD,SAAAA;QACAC,CAAAA;AACAJ,2BAAmB;gBAAO,MAAA;AAAkC,gBAAA,YAAA;UAC5D,MAAMM;;AAAiD,cAAA,cAAA,MAAA,QAAA,KAAA;UACvD,SAAOA;QACP,CAAA;AACA,eAAMC,YAAAA;eACN,GAAO;cAAEJ,mBAAAA,aAAAA,QAAAA,EAAAA,UAAAA,KAAAA,UAAAA,CAAAA;eAAkBI;UAAiB;UAC9C;QACEC;MACF,UAAA;AACF,kBAAA,OAAA;MACF;IACA;EAEF;;AAIE,IAAO,2CAAA,CAAA,kBAAA;MACLC;;WAEET,MAAAA;gBACM,IAAA,iBAAA,YAAA;cACF,YAAYK,OAAKK,YAAI;;sBACQ,KAAA,SAAA,SAAA;AAAwB,qBAAA,YAAA;cAC9C,MAAIC;YACT,CAAA;qBACAX,QAASY,KAAAA,SAAY,uBAAA;kBACnBF,cAAI,MAAA,cAAA,eAAA,CAAA,CAAA;qBACJG,YAASP;cACX,MAAA;cACF,SAAA;YACA,CAAOQ;UACPC;QACF,SAAA,OAAA;AACF,cAAA,MAAA,OAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,OAAA,CAAA;QACF;MACAC;;UAEEhB,MAAAA;AACF,gBAAA,OAAA;AACF,gBAAA;IACA;EAEF;;gBAEaiB,CAAAA,YAAAA;AACX,MAAE;AACA,aAAU,MAAA;EACZ,SAAA,GAAA;;;",
6
+ "names": ["Trigger", "log", "CHANNEL_NAME", "broadcastDiagnosticsRequest", "channel", "onmessage", "msg", "expectedResponse", "trigger", "data", "diagnostics", "errorDescription", "safeClose", "start", "type", "message", "postMessage", "payload", "error", "log", "stop", "close"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ createCollectDiagnosticsBroadcastHandler,
4
+ createCollectDiagnosticsBroadcastSender
5
+ } from "../../chunk-2DT3MZRL.mjs";
6
+ import "../../chunk-2SZHAWBN.mjs";
7
+ export {
8
+ createCollectDiagnosticsBroadcastHandler,
9
+ createCollectDiagnosticsBroadcastSender
10
+ };
11
+ //# sourceMappingURL=diagnostics-broadcast.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,86 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "../../chunk-2SZHAWBN.mjs";
3
+
4
+ // src/packlets/locks/browser.ts
5
+ import { Trigger, asyncTimeout } from "@dxos/async";
6
+ import { RESOURCE_LOCK_TIMEOUT } from "@dxos/client-protocol";
7
+ import { log, logInfo } from "@dxos/log";
8
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/locks/browser.ts";
9
+ function _ts_decorate(decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ 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;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ }
15
+ var Lock = class {
16
+ _broadcastChannel = new BroadcastChannel("vault-resource-lock");
17
+ _lockKey;
18
+ _onAcquire;
19
+ _onRelease;
20
+ _releaseTrigger = new Trigger();
21
+ constructor({ lockKey, onAcquire, onRelease }) {
22
+ this._lockKey = lockKey;
23
+ this._onAcquire = onAcquire;
24
+ this._onRelease = onRelease;
25
+ this._broadcastChannel.onmessage = this._onMessage.bind(this);
26
+ }
27
+ get lockKey() {
28
+ return this._lockKey;
29
+ }
30
+ async acquire() {
31
+ this._broadcastChannel.postMessage({
32
+ message: "acquiring"
33
+ });
34
+ try {
35
+ log("aquiring lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 39, S: this });
36
+ await asyncTimeout(this._requestLock(), RESOURCE_LOCK_TIMEOUT);
37
+ log("acquired lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 41, S: this });
38
+ } catch {
39
+ log("stealing lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 43, S: this });
40
+ await this._requestLock(true);
41
+ log("stolen lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 45, S: this });
42
+ }
43
+ }
44
+ async release() {
45
+ this._releaseTrigger.wake();
46
+ }
47
+ _onMessage(event) {
48
+ if (event.data.message === "acquiring") {
49
+ this._releaseTrigger.wake();
50
+ }
51
+ }
52
+ async _requestLock(steal = false) {
53
+ log("requesting lock...", {
54
+ steal
55
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 57, S: this });
56
+ const acquired = new Trigger();
57
+ void navigator.locks.request(this._lockKey, {
58
+ steal
59
+ }, async () => {
60
+ await this._onAcquire?.();
61
+ acquired.wake();
62
+ this._releaseTrigger = new Trigger();
63
+ await this._releaseTrigger.wait();
64
+ log("releasing lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 68, S: this });
65
+ await this._onRelease?.();
66
+ log("released lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 70, S: this });
67
+ }).catch(async () => {
68
+ await this._onRelease?.();
69
+ });
70
+ await acquired.wait();
71
+ log("recieved lock", {
72
+ steal
73
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 75, S: this });
74
+ }
75
+ };
76
+ _ts_decorate([
77
+ logInfo
78
+ ], Lock.prototype, "lockKey", null);
79
+ var isLocked = (lockPath) => {
80
+ throw new Error("Not implemented");
81
+ };
82
+ export {
83
+ Lock,
84
+ isLocked
85
+ };
86
+ //# sourceMappingURL=browser.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/packlets/locks/browser.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Trigger, asyncTimeout } from '@dxos/async';\nimport { RESOURCE_LOCK_TIMEOUT } from '@dxos/client-protocol';\nimport { log, logInfo } from '@dxos/log';\n\nimport { type ResourceLock, type ResourceLockOptions } from './resource-lock';\n\nenum Message {\n ACQUIRING = 'acquiring',\n}\n\n// TODO(mykola): Factor out.\n// TODO(burdon): Extend to support locking for web and NodeJS (use npm lockfile). Use to lock agents.\nexport class Lock implements ResourceLock {\n private readonly _broadcastChannel = new BroadcastChannel('vault-resource-lock');\n private readonly _lockKey: string;\n private readonly _onAcquire: ResourceLockOptions['onAcquire'];\n private readonly _onRelease: ResourceLockOptions['onRelease'];\n private _releaseTrigger = new Trigger();\n\n constructor({ lockKey, onAcquire, onRelease }: ResourceLockOptions) {\n this._lockKey = lockKey;\n this._onAcquire = onAcquire;\n this._onRelease = onRelease;\n this._broadcastChannel.onmessage = this._onMessage.bind(this);\n }\n\n @logInfo\n get lockKey() {\n return this._lockKey;\n }\n\n async acquire(): Promise<void> {\n this._broadcastChannel.postMessage({\n message: Message.ACQUIRING,\n });\n\n try {\n log('aquiring lock...');\n await asyncTimeout(this._requestLock(), RESOURCE_LOCK_TIMEOUT);\n log('acquired lock');\n } catch {\n log('stealing lock...');\n await this._requestLock(true);\n log('stolen lock');\n }\n }\n\n async release(): Promise<void> {\n this._releaseTrigger.wake();\n }\n\n private _onMessage(event: MessageEvent<any>): void {\n if (event.data.message === Message.ACQUIRING) {\n this._releaseTrigger.wake();\n }\n }\n\n private async _requestLock(steal = false): Promise<void> {\n log('requesting lock...', { steal });\n const acquired = new Trigger();\n\n void navigator.locks\n .request(this._lockKey, { steal }, async () => {\n await this._onAcquire?.();\n acquired.wake();\n this._releaseTrigger = new Trigger();\n await this._releaseTrigger.wait();\n log('releasing lock...');\n await this._onRelease?.();\n log('released lock');\n })\n .catch(async () => {\n await this._onRelease?.();\n });\n\n await acquired.wait();\n log('recieved lock', { steal });\n }\n}\n\n// TODO(mykola): Implement.\nexport const isLocked = (lockPath: string) => {\n throw new Error('Not implemented');\n};\n"],
5
+ "mappings": ";;;;AAKA,SAASA,SAAAA,oBAA6B;AACtC,SAASC,6BAAoB;AAI7B,SAAKC,KAAAA,eAAAA;;;;;;;AAVL;AAiBmBC,IAAAA,OAAAA,MAAAA;EACAC,oBAAiB,IAAA,iBAAA,qBAAA;EACjBC;EACAC;EACTC;EAER,kBAAcC,IAAO,QAAEC;cAChBL,EAAAA,SAAWI,WAAAA,UAAAA,GAAAA;AAChB,SAAKH,WAAU;AACf,SAAKC,aAAaI;AAClB,SAAKP,aAAAA;AACP,SAAA,kBAAA,YAAA,KAAA,WAAA,KAAA,IAAA;EAEA;MAEE,UAAO;AACT,WAAA,KAAA;EAEA;QACE,UAAKA;SACHQ,kBAAO,YAAA;MACT,SAAA;IAEA,CAAA;QACEC;AACA,UAAA,oBAAuB,QAACC,EAAAA,YAAgBC,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AACxCF,YAAI,aAAA,KAAA,aAAA,GAAA,qBAAA;AACJ,UAAA,iBAAM,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;YACF;AACJ,UAAA,oBAAuB,QAAC,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AACxBA,YAAI,KAAA,aAAA,IAAA;AACN,UAAA,eAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;IACF;EAEA;QACE,UAAKL;AACP,SAAA,gBAAA,KAAA;EAEQQ;aACFC,OAAU;QACZ,MAAKT,KAAAA,YAAgBU,aAAI;AAC3B,WAAA,gBAAA,KAAA;IACF;EAEA;QACEL,aAAI,QAAA,OAAsB;QAAEM,sBAAAA;MAAM;IAClC,GAAA,EAAA,YAAMC,YAAeC,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AAErB,UAAKC,WAAUC,IACZC,QAAQ;SAAiBL,UAAAA,MAAAA,QAAAA,KAAAA,UAAAA;MAAS;mBAC3B;AACNC,YAAAA,KAASF,aAAI;AACb,eAAKV,KAAAA;AACL,WAAA,kBAAWA,IAAgBiB,QAAI;AAC/BZ,YAAI,KAAA,gBAAA,KAAA;AACJ,UAAA,qBAAqB,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AACrBA,YAAI,KAAA,aAAA;AAELa,UAAK,iBAAC,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;aACL,YAAWnB;AACb,YAAA,KAAA,aAAA;IAEF,CAAA;AACAM,UAAI,SAAA,KAAA;QAAmBM,iBAAAA;MAAM;IAC/B,GAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;EACF;;;;AAEA,GAAA,KAAA,WAAA,WAA2B,IAAA;AAEzB,IAAM,WAAU,CAAA,aAAA;AAChB,QAAA,IAAA,MAAA,iBAAA;;",
6
+ "names": ["RESOURCE_LOCK_TIMEOUT", "log", "Message", "_broadcastChannel", "_lockKey", "_onAcquire", "_onRelease", "_releaseTrigger", "lockKey", "onAcquire", "onRelease", "message", "log", "_requestLock", "RESOURCE_LOCK_TIMEOUT", "_onMessage", "event", "wake", "steal", "acquired", "Trigger", "navigator", "locks", "request", "wait", "catch"]
7
+ }
@@ -0,0 +1,48 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "../../chunk-2SZHAWBN.mjs";
3
+
4
+ // src/packlets/locks/node.ts
5
+ import { invariant } from "@dxos/invariant";
6
+ import { LockFile } from "@dxos/lock-file";
7
+ import { log, logInfo } from "@dxos/log";
8
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/locks/node.ts";
9
+ function _ts_decorate(decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ 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;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ }
15
+ var Lock = class {
16
+ _lockPath;
17
+ _onAcquire;
18
+ _onRelease;
19
+ _fileHandle;
20
+ constructor({ lockKey: lockPath, onAcquire, onRelease }) {
21
+ this._lockPath = lockPath;
22
+ this._onAcquire = onAcquire;
23
+ this._onRelease = onRelease;
24
+ }
25
+ get lockKey() {
26
+ return this._lockPath;
27
+ }
28
+ async acquire() {
29
+ log("acquiring lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 28, S: this });
30
+ this._fileHandle = await LockFile.acquire(this._lockPath);
31
+ await this._onAcquire?.();
32
+ log("acquired lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 31, S: this });
33
+ }
34
+ async release() {
35
+ await this._onRelease?.();
36
+ invariant(this._fileHandle, "Lock is not acquired", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 35, S: this, A: ["this._fileHandle", "'Lock is not acquired'"] });
37
+ await LockFile.release(this._fileHandle);
38
+ }
39
+ };
40
+ _ts_decorate([
41
+ logInfo
42
+ ], Lock.prototype, "lockKey", null);
43
+ var isLocked = (lockPath) => LockFile.isLocked(lockPath);
44
+ export {
45
+ Lock,
46
+ isLocked
47
+ };
48
+ //# sourceMappingURL=node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/packlets/locks/node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type FileHandle } from 'node:fs/promises';\n\nimport { invariant } from '@dxos/invariant';\nimport { LockFile } from '@dxos/lock-file';\nimport { log, logInfo } from '@dxos/log';\n\nimport { type ResourceLock, type ResourceLockOptions } from './resource-lock';\n\n// TODO(mykola): Factor out.\nexport class Lock implements ResourceLock {\n private readonly _lockPath: string;\n private readonly _onAcquire: ResourceLockOptions['onAcquire'];\n private readonly _onRelease: ResourceLockOptions['onRelease'];\n private _fileHandle?: FileHandle;\n\n constructor({ lockKey: lockPath, onAcquire, onRelease }: ResourceLockOptions) {\n this._lockPath = lockPath;\n this._onAcquire = onAcquire;\n this._onRelease = onRelease;\n }\n\n @logInfo\n get lockKey() {\n return this._lockPath;\n }\n\n async acquire(): Promise<void> {\n log('acquiring lock...');\n this._fileHandle = await LockFile.acquire(this._lockPath);\n\n await this._onAcquire?.();\n\n log('acquired lock');\n }\n\n async release(): Promise<void> {\n await this._onRelease?.();\n invariant(this._fileHandle, 'Lock is not acquired');\n await LockFile.release(this._fileHandle);\n }\n}\n\nexport const isLocked = (lockPath: string) => LockFile.isLocked(lockPath);\n"],
5
+ "mappings": ";;;;AAOA,SAASA,iBAAgB;AACzB,SAASC,gBAAY;AAIrB,SAAA,KAAA,eAA4B;AAZ5B,IAAE,eAAA;;;;;;AAMF;AAQmBC,IAAAA,OAAAA,MAAkB;EAClBC;EACAC;EACTC;EAER;cACOH,EAAAA,SAAYI,UAAAA,WAAAA,UAAAA,GAAAA;AACjB,SAAKH,YAAU;AACf,SAAKC,aAAaG;AACpB,SAAA,aAAA;EAEA;MAEE,UAAO;AACT,WAAA,KAAA;EAEA;QACEN,UAAI;AACJ,QAAI,qBAAe,QAAMD,EAAAA,YAAiB,YAAKE,GAAS,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAExD,SAAA,cAAWC,MAAU,SAAA,QAAA,KAAA,SAAA;AAErBF,UAAI,KAAA,aAAA;AACN,QAAA,iBAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;EAEA;QACE,UAAWG;AACXI,UAAAA,KAAU,aAAKH;AACf,cAAML,KAASS,aAAaJ,wBAAW,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,oBAAA,wBAAA,EAAA,CAAA;AACzC,UAAA,SAAA,QAAA,KAAA,WAAA;EACF;;;;AAEA,GAAA,KAAO,WAAMK,WAAYJ,IAAAA;;",
6
+ "names": ["LockFile", "log", "_lockPath", "_onAcquire", "_onRelease", "_fileHandle", "lockPath", "onRelease", "invariant", "release", "isLocked"]
7
+ }
@@ -6,9 +6,11 @@ import {
6
6
  InvitationsManager,
7
7
  ServiceContext,
8
8
  SpaceInvitationProtocol
9
- } from "../chunk-SKGQLRKS.mjs";
9
+ } from "../chunk-OMK2O7UD.mjs";
10
+ import "../chunk-2DT3MZRL.mjs";
11
+ import "../chunk-2SZHAWBN.mjs";
10
12
 
11
- // packages/sdk/client-services/src/packlets/testing/credential-utils.ts
13
+ // src/packlets/testing/credential-utils.ts
12
14
  import { createCredential } from "@dxos/credentials";
13
15
  import { PublicKey } from "@dxos/keys";
14
16
  var createMockCredential = async ({ signer, issuer }) => createCredential({
@@ -24,16 +26,17 @@ var createMockCredential = async ({ signer, issuer }) => createCredential({
24
26
  }
25
27
  });
26
28
 
27
- // packages/sdk/client-services/src/packlets/testing/invitation-utils.ts
29
+ // src/packlets/testing/invitation-utils.ts
28
30
  import { Trigger } from "@dxos/async";
29
31
  import { InvitationEncoder } from "@dxos/client-protocol";
32
+ import { Context } from "@dxos/context";
30
33
  import { invariant } from "@dxos/invariant";
31
34
  import { Invitation } from "@dxos/protocols/proto/dxos/client/services";
32
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/testing/invitation-utils.ts";
35
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/testing/invitation-utils.ts";
33
36
  var sanitizeInvitation = (invitation) => {
34
37
  return InvitationEncoder.decode(InvitationEncoder.encode(invitation));
35
38
  };
36
- var performInvitation = ({ host, guest, options, hooks, guestDeviceProfile, codeInputDelay }) => {
39
+ var performInvitation = ({ host, guest, guestDeviceProfile, options, hooks, codeInputDelay }) => {
37
40
  let guestError = false;
38
41
  let guestConnected = false;
39
42
  let wereConnected = false;
@@ -63,15 +66,7 @@ var performInvitation = ({ host, guest, options, hooks, guestDeviceProfile, code
63
66
  if (hooks?.guest?.onConnecting?.(guestObservable)) {
64
67
  break;
65
68
  }
66
- invariant(hostInvitation.swarmKey.equals(guestInvitation.swarmKey), void 0, {
67
- F: __dxlog_file,
68
- L: 95,
69
- S: void 0,
70
- A: [
71
- "hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!)",
72
- ""
73
- ]
74
- });
69
+ invariant(hostInvitation.swarmKey.equals(guestInvitation.swarmKey), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 51, S: void 0, A: ["hostInvitation.swarmKey.equals(guestInvitation.swarmKey)", ""] });
75
70
  break;
76
71
  }
77
72
  case Invitation.State.CONNECTED: {
@@ -202,7 +197,7 @@ var createInvitation = async (host, options) => {
202
197
  ...options ?? {}
203
198
  };
204
199
  if (host instanceof ServiceContext) {
205
- return host.invitationsManager.createInvitation({
200
+ return host.invitationsManager.createInvitation(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 194 }), {
206
201
  kind: Invitation.Kind.SPACE,
207
202
  ...options
208
203
  });
@@ -212,7 +207,7 @@ var createInvitation = async (host, options) => {
212
207
  var acceptInvitation = (guest, invitation, guestDeviceProfile) => {
213
208
  invitation = sanitizeInvitation(invitation);
214
209
  if (guest instanceof ServiceContext) {
215
- return guest.invitationsManager.acceptInvitation({
210
+ return guest.invitationsManager.acceptInvitation(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 204 }), {
216
211
  invitation,
217
212
  deviceProfile: guestDeviceProfile
218
213
  });
@@ -220,25 +215,31 @@ var acceptInvitation = (guest, invitation, guestDeviceProfile) => {
220
215
  return guest.join(invitation, guestDeviceProfile);
221
216
  };
222
217
 
223
- // packages/sdk/client-services/src/packlets/testing/test-builder.ts
224
- import { Context } from "@dxos/context";
225
- import { createCredentialSignerWithChain, CredentialGenerator } from "@dxos/credentials";
218
+ // src/packlets/testing/test-builder.ts
219
+ import * as Reactivity from "@effect/experimental/Reactivity";
220
+ import * as Layer from "effect/Layer";
221
+ import * as ManagedRuntime from "effect/ManagedRuntime";
222
+ import { Context as Context2 } from "@dxos/context";
223
+ import { CredentialGenerator, createCredentialSignerWithChain } from "@dxos/credentials";
226
224
  import { failUndefined } from "@dxos/debug";
227
- import { EchoHost, MetadataStore, SpaceManager, valueEncoding, MeshEchoReplicator } from "@dxos/echo-pipeline";
225
+ import { EchoHost, MeshEchoReplicator, MetadataStore, SpaceManager, valueEncoding } from "@dxos/echo-pipeline";
228
226
  import { FeedFactory, FeedStore } from "@dxos/feed-store";
229
227
  import { Keyring } from "@dxos/keyring";
230
228
  import { createTestLevel } from "@dxos/kv-store/testing";
231
229
  import { MemorySignalManager, MemorySignalManagerContext } from "@dxos/messaging";
232
230
  import { MemoryTransportFactory, SwarmNetworkManager } from "@dxos/network-manager";
233
231
  import { Invitation as Invitation2 } from "@dxos/protocols/proto/dxos/client/services";
234
- import { createStorage, StorageType } from "@dxos/random-access-storage";
232
+ import { StorageType, createStorage } from "@dxos/random-access-storage";
233
+ import { layerMemory as sqliteLayerMemory } from "@dxos/sql-sqlite/platform";
234
+ import * as SqlTransaction from "@dxos/sql-sqlite/SqlTransaction";
235
235
  import { BlobStore } from "@dxos/teleport-extension-object-sync";
236
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/testing/test-builder.ts";
236
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/testing/test-builder.ts";
237
237
  var createServiceHost = (config, signalManagerContext) => {
238
238
  return new ClientServicesHost({
239
239
  config,
240
240
  signalManager: new MemorySignalManager(signalManagerContext),
241
- transportFactory: MemoryTransportFactory
241
+ transportFactory: MemoryTransportFactory,
242
+ runtime: ManagedRuntime.make(SqlTransaction.layer.pipe(Layer.provideMerge(sqliteLayerMemory), Layer.provideMerge(Reactivity.layer)).pipe(Layer.orDie)).runtimeEffect
242
243
  });
243
244
  };
244
245
  var createServiceContext = async ({ signalManagerFactory = async () => {
@@ -246,7 +247,7 @@ var createServiceContext = async ({ signalManagerFactory = async () => {
246
247
  return new MemorySignalManager(signalContext);
247
248
  }, storage = createStorage({
248
249
  type: StorageType.RAM
249
- }), runtimeParams } = {}) => {
250
+ }), runtimeProps } = {}) => {
250
251
  const signalManager = await signalManagerFactory();
251
252
  const networkManager = new SwarmNetworkManager({
252
253
  signalManager,
@@ -254,13 +255,14 @@ var createServiceContext = async ({ signalManagerFactory = async () => {
254
255
  });
255
256
  const level = createTestLevel();
256
257
  await level.open();
257
- return new ServiceContext(storage, level, networkManager, signalManager, void 0, void 0, {
258
- invitationConnectionDefaultParams: {
258
+ const runtime = ManagedRuntime.make(SqlTransaction.layer.pipe(Layer.provideMerge(sqliteLayerMemory), Layer.provideMerge(Reactivity.layer)).pipe(Layer.orDie)).runtimeEffect;
259
+ return new ServiceContext(storage, level, networkManager, signalManager, void 0, void 0, runtime, {
260
+ invitationConnectionDefaultProps: {
259
261
  teleport: {
260
262
  controlHeartbeatInterval: 200
261
263
  }
262
264
  },
263
- ...runtimeParams
265
+ ...runtimeProps
264
266
  });
265
267
  };
266
268
  var createPeers = async (numPeers, signalManagerFactory) => {
@@ -272,10 +274,7 @@ var createPeers = async (numPeers, signalManagerFactory) => {
272
274
  const peer = await createServiceContext({
273
275
  signalManagerFactory
274
276
  });
275
- await peer.open(new Context(void 0, {
276
- F: __dxlog_file2,
277
- L: 70
278
- }));
277
+ await peer.open(new Context2(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 67 }));
279
278
  return peer;
280
279
  }));
281
280
  };
@@ -284,13 +283,8 @@ var createIdentity = async (peer) => {
284
283
  return peer;
285
284
  };
286
285
  var TestBuilder = class {
287
- constructor() {
288
- this.signalContext = new MemorySignalManagerContext();
289
- this._ctx = new Context(void 0, {
290
- F: __dxlog_file2,
291
- L: 83
292
- });
293
- }
286
+ signalContext = new MemorySignalManagerContext();
287
+ _ctx = new Context2(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 77 });
294
288
  createPeer(peerOptions) {
295
289
  const peer = new TestPeer(this.signalContext, peerOptions);
296
290
  this._ctx.onDispose(async () => peer.destroy());
@@ -301,12 +295,15 @@ var TestBuilder = class {
301
295
  }
302
296
  };
303
297
  var TestPeer = class {
298
+ _signalContext;
299
+ _opts;
300
+ _props = {};
301
+ _runtime = ManagedRuntime.make(SqlTransaction.layer.pipe(Layer.provideMerge(sqliteLayerMemory), Layer.provideMerge(Reactivity.layer)).pipe(Layer.orDie));
304
302
  constructor(_signalContext, _opts = {
305
303
  dataStore: StorageType.RAM
306
304
  }) {
307
305
  this._signalContext = _signalContext;
308
306
  this._opts = _opts;
309
- this._props = {};
310
307
  }
311
308
  get props() {
312
309
  return this._props;
@@ -358,7 +355,8 @@ var TestPeer = class {
358
355
  }
359
356
  get echoHost() {
360
357
  return this._props.echoHost ??= new EchoHost({
361
- kv: this.level
358
+ kv: this.level,
359
+ runtime: this._runtime.runtimeEffect
362
360
  });
363
361
  }
364
362
  get meshEchoReplicator() {
@@ -376,7 +374,7 @@ var TestPeer = class {
376
374
  edgeConnection: void 0,
377
375
  meshReplicator: this.meshEchoReplicator,
378
376
  echoEdgeReplicator: void 0,
379
- runtimeParams: this._opts.dataSpaceParams
377
+ runtimeProps: this._opts.dataSpaceProps
380
378
  });
381
379
  }
382
380
  get invitationsManager() {
@@ -398,6 +396,7 @@ var TestPeer = class {
398
396
  async destroy() {
399
397
  await this.level.close();
400
398
  await this.storage.reset();
399
+ await this._runtime.dispose();
401
400
  }
402
401
  };
403
402
  var createSigningContext = async (keyring) => {