@dxos/plugin-space 0.7.5-main.9d26e3a → 0.7.5-main.b19bfc8

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 (258) hide show
  1. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs +288 -0
  2. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +7 -0
  3. package/dist/lib/browser/app-graph-serializer-FOWFLYGU.mjs +80 -0
  4. package/dist/lib/browser/app-graph-serializer-FOWFLYGU.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-23RVI5FZ.mjs +539 -0
  6. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-NU7WDVGN.mjs +23 -0
  8. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-PQXZCNAU.mjs +13 -0
  10. package/dist/lib/browser/chunk-PQXZCNAU.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-S6B7627U.mjs +1809 -0
  12. package/dist/lib/browser/chunk-S6B7627U.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-UDWHTKB5.mjs +136 -0
  14. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-54VE4GTA.mjs → chunk-ULA2UQJ4.mjs} +25 -15
  16. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +7 -0
  17. package/dist/lib/browser/identity-created-FYGS6TBH.mjs +28 -0
  18. package/dist/lib/browser/identity-created-FYGS6TBH.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +219 -3480
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/intent-resolver-QVR4MSJV.mjs +555 -0
  22. package/dist/lib/browser/intent-resolver-QVR4MSJV.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/react-root-IP2ZB245.mjs +28 -0
  25. package/dist/lib/browser/react-root-IP2ZB245.mjs.map +7 -0
  26. package/dist/lib/browser/react-surface-BT3EHB6V.mjs +225 -0
  27. package/dist/lib/browser/react-surface-BT3EHB6V.mjs.map +7 -0
  28. package/dist/lib/browser/schema-5W3DSY2E.mjs +24 -0
  29. package/dist/lib/browser/schema-5W3DSY2E.mjs.map +7 -0
  30. package/dist/lib/browser/settings-PHPCXX33.mjs +24 -0
  31. package/dist/lib/browser/settings-PHPCXX33.mjs.map +7 -0
  32. package/dist/lib/browser/spaces-ready-K47RR7N2.mjs +199 -0
  33. package/dist/lib/browser/spaces-ready-K47RR7N2.mjs.map +7 -0
  34. package/dist/lib/browser/state-INJ63O57.mjs +47 -0
  35. package/dist/lib/browser/state-INJ63O57.mjs.map +7 -0
  36. package/dist/lib/browser/types/index.mjs +6 -4
  37. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs +291 -0
  38. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +7 -0
  39. package/dist/lib/node/app-graph-serializer-VQOGHKXL.cjs +88 -0
  40. package/dist/lib/node/app-graph-serializer-VQOGHKXL.cjs.map +7 -0
  41. package/dist/lib/node/chunk-N2FS7PRA.cjs +1807 -0
  42. package/dist/lib/node/chunk-N2FS7PRA.cjs.map +7 -0
  43. package/dist/lib/node/chunk-OVGKWJOC.cjs +567 -0
  44. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +7 -0
  45. package/dist/lib/node/chunk-U6DYXAR3.cjs +153 -0
  46. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-YF2AQ7KP.cjs → chunk-WAJKBO3J.cjs} +31 -20
  48. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +7 -0
  49. package/dist/lib/node/{chunk-46S3JOES.cjs → chunk-WZR6OAN3.cjs} +9 -12
  50. package/dist/lib/node/chunk-WZR6OAN3.cjs.map +7 -0
  51. package/dist/lib/node/chunk-YZKNRFHU.cjs +43 -0
  52. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +7 -0
  53. package/dist/lib/node/identity-created-AXI64BLE.cjs +44 -0
  54. package/dist/lib/node/identity-created-AXI64BLE.cjs.map +7 -0
  55. package/dist/lib/node/index.cjs +203 -3468
  56. package/dist/lib/node/index.cjs.map +4 -4
  57. package/dist/lib/node/intent-resolver-MLENGECT.cjs +553 -0
  58. package/dist/lib/node/intent-resolver-MLENGECT.cjs.map +7 -0
  59. package/dist/lib/node/meta.json +1 -1
  60. package/dist/lib/node/react-root-3OX5Z5CX.cjs +50 -0
  61. package/dist/lib/node/react-root-3OX5Z5CX.cjs.map +7 -0
  62. package/dist/lib/node/react-surface-5NYCMXSM.cjs +221 -0
  63. package/dist/lib/node/react-surface-5NYCMXSM.cjs.map +7 -0
  64. package/dist/lib/node/schema-YN7WVFRX.cjs +40 -0
  65. package/dist/lib/node/schema-YN7WVFRX.cjs.map +7 -0
  66. package/dist/lib/node/{meta.cjs → settings-5QYFWNH7.cjs} +19 -13
  67. package/dist/lib/node/settings-5QYFWNH7.cjs.map +7 -0
  68. package/dist/lib/node/spaces-ready-FQNAKR7G.cjs +210 -0
  69. package/dist/lib/node/spaces-ready-FQNAKR7G.cjs.map +7 -0
  70. package/dist/lib/node/state-57UE3DYE.cjs +61 -0
  71. package/dist/lib/node/state-57UE3DYE.cjs.map +7 -0
  72. package/dist/lib/node/types/index.cjs +19 -17
  73. package/dist/lib/node/types/index.cjs.map +2 -2
  74. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs +289 -0
  75. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +7 -0
  76. package/dist/lib/node-esm/app-graph-serializer-GZRSWHEN.mjs +81 -0
  77. package/dist/lib/node-esm/app-graph-serializer-GZRSWHEN.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs +137 -0
  79. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs +24 -0
  81. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +7 -0
  82. package/dist/lib/node-esm/chunk-DIKRH2IK.mjs +1810 -0
  83. package/dist/lib/node-esm/chunk-DIKRH2IK.mjs.map +7 -0
  84. package/dist/lib/node-esm/{chunk-2MNFEB23.mjs → chunk-ICCM4YRJ.mjs} +5 -7
  85. package/dist/lib/node-esm/chunk-ICCM4YRJ.mjs.map +7 -0
  86. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs +540 -0
  87. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +7 -0
  88. package/dist/lib/node-esm/{chunk-CDZETPO7.mjs → chunk-TRNZQEEN.mjs} +25 -15
  89. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +7 -0
  90. package/dist/lib/node-esm/identity-created-3CGEXNPO.mjs +29 -0
  91. package/dist/lib/node-esm/identity-created-3CGEXNPO.mjs.map +7 -0
  92. package/dist/lib/node-esm/index.mjs +219 -3480
  93. package/dist/lib/node-esm/index.mjs.map +4 -4
  94. package/dist/lib/node-esm/intent-resolver-BLW4RM6X.mjs +556 -0
  95. package/dist/lib/node-esm/intent-resolver-BLW4RM6X.mjs.map +7 -0
  96. package/dist/lib/node-esm/meta.json +1 -1
  97. package/dist/lib/node-esm/react-root-7XXGP56B.mjs +29 -0
  98. package/dist/lib/node-esm/react-root-7XXGP56B.mjs.map +7 -0
  99. package/dist/lib/node-esm/react-surface-R2ECJSFB.mjs +226 -0
  100. package/dist/lib/node-esm/react-surface-R2ECJSFB.mjs.map +7 -0
  101. package/dist/lib/node-esm/schema-LOR2EVGY.mjs +25 -0
  102. package/dist/lib/node-esm/schema-LOR2EVGY.mjs.map +7 -0
  103. package/dist/lib/node-esm/settings-H6MXTEQM.mjs +25 -0
  104. package/dist/lib/node-esm/settings-H6MXTEQM.mjs.map +7 -0
  105. package/dist/lib/node-esm/spaces-ready-HKAQG5SA.mjs +200 -0
  106. package/dist/lib/node-esm/spaces-ready-HKAQG5SA.mjs.map +7 -0
  107. package/dist/lib/node-esm/state-VYA6OFHD.mjs +48 -0
  108. package/dist/lib/node-esm/state-VYA6OFHD.mjs.map +7 -0
  109. package/dist/lib/node-esm/types/index.mjs +6 -4
  110. package/dist/types/src/SpacePlugin.d.ts +3 -22
  111. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
  113. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/app-graph-serializer.d.ts +4 -0
  115. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/capabilities.d.ts +22 -0
  117. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/identity-created.d.ts +4 -0
  119. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/index.d.ts +197 -0
  121. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/intent-resolver.d.ts +9 -0
  123. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/react-root.d.ts +7 -0
  125. package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
  126. package/dist/types/src/capabilities/react-surface.d.ts +7 -0
  127. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  128. package/dist/types/src/capabilities/schema.d.ts +4 -0
  129. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/settings.d.ts +4 -0
  131. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/spaces-ready.d.ts +4 -0
  133. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -0
  134. package/dist/types/src/capabilities/state.d.ts +5 -0
  135. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  136. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts +6 -0
  137. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +1 -0
  138. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts +7 -0
  139. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +1 -0
  140. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +2 -0
  141. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +1 -0
  142. package/dist/types/src/components/AwaitingObject.d.ts +1 -2
  143. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  144. package/dist/types/src/components/BaseObjectSettings.d.ts +6 -0
  145. package/dist/types/src/components/BaseObjectSettings.d.ts.map +1 -0
  146. package/dist/types/src/components/CollectionMain.d.ts +1 -2
  147. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  148. package/dist/types/src/components/CollectionSection.d.ts +1 -2
  149. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  150. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -5
  151. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  152. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  153. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +9 -11
  154. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  155. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -2
  156. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  157. package/dist/types/src/components/JoinDialog.d.ts +1 -2
  158. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  159. package/dist/types/src/components/MenuFooter.d.ts +1 -2
  160. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  161. package/dist/types/src/components/PersistenceStatus.d.ts +1 -2
  162. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  163. package/dist/types/src/components/PopoverAddSpace.d.ts +3 -0
  164. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -0
  165. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -2
  166. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  167. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -2
  168. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  169. package/dist/types/src/components/ShareSpaceButton.d.ts +2 -3
  170. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -1
  171. package/dist/types/src/components/SpacePluginSettings.d.ts +1 -2
  172. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  173. package/dist/types/src/components/SpacePresence.d.ts +4 -5
  174. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  175. package/dist/types/src/components/SpacePresence.stories.d.ts +2 -3
  176. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +1 -2
  178. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +1 -1
  179. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +3 -5
  180. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  181. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts +1 -2
  183. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  184. package/dist/types/src/components/SyncStatus/Space.d.ts +2 -3
  185. package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -1
  186. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +3 -4
  187. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  188. package/dist/types/src/components/index.d.ts +3 -1
  189. package/dist/types/src/components/index.d.ts.map +1 -1
  190. package/dist/types/src/events.d.ts +9 -0
  191. package/dist/types/src/events.d.ts.map +1 -0
  192. package/dist/types/src/index.d.ts +3 -5
  193. package/dist/types/src/index.d.ts.map +1 -1
  194. package/dist/types/src/meta.d.ts +2 -4
  195. package/dist/types/src/meta.d.ts.map +1 -1
  196. package/dist/types/src/translations.d.ts +21 -0
  197. package/dist/types/src/translations.d.ts.map +1 -1
  198. package/dist/types/src/types/collection.d.ts +2 -2
  199. package/dist/types/src/types/thread.d.ts +34 -34
  200. package/dist/types/src/types/types.d.ts +41 -37
  201. package/dist/types/src/types/types.d.ts.map +1 -1
  202. package/dist/types/src/util.d.ts +10 -8
  203. package/dist/types/src/util.d.ts.map +1 -1
  204. package/dist/types/tsconfig.tsbuildinfo +1 -1
  205. package/package.json +41 -47
  206. package/src/SpacePlugin.tsx +141 -1410
  207. package/src/capabilities/app-graph-builder.ts +319 -0
  208. package/src/capabilities/app-graph-serializer.ts +73 -0
  209. package/src/capabilities/capabilities.ts +28 -0
  210. package/src/capabilities/identity-created.ts +26 -0
  211. package/src/capabilities/index.ts +18 -0
  212. package/src/capabilities/intent-resolver.ts +536 -0
  213. package/src/capabilities/react-root.tsx +20 -0
  214. package/src/capabilities/react-surface.tsx +210 -0
  215. package/src/capabilities/schema.ts +27 -0
  216. package/src/capabilities/settings.ts +17 -0
  217. package/src/capabilities/spaces-ready.ts +230 -0
  218. package/src/capabilities/state.ts +45 -0
  219. package/src/components/AdvancedObjectSettings/AdvancedObjectSettings.tsx +72 -0
  220. package/src/components/AdvancedObjectSettings/ForeignKeys.tsx +51 -0
  221. package/src/components/AdvancedObjectSettings/index.ts +5 -0
  222. package/src/components/AwaitingObject.tsx +5 -11
  223. package/src/components/{DefaultObjectSettings.tsx → BaseObjectSettings.tsx} +9 -2
  224. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +1 -3
  225. package/src/components/CreateDialog/CreateObjectDialog.tsx +43 -35
  226. package/src/components/CreateDialog/CreateObjectPanel.tsx +139 -105
  227. package/src/components/CreateDialog/CreateSpaceDialog.tsx +18 -9
  228. package/src/components/JoinDialog.tsx +27 -19
  229. package/src/components/PopoverAddSpace.tsx +46 -0
  230. package/src/components/SpacePluginSettings.tsx +5 -10
  231. package/src/components/SpacePresence.stories.tsx +2 -2
  232. package/src/components/SpacePresence.tsx +7 -7
  233. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +16 -1
  234. package/src/components/SpaceSettings/SpaceSettingsPanel.stories.tsx +5 -1
  235. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +30 -8
  236. package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
  237. package/src/components/SyncStatus/SyncStatus.tsx +2 -1
  238. package/src/components/index.ts +3 -1
  239. package/src/events.ts +18 -0
  240. package/src/index.ts +3 -7
  241. package/src/meta.ts +2 -3
  242. package/src/translations.ts +7 -0
  243. package/src/types/types.ts +32 -51
  244. package/src/util.tsx +45 -29
  245. package/dist/lib/browser/chunk-54VE4GTA.mjs.map +0 -7
  246. package/dist/lib/browser/chunk-73BCBSLP.mjs +0 -15
  247. package/dist/lib/browser/chunk-73BCBSLP.mjs.map +0 -7
  248. package/dist/lib/browser/meta.mjs +0 -11
  249. package/dist/lib/browser/meta.mjs.map +0 -7
  250. package/dist/lib/node/chunk-46S3JOES.cjs.map +0 -7
  251. package/dist/lib/node/chunk-YF2AQ7KP.cjs.map +0 -7
  252. package/dist/lib/node/meta.cjs.map +0 -7
  253. package/dist/lib/node-esm/chunk-2MNFEB23.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-CDZETPO7.mjs.map +0 -7
  255. package/dist/lib/node-esm/meta.mjs +0 -12
  256. package/dist/lib/node-esm/meta.mjs.map +0 -7
  257. package/dist/types/src/components/DefaultObjectSettings.d.ts +0 -7
  258. package/dist/types/src/components/DefaultObjectSettings.d.ts.map +0 -1
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var state_57UE3DYE_exports = {};
20
+ __export(state_57UE3DYE_exports, {
21
+ default: () => state_default
22
+ });
23
+ module.exports = __toCommonJS(state_57UE3DYE_exports);
24
+ var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
25
+ var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
26
+ var import_signals_core = require("@preact/signals-core");
27
+ var import_app_framework = require("@dxos/app-framework");
28
+ var import_keys = require("@dxos/keys");
29
+ var import_local_storage = require("@dxos/local-storage");
30
+ var import_util = require("@dxos/util");
31
+ var state_default = (context) => {
32
+ const state = new import_local_storage.LocalStorageStore(import_chunk_WZR6OAN3.SPACE_PLUGIN, {
33
+ awaiting: void 0,
34
+ spaceNames: {},
35
+ viewersByObject: {},
36
+ // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.
37
+ viewersByIdentity: new import_util.ComplexMap(import_keys.PublicKey.hash),
38
+ sdkMigrationRunning: {},
39
+ navigableCollections: false,
40
+ enabledEdgeReplication: false
41
+ });
42
+ state.prop({
43
+ key: "spaceNames",
44
+ type: import_local_storage.LocalStorageStore.json()
45
+ }).prop({
46
+ key: "enabledEdgeReplication",
47
+ type: import_local_storage.LocalStorageStore.bool()
48
+ });
49
+ const manager = context.requestCapability(import_app_framework.Capabilities.PluginManager);
50
+ const unsubscribe = (0, import_signals_core.effect)(() => {
51
+ const enabled = manager.enabled.includes("dxos.org/plugin/stack");
52
+ if (enabled !== state.values.navigableCollections) {
53
+ state.values.navigableCollections = enabled;
54
+ }
55
+ });
56
+ return (0, import_app_framework.contributes)(import_chunk_YZKNRFHU.SpaceCapabilities.State, state.values, () => {
57
+ unsubscribe();
58
+ state.close();
59
+ });
60
+ };
61
+ //# sourceMappingURL=state-57UE3DYE.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/keys';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { ComplexMap } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { type PluginState } from '../types';\n\nexport default (context: PluginsContext) => {\n const state = new LocalStorageStore<PluginState>(SPACE_PLUGIN, {\n awaiting: undefined,\n spaceNames: {},\n viewersByObject: {},\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n viewersByIdentity: new ComplexMap(PublicKey.hash),\n sdkMigrationRunning: {},\n navigableCollections: false,\n enabledEdgeReplication: false,\n });\n\n state\n .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })\n .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });\n\n const manager = context.requestCapability(Capabilities.PluginManager);\n const unsubscribe = effect(() => {\n // TODO(wittjosiah): Find a way to make this capability-based.\n const enabled = manager.enabled.includes('dxos.org/plugin/stack');\n if (enabled !== state.values.navigableCollections) {\n state.values.navigableCollections = enabled;\n }\n });\n\n return contributes(SpaceCapabilities.State, state.values, () => {\n unsubscribe();\n state.close();\n });\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,0BAAuB;AAEvB,2BAA+D;AAC/D,kBAA0B;AAC1B,2BAAkC;AAClC,kBAA2B;AAM3B,IAAA,gBAAe,CAACA,YAAAA;AACd,QAAMC,QAAQ,IAAIC,uCAA+BC,oCAAc;IAC7DC,UAAUC;IACVC,YAAY,CAAC;IACbC,iBAAiB,CAAC;;IAElBC,mBAAmB,IAAIC,uBAAWC,sBAAUC,IAAI;IAChDC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,wBAAwB;EAC1B,CAAA;AAEAb,QACGc,KAAK;IAAEC,KAAK;IAAcC,MAAMf,uCAAkBgB,KAAI;EAA2B,CAAA,EACjFH,KAAK;IAAEC,KAAK;IAA0BC,MAAMf,uCAAkBiB,KAAI;EAAG,CAAA;AAExE,QAAMC,UAAUpB,QAAQqB,kBAAkBC,kCAAaC,aAAa;AACpE,QAAMC,kBAAcC,4BAAO,MAAA;AAEzB,UAAMC,UAAUN,QAAQM,QAAQC,SAAS,uBAAA;AACzC,QAAID,YAAYzB,MAAM2B,OAAOf,sBAAsB;AACjDZ,YAAM2B,OAAOf,uBAAuBa;IACtC;EACF,CAAA;AAEA,aAAOG,kCAAYC,wCAAkBC,OAAO9B,MAAM2B,QAAQ,MAAA;AACxDJ,gBAAAA;AACAvB,UAAM+B,MAAK;EACb,CAAA;AACF;",
6
+ "names": ["context", "state", "LocalStorageStore", "SPACE_PLUGIN", "awaiting", "undefined", "spaceNames", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "sdkMigrationRunning", "navigableCollections", "enabledEdgeReplication", "prop", "key", "type", "json", "bool", "manager", "requestCapability", "Capabilities", "PluginManager", "unsubscribe", "effect", "enabled", "includes", "values", "contributes", "SpaceCapabilities", "State", "close"]
7
+ }
@@ -18,24 +18,25 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
- ActorSchema: () => import_chunk_YF2AQ7KP.ActorSchema,
22
- ChannelType: () => import_chunk_YF2AQ7KP.ChannelType,
23
- CollectionAction: () => import_chunk_YF2AQ7KP.CollectionAction,
24
- CollectionType: () => import_chunk_YF2AQ7KP.CollectionType,
25
- ContactType: () => import_chunk_YF2AQ7KP.ContactType,
26
- MessageState: () => import_chunk_YF2AQ7KP.MessageState,
27
- MessageType: () => import_chunk_YF2AQ7KP.MessageType,
28
- SPACE_ACTION: () => import_chunk_YF2AQ7KP.SPACE_ACTION,
29
- SPACE_DIRECTORY_HANDLE: () => import_chunk_YF2AQ7KP.SPACE_DIRECTORY_HANDLE,
30
- SpaceAction: () => import_chunk_YF2AQ7KP.SpaceAction,
31
- SpaceForm: () => import_chunk_YF2AQ7KP.SpaceForm,
32
- ThreadStatus: () => import_chunk_YF2AQ7KP.ThreadStatus,
33
- ThreadType: () => import_chunk_YF2AQ7KP.ThreadType,
34
- parseSchemaPlugin: () => import_chunk_YF2AQ7KP.parseSchemaPlugin
21
+ ActorSchema: () => import_chunk_WAJKBO3J.ActorSchema,
22
+ ChannelType: () => import_chunk_WAJKBO3J.ChannelType,
23
+ CollectionAction: () => import_chunk_WAJKBO3J.CollectionAction,
24
+ CollectionType: () => import_chunk_WAJKBO3J.CollectionType,
25
+ ContactType: () => import_chunk_WAJKBO3J.ContactType,
26
+ MessageState: () => import_chunk_WAJKBO3J.MessageState,
27
+ MessageType: () => import_chunk_WAJKBO3J.MessageType,
28
+ SPACE_ACTION: () => import_chunk_WAJKBO3J.SPACE_ACTION,
29
+ SPACE_DIRECTORY_HANDLE: () => import_chunk_WAJKBO3J.SPACE_DIRECTORY_HANDLE,
30
+ SpaceAction: () => import_chunk_WAJKBO3J.SpaceAction,
31
+ SpaceForm: () => import_chunk_WAJKBO3J.SpaceForm,
32
+ SpaceSettingsSchema: () => import_chunk_WAJKBO3J.SpaceSettingsSchema,
33
+ ThreadStatus: () => import_chunk_WAJKBO3J.ThreadStatus,
34
+ ThreadType: () => import_chunk_WAJKBO3J.ThreadType,
35
+ defineObjectForm: () => import_chunk_WAJKBO3J.defineObjectForm
35
36
  });
