@dxos/plugin-space 0.7.4 → 0.7.5-feature-compute.4d9d99a

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 (255) hide show
  1. package/dist/lib/browser/app-graph-builder-5D2QB43K.mjs +365 -0
  2. package/dist/lib/browser/app-graph-builder-5D2QB43K.mjs.map +7 -0
  3. package/dist/lib/browser/app-graph-serializer-VNWPLPDF.mjs +80 -0
  4. package/dist/lib/browser/app-graph-serializer-VNWPLPDF.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-5TBRONF6.mjs +133 -0
  6. package/dist/lib/browser/chunk-5TBRONF6.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-6SWQRWOD.mjs +1672 -0
  8. package/dist/lib/browser/chunk-6SWQRWOD.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-HCXWKGTE.mjs +316 -0
  10. package/dist/lib/browser/chunk-HCXWKGTE.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-SOXNANA6.mjs +12 -0
  12. package/dist/lib/browser/chunk-SOXNANA6.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-UH5P4UL3.mjs +21 -0
  14. package/dist/lib/browser/chunk-UH5P4UL3.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-ZBKFJNHH.mjs +523 -0
  16. package/dist/lib/browser/chunk-ZBKFJNHH.mjs.map +7 -0
  17. package/dist/lib/browser/identity-created-EC5FOCX2.mjs +28 -0
  18. package/dist/lib/browser/identity-created-EC5FOCX2.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +192 -3521
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/intent-resolver-VBL572N7.mjs +459 -0
  22. package/dist/lib/browser/intent-resolver-VBL572N7.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/react-root-AZJFNTKK.mjs +28 -0
  25. package/dist/lib/browser/react-root-AZJFNTKK.mjs.map +7 -0
  26. package/dist/lib/browser/react-surface-E2VSYVNZ.mjs +238 -0
  27. package/dist/lib/browser/react-surface-E2VSYVNZ.mjs.map +7 -0
  28. package/dist/lib/browser/settings-ASFF5BZL.mjs +24 -0
  29. package/dist/lib/browser/settings-ASFF5BZL.mjs.map +7 -0
  30. package/dist/lib/browser/spaces-ready-4SFNS5JQ.mjs +200 -0
  31. package/dist/lib/browser/spaces-ready-4SFNS5JQ.mjs.map +7 -0
  32. package/dist/lib/browser/state-MS4KYJWI.mjs +47 -0
  33. package/dist/lib/browser/state-MS4KYJWI.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +14 -5
  35. package/dist/lib/node/app-graph-builder-ZQ5S62YR.cjs +368 -0
  36. package/dist/lib/node/app-graph-builder-ZQ5S62YR.cjs.map +7 -0
  37. package/dist/lib/node/app-graph-serializer-72S7P33H.cjs +88 -0
  38. package/dist/lib/node/app-graph-serializer-72S7P33H.cjs.map +7 -0
  39. package/dist/lib/node/chunk-56NGXG2A.cjs +41 -0
  40. package/dist/lib/node/chunk-56NGXG2A.cjs.map +7 -0
  41. package/dist/lib/node/{meta.cjs → chunk-AO4EW2RX.cjs} +12 -13
  42. package/dist/lib/node/chunk-AO4EW2RX.cjs.map +7 -0
  43. package/dist/lib/node/chunk-BQRNTKSQ.cjs +150 -0
  44. package/dist/lib/node/chunk-BQRNTKSQ.cjs.map +7 -0
  45. package/dist/lib/node/chunk-DDZYVNVP.cjs +345 -0
  46. package/dist/lib/node/chunk-DDZYVNVP.cjs.map +7 -0
  47. package/dist/lib/node/chunk-M64YG2FY.cjs +1669 -0
  48. package/dist/lib/node/chunk-M64YG2FY.cjs.map +7 -0
  49. package/dist/lib/node/chunk-Z34MTEU7.cjs +551 -0
  50. package/dist/lib/node/chunk-Z34MTEU7.cjs.map +7 -0
  51. package/dist/lib/node/identity-created-IMDS4A6A.cjs +44 -0
  52. package/dist/lib/node/identity-created-IMDS4A6A.cjs.map +7 -0
  53. package/dist/lib/node/index.cjs +175 -3506
  54. package/dist/lib/node/index.cjs.map +4 -4
  55. package/dist/lib/node/intent-resolver-S4HZABYI.cjs +458 -0
  56. package/dist/lib/node/intent-resolver-S4HZABYI.cjs.map +7 -0
  57. package/dist/lib/node/meta.json +1 -1
  58. package/dist/lib/node/react-root-RB3OM3QG.cjs +50 -0
  59. package/dist/lib/node/react-root-RB3OM3QG.cjs.map +7 -0
  60. package/dist/lib/node/react-surface-TLKQEHHT.cjs +233 -0
  61. package/dist/lib/node/react-surface-TLKQEHHT.cjs.map +7 -0
  62. package/dist/lib/node/settings-QLCKAUHK.cjs +38 -0
  63. package/dist/lib/node/settings-QLCKAUHK.cjs.map +7 -0
  64. package/dist/lib/node/spaces-ready-RZTKEXOL.cjs +211 -0
  65. package/dist/lib/node/spaces-ready-RZTKEXOL.cjs.map +7 -0
  66. package/dist/lib/node/state-4UIOUKLJ.cjs +61 -0
  67. package/dist/lib/node/state-4UIOUKLJ.cjs.map +7 -0
  68. package/dist/lib/node/types/index.cjs +23 -14
  69. package/dist/lib/node/types/index.cjs.map +2 -2
  70. package/dist/lib/node-esm/app-graph-builder-CD6IYPSS.mjs +366 -0
  71. package/dist/lib/node-esm/app-graph-builder-CD6IYPSS.mjs.map +7 -0
  72. package/dist/lib/node-esm/app-graph-serializer-CFXS6ZE2.mjs +81 -0
  73. package/dist/lib/node-esm/app-graph-serializer-CFXS6ZE2.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-375RB3CZ.mjs +22 -0
  75. package/dist/lib/node-esm/chunk-375RB3CZ.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-7FUVU45N.mjs +14 -0
  77. package/dist/lib/node-esm/chunk-7FUVU45N.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-CLGCKZ2D.mjs +317 -0
  79. package/dist/lib/node-esm/chunk-CLGCKZ2D.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-CMKML5IN.mjs +1673 -0
  81. package/dist/lib/node-esm/chunk-CMKML5IN.mjs.map +7 -0
  82. package/dist/lib/node-esm/chunk-FUMGYUD3.mjs +524 -0
  83. package/dist/lib/node-esm/chunk-FUMGYUD3.mjs.map +7 -0
  84. package/dist/lib/node-esm/chunk-M4XTHK35.mjs +134 -0
  85. package/dist/lib/node-esm/chunk-M4XTHK35.mjs.map +7 -0
  86. package/dist/lib/node-esm/identity-created-SJYZZ7Q3.mjs +29 -0
  87. package/dist/lib/node-esm/identity-created-SJYZZ7Q3.mjs.map +7 -0
  88. package/dist/lib/node-esm/index.mjs +192 -3521
  89. package/dist/lib/node-esm/index.mjs.map +4 -4
  90. package/dist/lib/node-esm/intent-resolver-OIQH7HN7.mjs +460 -0
  91. package/dist/lib/node-esm/intent-resolver-OIQH7HN7.mjs.map +7 -0
  92. package/dist/lib/node-esm/meta.json +1 -1
  93. package/dist/lib/node-esm/react-root-WKJWCHXR.mjs +29 -0
  94. package/dist/lib/node-esm/react-root-WKJWCHXR.mjs.map +7 -0
  95. package/dist/lib/node-esm/react-surface-RVEHOSAD.mjs +239 -0
  96. package/dist/lib/node-esm/react-surface-RVEHOSAD.mjs.map +7 -0
  97. package/dist/lib/node-esm/settings-WLVEO4JM.mjs +25 -0
  98. package/dist/lib/node-esm/settings-WLVEO4JM.mjs.map +7 -0
  99. package/dist/lib/node-esm/spaces-ready-ITGYYT5A.mjs +201 -0
  100. package/dist/lib/node-esm/spaces-ready-ITGYYT5A.mjs.map +7 -0
  101. package/dist/lib/node-esm/state-BMISGQ2O.mjs +48 -0
  102. package/dist/lib/node-esm/state-BMISGQ2O.mjs.map +7 -0
  103. package/dist/lib/node-esm/types/index.mjs +14 -5
  104. package/dist/types/src/SpacePlugin.d.ts +1 -24
  105. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
  107. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  108. package/dist/types/src/capabilities/app-graph-serializer.d.ts +4 -0
  109. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/capabilities.d.ts +15 -0
  111. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/identity-created.d.ts +4 -0
  113. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/index.d.ts +195 -0
  115. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/intent-resolver.d.ts +8 -0
  117. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/react-root.d.ts +7 -0
  119. package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/react-surface.d.ts +7 -0
  121. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/settings.d.ts +4 -0
  123. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/spaces-ready.d.ts +4 -0
  125. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -0
  126. package/dist/types/src/capabilities/state.d.ts +5 -0
  127. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  128. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts +7 -0
  129. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +1 -0
  130. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts +8 -0
  131. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +1 -0
  132. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +2 -0
  133. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +1 -0
  134. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  135. package/dist/types/src/components/BaseObjectSettings.d.ts +7 -0
  136. package/dist/types/src/components/BaseObjectSettings.d.ts.map +1 -0
  137. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +5 -4
  138. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  139. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -6
  140. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  141. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -0
  142. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  143. package/dist/types/src/components/JoinDialog.d.ts +1 -0
  144. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  145. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -0
  146. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  147. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -0
  148. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  149. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -1
  150. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  151. package/dist/types/src/components/SpacePresence.d.ts +9 -6
  152. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  153. package/dist/types/src/components/SpacePresence.stories.d.ts +1 -1
  154. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  155. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +1 -0
  156. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +1 -1
  157. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts.map +1 -1
  158. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +4 -3
  159. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  160. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts +3 -3
  162. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  163. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts +2 -2
  164. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts.map +1 -1
  165. package/dist/types/src/components/index.d.ts +2 -1
  166. package/dist/types/src/components/index.d.ts.map +1 -1
  167. package/dist/types/src/events.d.ts +5 -0
  168. package/dist/types/src/events.d.ts.map +1 -0
  169. package/dist/types/src/hooks/index.d.ts +2 -0
  170. package/dist/types/src/hooks/index.d.ts.map +1 -0
  171. package/dist/types/src/hooks/usePath.d.ts +11 -0
  172. package/dist/types/src/hooks/usePath.d.ts.map +1 -0
  173. package/dist/types/src/index.d.ts +3 -5
  174. package/dist/types/src/index.d.ts.map +1 -1
  175. package/dist/types/src/meta.d.ts +1 -27
  176. package/dist/types/src/meta.d.ts.map +1 -1
  177. package/dist/types/src/translations.d.ts +18 -3
  178. package/dist/types/src/translations.d.ts.map +1 -1
  179. package/dist/types/src/types/collection.d.ts +8 -12
  180. package/dist/types/src/types/collection.d.ts.map +1 -1
  181. package/dist/types/src/types/thread.d.ts +180 -186
  182. package/dist/types/src/types/thread.d.ts.map +1 -1
  183. package/dist/types/src/types/types.d.ts +228 -16
  184. package/dist/types/src/types/types.d.ts.map +1 -1
  185. package/dist/types/src/util.d.ts +9 -8
  186. package/dist/types/src/util.d.ts.map +1 -1
  187. package/dist/types/tsconfig.tsbuildinfo +1 -0
  188. package/package.json +38 -46
  189. package/src/SpacePlugin.tsx +119 -1541
  190. package/src/capabilities/app-graph-builder.ts +392 -0
  191. package/src/capabilities/app-graph-serializer.ts +73 -0
  192. package/src/capabilities/capabilities.ts +23 -0
  193. package/src/capabilities/identity-created.ts +26 -0
  194. package/src/capabilities/index.ts +17 -0
  195. package/src/capabilities/intent-resolver.ts +420 -0
  196. package/src/capabilities/react-root.tsx +20 -0
  197. package/src/capabilities/react-surface.tsx +234 -0
  198. package/src/capabilities/settings.ts +17 -0
  199. package/src/capabilities/spaces-ready.ts +231 -0
  200. package/src/capabilities/state.ts +45 -0
  201. package/src/components/AdvancedObjectSettings/AdvancedObjectSettings.tsx +72 -0
  202. package/src/components/AdvancedObjectSettings/ForeignKeys.tsx +51 -0
  203. package/src/components/AdvancedObjectSettings/index.ts +5 -0
  204. package/src/components/AwaitingObject.tsx +15 -19
  205. package/src/components/{DefaultObjectSettings.tsx → BaseObjectSettings.tsx} +2 -2
  206. package/src/components/CreateDialog/CreateObjectDialog.tsx +36 -25
  207. package/src/components/CreateDialog/CreateObjectPanel.tsx +61 -24
  208. package/src/components/CreateDialog/CreateSpaceDialog.tsx +10 -14
  209. package/src/components/JoinDialog.tsx +18 -34
  210. package/src/components/PersistenceStatus.tsx +1 -1
  211. package/src/components/PopoverRenameObject.tsx +2 -0
  212. package/src/components/PopoverRenameSpace.tsx +2 -0
  213. package/src/components/ShareSpaceButton.tsx +5 -4
  214. package/src/components/SpacePluginSettings.tsx +2 -13
  215. package/src/components/SpacePresence.stories.tsx +25 -17
  216. package/src/components/SpacePresence.tsx +42 -21
  217. package/src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx +2 -3
  218. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +3 -1
  219. package/src/components/SpaceSettings/SpaceSettingsPanel.stories.tsx +7 -5
  220. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +6 -5
  221. package/src/components/SyncStatus/InlineSyncStatus.tsx +37 -27
  222. package/src/components/SyncStatus/SyncStatusDetail.stories.tsx +55 -51
  223. package/src/components/index.ts +2 -1
  224. package/src/events.ts +12 -0
  225. package/src/hooks/index.ts +5 -0
  226. package/src/hooks/usePath.ts +44 -0
  227. package/src/index.ts +3 -7
  228. package/src/meta.ts +1 -29
  229. package/src/translations.ts +7 -2
  230. package/src/types/collection.ts +3 -3
  231. package/src/types/thread.ts +6 -6
  232. package/src/types/types.ts +177 -42
  233. package/src/util.tsx +77 -64
  234. package/dist/lib/browser/chunk-FTKV32QZ.mjs +0 -43
  235. package/dist/lib/browser/chunk-FTKV32QZ.mjs.map +0 -7
  236. package/dist/lib/browser/chunk-MWKXNS5S.mjs +0 -124
  237. package/dist/lib/browser/chunk-MWKXNS5S.mjs.map +0 -7
  238. package/dist/lib/browser/meta.mjs +0 -15
  239. package/dist/lib/browser/meta.mjs.map +0 -7
  240. package/dist/lib/node/chunk-6SNOZF7Y.cjs +0 -152
  241. package/dist/lib/node/chunk-6SNOZF7Y.cjs.map +0 -7
  242. package/dist/lib/node/chunk-QNVEU2UD.cjs +0 -69
  243. package/dist/lib/node/chunk-QNVEU2UD.cjs.map +0 -7
  244. package/dist/lib/node/meta.cjs.map +0 -7
  245. package/dist/lib/node-esm/chunk-OHEAWSCA.mjs +0 -126
  246. package/dist/lib/node-esm/chunk-OHEAWSCA.mjs.map +0 -7
  247. package/dist/lib/node-esm/chunk-UMV7XREB.mjs +0 -45
  248. package/dist/lib/node-esm/chunk-UMV7XREB.mjs.map +0 -7
  249. package/dist/lib/node-esm/meta.mjs +0 -16
  250. package/dist/lib/node-esm/meta.mjs.map +0 -7
  251. package/dist/types/src/components/DefaultObjectSettings.d.ts +0 -7
  252. package/dist/types/src/components/DefaultObjectSettings.d.ts.map +0 -1
  253. package/dist/types/src/components/SyncStatus/InlineSyncStatus.stories.d.ts +0 -6
  254. package/dist/types/src/components/SyncStatus/InlineSyncStatus.stories.d.ts.map +0 -1
  255. package/src/components/SyncStatus/InlineSyncStatus.stories.tsx +0 -57
