@dxos/client-services 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef

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 (163) hide show
  1. package/dist/lib/browser/{chunk-CK3KJB3B.mjs → chunk-KW4WMU5R.mjs} +1310 -3084
  2. package/dist/lib/browser/chunk-KW4WMU5R.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-NQSC7HOE.mjs → chunk-XJRPB3GA.mjs} +1 -1
  4. package/dist/lib/browser/index.mjs +100 -197
  5. package/dist/lib/browser/index.mjs.map +3 -3
  6. package/dist/lib/browser/meta.json +1 -1
  7. package/dist/lib/browser/packlets/diagnostics/browser-diagnostics-broadcast.mjs +1 -6
  8. package/dist/lib/browser/packlets/diagnostics/browser-diagnostics-broadcast.mjs.map +2 -2
  9. package/dist/lib/browser/packlets/diagnostics/diagnostics-broadcast.mjs +1 -1
  10. package/dist/lib/browser/packlets/locks/browser.mjs +9 -49
  11. package/dist/lib/browser/packlets/locks/browser.mjs.map +2 -2
  12. package/dist/lib/browser/packlets/locks/node.mjs +4 -22
  13. package/dist/lib/browser/packlets/locks/node.mjs.map +2 -2
  14. package/dist/lib/browser/testing/index.mjs +7 -27
  15. package/dist/lib/browser/testing/index.mjs.map +2 -2
  16. package/dist/lib/node-esm/{chunk-PKEGMOQ4.mjs → chunk-2DT3MZRL.mjs} +1 -1
  17. package/dist/lib/node-esm/{chunk-WHBWCIEN.mjs → chunk-NDMKP2CH.mjs} +1310 -3084
  18. package/dist/lib/node-esm/chunk-NDMKP2CH.mjs.map +7 -0
  19. package/dist/lib/node-esm/index.mjs +100 -197
  20. package/dist/lib/node-esm/index.mjs.map +3 -3
  21. package/dist/lib/node-esm/meta.json +1 -1
  22. package/dist/lib/node-esm/packlets/diagnostics/browser-diagnostics-broadcast.mjs +1 -6
  23. package/dist/lib/node-esm/packlets/diagnostics/browser-diagnostics-broadcast.mjs.map +2 -2
  24. package/dist/lib/node-esm/packlets/diagnostics/diagnostics-broadcast.mjs +1 -1
  25. package/dist/lib/node-esm/packlets/locks/browser.mjs +9 -49
  26. package/dist/lib/node-esm/packlets/locks/browser.mjs.map +2 -2
  27. package/dist/lib/node-esm/packlets/locks/node.mjs +4 -22
  28. package/dist/lib/node-esm/packlets/locks/node.mjs.map +2 -2
  29. package/dist/lib/node-esm/testing/index.mjs +7 -27
  30. package/dist/lib/node-esm/testing/index.mjs.map +2 -2
  31. package/dist/types/src/packlets/agents/edge-agent-manager.d.ts.map +1 -1
  32. package/dist/types/src/packlets/agents/edge-agent-service.d.ts +2 -1
  33. package/dist/types/src/packlets/agents/edge-agent-service.d.ts.map +1 -1
  34. package/dist/types/src/packlets/devices/devices-service.d.ts.map +1 -1
  35. package/dist/types/src/packlets/devtools/devtools.d.ts.map +1 -1
  36. package/dist/types/src/packlets/devtools/feeds.d.ts.map +1 -1
  37. package/dist/types/src/packlets/devtools/keys.d.ts.map +1 -1
  38. package/dist/types/src/packlets/devtools/metadata.d.ts.map +1 -1
  39. package/dist/types/src/packlets/devtools/network.d.ts.map +1 -1
  40. package/dist/types/src/packlets/devtools/spaces.d.ts.map +1 -1
  41. package/dist/types/src/packlets/diagnostics/browser-diagnostics-broadcast.d.ts.map +1 -1
  42. package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -1
  43. package/dist/types/src/packlets/diagnostics/diagnostics-collector.d.ts.map +1 -1
  44. package/dist/types/src/packlets/diagnostics/diagnostics.d.ts +2 -3
  45. package/dist/types/src/packlets/diagnostics/diagnostics.d.ts.map +1 -1
  46. package/dist/types/src/packlets/identity/authenticator.d.ts.map +1 -1
  47. package/dist/types/src/packlets/identity/contacts-service.d.ts.map +1 -1
  48. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  49. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts +2 -2
  50. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts.map +1 -1
  51. package/dist/types/src/packlets/identity/identity-service.d.ts +6 -5
  52. package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
  53. package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
  54. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts +2 -1
  55. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts.map +1 -1
  56. package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts +1 -1
  57. package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts.map +1 -1
  58. package/dist/types/src/packlets/invitations/invitation-guest-extenstion.d.ts.map +1 -1
  59. package/dist/types/src/packlets/invitations/invitation-host-extension.d.ts.map +1 -1
  60. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts +5 -1
  61. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts.map +1 -1
  62. package/dist/types/src/packlets/invitations/invitation-state.d.ts.map +1 -1
  63. package/dist/types/src/packlets/invitations/invitation-topology.d.ts.map +1 -1
  64. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  65. package/dist/types/src/packlets/invitations/invitations-manager.d.ts +1 -1
  66. package/dist/types/src/packlets/invitations/invitations-manager.d.ts.map +1 -1
  67. package/dist/types/src/packlets/invitations/invitations-service.d.ts +3 -3
  68. package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
  69. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts +2 -1
  70. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
  71. package/dist/types/src/packlets/invitations/utils.d.ts.map +1 -1
  72. package/dist/types/src/packlets/locks/browser.d.ts.map +1 -1
  73. package/dist/types/src/packlets/locks/node.d.ts.map +1 -1
  74. package/dist/types/src/packlets/logging/logging-service.d.ts.map +1 -1
  75. package/dist/types/src/packlets/network/network-service.d.ts +5 -4
  76. package/dist/types/src/packlets/network/network-service.d.ts.map +1 -1
  77. package/dist/types/src/packlets/services/client-rpc-server.d.ts +3 -3
  78. package/dist/types/src/packlets/services/client-rpc-server.d.ts.map +1 -1
  79. package/dist/types/src/packlets/services/feed-syncer.d.ts +1 -1
  80. package/dist/types/src/packlets/services/feed-syncer.d.ts.map +1 -1
  81. package/dist/types/src/packlets/services/service-context.d.ts +1 -2
  82. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  83. package/dist/types/src/packlets/services/service-host.d.ts +1 -2
  84. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  85. package/dist/types/src/packlets/services/service-registry.d.ts.map +1 -1
  86. package/dist/types/src/packlets/services/util.d.ts.map +1 -1
  87. package/dist/types/src/packlets/space-export/archive-format.d.ts +9 -0
  88. package/dist/types/src/packlets/space-export/archive-format.d.ts.map +1 -0
  89. package/dist/types/src/packlets/space-export/index.d.ts +4 -1
  90. package/dist/types/src/packlets/space-export/index.d.ts.map +1 -1
  91. package/dist/types/src/packlets/space-export/serialized-space-reader.d.ts +23 -0
  92. package/dist/types/src/packlets/space-export/serialized-space-reader.d.ts.map +1 -0
  93. package/dist/types/src/packlets/space-export/serialized-space-writer.d.ts +36 -0
  94. package/dist/types/src/packlets/space-export/serialized-space-writer.d.ts.map +1 -0
  95. package/dist/types/src/packlets/space-export/space-archive-reader.d.ts.map +1 -1
  96. package/dist/types/src/packlets/space-export/space-archive-writer.d.ts +1 -1
  97. package/dist/types/src/packlets/space-export/space-archive-writer.d.ts.map +1 -1
  98. package/dist/types/src/packlets/spaces/automerge-space-state.d.ts.map +1 -1
  99. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +1 -2
  100. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  101. package/dist/types/src/packlets/spaces/data-space.d.ts +2 -1
  102. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  103. package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts.map +1 -1
  104. package/dist/types/src/packlets/spaces/epoch-migrations.d.ts.map +1 -1
  105. package/dist/types/src/packlets/spaces/genesis.d.ts.map +1 -1
  106. package/dist/types/src/packlets/spaces/notarization-plugin.d.ts +1 -4
  107. package/dist/types/src/packlets/spaces/notarization-plugin.d.ts.map +1 -1
  108. package/dist/types/src/packlets/spaces/spaces-service.d.ts +9 -6
  109. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  110. package/dist/types/src/packlets/storage/level.d.ts.map +1 -1
  111. package/dist/types/src/packlets/storage/profile-archive.d.ts.map +1 -1
  112. package/dist/types/src/packlets/storage/storage.d.ts.map +1 -1
  113. package/dist/types/src/packlets/storage/util.d.ts.map +1 -1
  114. package/dist/types/src/packlets/system/system-service.d.ts +1 -1
  115. package/dist/types/src/packlets/system/system-service.d.ts.map +1 -1
  116. package/dist/types/src/packlets/testing/credential-utils.d.ts.map +1 -1
  117. package/dist/types/src/packlets/testing/invitation-utils.d.ts.map +1 -1
  118. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  119. package/dist/types/src/packlets/worker/worker-runtime.d.ts +11 -1
  120. package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
  121. package/dist/types/src/packlets/worker/worker-session.d.ts +0 -2
  122. package/dist/types/src/packlets/worker/worker-session.d.ts.map +1 -1
  123. package/dist/types/src/testing/setup.d.ts.map +1 -1
  124. package/dist/types/src/version.d.ts +1 -1
  125. package/dist/types/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +39 -46
  127. package/src/packlets/agents/edge-agent-service.ts +3 -2
  128. package/src/packlets/diagnostics/diagnostics.ts +1 -2
  129. package/src/packlets/identity/identity-manager.ts +2 -4
  130. package/src/packlets/identity/identity-service.ts +12 -9
  131. package/src/packlets/identity/identity.ts +2 -2
  132. package/src/packlets/invitations/device-invitation-protocol.ts +3 -1
  133. package/src/packlets/invitations/edge-invitation-handler.ts +5 -2
  134. package/src/packlets/invitations/invitation-host-extension.ts +7 -10
  135. package/src/packlets/invitations/invitation-protocol.ts +5 -1
  136. package/src/packlets/invitations/invitation-state.ts +1 -15
  137. package/src/packlets/invitations/invitations-handler.ts +64 -12
  138. package/src/packlets/invitations/invitations-manager.ts +6 -4
  139. package/src/packlets/invitations/invitations-service.ts +6 -6
  140. package/src/packlets/invitations/space-invitation-protocol.ts +3 -3
  141. package/src/packlets/logging/logging-service.ts +15 -15
  142. package/src/packlets/network/network-service.ts +9 -8
  143. package/src/packlets/services/client-rpc-server.ts +15 -12
  144. package/src/packlets/services/service-context.ts +12 -15
  145. package/src/packlets/services/service-host.ts +8 -19
  146. package/src/packlets/space-export/archive-format.ts +42 -0
  147. package/src/packlets/space-export/index.ts +4 -1
  148. package/src/packlets/space-export/serialized-space-reader.ts +111 -0
  149. package/src/packlets/space-export/serialized-space-writer.ts +253 -0
  150. package/src/packlets/space-export/space-archive-writer.ts +2 -1
  151. package/src/packlets/space-export/space-archive.test.ts +175 -1
  152. package/src/packlets/spaces/data-space-manager.ts +17 -19
  153. package/src/packlets/spaces/data-space.ts +9 -7
  154. package/src/packlets/spaces/edge-feed-replicator.ts +1 -0
  155. package/src/packlets/spaces/spaces-service.test.ts +9 -4
  156. package/src/packlets/spaces/spaces-service.ts +91 -16
  157. package/src/packlets/worker/worker-runtime.ts +38 -4
  158. package/src/packlets/worker/worker-session.ts +4 -10
  159. package/src/version.ts +1 -1
  160. package/dist/lib/browser/chunk-CK3KJB3B.mjs.map +0 -7
  161. package/dist/lib/node-esm/chunk-WHBWCIEN.mjs.map +0 -7
  162. /package/dist/lib/browser/{chunk-NQSC7HOE.mjs.map → chunk-XJRPB3GA.mjs.map} +0 -0
  163. /package/dist/lib/node-esm/{chunk-PKEGMOQ4.mjs.map → chunk-2DT3MZRL.mjs.map} +0 -0
