@dxos/client-services 0.8.4-main.fffef41 → 0.9.0

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 (253) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/{chunk-I2RGLVJF.mjs → chunk-37BKOM5O.mjs} +2870 -3767
  4. package/dist/lib/browser/chunk-37BKOM5O.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-QCWEHHJW.mjs +24 -0
  6. package/dist/lib/browser/chunk-QCWEHHJW.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 +576 -139
  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 +58 -53
  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-QTUURCR4.mjs → chunk-2ONS4DLO.mjs} +2810 -3576
  25. package/dist/lib/node-esm/chunk-2ONS4DLO.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-2SZHAWBN.mjs +24 -0
  27. package/dist/lib/node-esm/chunk-2SZHAWBN.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +576 -139
  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 +58 -53
  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 +2 -1
  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 +7 -3
  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 +2 -2
  53. package/dist/types/src/packlets/devtools/keys.d.ts.map +1 -1
  54. package/dist/types/src/packlets/devtools/metadata.d.ts.map +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.map +1 -1
  58. package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -1
  59. package/dist/types/src/packlets/diagnostics/diagnostics-collector.d.ts.map +1 -1
  60. package/dist/types/src/packlets/diagnostics/diagnostics.d.ts +2 -3
  61. package/dist/types/src/packlets/diagnostics/diagnostics.d.ts.map +1 -1
  62. package/dist/types/src/packlets/diagnostics/index.d.ts +1 -1
  63. package/dist/types/src/packlets/diagnostics/index.d.ts.map +1 -1
  64. package/dist/types/src/packlets/identity/authenticator.d.ts +3 -3
  65. package/dist/types/src/packlets/identity/authenticator.d.ts.map +1 -1
  66. package/dist/types/src/packlets/identity/contacts-service.d.ts +1 -1
  67. package/dist/types/src/packlets/identity/contacts-service.d.ts.map +1 -1
  68. package/dist/types/src/packlets/identity/identity-manager.d.ts +10 -10
  69. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  70. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts +14 -9
  71. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts.map +1 -1
  72. package/dist/types/src/packlets/identity/identity-service.d.ts +7 -11
  73. package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
  74. package/dist/types/src/packlets/identity/identity.d.ts +10 -13
  75. package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
  76. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts +7 -6
  77. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts.map +1 -1
  78. package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts +1 -1
  79. package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts.map +1 -1
  80. package/dist/types/src/packlets/invitations/invitation-guest-extenstion.d.ts.map +1 -1
  81. package/dist/types/src/packlets/invitations/invitation-host-extension.d.ts.map +1 -1
  82. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts +7 -4
  83. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts.map +1 -1
  84. package/dist/types/src/packlets/invitations/invitation-state.d.ts.map +1 -1
  85. package/dist/types/src/packlets/invitations/invitation-topology.d.ts.map +1 -1
  86. package/dist/types/src/packlets/invitations/invitations-handler.d.ts +4 -4
  87. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  88. package/dist/types/src/packlets/invitations/invitations-manager.d.ts +5 -5
  89. package/dist/types/src/packlets/invitations/invitations-manager.d.ts.map +1 -1
  90. package/dist/types/src/packlets/invitations/invitations-service.d.ts +3 -3
  91. package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
  92. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts +6 -5
  93. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
  94. package/dist/types/src/packlets/invitations/utils.d.ts.map +1 -1
  95. package/dist/types/src/packlets/locks/browser.d.ts.map +1 -1
  96. package/dist/types/src/packlets/locks/index.d.ts +1 -1
  97. package/dist/types/src/packlets/locks/index.d.ts.map +1 -1
  98. package/dist/types/src/packlets/locks/node.d.ts.map +1 -1
  99. package/dist/types/src/packlets/logging/logging-service.d.ts +4 -0
  100. package/dist/types/src/packlets/logging/logging-service.d.ts.map +1 -1
  101. package/dist/types/src/packlets/network/network-service.d.ts +5 -4
  102. package/dist/types/src/packlets/network/network-service.d.ts.map +1 -1
  103. package/dist/types/src/packlets/services/client-rpc-server.d.ts +5 -5
  104. package/dist/types/src/packlets/services/client-rpc-server.d.ts.map +1 -1
  105. package/dist/types/src/packlets/services/feed-syncer.d.ts +75 -0
  106. package/dist/types/src/packlets/services/feed-syncer.d.ts.map +1 -0
  107. package/dist/types/src/packlets/services/feed-syncer.test.d.ts +2 -0
  108. package/dist/types/src/packlets/services/feed-syncer.test.d.ts.map +1 -0
  109. package/dist/types/src/packlets/services/index.d.ts +1 -0
  110. package/dist/types/src/packlets/services/index.d.ts.map +1 -1
  111. package/dist/types/src/packlets/services/platform.d.ts.map +1 -1
  112. package/dist/types/src/packlets/services/service-context.d.ts +22 -19
  113. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  114. package/dist/types/src/packlets/services/service-host.d.ts +20 -13
  115. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  116. package/dist/types/src/packlets/services/service-registry.d.ts.map +1 -1
  117. package/dist/types/src/packlets/services/sqlite-storage.d.ts +27 -0
  118. package/dist/types/src/packlets/services/sqlite-storage.d.ts.map +1 -0
  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 +7 -1
  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.map +1 -1
  135. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +49 -22
  136. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  137. package/dist/types/src/packlets/spaces/data-space.d.ts +38 -13
  138. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  139. package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts +2 -2
  140. package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts.map +1 -1
  141. package/dist/types/src/packlets/spaces/epoch-migrations.d.ts +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 +4 -3
  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 +10 -7
  148. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  149. package/dist/types/src/packlets/storage/index.d.ts +1 -0
  150. package/dist/types/src/packlets/storage/index.d.ts.map +1 -1
  151. package/dist/types/src/packlets/storage/level.d.ts.map +1 -1
  152. package/dist/types/src/packlets/storage/profile-archive-sqlite.d.ts +24 -0
  153. package/dist/types/src/packlets/storage/profile-archive-sqlite.d.ts.map +1 -0
  154. package/dist/types/src/packlets/storage/profile-archive-sqlite.test.d.ts +2 -0
  155. package/dist/types/src/packlets/storage/profile-archive-sqlite.test.d.ts.map +1 -0
  156. package/dist/types/src/packlets/storage/profile-archive.d.ts.map +1 -1
  157. package/dist/types/src/packlets/storage/storage.d.ts.map +1 -1
  158. package/dist/types/src/packlets/storage/util.d.ts.map +1 -1
  159. package/dist/types/src/packlets/system/system-service.d.ts +1 -1
  160. package/dist/types/src/packlets/system/system-service.d.ts.map +1 -1
  161. package/dist/types/src/packlets/testing/credential-utils.d.ts.map +1 -1
  162. package/dist/types/src/packlets/testing/invitation-utils.d.ts +6 -3
  163. package/dist/types/src/packlets/testing/invitation-utils.d.ts.map +1 -1
  164. package/dist/types/src/packlets/testing/test-builder.d.ts +20 -22
  165. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  166. package/dist/types/src/packlets/worker/worker-runtime.d.ts +41 -4
  167. package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
  168. package/dist/types/src/packlets/worker/worker-session.d.ts +2 -4
  169. package/dist/types/src/packlets/worker/worker-session.d.ts.map +1 -1
  170. package/dist/types/src/testing/setup.d.ts.map +1 -1
  171. package/dist/types/src/version.d.ts +1 -1
  172. package/dist/types/src/version.d.ts.map +1 -1
  173. package/dist/types/tsconfig.tsbuildinfo +1 -1
  174. package/package.json +71 -57
  175. package/src/index.ts +1 -0
  176. package/src/packlets/agents/edge-agent-manager.ts +8 -5
  177. package/src/packlets/agents/edge-agent-service.ts +4 -2
  178. package/src/packlets/devices/devices-service.test.ts +0 -1
  179. package/src/packlets/devtools/devtools.ts +28 -7
  180. package/src/packlets/devtools/feeds.ts +1 -1
  181. package/src/packlets/devtools/keys.ts +2 -2
  182. package/src/packlets/devtools/spaces.ts +1 -1
  183. package/src/packlets/diagnostics/diagnostics.ts +1 -2
  184. package/src/packlets/diagnostics/index.ts +1 -1
  185. package/src/packlets/identity/authenticator.ts +3 -3
  186. package/src/packlets/identity/contacts-service.ts +1 -2
  187. package/src/packlets/identity/identity-manager.test.ts +6 -6
  188. package/src/packlets/identity/identity-manager.ts +29 -28
  189. package/src/packlets/identity/identity-recovery-manager.ts +31 -22
  190. package/src/packlets/identity/identity-service.test.ts +6 -27
  191. package/src/packlets/identity/identity-service.ts +17 -83
  192. package/src/packlets/identity/identity.test.ts +3 -3
  193. package/src/packlets/identity/identity.ts +12 -35
  194. package/src/packlets/invitations/device-invitation-protocol.ts +10 -9
  195. package/src/packlets/invitations/edge-invitation-handler.ts +9 -5
  196. package/src/packlets/invitations/invitation-guest-extenstion.ts +6 -4
  197. package/src/packlets/invitations/invitation-host-extension.ts +13 -14
  198. package/src/packlets/invitations/invitation-protocol.ts +7 -4
  199. package/src/packlets/invitations/invitation-state.ts +1 -15
  200. package/src/packlets/invitations/invitations-handler.test.ts +4 -5
  201. package/src/packlets/invitations/invitations-handler.ts +74 -22
  202. package/src/packlets/invitations/invitations-manager.ts +42 -17
  203. package/src/packlets/invitations/invitations-service.ts +9 -9
  204. package/src/packlets/invitations/space-invitation-protocol.test.ts +17 -16
  205. package/src/packlets/invitations/space-invitation-protocol.ts +13 -18
  206. package/src/packlets/locks/index.ts +1 -1
  207. package/src/packlets/logging/logging-service.ts +19 -15
  208. package/src/packlets/network/network-service.test.ts +0 -1
  209. package/src/packlets/network/network-service.ts +10 -8
  210. package/src/packlets/services/client-rpc-server.ts +19 -16
  211. package/src/packlets/services/feed-syncer.test.ts +376 -0
  212. package/src/packlets/services/feed-syncer.ts +536 -0
  213. package/src/packlets/services/index.ts +1 -0
  214. package/src/packlets/services/platform.ts +7 -1
  215. package/src/packlets/services/service-context.test.ts +3 -2
  216. package/src/packlets/services/service-context.ts +215 -78
  217. package/src/packlets/services/service-host.test.ts +8 -10
  218. package/src/packlets/services/service-host.ts +102 -70
  219. package/src/packlets/services/service-registry.test.ts +0 -1
  220. package/src/packlets/services/sqlite-storage.ts +390 -0
  221. package/src/packlets/space-export/archive-format.ts +42 -0
  222. package/src/packlets/space-export/index.ts +4 -1
  223. package/src/packlets/space-export/serialized-space-reader.ts +129 -0
  224. package/src/packlets/space-export/serialized-space-writer.ts +260 -0
  225. package/src/packlets/space-export/space-archive-reader.ts +64 -3
  226. package/src/packlets/space-export/space-archive-writer.ts +41 -4
  227. package/src/packlets/space-export/space-archive.test.ts +482 -0
  228. package/src/packlets/spaces/data-space-manager.test.ts +169 -14
  229. package/src/packlets/spaces/data-space-manager.ts +192 -127
  230. package/src/packlets/spaces/data-space.ts +89 -43
  231. package/src/packlets/spaces/edge-feed-replicator.test.ts +2 -2
  232. package/src/packlets/spaces/edge-feed-replicator.ts +11 -9
  233. package/src/packlets/spaces/epoch-migrations.ts +7 -6
  234. package/src/packlets/spaces/genesis.ts +9 -4
  235. package/src/packlets/spaces/notarization-plugin.test.ts +2 -2
  236. package/src/packlets/spaces/notarization-plugin.ts +10 -9
  237. package/src/packlets/spaces/spaces-service.test.ts +18 -11
  238. package/src/packlets/spaces/spaces-service.ts +130 -24
  239. package/src/packlets/storage/index.ts +1 -0
  240. package/src/packlets/storage/profile-archive-sqlite.test.ts +79 -0
  241. package/src/packlets/storage/profile-archive-sqlite.ts +100 -0
  242. package/src/packlets/storage/profile-archive.ts +3 -0
  243. package/src/packlets/storage/storage.ts +4 -4
  244. package/src/packlets/testing/invitation-utils.ts +10 -6
  245. package/src/packlets/testing/test-builder.ts +59 -40
  246. package/src/packlets/worker/worker-runtime.ts +173 -17
  247. package/src/packlets/worker/worker-session.ts +12 -18
  248. package/src/version.ts +5 -1
  249. package/dist/lib/browser/chunk-I2RGLVJF.mjs.map +0 -7
  250. package/dist/lib/node-esm/chunk-QTUURCR4.mjs.map +0 -7
  251. package/dist/types/src/packlets/identity/default-space-state-machine.d.ts +0 -19
  252. package/dist/types/src/packlets/identity/default-space-state-machine.d.ts.map +0 -1
  253. package/src/packlets/identity/default-space-state-machine.ts +0 -44