@@ -0,0 +1,551 @@
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 chunk_Z34MTEU7_exports = {};
20
+ __export(chunk_Z34MTEU7_exports, {
21
+ COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
22
+ SHARED: () => SHARED,
23
+ SPACES: () => SPACES,
24
+ SPACE_TYPE: () => SPACE_TYPE,
25
+ cloneObject: () => cloneObject,
26
+ constructObjectActions: () => constructObjectActions,
27
+ constructSpaceActions: () => constructSpaceActions,
28
+ constructSpaceNode: () => constructSpaceNode,
29
+ createObjectNode: () => createObjectNode,
30
+ getActiveSpace: () => getActiveSpace,
31
+ getNestedObjects: () => getNestedObjects,
32
+ getSpaceDisplayName: () => getSpaceDisplayName,
33
+ memoizeQuery: () => memoizeQuery
34
+ });
35
+ module.exports = __toCommonJS(chunk_Z34MTEU7_exports);
36
+ var import_chunk_DDZYVNVP = require("./chunk-DDZYVNVP.cjs");
37
+ var import_chunk_AO4EW2RX = require("./chunk-AO4EW2RX.cjs");
38
+ var import_app_framework = require("@dxos/app-framework");
39
+ var import_echo_schema = require("@dxos/echo-schema");
40
+ var import_invariant = require("@dxos/invariant");
41
+ var import_live_object = require("@dxos/live-object");
42
+ var import_migrations = require("@dxos/migrations");
43
+ var import_plugin_graph = require("@dxos/plugin-graph");
44
+ var import_echo = require("@dxos/react-client/echo");
45
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
46
+ var SPACES = `${import_chunk_AO4EW2RX.SPACE_PLUGIN}-spaces`;
47
+ var SPACE_TYPE = "dxos.org/type/Space";
48
+ var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
49
+ var SHARED = "shared-spaces";
50
+ var EMPTY_ARRAY = [];
51
+ var memoizeQuery = (spaceOrEcho, filter, options) => {
52
+ const key = JSON.stringify({
53
+ space: (0, import_echo.isSpace)(spaceOrEcho) ? spaceOrEcho.id : void 0,
54
+ filter: import_echo.Filter.from(filter).toProto()
55
+ });
56
+ const query = (0, import_plugin_graph.memoize)(() => (0, import_echo.isSpace)(spaceOrEcho) ? spaceOrEcho.db.query(filter, options) : spaceOrEcho?.query(filter, options), key);
57
+ const unsubscribe = (0, import_plugin_graph.memoize)(() => query?.subscribe(), key);
58
+ (0, import_plugin_graph.cleanup)(() => unsubscribe?.());
59
+ return query?.objects ?? EMPTY_ARRAY;
60
+ };
61
+ var getSpaceDisplayName = (space, { personal, namesCache = {} } = {}) => {
62
+ return space.state.get() === import_echo.SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0 ? space.properties.name : namesCache[space.id] ? namesCache[space.id] : personal ? [
63
+ "personal space label",
64
+ {
65
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
66
+ }
67
+ ] : [
68
+ "unnamed space label",
69
+ {
70
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
71
+ }
72
+ ];
73
+ };
74
+ var getCollectionGraphNodePartials = ({ navigable, collection, space, resolve }) => {
75
+ return {
76
+ disabled: !navigable,
77
+ acceptPersistenceClass: /* @__PURE__ */ new Set([
78
+ "echo"
79
+ ]),
80
+ acceptPersistenceKey: /* @__PURE__ */ new Set([
81
+ space.id
82
+ ]),
83
+ role: "branch",
84
+ onRearrangeChildren: (nextOrder) => {
85
+ collection.objects = nextOrder.filter(import_echo.isEchoObject).map(import_live_object.makeRef);
86
+ },
87
+ onTransferStart: (child, index) => {
88
+ if (!collection.objects.find((object) => object.target === child.data)) {
89
+ if (typeof index !== "undefined") {
90
+ collection.objects.splice(index, 0, (0, import_live_object.makeRef)(child.data));
91
+ } else {
92
+ collection.objects.push((0, import_live_object.makeRef)(child.data));
93
+ }
94
+ }
95
+ },
96
+ onTransferEnd: (child, destination) => {
97
+ const index = collection.objects.findIndex((object) => object.target === child.data);
98
+ if (index > -1) {
99
+ collection.objects.splice(index, 1);
100
+ }
101
+ },
102
+ onCopy: async (child, index) => {
103
+ const newObject = await cloneObject(child.data, resolve, space);
104
+ space.db.add(newObject);
105
+ if (typeof index !== "undefined") {
106
+ collection.objects.splice(index, 0, (0, import_live_object.makeRef)(newObject));
107
+ } else {
108
+ collection.objects.push((0, import_live_object.makeRef)(newObject));
109
+ }
110
+ }
111
+ };
112
+ };
113
+ var checkPendingMigration = (space) => {
114
+ return space.state.get() === import_echo.SpaceState.SPACE_REQUIRES_MIGRATION || space.state.get() === import_echo.SpaceState.SPACE_READY && !!import_migrations.Migrations.versionProperty && space.properties[import_migrations.Migrations.versionProperty] !== import_migrations.Migrations.targetVersion;
115
+ };
116
+ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, resolve }) => {
117
+ const hasPendingMigration = checkPendingMigration(space);
118
+ const collection = space.state.get() === import_echo.SpaceState.SPACE_READY && space.properties[import_chunk_DDZYVNVP.CollectionType.typename]?.target;
119
+ const partials = space.state.get() === import_echo.SpaceState.SPACE_READY && collection instanceof import_chunk_DDZYVNVP.CollectionType ? getCollectionGraphNodePartials({
120
+ collection,
121
+ space,
122
+ resolve,
123
+ navigable
124
+ }) : {};
125
+ return {
126
+ id: space.id,
127
+ type: SPACE_TYPE,
128
+ cacheable: [
129
+ "label",
130
+ "icon",
131
+ "role"
132
+ ],
133
+ data: space,
134
+ properties: {
135
+ ...partials,
136
+ label: getSpaceDisplayName(space, {
137
+ personal,
138
+ namesCache
139
+ }),
140
+ description: space.state.get() === import_echo.SpaceState.SPACE_READY && space.properties.description,
141
+ icon: "ph--planet--regular",
142
+ disabled: !navigable || space.state.get() !== import_echo.SpaceState.SPACE_READY || hasPendingMigration,
143
+ testId: "spacePlugin.space"
144
+ }
145
+ };
146
+ };
147
+ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
148
+ const state = space.state.get();
149
+ const hasPendingMigration = checkPendingMigration(space);
150
+ const getId = (id) => `${id}/${space.id}`;
151
+ const actions = [];
152
+ if (hasPendingMigration) {
153
+ actions.push({
154
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.Migrate._tag),
155
+ type: import_plugin_graph.ACTION_GROUP_TYPE,
156
+ data: async () => {
157
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.Migrate, {
158
+ space
159
+ }));
160
+ },
161
+ properties: {
162
+ label: [
163
+ "migrate space label",
164
+ {
165
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
166
+ }
167
+ ],
168
+ icon: "ph--database--regular",
169
+ disposition: "toolbar",
170
+ disabled: migrating || import_migrations.Migrations.running(space)
171
+ }
172
+ });
173
+ }
174
+ if (state === import_echo.SpaceState.SPACE_READY && !hasPendingMigration) {
175
+ const locked = space.properties[COMPOSER_SPACE_LOCK];
176
+ actions.push({
177
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.OpenCreateObject._tag),
178
+ type: import_plugin_graph.ACTION_TYPE,
179
+ data: async () => {
180
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.OpenCreateObject, {
181
+ target: space
182
+ }));
183
+ },
184
+ properties: {
185
+ label: [
186
+ "create object in space label",
187
+ {
188
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
189
+ }
190
+ ],
191
+ icon: "ph--plus--regular",
192
+ disposition: "toolbar",
193
+ testId: "spacePlugin.createObject"
194
+ }
195
+ }, {
196
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.Share._tag),
197
+ type: import_plugin_graph.ACTION_TYPE,
198
+ data: async () => {
199
+ if (locked) {
200
+ return;
201
+ }
202
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.Share, {
203
+ space
204
+ }));
205
+ },
206
+ properties: {
207
+ label: [
208
+ "share space label",
209
+ {
210
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
211
+ }
212
+ ],
213
+ icon: "ph--users--regular",
214
+ disabled: locked,
215
+ keyBinding: {
216
+ macos: "meta+.",
217
+ windows: "alt+."
218
+ }
219
+ }
220
+ }, {
221
+ id: locked ? getId(import_chunk_DDZYVNVP.SpaceAction.Unlock._tag) : getId(import_chunk_DDZYVNVP.SpaceAction.Lock._tag),
222
+ type: import_plugin_graph.ACTION_TYPE,
223
+ data: async () => {
224
+ if (locked) {
225
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.Unlock, {
226
+ space
227
+ }));
228
+ } else {
229
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.Lock, {
230
+ space
231
+ }));
232
+ }
233
+ },
234
+ properties: {
235
+ label: [
236
+ locked ? "unlock space label" : "lock space label",
237
+ {
238
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
239
+ }
240
+ ],
241
+ icon: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
242
+ }
243
+ }, {
244
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.Rename._tag),
245
+ type: import_plugin_graph.ACTION_TYPE,
246
+ data: async (params) => {
247
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.Rename, {
248
+ space,
249
+ caller: params.caller
250
+ }));
251
+ },
252
+ properties: {
253
+ label: [
254
+ "rename space label",
255
+ {
256
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
257
+ }
258
+ ],
259
+ icon: "ph--pencil-simple-line--regular",
260
+ keyBinding: {
261
+ macos: "shift+F6",
262
+ windows: "shift+F6"
263
+ }
264
+ }
265
+ }, {
266
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.OpenSettings._tag),
267
+ type: import_plugin_graph.ACTION_TYPE,
268
+ data: async () => {
269
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.OpenSettings, {
270
+ space
271
+ }));
272
+ },
273
+ properties: {
274
+ label: [
275
+ "open space settings label",
276
+ {
277
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
278
+ }
279
+ ],
280
+ icon: "ph--gear--regular"
281
+ }
282
+ });
283
+ }
284
+ if (state !== import_echo.SpaceState.SPACE_INACTIVE && !hasPendingMigration) {
285
+ actions.push({
286
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.Close._tag),
287
+ type: import_plugin_graph.ACTION_TYPE,
288
+ data: async () => {
289
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.Close, {
290
+ space
291
+ }));
292
+ },
293
+ properties: {
294
+ label: [
295
+ "close space label",
296
+ {
297
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
298
+ }
299
+ ],
300
+ icon: "ph--x--regular",
301
+ disabled: personal
302
+ }
303
+ });
304
+ }
305
+ if (state === import_echo.SpaceState.SPACE_INACTIVE) {
306
+ actions.push({
307
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.Open._tag),
308
+ type: import_plugin_graph.ACTION_TYPE,
309
+ data: async () => {
310
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.Open, {
311
+ space
312
+ }));
313
+ },
314
+ properties: {
315
+ label: [
316
+ "open space label",
317
+ {
318
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
319
+ }
320
+ ],
321
+ icon: "ph--clock-counter-clockwise--regular",
322
+ disposition: "toolbar"
323
+ }
324
+ });
325
+ }
326
+ return actions;
327
+ };
328
+ var createObjectNode = ({ object, space, navigable = false, resolve }) => {
329
+ const type = (0, import_echo_schema.getTypename)(object);
330
+ if (!type) {
331
+ return void 0;
332
+ }
333
+ const metadata = resolve(type);
334
+ if (Object.keys(metadata).length === 0) {
335
+ return void 0;
336
+ }
337
+ const partials = object instanceof import_chunk_DDZYVNVP.CollectionType ? getCollectionGraphNodePartials({
338
+ collection: object,
339
+ space,
340
+ resolve,
341
+ navigable
342
+ }) : metadata.graphProps;
343
+ return {
344
+ id: (0, import_echo.fullyQualifiedId)(object),
345
+ type,
346
+ cacheable: [
347
+ "label",
348
+ "icon",
349
+ "role"
350
+ ],
351
+ data: object,
352
+ properties: {
353
+ ...partials,
354
+ label: metadata.label?.(object) || object.name || metadata.placeholder || [
355
+ "unnamed object label",
356
+ {
357
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
358
+ }
359
+ ],
360
+ icon: metadata.icon ?? "ph--placeholder--regular",
361
+ testId: "spacePlugin.object",
362
+ persistenceClass: "echo",
363
+ persistenceKey: space?.id
364
+ }
365
+ };
366
+ };
367
+ var constructObjectActions = ({ node, dispatch, navigable = false }) => {
368
+ const object = node.data;
369
+ const getId = (id) => `${id}/${(0, import_echo.fullyQualifiedId)(object)}`;
370
+ const actions = [
371
+ ...object instanceof import_chunk_DDZYVNVP.CollectionType ? [
372
+ {
373
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.OpenCreateObject._tag),
374
+ type: import_plugin_graph.ACTION_TYPE,
375
+ data: async () => {
376
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.OpenCreateObject, {
377
+ target: object
378
+ }));
379
+ },
380
+ properties: {
381
+ label: [
382
+ "create object in collection label",
383
+ {
384
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
385
+ }
386
+ ],
387
+ icon: "ph--plus--regular",
388
+ disposition: "toolbar",
389
+ testId: "spacePlugin.createObject"
390
+ }
391
+ }
392
+ ] : [],
393
+ {
394
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.RenameObject._tag),
395
+ type: import_plugin_graph.ACTION_TYPE,
396
+ data: async (params) => {
397
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.RenameObject, {
398
+ object,
399
+ caller: params.caller
400
+ }));
401
+ },
402
+ properties: {
403
+ label: [
404
+ object instanceof import_chunk_DDZYVNVP.CollectionType ? "rename collection label" : "rename object label",
405
+ {
406
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
407
+ }
408
+ ],
409
+ icon: "ph--pencil-simple-line--regular",
410
+ // TODO(wittjosiah): Doesn't work.
411
+ // keyBinding: 'shift+F6',
412
+ testId: "spacePlugin.renameObject"
413
+ }
414
+ },
415
+ {
416
+ id: getId(import_chunk_DDZYVNVP.SpaceAction.RemoveObjects._tag),
417
+ type: import_plugin_graph.ACTION_TYPE,
418
+ data: async () => {
419
+ const graph = (0, import_plugin_graph.getGraph)(node);
420
+ const collection = graph.nodes(node, {
421
+ relation: "inbound"
422
+ }).find(({ data }) => data instanceof import_chunk_DDZYVNVP.CollectionType)?.data;
423
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_DDZYVNVP.SpaceAction.RemoveObjects, {
424
+ objects: [
425
+ object
426
+ ],
427
+ target: collection
428
+ }));
429
+ },
430
+ properties: {
431
+ label: [
432
+ object instanceof import_chunk_DDZYVNVP.CollectionType ? "delete collection label" : "delete object label",
433
+ {
434
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
435
+ }
436
+ ],
437
+ icon: "ph--trash--regular",
438
+ keyBinding: object instanceof import_chunk_DDZYVNVP.CollectionType ? void 0 : "shift+meta+Backspace",
439
+ testId: "spacePlugin.deleteObject"
440
+ }
441
+ },
442
+ ...navigable || !(object instanceof import_chunk_DDZYVNVP.CollectionType) ? [
443
+ {
444
+ id: getId("copy-link"),
445
+ type: import_plugin_graph.ACTION_TYPE,
446
+ data: async () => {
447
+ const url = `${window.location.origin}/${(0, import_echo.fullyQualifiedId)(object)}`;
448
+ await navigator.clipboard.writeText(url);
449
+ },
450
+ properties: {
451
+ label: [
452
+ "copy link label",
453
+ {
454
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
455
+ }
456
+ ],
457
+ icon: "ph--link--regular",
458
+ testId: "spacePlugin.copyLink"
459
+ }
460
+ }
461
+ ] : [],
462
+ // TODO(wittjosiah): Factor out and apply to all nodes.
463
+ {
464
+ id: import_app_framework.NavigationAction.Expose._tag,
465
+ type: import_plugin_graph.ACTION_TYPE,
466
+ data: async () => {
467
+ await dispatch((0, import_app_framework.createIntent)(import_app_framework.NavigationAction.Expose, {
468
+ id: (0, import_echo.fullyQualifiedId)(object)
469
+ }));
470
+ },
471
+ properties: {
472
+ label: [
473
+ "expose object label",
474
+ {
475
+ ns: import_chunk_AO4EW2RX.SPACE_PLUGIN
476
+ }
477
+ ],
478
+ icon: "ph--eye--regular",
479
+ testId: "spacePlugin.exposeObject"
480
+ }
481
+ }
482
+ ];
483
+ return actions;
484
+ };
485
+ var getActiveSpace = (graph, active) => {
486
+ if (!active) {
487
+ return;
488
+ }
489
+ const node = graph.findNode(active);
490
+ if (!node || !(0, import_live_object.isReactiveObject)(node.data)) {
491
+ return;
492
+ }
493
+ return (0, import_echo.getSpace)(node.data);
494
+ };
495
+ var getNestedObjects = async (object, resolve) => {
496
+ const type = (0, import_echo_schema.getTypename)(object);
497
+ if (!type) {
498
+ return [];
499
+ }
500
+ const metadata = resolve(type);
501
+ const loadReferences = metadata?.loadReferences;
502
+ if (typeof loadReferences !== "function") {
503
+ return [];
504
+ }
505
+ const objects = await loadReferences(object);
506
+ const nested = await Promise.all(objects.map((object2) => getNestedObjects(object2, resolve)));
507
+ return [
508
+ ...objects,
509
+ ...nested.flat()
510
+ ];
511
+ };
512
+ var cloneObject = async (object, resolve, newSpace) => {
513
+ const schema = (0, import_live_object.getSchema)(object);
514
+ const typename = schema ? (0, import_echo_schema.getObjectAnnotation)(schema)?.typename ?? import_echo_schema.EXPANDO_TYPENAME : import_echo_schema.EXPANDO_TYPENAME;
515
+ const metadata = resolve(typename);
516
+ const serializer = metadata.serializer;
517
+ (0, import_invariant.invariant)(serializer, `No serializer for type: ${typename}`, {
518
+ F: __dxlog_file,
519
+ L: 557,
520
+ S: void 0,
521
+ A: [
522
+ "serializer",
523
+ "`No serializer for type: ${typename}`"
524
+ ]
525
+ });
526
+ const content = await serializer.serialize({
527
+ object
528
+ });
529
+ return serializer.deserialize({
530
+ content,
531
+ space: newSpace,
532
+ newId: true
533
+ });
534
+ };
535
+ // Annotate the CommonJS export names for ESM import in node:
536
+ 0 && (module.exports = {
537
+ COMPOSER_SPACE_LOCK,
538
+ SHARED,
539
+ SPACES,
540
+ SPACE_TYPE,
541
+ cloneObject,
542
+ constructObjectActions,
543
+ constructSpaceActions,
544
+ constructSpaceNode,
545
+ createObjectNode,
546
+ getActiveSpace,
547
+ getNestedObjects,
548
+ getSpaceDisplayName,
549
+ memoizeQuery
550
+ });
551
+ //# sourceMappingURL=chunk-Z34MTEU7.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, type PromiseIntentDispatcher, NavigationAction } from '@dxos/app-framework';\nimport { EXPANDO_TYPENAME, getObjectAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSchema, isReactiveObject, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n cleanup,\n getGraph,\n memoize,\n type ActionData,\n type Graph,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n Filter,\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n isSpace,\n SpaceState,\n type Echo,\n type FilterSource,\n type Query,\n type QueryOptions,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const SPACE_TYPE = 'dxos.org/type/Space';\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst EMPTY_ARRAY: never[] = [];\n\n/**\n *\n * @param spaceOrEcho\n * @param filter\n * @param options\n * @returns\n */\nexport const memoizeQuery = <T extends ReactiveEchoObject<any>>(\n spaceOrEcho?: Space | Echo,\n filter?: FilterSource<T>,\n options?: QueryOptions,\n): T[] => {\n const key = JSON.stringify({\n space: isSpace(spaceOrEcho) ? spaceOrEcho.id : undefined,\n filter: Filter.from(filter).toProto(),\n });\n\n const query = memoize(\n () =>\n isSpace(spaceOrEcho)\n ? spaceOrEcho.db.query(filter, options)\n : (spaceOrEcho?.query(filter, options) as Query<T> | undefined),\n key,\n );\n const unsubscribe = memoize(() => query?.subscribe(), key);\n cleanup(() => unsubscribe?.());\n\n return query?.objects ?? EMPTY_ARRAY;\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n navigable,\n collection,\n space,\n resolve,\n}: {\n navigable: boolean;\n collection: CollectionType;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n disabled: !navigable,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(isEchoObject).map(makeRef);\n },\n onTransferStart: (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(child.data));\n } else {\n collection.objects.push(makeRef(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<ReactiveEchoObject<any>>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(newObject));\n } else {\n collection.objects.push(makeRef(newObject));\n }\n },\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[CollectionType.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && collection instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection, space, resolve, navigable })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n icon: 'ph--planet--regular',\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n },\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'toolbar',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'toolbar',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Share._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n return;\n }\n await dispatch(createIntent(SpaceAction.Share, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n disabled: locked,\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: locked ? getId(SpaceAction.Unlock._tag) : getId(SpaceAction.Lock._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n await dispatch(createIntent(SpaceAction.Unlock, { space }));\n } else {\n await dispatch(createIntent(SpaceAction.Lock, { space }));\n }\n },\n properties: {\n label: [locked ? 'unlock space label' : 'lock space label', { ns: SPACE_PLUGIN }],\n icon: locked ? 'ph--lock-simple-open--regular' : 'ph--lock-simple--regular',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n {\n id: getId(SpaceAction.OpenSettings._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n );\n }\n\n // TODO(wittjosiah): Consider moving close space into the space settings dialog.\n if (state !== SpaceState.SPACE_INACTIVE && !hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Close._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Close, { space }));\n },\n properties: {\n label: ['close space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--x--regular',\n disabled: personal,\n },\n });\n }\n\n if (state === SpaceState.SPACE_INACTIVE) {\n actions.push({\n id: getId(SpaceAction.Open._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Open, { space }));\n },\n properties: {\n label: ['open space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--clock-counter-clockwise--regular',\n disposition: 'toolbar',\n },\n });\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: ReactiveEchoObject<any>;\n space: Space;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\n const partials =\n object instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection: object, space, resolve, navigable })\n : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n ...partials,\n label: metadata.label?.(object) ||\n object.name ||\n metadata.placeholder || ['unnamed object label', { ns: SPACE_PLUGIN }],\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n },\n };\n};\n\nexport const constructObjectActions = ({\n node,\n dispatch,\n navigable = false,\n}: {\n node: Node<ReactiveEchoObject<any>>;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const object = node.data;\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n const actions: NodeArg<ActionData>[] = [\n ...(object instanceof CollectionType\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'toolbar',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params.caller }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--pencil-simple-line--regular',\n // TODO(wittjosiah): Doesn't work.\n // keyBinding: 'shift+F6',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const graph = getGraph(node);\n const collection = graph\n .nodes(node, { relation: 'inbound' })\n .find(({ data }) => data instanceof CollectionType)?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable || !(object instanceof CollectionType)\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: NavigationAction.Expose._tag,\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(NavigationAction.Expose, { id: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated\n */\nexport const getActiveSpace = (graph: Graph, active?: string) => {\n if (!active) {\n return;\n }\n\n const node = graph.findNode(active);\n if (!node || !isReactiveObject(node.data)) {\n return;\n }\n\n return getSpace(node.data);\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: ReactiveEchoObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<ReactiveEchoObject<any>[]> => {\n const type = getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: ReactiveEchoObject<any>[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Expando> => {\n const schema = getSchema(object);\n const typename = schema ? getObjectAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["SPACES", "SPACE_PLUGIN", "SPACE_TYPE", "COMPOSER_SPACE_LOCK", "SHARED", "EMPTY_ARRAY", "memoizeQuery", "spaceOrEcho", "filter", "options", "key", "JSON", "stringify", "space", "isSpace", "id", "undefined", "Filter", "from", "toProto", "query", "memoize", "db", "unsubscribe", "subscribe", "cleanup", "objects", "getSpaceDisplayName", "personal", "namesCache", "state", "get", "SpaceState", "SPACE_READY", "properties", "name", "length", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "disabled", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "cacheable", "label", "description", "icon", "testId", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "disposition", "running", "locked", "OpenCreateObject", "ACTION_TYPE", "Share", "keyBinding", "macos", "windows", "Unlock", "Lock", "Rename", "params", "caller", "OpenSettings", "SPACE_INACTIVE", "Close", "Open", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "placeholder", "persistenceClass", "persistenceKey", "constructObjectActions", "node", "RenameObject", "RemoveObjects", "graph", "getGraph", "nodes", "relation", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "NavigationAction", "Expose", "getActiveSpace", "active", "findNode", "isReactiveObject", "getSpace", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getObjectAnnotation", "EXPANDO_TYPENAME", "serializer", "invariant", "content", "serialize", "deserialize", "newId"]
7
+ }
@@ -0,0 +1,44 @@
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 identity_created_IMDS4A6A_exports = {};
20
+ __export(identity_created_IMDS4A6A_exports, {
21
+ default: () => identity_created_default
22
+ });
23
+ module.exports = __toCommonJS(identity_created_IMDS4A6A_exports);
24
+ var import_chunk_DDZYVNVP = require("./chunk-DDZYVNVP.cjs");
25
+ var import_chunk_AO4EW2RX = require("./chunk-AO4EW2RX.cjs");
26
+ var import_app_framework = require("@dxos/app-framework");
27
+ var import_live_object = require("@dxos/live-object");
28
+ var import_migrations = require("@dxos/migrations");
29
+ var import_plugin_client = require("@dxos/plugin-client");
30
+ var identity_created_default = async (context) => {
31
+ const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
32
+ await client.spaces.waitUntilReady();
33
+ const defaultSpace = client.spaces.default;
34
+ await defaultSpace.waitUntilReady();
35
+ defaultSpace.properties[import_chunk_DDZYVNVP.CollectionType.typename] = (0, import_live_object.makeRef)((0, import_live_object.create)(import_chunk_DDZYVNVP.CollectionType, {
36
+ objects: [],
37
+ views: {}
38
+ }));
39
+ if (import_migrations.Migrations.versionProperty) {
40
+ defaultSpace.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
41
+ }
42
+ return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Null, null);
43
+ };
44
+ //# sourceMappingURL=identity-created-IMDS4A6A.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/identity-created.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext, Capabilities } from '@dxos/app-framework';\nimport { create, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { CollectionType } from '../types';\n\nexport default async (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n await client.spaces.waitUntilReady();\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n // Create root collection structure.\n defaultSpace.properties[CollectionType.typename] = makeRef(create(CollectionType, { objects: [], views: {} }));\n if (Migrations.versionProperty) {\n defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return contributes(Capabilities.Null, null);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA+D;AAC/D,yBAAgC;AAChC,wBAA2B;AAC3B,2BAAmC;AAInC,IAAA,2BAAe,OAAOA,YAAAA;AACpB,QAAMC,SAASD,QAAQE,kBAAkBC,wCAAmBC,MAAM;AAClE,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,qCAAeC,QAAQ,QAAIC,gCAAQC,2BAAOH,sCAAgB;IAAEI,SAAS,CAAA;IAAIC,OAAO,CAAC;EAAE,CAAA,CAAA;AAC3G,MAAIC,6BAAWC,iBAAiB;AAC9BV,iBAAaE,WAAWO,6BAAWC,eAAe,IAAID,6BAAWE;EACnE;AAEA,aAAOC,kCAAYC,kCAAaC,MAAM,IAAA;AACxC;",
6
+ "names": ["context", "client", "requestCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "CollectionType", "typename", "makeRef", "create", "objects", "views", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
7
+ }