36
37
  module.exports = __toCommonJS(types_exports);
37
- var import_chunk_YF2AQ7KP = require("../chunk-YF2AQ7KP.cjs");
38
- var import_chunk_46S3JOES = require("../chunk-46S3JOES.cjs");
38
+ var import_chunk_WAJKBO3J = require("../chunk-WAJKBO3J.cjs");
39
+ var import_chunk_WZR6OAN3 = require("../chunk-WZR6OAN3.cjs");
39
40
  // Annotate the CommonJS export names for ESM import in node:
40
41
  0 && (module.exports = {
41
42
  ActorSchema,
@@ -49,8 +50,9 @@ var import_chunk_46S3JOES = require("../chunk-46S3JOES.cjs");
49
50
  SPACE_DIRECTORY_HANDLE,
50
51
  SpaceAction,
51
52
  SpaceForm,
53
+ SpaceSettingsSchema,
52
54
  ThreadStatus,
53
55
  ThreadType,
54
- parseSchemaPlugin
56
+ defineObjectForm
55
57
  });
56
58
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.cjs"],
4
- "sourcesContent": ["import {\n ActorSchema,\n ChannelType,\n CollectionAction,\n CollectionType,\n ContactType,\n MessageState,\n MessageType,\n SPACE_ACTION,\n SPACE_DIRECTORY_HANDLE,\n SpaceAction,\n SpaceForm,\n ThreadStatus,\n ThreadType,\n parseSchemaPlugin\n} from \"../chunk-YF2AQ7KP.cjs\";\nimport \"../chunk-46S3JOES.cjs\";\nexport {\n ActorSchema,\n ChannelType,\n CollectionAction,\n CollectionType,\n ContactType,\n MessageState,\n MessageType,\n SPACE_ACTION,\n SPACE_DIRECTORY_HANDLE,\n SpaceAction,\n SpaceForm,\n ThreadStatus,\n ThreadType,\n parseSchemaPlugin\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAeO;AACP,4BAAO;",
4
+ "sourcesContent": ["import {\n ActorSchema,\n ChannelType,\n CollectionAction,\n CollectionType,\n ContactType,\n MessageState,\n MessageType,\n SPACE_ACTION,\n SPACE_DIRECTORY_HANDLE,\n SpaceAction,\n SpaceForm,\n SpaceSettingsSchema,\n ThreadStatus,\n ThreadType,\n defineObjectForm\n} from \"../chunk-WAJKBO3J.cjs\";\nimport \"../chunk-WZR6OAN3.cjs\";\nexport {\n ActorSchema,\n ChannelType,\n CollectionAction,\n CollectionType,\n ContactType,\n MessageState,\n MessageType,\n SPACE_ACTION,\n SPACE_DIRECTORY_HANDLE,\n SpaceAction,\n SpaceForm,\n SpaceSettingsSchema,\n ThreadStatus,\n ThreadType,\n defineObjectForm\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAgBO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,289 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ SpaceCapabilities
4
+ } from "./chunk-6RSVVEPS.mjs";
5
+ import {
6
+ SHARED,
7
+ SPACES,
8
+ constructObjectActions,
9
+ constructSpaceActions,
10
+ constructSpaceNode,
11
+ createObjectNode,
12
+ memoizeQuery
13
+ } from "./chunk-PGH5L7MV.mjs";
14
+ import {
15
+ CollectionType,
16
+ SpaceAction
17
+ } from "./chunk-TRNZQEEN.mjs";
18
+ import {
19
+ SPACE_PLUGIN
20
+ } from "./chunk-ICCM4YRJ.mjs";
21
+
22
+ // packages/plugins/plugin-space/src/capabilities/app-graph-builder.ts
23
+ import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
24
+ import { Expando, Filter, FQ_ID_LENGTH, getSpace, isEchoObject, isSpace, OBJECT_ID_LENGTH, SPACE_ID_LENGTH, SpaceState } from "@dxos/client/echo";
25
+ import { isDeleted } from "@dxos/live-object";
26
+ import { log } from "@dxos/log";
27
+ import { ClientCapabilities } from "@dxos/plugin-client";
28
+ import { createExtension, toSignal } from "@dxos/plugin-graph";
29
+ import { isNonNullable } from "@dxos/util";
30
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/capabilities/app-graph-builder.ts";
31
+ var app_graph_builder_default = (context) => {
32
+ const resolve = (typename) => context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
33
+ const spacesNode = {
34
+ id: SPACES,
35
+ type: SPACES,
36
+ cacheable: [
37
+ "label",
38
+ "role"
39
+ ],
40
+ properties: {
41
+ label: [
42
+ "spaces label",
43
+ {
44
+ ns: SPACE_PLUGIN
45
+ }
46
+ ],
47
+ icon: "ph--planet--regular",
48
+ testId: "spacePlugin.spaces",
49
+ role: "branch",
50
+ disposition: "collection",
51
+ disabled: true,
52
+ childrenPersistenceClass: "echo",
53
+ onRearrangeChildren: async (nextOrder) => {
54
+ const { graph } = context.requestCapability(Capabilities.AppGraph);
55
+ const client = context.requestCapability(ClientCapabilities.Client);
56
+ graph._sortEdges(SPACES, "outbound", nextOrder.map(({ id }) => id));
57
+ const { objects: [spacesOrder] } = await client.spaces.default.db.query(Filter.schema(Expando, {
58
+ key: SHARED
59
+ })).run();
60
+ if (spacesOrder) {
61
+ spacesOrder.order = nextOrder.map(({ id }) => id);
62
+ } else {
63
+ log.warn("spaces order object not found", void 0, {
64
+ F: __dxlog_file,
65
+ L: 73,
66
+ S: void 0,
67
+ C: (f, a) => f(...a)
68
+ });
69
+ }
70
+ }
71
+ }
72
+ };
73
+ return contributes(Capabilities.AppGraphBuilder, [
74
+ // Primary actions.
75
+ createExtension({
76
+ id: `${SPACE_PLUGIN}/primary-actions`,
77
+ position: "hoist",
78
+ filter: (node) => node.id === "root",
79
+ actions: () => [
80
+ {
81
+ id: SpaceAction.AddSpace._tag,
82
+ data: async (params) => {
83
+ const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
84
+ await dispatch(createIntent(SpaceAction.AddSpace));
85
+ },
86
+ properties: {
87
+ label: [
88
+ "add space label",
89
+ {
90
+ ns: SPACE_PLUGIN
91
+ }
92
+ ],
93
+ icon: "ph--plus--regular",
94
+ testId: "spacePlugin.addSpace",
95
+ disposition: "item",
96
+ position: "fallback"
97
+ }
98
+ }
99
+ ]
100
+ }),
101
+ // Create spaces group node.
102
+ createExtension({
103
+ id: `${SPACE_PLUGIN}/root`,
104
+ position: "hoist",
105
+ filter: (node) => node.id === "root",
106
+ connector: () => [
107
+ spacesNode
108
+ ],
109
+ resolver: ({ id }) => id === SPACES ? spacesNode : void 0
110
+ }),
111
+ // Create space nodes.
112
+ createExtension({
113
+ id: SPACES,
114
+ filter: (node) => node.id === SPACES,
115
+ connector: () => {
116
+ const client = context.requestCapability(ClientCapabilities.Client);
117
+ const spaces = toSignal((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
118
+ const isReady = toSignal((onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe, () => client.spaces.isReady.get());
119
+ if (!spaces || !isReady) {
120
+ return;
121
+ }
122
+ const state = context.requestCapability(SpaceCapabilities.State);
123
+ const settings = context.requestCapabilities(Capabilities.SettingsStore)[0]?.getStore(SPACE_PLUGIN)?.value;
124
+ try {
125
+ const [spacesOrder] = memoizeQuery(client.spaces.default, Filter.schema(Expando, {
126
+ key: SHARED
127
+ }));
128
+ const order = spacesOrder?.order ?? [];
129
+ const orderMap = new Map(order.map((id, index) => [
130
+ id,
131
+ index
132
+ ]));
133
+ return [
134
+ ...spaces.filter((space) => orderMap.has(space.id)).sort((a, b) => orderMap.get(a.id) - orderMap.get(b.id)),
135
+ ...spaces.filter((space) => !orderMap.has(space.id))
136
+ ].filter((space) => settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE).map((space) => constructSpaceNode({
137
+ space,
138
+ navigable: state.navigableCollections,
139
+ personal: space === client.spaces.default,
140
+ namesCache: state.spaceNames,
141
+ resolve
142
+ }));
143
+ } catch {
144
+ }
145
+ },
146
+ resolver: ({ id }) => {
147
+ if (id.length !== SPACE_ID_LENGTH) {
148
+ return;
149
+ }
150
+ const client = context.requestCapability(ClientCapabilities.Client);
151
+ const spaces = toSignal((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
152
+ const isReady = toSignal((onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe, () => client.spaces.isReady.get());
153
+ if (!spaces || !isReady) {
154
+ return;
155
+ }
156
+ const space = spaces.find((space2) => space2.id === id);
157
+ if (!space) {
158
+ return;
159
+ }
160
+ if (space.state.get() === SpaceState.SPACE_INACTIVE) {
161
+ return false;
162
+ } else if (space.state.get() !== SpaceState.SPACE_READY) {
163
+ return void 0;
164
+ } else {
165
+ const state = context.requestCapability(SpaceCapabilities.State);
166
+ return constructSpaceNode({
167
+ space,
168
+ navigable: state.navigableCollections,
169
+ personal: space === client.spaces.default,
170
+ namesCache: state.spaceNames,
171
+ resolve
172
+ });
173
+ }
174
+ }
175
+ }),
176
+ // Create space actions.
177
+ createExtension({
178
+ id: `${SPACE_PLUGIN}/actions`,
179
+ filter: (node) => isSpace(node.data),
180
+ actions: ({ node }) => {
181
+ const space = node.data;
182
+ const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
183
+ const client = context.requestCapability(ClientCapabilities.Client);
184
+ const state = context.requestCapability(SpaceCapabilities.State);
185
+ return constructSpaceActions({
186
+ space,
187
+ dispatch,
188
+ personal: space === client.spaces.default,
189
+ migrating: state.sdkMigrationRunning[space.id]
190
+ });
191
+ }
192
+ }),
193
+ // Create nodes for objects in the root collection of a space.
194
+ createExtension({
195
+ id: `${SPACE_PLUGIN}/root-collection`,
196
+ filter: (node) => isSpace(node.data),
197
+ connector: ({ node }) => {
198
+ const space = node.data;
199
+ const spaceState = toSignal((onChange) => space.state.subscribe(() => onChange()).unsubscribe, () => space.state.get(), space.id);
200
+ if (spaceState !== SpaceState.SPACE_READY) {
201
+ return;
202
+ }
203
+ const collection = space.properties[CollectionType.typename]?.target;
204
+ if (!collection) {
205
+ return;
206
+ }
207
+ const state = context.requestCapability(SpaceCapabilities.State);
208
+ return collection.objects.map((object) => object.target).filter(isNonNullable).map((object) => createObjectNode({
209
+ object,
210
+ space,
211
+ resolve,
212
+ navigable: state.navigableCollections
213
+ })).filter(isNonNullable);
214
+ }
215
+ }),
216
+ // Create nodes for objects in a collection or by its fully qualified id.
217
+ createExtension({
218
+ id: `${SPACE_PLUGIN}/objects`,
219
+ filter: (node) => node.data instanceof CollectionType,
220
+ connector: ({ node }) => {
221
+ const collection = node.data;
222
+ const space = getSpace(collection);
223
+ if (!space) {
224
+ return;
225
+ }
226
+ const state = context.requestCapability(SpaceCapabilities.State);
227
+ return collection.objects.map((object) => object.target).filter(isNonNullable).map((object) => createObjectNode({
228
+ object,
229
+ space,
230
+ resolve,
231
+ navigable: state.navigableCollections
232
+ })).filter(isNonNullable);
233
+ },
234
+ resolver: ({ id }) => {
235
+ if (id.length !== FQ_ID_LENGTH) {
236
+ return;
237
+ }
238
+ const [spaceId, objectId] = id.split(":");
239
+ if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {
240
+ return;
241
+ }
242
+ const client = context.requestCapability(ClientCapabilities.Client);
243
+ const space = client.spaces.get().find((space2) => space2.id === spaceId);
244
+ if (!space) {
245
+ return;
246
+ }
247
+ const spaceState = toSignal((onChange) => space.state.subscribe(() => onChange()).unsubscribe, () => space.state.get(), space.id);
248
+ if (spaceState !== SpaceState.SPACE_READY) {
249
+ return;
250
+ }
251
+ const [object] = memoizeQuery(space, {
252
+ id: objectId
253
+ });
254
+ if (!object) {
255
+ return;
256
+ }
257
+ if (isDeleted(object)) {
258
+ return false;
259
+ } else {
260
+ const state = context.requestCapability(SpaceCapabilities.State);
261
+ return createObjectNode({
262
+ object,
263
+ space,
264
+ resolve,
265
+ navigable: state.navigableCollections
266
+ });
267
+ }
268
+ }
269
+ }),
270
+ // Create collection actions and action groups.
271
+ createExtension({
272
+ id: `${SPACE_PLUGIN}/object-actions`,
273
+ filter: (node) => isEchoObject(node.data),
274
+ actions: ({ node }) => {
275
+ const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
276
+ const state = context.requestCapability(SpaceCapabilities.State);
277
+ return constructObjectActions({
278
+ node,
279
+ dispatch,
280
+ navigable: state.navigableCollections
281
+ });
282
+ }
283
+ })
284
+ ]);
285
+ };
286
+ export {
287
+ app_graph_builder_default as default
288
+ };
289
+ //# sourceMappingURL=app-graph-builder-TERVM2SL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PluginsContext } from '@dxos/app-framework';\nimport {\n Expando,\n Filter,\n FQ_ID_LENGTH,\n getSpace,\n isEchoObject,\n isSpace,\n OBJECT_ID_LENGTH,\n type ReactiveEchoObject,\n SPACE_ID_LENGTH,\n SpaceState,\n type Space,\n} from '@dxos/client/echo';\nimport { isDeleted } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, toSignal, type Node, type InvokeParams } from '@dxos/plugin-graph';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n memoizeQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginsContext) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph._sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: SpaceAction.AddSpace._tag,\n data: async (params: InvokeParams) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.AddSpace));\n },\n properties: {\n label: ['add space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.addSpace',\n disposition: 'item',\n position: 'fallback',\n },\n },\n ],\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n connector: () => [spacesNode],\n resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n filter: (node): node is Node<null> => node.id === SPACES,\n connector: () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<SpaceSettingsProps>(SPACE_PLUGIN)?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n const [spacesOrder] = memoizeQuery(client.spaces.default, Filter.schema(Expando, { key: SHARED }));\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) => (settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE))\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n } catch {}\n },\n resolver: ({ id }) => {\n if (id.length !== SPACE_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const space = spaces.find((space) => space.id === id);\n if (!space) {\n return;\n }\n\n if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n return false;\n } else if (space.state.get() !== SpaceState.SPACE_READY) {\n return undefined;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n });\n }\n },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n actions: ({ node }) => {\n const space = node.data;\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceActions({\n space,\n dispatch,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n },\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n connector: ({ node }) => {\n const space = node.data;\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const collection = space.properties[CollectionType.typename]?.target as CollectionType | undefined;\n if (!collection) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n filter: (node): node is Node<CollectionType> => node.data instanceof CollectionType,\n connector: ({ node }) => {\n const collection = node.data;\n const space = getSpace(collection);\n if (!space) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n resolver: ({ id }) => {\n if (id.length !== FQ_ID_LENGTH) {\n return;\n }\n\n const [spaceId, objectId] = id.split(':');\n if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const space = client.spaces.get().find((space) => space.id === spaceId);\n if (!space) {\n return;\n }\n\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n if (!object) {\n return;\n }\n\n if (isDeleted(object)) {\n return false;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n }\n },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),\n actions: ({ node }) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructObjectActions({ node, dispatch, navigable: state.navigableCollections });\n },\n }),\n ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "createIntent", "Expando", "Filter", "FQ_ID_LENGTH", "getSpace", "isEchoObject", "isSpace", "OBJECT_ID_LENGTH", "SPACE_ID_LENGTH", "SpaceState", "isDeleted", "log", "ClientCapabilities", "createExtension", "toSignal", "isNonNullable", "context", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "requestCapability", "AppGraph", "client", "ClientCapabilities", "Client", "_sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "filter", "node", "actions", "SpaceAction", "AddSpace", "_tag", "data", "params", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "connector", "resolver", "undefined", "toSignal", "onChange", "subscribe", "unsubscribe", "get", "isReady", "state", "SpaceCapabilities", "State", "settings", "SettingsStore", "getStore", "value", "memoizeQuery", "orderMap", "Map", "index", "space", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "length", "SPACE_ID_LENGTH", "SPACE_READY", "isSpace", "constructSpaceActions", "migrating", "sdkMigrationRunning", "spaceState", "collection", "CollectionType", "target", "object", "isNonNullable", "createObjectNode", "getSpace", "FQ_ID_LENGTH", "spaceId", "objectId", "split", "OBJECT_ID_LENGTH", "isDeleted", "isEchoObject", "constructObjectActions"]
7
+ }
@@ -0,0 +1,81 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ translations_default
4
+ } from "./chunk-2TQ2AJEZ.mjs";
5
+ import {
6
+ SPACES,
7
+ SPACE_TYPE
8
+ } from "./chunk-PGH5L7MV.mjs";
9
+ import {
10
+ CollectionType,
11
+ SpaceAction
12
+ } from "./chunk-TRNZQEEN.mjs";
13
+ import {
14
+ SPACE_PLUGIN
15
+ } from "./chunk-ICCM4YRJ.mjs";
16
+
17
+ // packages/plugins/plugin-space/src/capabilities/app-graph-serializer.ts
18
+ import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
19
+ import { isSpace } from "@dxos/client/echo";
20
+ import { create } from "@dxos/live-object";
21
+ var DIRECTORY_TYPE = "text/directory";
22
+ var app_graph_serializer_default = (context) => contributes(Capabilities.AppGraphSerializer, [
23
+ {
24
+ inputType: SPACES,
25
+ outputType: DIRECTORY_TYPE,
26
+ serialize: (node) => ({
27
+ name: translations_default[0]["en-US"][SPACE_PLUGIN]["spaces label"],
28
+ data: translations_default[0]["en-US"][SPACE_PLUGIN]["spaces label"],
29
+ type: DIRECTORY_TYPE
30
+ }),
31
+ deserialize: () => {
32
+ }
33
+ },
34
+ {
35
+ inputType: SPACE_TYPE,
36
+ outputType: DIRECTORY_TYPE,
37
+ serialize: (node) => ({
38
+ name: node.data.properties.name ?? translations_default[0]["en-US"][SPACE_PLUGIN]["unnamed space label"],
39
+ data: node.data.properties.name ?? translations_default[0]["en-US"][SPACE_PLUGIN]["unnamed space label"],
40
+ type: DIRECTORY_TYPE
41
+ }),
42
+ deserialize: async (data) => {
43
+ const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
44
+ const result = await dispatch(createIntent(SpaceAction.Create, {
45
+ name: data.name,
46
+ edgeReplication: true
47
+ }));
48
+ return result.data?.space;
49
+ }
50
+ },
51
+ {
52
+ inputType: CollectionType.typename,
53
+ outputType: DIRECTORY_TYPE,
54
+ serialize: (node) => ({
55
+ name: node.data.name ?? translations_default[0]["en-US"][SPACE_PLUGIN]["unnamed collection label"],
56
+ data: node.data.name ?? translations_default[0]["en-US"][SPACE_PLUGIN]["unnamed collection label"],
57
+ type: DIRECTORY_TYPE
58
+ }),
59
+ deserialize: async (data, ancestors) => {
60
+ const space = ancestors.find(isSpace);
61
+ const collection = ancestors.findLast((ancestor) => ancestor instanceof CollectionType) ?? space?.properties[CollectionType.typename]?.target;
62
+ if (!space || !collection) {
63
+ return;
64
+ }
65
+ const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
66
+ const result = await dispatch(createIntent(SpaceAction.AddObject, {
67
+ target: collection,
68
+ object: create(CollectionType, {
69
+ name: data.name,
70
+ objects: [],
71
+ views: {}
72
+ })
73
+ }));
74
+ return result.data?.object;
75
+ }
76
+ }
77
+ ]);
78
+ export {
79
+ app_graph_serializer_default as default
80
+ };
81
+ //# sourceMappingURL=app-graph-serializer-GZRSWHEN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-serializer.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PluginsContext } from '@dxos/app-framework';\nimport { isSpace } from '@dxos/client/echo';\nimport { create } from '@dxos/live-object';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport translations from '../translations';\nimport { CollectionType, SpaceAction } from '../types';\nimport { SPACES, SPACE_TYPE } from '../util';\n\n// https://stackoverflow.com/a/19016910\nconst DIRECTORY_TYPE = 'text/directory';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.AppGraphSerializer, [\n {\n inputType: SPACES,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'],\n data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: () => {\n // No-op.\n },\n },\n {\n inputType: SPACE_TYPE,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(createIntent(SpaceAction.Create, { name: data.name, edgeReplication: true }));\n return result.data?.space;\n },\n },\n {\n inputType: CollectionType.typename,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed collection label'],\n data: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed collection label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const collection =\n ancestors.findLast((ancestor) => ancestor instanceof CollectionType) ??\n space?.properties[CollectionType.typename]?.target;\n if (!space || !collection) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(\n createIntent(SpaceAction.AddObject, {\n target: collection,\n object: create(CollectionType, { name: data.name, objects: [], views: {} }),\n }),\n );\n\n return result.data?.object;\n },\n },\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,oBAAyC;AAC7E,SAASC,eAAe;AACxB,SAASC,cAAc;AAQvB,IAAMC,iBAAiB;AAEvB,IAAA,+BAAe,CAACC,YACdC,YAAYC,aAAaC,oBAAoB;EAC3C;IACEC,WAAWC;IACXC,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA;MAC7CC,MAAMF,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA;MAC7CE,MAAMd;IACR;IACAe,aAAa,MAAA;IAEb;EACF;EACA;IACEV,WAAWW;IACXT,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKI,WAAWP,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EC,MAAMJ,KAAKI,KAAKI,WAAWP,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EE,MAAMd;IACR;IACAe,aAAa,OAAOF,SAAAA;AAClB,YAAM,EAAEK,iBAAiBC,SAAQ,IAAKlB,QAAQmB,kBAAkBjB,aAAakB,gBAAgB;AAC7F,YAAMC,SAAS,MAAMH,SAASI,aAAaC,YAAYC,QAAQ;QAAEf,MAAMG,KAAKH;QAAMgB,iBAAiB;MAAK,CAAA,CAAA;AACxG,aAAOJ,OAAOT,MAAMc;IACtB;EACF;EACA;IACEtB,WAAWuB,eAAeC;IAC1BtB,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKH,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,0BAAA;MAC/DC,MAAMJ,KAAKI,KAAKH,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,0BAAA;MAC/DE,MAAMd;IACR;IACAe,aAAa,OAAOF,MAAMiB,cAAAA;AACxB,YAAMH,QAAQG,UAAUC,KAAKC,OAAAA;AAC7B,YAAMC,aACJH,UAAUI,SAAS,CAACC,aAAaA,oBAAoBP,cAAAA,KACrDD,OAAOV,WAAWW,eAAeC,QAAQ,GAAGO;AAC9C,UAAI,CAACT,SAAS,CAACM,YAAY;AACzB;MACF;AAEA,YAAM,EAAEf,iBAAiBC,SAAQ,IAAKlB,QAAQmB,kBAAkBjB,aAAakB,gBAAgB;AAC7F,YAAMC,SAAS,MAAMH,SACnBI,aAAaC,YAAYa,WAAW;QAClCD,QAAQH;QACRK,QAAQC,OAAOX,gBAAgB;UAAElB,MAAMG,KAAKH;UAAM8B,SAAS,CAAA;UAAIC,OAAO,CAAC;QAAE,CAAA;MAC3E,CAAA,CAAA;AAGF,aAAOnB,OAAOT,MAAMyB;IACtB;EACF;CACD;",
6
+ "names": ["Capabilities", "contributes", "createIntent", "isSpace", "create", "DIRECTORY_TYPE", "context", "contributes", "Capabilities", "AppGraphSerializer", "inputType", "SPACES", "outputType", "serialize", "node", "name", "translations", "SPACE_PLUGIN", "data", "type", "deserialize", "SPACE_TYPE", "properties", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "result", "createIntent", "SpaceAction", "Create", "edgeReplication", "space", "CollectionType", "typename", "ancestors", "find", "isSpace", "collection", "findLast", "ancestor", "target", "AddObject", "object", "create", "objects", "views"]
7
+ }