package/package.json CHANGED
@@ -1,13 +1,37 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.8.4-main.fffef41",
3
+ "version": "0.9.0",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
- "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/dxos/dxos"
10
+ },
11
+ "license": "FSL-1.1-Apache-2.0",
8
12
  "author": "DXOS.org",
9
- "sideEffects": true,
13
+ "sideEffects": false,
10
14
  "type": "module",
15
+ "imports": {
16
+ "#locks-platform": {
17
+ "source": {
18
+ "browser": "./src/packlets/locks/browser.ts",
19
+ "default": "./src/packlets/locks/node.ts"
20
+ },
21
+ "types": "./dist/types/src/packlets/locks/node.d.ts",
22
+ "browser": "./dist/lib/browser/packlets/locks/browser.mjs",
23
+ "default": "./dist/lib/node-esm/packlets/locks/node.mjs"
24
+ },
25
+ "#diagnostics-broadcast": {
26
+ "source": {
27
+ "browser": "./src/packlets/diagnostics/browser-diagnostics-broadcast.ts",
28
+ "default": "./src/packlets/diagnostics/diagnostics-broadcast.ts"
29
+ },
30
+ "types": "./dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts",
31
+ "browser": "./dist/lib/browser/packlets/diagnostics/browser-diagnostics-broadcast.mjs",
32
+ "default": "./dist/lib/node-esm/packlets/diagnostics/diagnostics-broadcast.mjs"
33
+ }
34
+ },
11
35
  "exports": {
12
36
  ".": {
13
37
  "source": "./src/index.ts",
@@ -22,73 +46,63 @@
22
46
  "node": "./dist/lib/node-esm/testing/index.mjs"
23
47
  }
24
48
  },