@@ -19,4 +19,4 @@ export {
19
19
  createCollectDiagnosticsBroadcastSender,
20
20
  createCollectDiagnosticsBroadcastHandler
21
21
  };
22
- //# sourceMappingURL=chunk-NQSC7HOE.mjs.map
22
+ //# sourceMappingURL=chunk-XJRPB3GA.mjs.map
@@ -22,24 +22,31 @@ import {
22
22
  SpaceInvitationProtocol,
23
23
  SpacesServiceImpl,
24
24
  TrustedKeySetAuthVerifier,
25
+ buildDatabaseDirectoryFromObjects,
25
26
  createAdmissionKeypair,
26
27
  createAuthProvider,
27
28
  createDiagnostics,
28
29
  createLevel,
29
30
  createStorageObjects,
31
+ detectSpaceArchiveFormat,
30
32
  diagnostics_exports,
31
33
  extractSpaceArchive,
32
34
  getNetworkPeers,
33
35
  locks_exports,
36
+ objJsonToObjectStructure,
37
+ objectStructureToObjJson,
38
+ orderObjJsonFields,
39
+ readSerializedSpaceArchive,
34
40
  subscribeToFeedBlocks,
35
41
  subscribeToFeeds,
36
42
  subscribeToNetworkStatus,
37
43
  subscribeToNetworkTopics,
38
44
  subscribeToSignal,
39
45
  subscribeToSpaces,
40
- subscribeToSwarmInfo
41
- } from "./chunk-CK3KJB3B.mjs";
42
- import "./chunk-NQSC7HOE.mjs";
46
+ subscribeToSwarmInfo,
47
+ writeSerializedSpaceArchive
48
+ } from "./chunk-KW4WMU5R.mjs";
49
+ import "./chunk-XJRPB3GA.mjs";
43
50
  import {
44
51
  __export,
45
52
  __reExport
@@ -73,24 +80,31 @@ __export(index_exports, {
73
80
  TrustedKeySetAuthVerifier: () => TrustedKeySetAuthVerifier,
74
81
  WorkerRuntime: () => WorkerRuntime,
75
82
  WorkerSession: () => WorkerSession,
83
+ buildDatabaseDirectoryFromObjects: () => buildDatabaseDirectoryFromObjects,
76
84
  createAdmissionKeypair: () => createAdmissionKeypair,
77
85
  createAuthProvider: () => createAuthProvider,
78
86
  createDiagnostics: () => createDiagnostics,
79
87
  createLevel: () => createLevel,
80
88
  createStorageObjects: () => createStorageObjects,
81
89
  decodeProfileArchive: () => decodeProfileArchive,
90
+ detectSpaceArchiveFormat: () => detectSpaceArchiveFormat,
82
91
  encodeProfileArchive: () => encodeProfileArchive,
83
92
  exportProfileData: () => exportProfileData,
84
93
  extractSpaceArchive: () => extractSpaceArchive,
85
94
  getNetworkPeers: () => getNetworkPeers,
86
95
  importProfileData: () => importProfileData,
96
+ objJsonToObjectStructure: () => objJsonToObjectStructure,
97
+ objectStructureToObjJson: () => objectStructureToObjJson,
98
+ orderObjJsonFields: () => orderObjJsonFields,
99
+ readSerializedSpaceArchive: () => readSerializedSpaceArchive,
87
100
  subscribeToFeedBlocks: () => subscribeToFeedBlocks,
88
101
  subscribeToFeeds: () => subscribeToFeeds,
89
102
  subscribeToNetworkStatus: () => subscribeToNetworkStatus,
90
103
  subscribeToNetworkTopics: () => subscribeToNetworkTopics,
91
104
  subscribeToSignal: () => subscribeToSignal,
92
105
  subscribeToSpaces: () => subscribeToSpaces,
93
- subscribeToSwarmInfo: () => subscribeToSwarmInfo
106
+ subscribeToSwarmInfo: () => subscribeToSwarmInfo,
107
+ writeSerializedSpaceArchive: () => writeSerializedSpaceArchive
94
108
  });
95
109
  __reExport(index_exports, diagnostics_exports);
96
110
  __reExport(index_exports, locks_exports);
@@ -123,27 +137,27 @@ var ClientRpcServer = class {
123
137
  this._serviceRegistry = serviceRegistry;
124
138
  this._rpcPeer = new RpcPeer({
125
139
  ...rpcOptions,
126
- callHandler: (method, params2) => {
140
+ callHandler: (method, params2, options) => {
127
141
  const [serviceName, methodName] = parseMethodName(method);
128
- const handler = (method2, params3) => this._getServiceHandler(serviceName).call(method2, params3);
142
+ const handler = (method2, params3, handlerOptions) => this._getServiceHandler(serviceName).call(method2, params3, handlerOptions);
129
143
  this._callMetrics.inc(`${serviceName}.${methodName} request`);
130
144
  if (this._handleCall) {
131
- return this._handleCall(methodName, params2, handler);
145
+ return this._handleCall(methodName, params2, handler, options);
132
146
  } else {
133
- return handler(methodName, params2);
147
+ return handler(methodName, params2, options);
134
148
  }
135
149
  },
136
- streamHandler: (method, params2) => {
150
+ streamHandler: (method, params2, options) => {
137
151
  const [serviceName, methodName] = parseMethodName(method);
138
- const handler = (method2, params3) => this._getServiceHandler(serviceName).callStream(method2, params3);
152
+ const handler = (method2, params3, handlerOptions) => this._getServiceHandler(serviceName).callStream(method2, params3, handlerOptions);
139
153
  this._callMetrics.inc(`${serviceName}.${methodName} request stream`);
140
154
  if (this._handleStream) {
141
- return Stream.map(Stream.unwrapPromise(this._handleStream(methodName, params2, handler)), (data) => {
155
+ return Stream.map(Stream.unwrapPromise(this._handleStream(methodName, params2, handler, options)), (data) => {
142
156
  this._callMetrics.inc(`${serviceName}.${methodName} response stream`);
143
157
  return data;
144
158
  });
145
159
  } else {
146
- return handler(methodName, params2);
160
+ return handler(methodName, params2, options);
147
161
  }
148
162
  }
149
163
  });
@@ -197,12 +211,7 @@ var exportProfileData = async ({ storage, level }) => {
197
211
  const files = await directory.list();
198
212
  log.info("begin exporting files", {
199
213
  count: files.length
200
- }, {
201
- F: __dxlog_file,
202
- L: 31,
203
- S: void 0,
204
- C: (f, a) => f(...a)
205
- });
214
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 21, S: void 0 });
206
215
  for (const filename of files) {
207
216
  const file = await directory.getOrCreateFile(filename);
208
217
  const { size } = await file.stat();
@@ -215,20 +224,10 @@ var exportProfileData = async ({ storage, level }) => {
215
224
  }
216
225
  log.info("done exporting files", {
217
226
  count: files.length
218
- }, {
219
- F: __dxlog_file,
220
- L: 42,
221
- S: void 0,
222
- C: (f, a) => f(...a)
223
- });
227
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 34, S: void 0 });
224
228
  }
225
229
  {
226
- log.info("begin exporting kv pairs", void 0, {
227
- F: __dxlog_file,
228
- L: 46,
229
- S: void 0,
230
- C: (f, a) => f(...a)
231
- });
230
+ log.info("begin exporting kv pairs", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 39, S: void 0 });
232
231
  const iter = await level.iterator({
233
232
  keyEncoding: "binary",
234
233
  valueEncoding: "binary"
@@ -244,12 +243,7 @@ var exportProfileData = async ({ storage, level }) => {
244
243
  }
245
244
  log.info("done exporting kv pairs", {
246
245
  count
247
- }, {
248
- F: __dxlog_file,
249
- L: 57,
250
- S: void 0,
251
- C: (f, a) => f(...a)
252
- });
246
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 53, S: void 0 });
253
247
  }
254
248
  return archive;
255
249
  };
@@ -260,48 +254,16 @@ var importProfileData = async ({ storage, level }, archive) => {
260
254
  switch (entry.type) {
261
255
  case ProfileArchiveEntryType.FILE: {
262
256
  const directory = await storage.createDirectory();
263
- invariant(typeof entry.key === "string", "Invalid key type", {
264
- F: __dxlog_file,
265
- L: 80,
266
- S: void 0,
267
- A: [
268
- "typeof entry.key === 'string'",
269
- "'Invalid key type'"
270
- ]
271
- });
257
+ invariant(typeof entry.key === "string", "Invalid key type", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 67, S: void 0, A: ["typeof entry.key === 'string'", "'Invalid key type'"] });
272
258
  const file = await directory.getOrCreateFile(entry.key);
273
- invariant(entry.value instanceof Uint8Array, "Invalid value type", {
274
- F: __dxlog_file,
275
- L: 82,
276
- S: void 0,
277
- A: [
278
- "entry.value instanceof Uint8Array",
279
- "'Invalid value type'"
280
- ]
281
- });
259
+ invariant(entry.value instanceof Uint8Array, "Invalid value type", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 69, S: void 0, A: ["entry.value instanceof Uint8Array", "'Invalid value type'"] });
282
260
  await file.write(0, arrayToBuffer(entry.value));
283
261
  await file.close();
284
262
  break;
285
263
  }
286
264
  case ProfileArchiveEntryType.KEY_VALUE: {
287
- invariant(entry.key instanceof Uint8Array, "Invalid key type", {
288
- F: __dxlog_file,
289
- L: 88,
290
- S: void 0,
291
- A: [
292
- "entry.key instanceof Uint8Array",
293
- "'Invalid key type'"
294
- ]
295
- });
296
- invariant(entry.value instanceof Uint8Array, "Invalid value type", {
297
- F: __dxlog_file,
298
- L: 89,
299
- S: void 0,
300
- A: [
301
- "entry.value instanceof Uint8Array",
302
- "'Invalid value type'"
303
- ]
304
- });
265
+ invariant(entry.key instanceof Uint8Array, "Invalid key type", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 76, S: void 0, A: ["entry.key instanceof Uint8Array", "'Invalid key type'"] });
266
+ invariant(entry.value instanceof Uint8Array, "Invalid value type", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 77, S: void 0, A: ["entry.value instanceof Uint8Array", "'Invalid value type'"] });
305
267
  batch.put(entry.key, entry.value, {
306
268
  keyEncoding: "binary",
307
269
  valueEncoding: "binary"
@@ -318,20 +280,10 @@ var importProfileData = async ({ storage, level }, archive) => {
318
280
  count,
319
281
  total: archive.storage.length,
320
282
  progress: `${(count / archive.storage.length * 100).toFixed()}%`
321
- }, {
322
- F: __dxlog_file,
323
- L: 102,
324
- S: void 0,
325
- C: (f, a) => f(...a)
326
- });
283
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 91, S: void 0 });
327
284
  }