25
- "browser": {
26
- "jsondown": false,
27
- "./src/packlets/locks/node.ts": "./src/packlets/locks/browser.ts",
28
- "./src/packlets/diagnostics/diagnostics-broadcast.ts": "./src/packlets/diagnostics/browser-diagnostics-broadcast.ts",
29
- "./testing.js": "./dist/lib/browser/packlets/testing/index.mjs"
30
- },
31
49
  "types": "dist/types/src/index.d.ts",
32
- "typesVersions": {
33
- "*": {
34
- "testing": [
35
- "dist/types/src/testing/index.d.ts"
36
- ]
37
- }
38
- },
39
50
  "files": [
40
- "testing.d.ts",
41
- "testing.js",
42
51
  "dist",
43
52
  "src"
44
53
  ],
45
54
  "dependencies": {
46
- "@automerge/automerge": "3.1.2",
47
- "@automerge/automerge-repo": "2.4.0",
55
+ "@automerge/automerge": "3.3.0-fragments.1",
56
+ "@automerge/automerge-repo": "2.6.0-subduction.23",
57
+ "@effect/experimental": "0.60.0",
58
+ "@effect/sql": "0.51.1",
48
59
  "@obsidize/tar-browserify": "^5.2.0",
49
60
  "cbor-x": "^1.5.4",
61
+ "effect": "3.21.3",
50
62
  "platform": "^1.3.6",
51
- "@dxos/async": "0.8.4-main.fffef41",
52
- "@dxos/client-protocol": "0.8.4-main.fffef41",
53
- "@dxos/config": "0.8.4-main.fffef41",
54
- "@dxos/codec-protobuf": "0.8.4-main.fffef41",
55
- "@dxos/credentials": "0.8.4-main.fffef41",
56
- "@dxos/crypto": "0.8.4-main.fffef41",
57
- "@dxos/context": "0.8.4-main.fffef41",
58
- "@dxos/debug": "0.8.4-main.fffef41",
59
- "@dxos/echo": "0.8.4-main.fffef41",
60
- "@dxos/echo-pipeline": "0.8.4-main.fffef41",
61
- "@dxos/edge-client": "0.8.4-main.fffef41",
62
- "@dxos/echo-protocol": "0.8.4-main.fffef41",
63
- "@dxos/indexing": "0.8.4-main.fffef41",
64
- "@dxos/invariant": "0.8.4-main.fffef41",
65
- "@dxos/echo-db": "0.8.4-main.fffef41",
66
- "@dxos/feed-store": "0.8.4-main.fffef41",
67
- "@dxos/keyring": "0.8.4-main.fffef41",
68
- "@dxos/keys": "0.8.4-main.fffef41",
69
- "@dxos/kv-store": "0.8.4-main.fffef41",
70
- "@dxos/lock-file": "0.8.4-main.fffef41",
71
- "@dxos/messaging": "0.8.4-main.fffef41",
72
- "@dxos/log": "0.8.4-main.fffef41",
73
- "@dxos/network-manager": "0.8.4-main.fffef41",
74
- "@dxos/protocols": "0.8.4-main.fffef41",
75
- "@dxos/random-access-storage": "0.8.4-main.fffef41",
76
- "@dxos/rpc": "0.8.4-main.fffef41",
77
- "@dxos/node-std": "0.8.4-main.fffef41",
78
- "@dxos/teleport": "0.8.4-main.fffef41",
79
- "@dxos/teleport-extension-gossip": "0.8.4-main.fffef41",
80
- "@dxos/teleport-extension-object-sync": "0.8.4-main.fffef41",
81
- "@dxos/tracing": "0.8.4-main.fffef41",
82
- "@dxos/util": "0.8.4-main.fffef41",
83
- "@dxos/websocket-rpc": "0.8.4-main.fffef41",
84
- "@dxos/timeframe": "0.8.4-main.fffef41"
63
+ "@dxos/async": "0.9.0",
64
+ "@dxos/codec-protobuf": "0.9.0",
65
+ "@dxos/client-protocol": "0.9.0",
66
+ "@dxos/credentials": "0.9.0",
67
+ "@dxos/config": "0.9.0",
68
+ "@dxos/crypto": "0.9.0",
69
+ "@dxos/context": "0.9.0",
70
+ "@dxos/echo": "0.9.0",
71
+ "@dxos/debug": "0.9.0",
72
+ "@dxos/echo-client": "0.9.0",
73
+ "@dxos/edge-client": "0.9.0",
74
+ "@dxos/echo-protocol": "0.9.0",
75
+ "@dxos/feed": "0.9.0",
76
+ "@dxos/feed-store": "0.9.0",
77
+ "@dxos/invariant": "0.9.0",
78
+ "@dxos/keyring": "0.9.0",
79
+ "@dxos/kv-store": "0.9.0",
80
+ "@dxos/keys": "0.9.0",
81
+ "@dxos/lock-file": "0.9.0",
82
+ "@dxos/effect": "0.9.0",
83
+ "@dxos/log": "0.9.0",
84
+ "@dxos/messaging": "0.9.0",
85
+ "@dxos/echo-host": "0.9.0",
86
+ "@dxos/protocols": "0.9.0",
87
+ "@dxos/network-manager": "0.9.0",
88
+ "@dxos/random-access-storage": "0.9.0",
89
+ "@dxos/node-std": "0.9.0",
90
+ "@dxos/rpc": "0.9.0",
91
+ "@dxos/sql-sqlite": "0.9.0",
92
+ "@dxos/teleport-extension-gossip": "0.9.0",
93
+ "@dxos/teleport": "0.9.0",
94
+ "@dxos/timeframe": "0.9.0",
95
+ "@dxos/tracing": "0.9.0",
96
+ "@dxos/websocket-rpc": "0.9.0",
97
+ "@dxos/teleport-extension-object-sync": "0.9.0",
98
+ "@dxos/util": "0.9.0"
85
99
  },
86
100
  "devDependencies": {
87
101
  "@types/platform": "^1.3.4",
88
102
  "@types/readable-stream": "^2.3.9",
89
103
  "get-port-please": "^3.1.1",
90
- "@dxos/signal": "0.8.4-main.fffef41",
91
- "@dxos/test-utils": "0.8.4-main.fffef41"
104
+ "@dxos/signal": "0.9.0",
105
+ "@dxos/test-utils": "0.9.0"
92
106
  },
93
107
  "publishConfig": {
94
108
  "access": "public"
@@ -98,7 +112,7 @@
98
112
  {
99
113
  "root": "src/packlets/services/service-host.ts",
100
114
  "dependencies": [
101
- "@dxos/echo-db"
115
+ "@dxos/echo-client"
102
116
  ]
103
117
  }
104
118
  ]
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ export * from './packlets/identity';
8
8
  export * from './packlets/invitations';
9
9
  export * from './packlets/locks';
10
10
  export * from './packlets/services';
11
+ export * from './packlets/space-export';
11
12
  export * from './packlets/spaces';
12
13
  export * from './packlets/storage';
13
14
  export * from './packlets/worker';
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  import { DeferredTask, Event, scheduleTask, synchronized } from '@dxos/async';
6
+ import { Context } from '@dxos/context';
6
7
  import { Resource } from '@dxos/context';