328
285
  }
329
- log.info("committing changes..", void 0, {
330
- F: __dxlog_file,
331
- L: 110,
332
- S: void 0,
333
- C: (f, a) => f(...a)
334
- });
286
+ log.info("committing changes..", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 98, S: void 0 });
335
287
  await batch.write();
336
288
  };
337
289
 
@@ -359,13 +311,13 @@ import { invariant as invariant2 } from "@dxos/invariant";
359
311
  import { log as log2, logInfo } from "@dxos/log";
360
312
  import { createProtoRpcPeer } from "@dxos/rpc";
361
313
  import { Callback } from "@dxos/util";
314
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/worker/worker-session.ts";
362
315
  function _ts_decorate2(decorators, target, key, desc) {
363
316
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
364
317
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
365
318
  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;
366
319
  return c > 3 && r && Object.defineProperty(target, key, r), r;
367
320
  }
368
- var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/worker/worker-session.ts";
369
321
  var WorkerSession = class {
370
322
  _clientRpc;
371
323
  _shellClientRpc;
@@ -374,40 +326,29 @@ var WorkerSession = class {
374
326
  _serviceHost;
375
327
  onClose = new Callback();
376
328
  origin;
377
- // TODO(nf): factor out?
378
- observabilityGroup;
379
- signalTelemetryEnabled;
380
329
  lockKey;
381
330
  bridgeService;
382
331
  constructor({ serviceHost, systemPort, appPort, shellPort, readySignal }) {
383
- invariant2(serviceHost, void 0, {
384
- F: __dxlog_file2,
385
- L: 54,
386
- S: this,
387
- A: [
388
- "serviceHost",
389
- ""
390
- ]
391
- });
332
+ invariant2(serviceHost, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 30, S: this, A: ["serviceHost", ""] });
392
333
  this._serviceHost = serviceHost;
393
334
  const middleware = {
394
- handleCall: async (method, params, handler) => {
335
+ handleCall: async (method, params, handler, options) => {
395
336
  const error = await readySignal.wait({
396
337
  timeout: PROXY_CONNECTION_TIMEOUT
397
338
  });
398
339
  if (error) {
399
340
  throw error;
400
341
  }
401
- return handler(method, params);
342
+ return handler(method, params, options);
402
343
  },
403
- handleStream: async (method, params, handler) => {
344
+ handleStream: async (method, params, handler, options) => {
404
345
  const error = await readySignal.wait({
405
346
  timeout: PROXY_CONNECTION_TIMEOUT
406
347
  });
407
348
  if (error) {
408
349
  throw error;
409
350
  }
410
- return handler(method, params);
351
+ return handler(method, params, options);
411
352
  }
412
353
  };
413
354
  this._clientRpc = new ClientRpcServer({
@@ -428,8 +369,6 @@ var WorkerSession = class {
428
369
  start: async (request) => {
429
370
  this.origin = request.origin;
430
371
  this.lockKey = request.lockKey;
431
- this.observabilityGroup = request.observabilityGroup;
432
- this.signalTelemetryEnabled = request.signalTelemetryEnabled;
433
372
  this._startTrigger.wake();
434
373
  },
435
374
  stop: async () => {
@@ -437,12 +376,7 @@ var WorkerSession = class {
437
376
  try {
438
377
  await this.close();
439
378
  } catch (err) {
440
- log2.catch(err, void 0, {
441
- F: __dxlog_file2,
442
- L: 108,
443
- S: this,
444
- C: (f, a) => f(...a)
445
- });
379
+ log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 77, S: this });
446
380
  }
447
381
  });
448
382
  }
@@ -454,12 +388,7 @@ var WorkerSession = class {
454
388
  this.bridgeService = this._iframeRpc.rpc.BridgeService;
455
389
  }
456
390
  async open() {
457
- log2("opening...", void 0, {
458
- F: __dxlog_file2,
459
- L: 122,
460
- S: this,
461
- C: (f, a) => f(...a)
462
- });
391
+ log2("opening...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 89, S: this });
463
392
  await Promise.all([
464
393
  this._clientRpc.open(),
465
394
  this._iframeRpc.open(),
@@ -471,51 +400,26 @@ var WorkerSession = class {
471
400
  if (this.lockKey) {
472
401
  void this._afterLockReleases(this.lockKey, () => this.close());
473
402
  }
474
- log2("opened", void 0, {
475
- F: __dxlog_file2,
476
- L: 133,
477
- S: this,
478
- C: (f, a) => f(...a)
479
- });
403
+ log2("opened", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 103, S: this });
480
404
  }
481
405
  async close() {
482
- log2.debug("closing...", void 0, {
483
- F: __dxlog_file2,
484
- L: 137,
485
- S: this,
486
- C: (f, a) => f(...a)
487
- });
406
+ log2.debug("closing...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 106, S: this });
488
407
  try {
489
408
  await this.onClose.callIfSet();
490
409
  } catch (err) {
491
- log2.catch(err, void 0, {
492
- F: __dxlog_file2,
493
- L: 141,
494
- S: this,
495
- C: (f, a) => f(...a)
496
- });
410
+ log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 110, S: this });
497
411
  }
498
412
  await Promise.all([
499
413
  this._clientRpc.close(),
500
414
  this._iframeRpc.close()
501
415
  ]);
502
- log2.debug("closed", void 0, {
503
- F: __dxlog_file2,
504
- L: 145,
505
- S: this,
506
- C: (f, a) => f(...a)
507
- });
416
+ log2.debug("closed", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 116, S: this });
508
417
  }
509
418
  async _maybeOpenShell() {
510
419
  try {
511
420
  this._shellClientRpc && await asyncTimeout(this._shellClientRpc.open(), 1e3);
512
421
  } catch {
513
- log2.info("No shell connected.", void 0, {
514
- F: __dxlog_file2,
515
- L: 152,
516
- S: this,
517
- C: (f, a) => f(...a)
518
- });
422
+ log2.info("No shell connected.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 122, S: this });
519
423
  }
520
424
  }
521
425
  _afterLockReleases(lockKey, callback) {
@@ -559,12 +463,7 @@ var WorkerRuntime = class {
559
463
  this._onStop = onStop;
560
464
  this._channel = channel;
561
465
  if (sqliteLayer) {
562
- log3.warn("Using testing SQLite layer", void 0, {
563
- F: __dxlog_file3,
564
- L: 102,
565
- S: this,
566
- C: (f, a) => f(...a)
567
- });
466
+ log3.warn("Using testing SQLite layer", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 52, S: this });
568
467
  }
569
468
  this._runtime = ManagedRuntime.make(SqlTransaction.layer.pipe(Layer.provideMerge(sqliteLayer ?? LocalSqliteOpfsLayer), Layer.provideMerge(Reactivity.layer)).pipe(Layer.orDie));
570
469
  this._clientServices = new ClientServicesHost({
@@ -586,42 +485,43 @@ var WorkerRuntime = class {
586
485
  return this._livenessLock.key;
587
486
  }
588
487
  async start() {
589
- log3("starting...", void 0, {
590
- F: __dxlog_file3,
591
- L: 131,
592
- S: this,
593
- C: (f, a) => f(...a)
594
- });
488
+ log3("starting...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 74, S: this });
595
489
  try {
490
+ log3("worker-runtime: acquiring liveness lock (background)", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 76, S: this });
596
491
  void this._livenessLock.acquire();
492
+ log3("worker-runtime: broadcasting stop to displace previous worker", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 79, S: this });
597
493
  this._broadcastChannel = new BroadcastChannel(this._channel);
598
494
  this._broadcastChannel.postMessage({
599
495
  action: "stop"
600
496
  });
601
497
  this._broadcastChannel.onmessage = async (event) => {
602
498
  if (event.data?.action === "stop") {
499
+ log3("worker-runtime: received stop broadcast", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 86, S: this });
603
500
  await this.stop();
604
501
  }
605
502
  };
503
+ log3("worker-runtime: acquiring storage lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 90, S: this });
606
504
  await this._acquireLock();
505
+ log3("worker-runtime: storage lock acquired, resolving config", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 92, S: this });
607
506
  this._config = await this._configProvider();
507
+ log3("worker-runtime: config resolved", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 94, S: this });
508
+ this._signalTelemetryEnabled = this._config.get("runtime.client.signalTelemetryEnabled") ?? false;
509
+ const observabilityGroup = this._config.get("runtime.client.observabilityGroup");
510
+ if (observabilityGroup) {
511
+ this._signalMetadataTags.group = observabilityGroup;
512
+ }
608
513
  const signals = this._config.get("runtime.services.signaling");
514
+ log3("worker-runtime: initializing client services host", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 101, S: this });
609
515
  this._clientServices.initialize({
610
516
  config: this._config,
611
517
  signalManager: this._config.get("runtime.client.edgeFeatures")?.signaling ? void 0 : signals ? new WebsocketSignalManager(signals, () => this._signalTelemetryEnabled ? this._signalMetadataTags : {}) : new MemorySignalManager(new MemorySignalManagerContext()),
612
518
  transportFactory: this._transportFactory
613
519
  });
614
- await this._clientServices.open(new Context(void 0, {
615
- F: __dxlog_file3,
616
- L: 157
617
- }));
520
+ log3("worker-runtime: client services host initialized, opening", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 107, S: this });
521
+ await this._clientServices.open(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 108 }));
522
+ log3("worker-runtime: client services host opened, signalling ready", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 109, S: this });
618
523
  this._ready.wake(void 0);
619
- log3("started", void 0, {
620
- F: __dxlog_file3,
621
- L: 159,
622
- S: this,
623
- C: (f, a) => f(...a)
624
- });
524
+ log3("started", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 111, S: this });
625
525
  setIdentityTags({
626
526
  identityService: this._clientServices.services.IdentityService,
627
527
  devicesService: this._clientServices.services.DevicesService,
@@ -631,27 +531,40 @@ var WorkerRuntime = class {
631
531
  });
632
532
  } catch (err) {
633
533
  this._ready.wake(err);
634
- log3.error("starting", err, {
635
- F: __dxlog_file3,
636
- L: 169,
637
- S: this,
638
- C: (f, a) => f(...a)
639
- });
534
+ log3.error("starting", err, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 121, S: this });
640
535
  }
641
536
  }
642
537
  async stop() {
643
538
  this._releaseLock();
644
539
  this._broadcastChannel?.close();
645
540
  this._broadcastChannel = void 0;
646
- await this._clientServices.close(Context.default(void 0, {
647
- F: __dxlog_file3,
648
- L: 178
649
- }));
541
+ await this._clientServices.close(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 129 }));
650
542
  await this._runtime.dispose();
651
543
  await this._onStop?.();
652
544
  await this._livenessLock.release();
653
545
  }
654
546
  /**
547
+ * Update signaling telemetry tags from a client-supplied config overlay.
548
+ *
549
+ * The worker services outlive individual client connections, so the first client seeds the
550
+ * worker's core config (storage, signaling, edge features). For fields that can legitimately
551
+ * differ per tab — `observabilityGroup` and `signalTelemetryEnabled` — this method lets later
552
+ * connections refresh the signal metadata the worker attaches to its signaling requests
553
+ * (last-writer-wins, matching the pre-DX-930 per-session RPC behaviour).
554
+ */
555
+ updateSignalMetadata(config) {
556
+ const observabilityGroup = config.get("runtime.client.observabilityGroup");
557
+ if (observabilityGroup) {
558
+ this._signalMetadataTags.group = observabilityGroup;
559
+ } else {
560
+ delete this._signalMetadataTags.group;
561
+ }
562
+ const signalTelemetryEnabled = config.get("runtime.client.signalTelemetryEnabled");
563
+ if (signalTelemetryEnabled !== void 0) {
564
+ this._signalTelemetryEnabled = signalTelemetryEnabled;
565
+ }
566
+ }
567
+ /**
655
568
  * Create a new session.
656
569
  */