7
8
  import { type EdgeHttpClient } from '@dxos/edge-client';
8
9
  import { invariant } from '@dxos/invariant';
@@ -50,12 +51,12 @@ export class EdgeAgentManager extends Resource {
50
51
  }
51
52
 
52
53
  @synchronized
53
- public async createAgent(): Promise<void> {
54
+ public async createAgent(ctx: Context): Promise<void> {
54
55
  invariant(this.isOpen);
55
56
  invariant(this._edgeHttpClient);
56
57
  invariant(this._edgeFeatures?.agents);
57
58
 
58
- const response = await this._edgeHttpClient.createAgent({
59
+ const response = await this._edgeHttpClient.createAgent(ctx, {
59
60
  identityKey: this._identity.identityKey.toHex(),
60
61
  haloSpaceId: this._identity.haloSpaceId,
61
62
  haloSpaceKey: this._identity.haloSpaceKey.toHex(),
@@ -92,7 +93,7 @@ export class EdgeAgentManager extends Resource {
92
93
 
93
94
  this._lastKnownDeviceCount = this._identity.authorizedDeviceKeys.size;
94
95
  this._fetchAgentStatusTask = new DeferredTask(this._ctx, async () => {
95
- await this._fetchAgentStatus();
96
+ await this._fetchAgentStatus(this._ctx);
96
97
  });
97
98
  this._fetchAgentStatusTask.schedule();
98
99
 
@@ -117,11 +118,13 @@ export class EdgeAgentManager extends Resource {
117
118
  this._lastKnownDeviceCount = 0;
118
119
  }
119
120
 
120
- protected async _fetchAgentStatus(): Promise<void> {
121
+ protected async _fetchAgentStatus(ctx: Context): Promise<void> {
121
122
  invariant(this._edgeHttpClient);
122
123
  try {
123
124
  log('fetching agent status');
124
- const { agent } = await this._edgeHttpClient.getAgentStatus({ ownerIdentityKey: this._identity.identityKey });
125
+ const { agent } = await this._edgeHttpClient.getAgentStatus(ctx, {
126
+ ownerIdentityKey: this._identity.identityKey,
127
+ });
125
128
  const wasAgentCreatedDuringQuery = this._agentStatus === EdgeAgentStatus.ACTIVE;
126
129
  if (!wasAgentCreatedDuringQuery) {
127
130
  const deviceKey = agent.deviceKey ? PublicKey.fromHex(agent.deviceKey) : undefined;
@@ -2,7 +2,9 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import { type RequestOptions } from '@dxos/codec-protobuf';
5
6
  import { Stream } from '@dxos/codec-protobuf/stream';
7
+ import { Context } from '@dxos/context';
6
8
  import { type EdgeConnection } from '@dxos/edge-client';
7
9
  import { EdgeAgentStatus } from '@dxos/protocols';
8
10
  import {
@@ -43,8 +45,8 @@ export class EdgeAgentServiceImpl implements EdgeAgentService {
43
45
  });
44
46
  }
45
47
 
46
- async createAgent(): Promise<void> {
47
- return (await this._agentManagerProvider()).createAgent();
48
+ async createAgent(_request: void, options?: RequestOptions): Promise<void> {
49
+ return (await this._agentManagerProvider()).createAgent(options?.ctx ?? Context.default());
48
50
  }
49
51
 
50
52
  queryAgentStatus(): Stream<QueryAgentStatusResponse> {
@@ -11,7 +11,6 @@ import { type Device, type DevicesService } from '@dxos/protocols/proto/dxos/cli
11
11
 
12
12
  import { type ServiceContext } from '../services';
13
13
  import { createServiceContext } from '../testing';
14
-
15
14
  import { DevicesServiceImpl } from './devices-service';
16
15
 
17
16
  describe('DevicesService', () => {
@@ -11,6 +11,7 @@ import {
11
11
  type EnableDebugLoggingRequest,
12
12
  type EnableDebugLoggingResponse,
13
13
  type Event,
14
+ type ExportSqliteDatabaseResponse,
14
15
  type GetBlobsResponse,
15
16
  type GetConfigResponse,
16
17
  type GetNetworkPeersRequest,
@@ -19,6 +20,8 @@ import {
19
20
  type GetSpaceSnapshotRequest,
20
21
  type GetSpaceSnapshotResponse,
21
22
  type ResetStorageRequest,
23
+ type RunSqliteQueryRequest,
24
+ type RunSqliteQueryResponse,
22
25
  type SaveSpaceSnapshotRequest,
23
26
  type SaveSpaceSnapshotResponse,
24
27
  type SignalResponse,
@@ -42,7 +45,6 @@ import {
42
45
  } from '@dxos/protocols/proto/dxos/devtools/host';
43
46
 
44
47
  import { type ServiceContext } from '../services';
45
-
46
48
  import { subscribeToFeedBlocks, subscribeToFeeds } from './feeds';
47
49
  import { subscribeToKeyringKeys } from './keys';
48
50
  import { subscribeToMetadata } from './metadata';
@@ -53,17 +55,19 @@ export class DevtoolsHostEvents {
53
55
  readonly ready = new AsyncEvent();
54
56
  }
55
57
 
56
- export type DevtoolsServiceParams = {
58
+ export type DevtoolsServiceProps = {
57
59
  events: DevtoolsHostEvents;
58
60
  config: Config;
59
61
  context: ServiceContext;
62
+ exportSqliteDatabase: () => Promise<Uint8Array>;
63
+ runSqliteQuery: (query: string, params?: unknown[]) => Promise<readonly Record<string, unknown>[]>;
60
64
  };
61
65
 
62
66
  /**
63
67
  * @deprecated
64
68
  */
65
69
  export class DevtoolsServiceImpl implements DevtoolsHost {
66
- constructor(private readonly params: DevtoolsServiceParams) {}
70
+ constructor(private readonly params: DevtoolsServiceProps) {}
67
71
 
68
72
  events(_request: void): Stream<Event> {
69
73
  return new Stream<Event>(({ next }) => {
@@ -78,13 +82,11 @@ export class DevtoolsServiceImpl implements DevtoolsHost {
78
82
  }
79
83
 
80
84
  async getStorageInfo(): Promise<StorageInfo> {
81
- const storageUsage = (await this.params.context.storage.getDiskInfo?.()) ?? { used: 0 };
82
-
83
85
  const navigatorInfo = typeof navigator === 'object' ? await navigator.storage.estimate() : undefined;
84
86
 
85
87
  return {
86
- type: this.params.context.storage.type,
87
- storageUsage: storageUsage.used,
88
+ type: 'sqlite',
89
+ storageUsage: navigatorInfo?.usage ?? 0,
88
90
  originUsage: navigatorInfo?.usage ?? 0,
89
91
  usageQuota: navigatorInfo?.quota ?? 0,
90
92
  };
@@ -175,4 +177,23 @@ export class DevtoolsServiceImpl implements DevtoolsHost {
175
177
  subscribeToMetadata(): Stream<SubscribeToMetadataResponse> {
176
178
  return subscribeToMetadata({ context: this.params.context });
177
179
  }
180
+
181
+ async exportSqliteDatabase(): Promise<ExportSqliteDatabaseResponse> {
182
+ return {
183
+ data: await this.params.exportSqliteDatabase(),
184
+ };
185
+ }
186
+
187
+ async runSqliteQuery(request: RunSqliteQueryRequest): Promise<RunSqliteQueryResponse> {
188
+ try {
189
+ const parsedParams = request.params ? JSON.parse(request.params) : undefined;
190
+ if (parsedParams !== undefined && !Array.isArray(parsedParams)) {
191
+ throw new Error('Query params must be a JSON array.');
192
+ }
193
+ const rows = await this.params.runSqliteQuery(request.query, parsedParams);
194
+ return { rows: JSON.stringify(rows) };
195
+ } catch (err) {
196
+ return { rows: '[]', error: err instanceof Error ? err.message : String(err) };
197
+ }
198
+ }
178
199
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { SubscriptionList } from '@dxos/async';
6
6
  import { Stream } from '@dxos/codec-protobuf/stream';
7
- import { type SpaceManager } from '@dxos/echo-pipeline';
7
+ import { type SpaceManager } from '@dxos/echo-host';
8
8
  import { FeedIterator, type FeedStore, type FeedWrapper } from '@dxos/feed-store';
9
9
  import { PublicKey } from '@dxos/keys';
10
10
  import { log } from '@dxos/log';
@@ -4,10 +4,10 @@
4
4
 
5
5
  import { scheduleTask } from '@dxos/async';
6
6
  import { Stream } from '@dxos/codec-protobuf/stream';
7
- import { type Keyring } from '@dxos/keyring';
7
+ import { type KeyringApi } from '@dxos/keyring';
8
8
  import { type SubscribeToKeyringKeysResponse } from '@dxos/protocols/proto/dxos/devtools/host';
9
9
 
10
- export const subscribeToKeyringKeys = ({ keyring }: { keyring: Keyring }) =>
10
+ export const subscribeToKeyringKeys = ({ keyring }: { keyring: KeyringApi }) =>
11
11
  new Stream<SubscribeToKeyringKeysResponse>(({ next, ctx }) => {
12
12
  const update = async () => {
13
13
  next({
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  import { Stream } from '@dxos/codec-protobuf/stream';
6
- import { type Space } from '@dxos/echo-pipeline';
6
+ import { type Space } from '@dxos/echo-host';
7
7
  import {
8
8
  type SubscribeToSpacesRequest,
9
9
  type SubscribeToSpacesResponse,
@@ -23,7 +23,7 @@ import {
23
23
  import { type SubscribeToFeedsResponse } from '@dxos/protocols/proto/dxos/devtools/host';
24
24
  import { type SwarmInfo } from '@dxos/protocols/proto/dxos/devtools/swarm';
25
25
  import { type Epoch } from '@dxos/protocols/proto/dxos/halo/credentials';
26
- import { type Resource, type Span } from '@dxos/protocols/proto/dxos/tracing';
26
+ import { type Resource } from '@dxos/protocols/proto/dxos/tracing';
27
27
  import { TRACE_PROCESSOR } from '@dxos/tracing';
28
28
 
29
29
  import { DXOS_VERSION } from '../../version';
@@ -62,7 +62,6 @@ export type Diagnostics = {
62
62
 
63
63
  export type TraceDiagnostic = {
64
64
  resources: Record<string, Resource>;
65
- spans: Span[];
66
65
  logs: LogEntry[];
67
66
  };
68
67
 
@@ -4,4 +4,4 @@
4
4
 
5
5
  export * from './diagnostics';
6
6
  export * from './diagnostics-collector';
7
- export * from './diagnostics-broadcast';
7
+ export * from '#diagnostics-broadcast';
@@ -5,7 +5,7 @@
5
5
  import { type Event, Trigger } from '@dxos/async';
6
6
  import { Context } from '@dxos/context';
7
7
  import { type CredentialSigner, verifyCredential } from '@dxos/credentials';
8
- import { type AuthProvider, type AuthVerifier } from '@dxos/echo-pipeline';
8
+ import { type AuthProvider, type AuthVerifier } from '@dxos/echo-host';
9
9
  import { type PublicKey } from '@dxos/keys';
10
10
  import { log } from '@dxos/log';
11
11
  import { schema } from '@dxos/protocols/proto';
@@ -27,7 +27,7 @@ export const createAuthProvider =
27
27
  return Credential.encode(credential);
28
28
  };
29
29
 
30
- export type TrustedKeySetAuthVerifierParams = {
30
+ export type TrustedKeySetAuthVerifierProps = {
31
31
  // TODO(dmaretskyi): Change to `isTrusted: (key) => bool`.
32
32
  trustedKeysProvider: () => ComplexSet<PublicKey>;
33
33
  update: Event<void>;
@@ -44,7 +44,7 @@ export type TrustedKeySetAuthVerifierParams = {
44
44
  export class TrustedKeySetAuthVerifier {
45
45
  private _ctx = new Context();
46
46
 
47
- constructor(private readonly _params: TrustedKeySetAuthVerifierParams) {}
47
+ constructor(private readonly _params: TrustedKeySetAuthVerifierProps) {}
48
48
 
49
49
  async close(): Promise<void> {
50
50
  await this._ctx.dispose();
@@ -5,13 +5,12 @@
5
5
  import { SubscriptionList, UpdateScheduler, scheduleTask } from '@dxos/async';
6
6
  import { Stream } from '@dxos/codec-protobuf/stream';
7
7
  import { type MemberInfo } from '@dxos/credentials';
8
- import { type SpaceManager } from '@dxos/echo-pipeline';
8
+ import { type SpaceManager } from '@dxos/echo-host';
9
9
  import { PublicKey } from '@dxos/keys';
10
10
  import { type Contact, type ContactBook, type ContactsService } from '@dxos/protocols/proto/dxos/client/services';
11
11
  import { ComplexMap, ComplexSet } from '@dxos/util';
12
12
 
13
13
  import { type DataSpaceManager } from '../spaces';
14
-
15
14
  import { type IdentityManager } from './identity-manager';
16
15
 
17
16
  export class ContactsServiceImpl implements ContactsService {
@@ -5,7 +5,7 @@
5
5
  import { describe, expect, onTestFinished, test } from 'vitest';
6
6
 
7
7
  import { Context } from '@dxos/context';
8
- import { AuthStatus, MetadataStore, SpaceManager, valueEncoding } from '@dxos/echo-pipeline';
8
+ import { AuthStatus, MetadataStore, SpaceManager, valueEncoding } from '@dxos/echo-host';
9
9
  import { FeedFactory, FeedStore } from '@dxos/feed-store';
10
10
  import { Keyring } from '@dxos/keyring';
11
11
  import { MemorySignalManager, MemorySignalManagerContext } from '@dxos/messaging';
@@ -64,7 +64,7 @@ describe('identity/identity-manager', () => {
64
64
  test('creates identity', async () => {
65
65
  const { identityManager } = await setupPeer();
66
66
  await identityManager.open(new Context());
67
- onTestFinished(() => identityManager.close());
67
+ onTestFinished(() => identityManager.close(Context.default()));
68
68
 
69
69
  const identity = await identityManager.createIdentity();
70
70
  expect(identity).to.exist;
@@ -77,7 +77,7 @@ describe('identity/identity-manager', () => {
77
77
  await peer1.metadataStore.load();
78
78
  await peer1.identityManager.open(new Context());
79
79
  const identity1 = await peer1.identityManager.createIdentity();
80
- await peer1.identityManager.close();
80
+ await peer1.identityManager.close(Context.default());
81
81
  await peer1.feedStore.close();
82
82
  await peer1.metadataStore.close();
83
83
 
@@ -95,7 +95,7 @@ describe('identity/identity-manager', () => {
95
95
  test('update profile', async () => {
96
96
  const { identityManager } = await setupPeer();
97
97
  await identityManager.open(new Context());
98
- onTestFinished(() => identityManager.close());
98
+ onTestFinished(() => identityManager.close(Context.default()));
99
99
 
100
100
  const identity = await identityManager.createIdentity();
101
101
  expect(identity.profileDocument?.displayName).to.be.undefined;
@@ -112,7 +112,7 @@ describe('identity/identity-manager', () => {
112
112
  peerKey: identity1.deviceKey.toHex(),
113
113
  identityKey: identity1.identityKey.toHex(),
114
114
  });
115
- await identity1.joinNetwork();
115
+ await identity1.joinNetwork(Context.default());
116
116
 
117
117
  const peer2 = await setupPeer({ signalContext });
118
118
 
@@ -148,7 +148,7 @@ describe('identity/identity-manager', () => {
148
148
  peerKey: identity2.deviceKey.toHex(),
149
149
  identityKey: identity2.identityKey.toHex(),
150
150
  });
151
- await identity2.joinNetwork();
151
+ await identity2.joinNetwork(Context.default());
152
152
 
153
153
  // Identity2 is not yet ready at this point. Peer1 needs to admit peer2 device key and feed keys.
154
154
  await peer2.identityManager.acceptIdentity(identity2, identityRecord);