657
570
  async createSession({ appPort, systemPort, shellPort, onClose }) {
@@ -674,19 +587,7 @@ var WorkerRuntime = class {
674
587
  await onClose?.();
675
588
  });
676
589
  await session.open();
677
- invariant3(!this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin, `worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`, {
678
- F: __dxlog_file3,
679
- L: 212,
680
- S: this,
681
- A: [
682
- "!this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin",
683
- "`worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`"
684
- ]
685
- });
686
- if (session.observabilityGroup) {
687
- this._signalMetadataTags.group = session.observabilityGroup;
688
- }
689
- this._signalTelemetryEnabled = session.signalTelemetryEnabled ?? false;
590
+ invariant3(!this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin, `worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 181, S: this, A: ["!this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin", "`worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`"] });
690
591
  this._signalMetadataTags.origin = session.origin;
691
592
  this._sessions.add(session);
692
593
  if (this._automaticallyConnectWebrtc) {
@@ -710,12 +611,7 @@ var WorkerRuntime = class {
710
611
  * Selects one of the existing session for WebRTC networking.
711
612
  */
712
613
  _reconnectWebrtc() {
713
- log3("reconnecting webrtc...", void 0, {
714
- F: __dxlog_file3,
715
- L: 247,
716
- S: this,
717
- C: (f, a) => f(...a)
718
- });
614
+ log3("reconnecting webrtc...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 203, S: this });
719
615
  if (this._sessionForNetworking) {
720
616
  if (!this._sessions.has(this._sessionForNetworking)) {
721
617
  this._sessionForNetworking = void 0;
@@ -801,23 +697,30 @@ export {
801
697
  TrustedKeySetAuthVerifier,
802
698
  WorkerRuntime,
803
699
  WorkerSession,
700
+ buildDatabaseDirectoryFromObjects,
804
701
  createAdmissionKeypair,
805
702
  createAuthProvider,
806
703
  createDiagnostics,
807
704
  createLevel,
808
705
  createStorageObjects,
809
706
  decodeProfileArchive,
707
+ detectSpaceArchiveFormat,
810
708
  encodeProfileArchive,
811
709
  exportProfileData,
812
710
  extractSpaceArchive,
813
711
  getNetworkPeers,
814
712
  importProfileData,
713
+ objJsonToObjectStructure,
714
+ objectStructureToObjJson,
715
+ orderObjJsonFields,
716
+ readSerializedSpaceArchive,
815
717
  subscribeToFeedBlocks,
816
718
  subscribeToFeeds,
817
719
  subscribeToNetworkStatus,
818
720
  subscribeToNetworkTopics,
819
721
  subscribeToSignal,
820
722
  subscribeToSpaces,
821
- subscribeToSwarmInfo
723
+ subscribeToSwarmInfo,
724
+ writeSerializedSpaceArchive
822
725
  };
823
726
  //# sourceMappingURL=index.mjs.map