@dxos/plugin-space 0.7.5-labs.ea4b4c2 → 0.7.5-labs.f400bbc

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 (223) hide show
  1. package/dist/lib/browser/{app-graph-builder-TTM2YZVS.mjs → app-graph-builder-MGK5HWPZ.mjs} +21 -100
  2. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-ZGM5NDXE.mjs → app-graph-serializer-FOWFLYGU.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-S5IGZNXJ.mjs → chunk-23RVI5FZ.mjs} +16 -5
  5. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-RLZQJD47.mjs → chunk-NU7WDVGN.mjs} +2 -1
  7. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-2NMUVDMZ.mjs → chunk-S6B7627U.mjs} +304 -210
  9. package/dist/lib/browser/chunk-S6B7627U.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-ENRYFGYE.mjs → chunk-UDWHTKB5.mjs} +6 -3
  11. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-H2AR4OLP.mjs → chunk-ULA2UQJ4.mjs} +15 -6
  13. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +7 -0
  14. package/dist/lib/browser/{identity-created-VICTPQX7.mjs → identity-created-FYGS6TBH.mjs} +2 -2
  15. package/dist/lib/browser/index.mjs +53 -19
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-A5274MUR.mjs → intent-resolver-QVR4MSJV.mjs} +26 -8
  18. package/dist/lib/browser/intent-resolver-QVR4MSJV.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-N6QTWYCV.mjs → react-root-IP2ZB245.mjs} +5 -5
  21. package/dist/lib/browser/{react-surface-STMNA7W7.mjs → react-surface-BT3EHB6V.mjs} +16 -22
  22. package/dist/lib/browser/react-surface-BT3EHB6V.mjs.map +7 -0
  23. package/dist/lib/browser/schema-5W3DSY2E.mjs +24 -0
  24. package/dist/lib/browser/schema-5W3DSY2E.mjs.map +7 -0
  25. package/dist/lib/browser/{settings-HN5UIYQO.mjs → settings-PHPCXX33.mjs} +2 -2
  26. package/dist/lib/browser/{spaces-ready-F57ITJDR.mjs → spaces-ready-K47RR7N2.mjs} +4 -4
  27. package/dist/lib/browser/{state-6DCY5YJP.mjs → state-INJ63O57.mjs} +2 -2
  28. package/dist/lib/browser/types/index.mjs +5 -5
  29. package/dist/lib/node/{app-graph-builder-6N4TEVHH.cjs → app-graph-builder-ZIUBXRPA.cjs} +45 -124
  30. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +7 -0
  31. package/dist/lib/node/{app-graph-serializer-AWKVTYAB.cjs → app-graph-serializer-VQOGHKXL.cjs} +20 -20
  32. package/dist/lib/node/{chunk-2RCJT3P2.cjs → chunk-N2FS7PRA.cjs} +365 -270
  33. package/dist/lib/node/chunk-N2FS7PRA.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-MMXP2NHE.cjs → chunk-OVGKWJOC.cjs} +51 -40
  35. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-I2LRRRMV.cjs → chunk-U6DYXAR3.cjs} +10 -7
  37. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-SPCSJ2CY.cjs → chunk-WAJKBO3J.cjs} +21 -12
  39. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-UX3U4RU2.cjs → chunk-YZKNRFHU.cjs} +5 -4
  41. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +7 -0
  42. package/dist/lib/node/{identity-created-JNDKMFKI.cjs → identity-created-AXI64BLE.cjs} +6 -6
  43. package/dist/lib/node/index.cjs +106 -73
  44. package/dist/lib/node/index.cjs.map +3 -3
  45. package/dist/lib/node/{intent-resolver-NVTAESKB.cjs → intent-resolver-MLENGECT.cjs} +76 -59
  46. package/dist/lib/node/intent-resolver-MLENGECT.cjs.map +7 -0
  47. package/dist/lib/node/meta.json +1 -1
  48. package/dist/lib/node/{react-root-YCHSAYQE.cjs → react-root-3OX5Z5CX.cjs} +10 -10
  49. package/dist/lib/node/{react-surface-ANSZ4FKK.cjs → react-surface-5NYCMXSM.cjs} +49 -57
  50. package/dist/lib/node/react-surface-5NYCMXSM.cjs.map +7 -0
  51. package/dist/lib/node/schema-YN7WVFRX.cjs +40 -0
  52. package/dist/lib/node/schema-YN7WVFRX.cjs.map +7 -0
  53. package/dist/lib/node/{settings-RBBL22DJ.cjs → settings-5QYFWNH7.cjs} +6 -6
  54. package/dist/lib/node/{spaces-ready-WHU4J6E5.cjs → spaces-ready-FQNAKR7G.cjs} +13 -13
  55. package/dist/lib/node/{state-WPZC4JXB.cjs → state-57UE3DYE.cjs} +6 -6
  56. package/dist/lib/node/types/index.cjs +18 -18
  57. package/dist/lib/node/types/index.cjs.map +1 -1
  58. package/dist/lib/node-esm/{app-graph-builder-MS6BI5EW.mjs → app-graph-builder-TERVM2SL.mjs} +21 -100
  59. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +7 -0
  60. package/dist/lib/node-esm/{app-graph-serializer-AWAWDSCM.mjs → app-graph-serializer-GZRSWHEN.mjs} +4 -4
  61. package/dist/lib/node-esm/{chunk-ESWV7ICX.mjs → chunk-2TQ2AJEZ.mjs} +6 -3
  62. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-LGL4A5B5.mjs → chunk-6RSVVEPS.mjs} +2 -1
  64. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-4HICD7AU.mjs → chunk-DIKRH2IK.mjs} +304 -210
  66. package/dist/lib/node-esm/chunk-DIKRH2IK.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-77RE7Y5J.mjs → chunk-PGH5L7MV.mjs} +16 -5
  68. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-S6VAU6VJ.mjs → chunk-TRNZQEEN.mjs} +15 -6
  70. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +7 -0
  71. package/dist/lib/node-esm/{identity-created-3AUSSVEK.mjs → identity-created-3CGEXNPO.mjs} +2 -2
  72. package/dist/lib/node-esm/index.mjs +53 -19
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-KJ67TU34.mjs → intent-resolver-BLW4RM6X.mjs} +26 -8
  75. package/dist/lib/node-esm/intent-resolver-BLW4RM6X.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-root-NBQQKAZD.mjs → react-root-7XXGP56B.mjs} +5 -5
  78. package/dist/lib/node-esm/{react-surface-G2H5T2D2.mjs → react-surface-R2ECJSFB.mjs} +16 -22
  79. package/dist/lib/node-esm/react-surface-R2ECJSFB.mjs.map +7 -0
  80. package/dist/lib/node-esm/schema-LOR2EVGY.mjs +25 -0
  81. package/dist/lib/node-esm/schema-LOR2EVGY.mjs.map +7 -0
  82. package/dist/lib/node-esm/{settings-VBAUB37B.mjs → settings-H6MXTEQM.mjs} +2 -2
  83. package/dist/lib/node-esm/{spaces-ready-ABADUX2P.mjs → spaces-ready-HKAQG5SA.mjs} +4 -4
  84. package/dist/lib/node-esm/{state-5GH2D5U4.mjs → state-VYA6OFHD.mjs} +2 -2
  85. package/dist/lib/node-esm/types/index.mjs +5 -5
  86. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/app-graph-builder.d.ts +88 -88
  88. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/capabilities.d.ts +2 -1
  90. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +112 -111
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/schema.d.ts +4 -0
  96. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  97. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts +1 -2
  98. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  99. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts +1 -2
  100. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +1 -1
  101. package/dist/types/src/components/AwaitingObject.d.ts +1 -2
  102. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  103. package/dist/types/src/components/BaseObjectSettings.d.ts +1 -2
  104. package/dist/types/src/components/BaseObjectSettings.d.ts.map +1 -1
  105. package/dist/types/src/components/CollectionMain.d.ts +1 -2
  106. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  107. package/dist/types/src/components/CollectionSection.d.ts +1 -2
  108. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  109. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -4
  110. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -7
  113. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  114. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -2
  115. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  116. package/dist/types/src/components/JoinDialog.d.ts +1 -2
  117. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  118. package/dist/types/src/components/MenuFooter.d.ts +1 -2
  119. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  120. package/dist/types/src/components/PersistenceStatus.d.ts +1 -2
  121. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  122. package/dist/types/src/components/PopoverAddSpace.d.ts +3 -0
  123. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -0
  124. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -2
  125. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  126. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -2
  127. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  128. package/dist/types/src/components/ShareSpaceButton.d.ts +2 -3
  129. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -1
  130. package/dist/types/src/components/SpacePluginSettings.d.ts +1 -2
  131. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  132. package/dist/types/src/components/SpacePresence.d.ts +4 -5
  133. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  134. package/dist/types/src/components/SpacePresence.stories.d.ts +2 -3
  135. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  136. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +1 -2
  137. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +1 -1
  138. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +3 -5
  139. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  140. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +1 -1
  141. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts +1 -2
  142. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  143. package/dist/types/src/components/SyncStatus/Space.d.ts +2 -3
  144. package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -1
  145. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +3 -4
  146. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  147. package/dist/types/src/components/index.d.ts +1 -0
  148. package/dist/types/src/components/index.d.ts.map +1 -1
  149. package/dist/types/src/events.d.ts +4 -0
  150. package/dist/types/src/events.d.ts.map +1 -1
  151. package/dist/types/src/index.d.ts +1 -1
  152. package/dist/types/src/index.d.ts.map +1 -1
  153. package/dist/types/src/translations.d.ts +9 -0
  154. package/dist/types/src/translations.d.ts.map +1 -1
  155. package/dist/types/src/types/collection.d.ts +2 -2
  156. package/dist/types/src/types/thread.d.ts +34 -34
  157. package/dist/types/src/types/types.d.ts +35 -13
  158. package/dist/types/src/types/types.d.ts.map +1 -1
  159. package/dist/types/src/util.d.ts +3 -2
  160. package/dist/types/src/util.d.ts.map +1 -1
  161. package/package.json +40 -38
  162. package/src/SpacePlugin.tsx +35 -11
  163. package/src/capabilities/app-graph-builder.ts +15 -89
  164. package/src/capabilities/capabilities.ts +3 -1
  165. package/src/capabilities/index.ts +1 -0
  166. package/src/capabilities/intent-resolver.ts +18 -0
  167. package/src/capabilities/react-surface.tsx +12 -28
  168. package/src/capabilities/schema.ts +27 -0
  169. package/src/components/BaseObjectSettings.tsx +7 -0
  170. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +1 -3
  171. package/src/components/CreateDialog/CreateObjectDialog.tsx +29 -21
  172. package/src/components/CreateDialog/CreateObjectPanel.tsx +41 -43
  173. package/src/components/PopoverAddSpace.tsx +46 -0
  174. package/src/components/SpaceSettings/SpaceSettingsPanel.stories.tsx +5 -1
  175. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +27 -4
  176. package/src/components/index.ts +1 -0
  177. package/src/events.ts +6 -0
  178. package/src/index.ts +1 -1
  179. package/src/translations.ts +3 -0
  180. package/src/types/types.ts +21 -6
  181. package/src/util.tsx +8 -2
  182. package/dist/lib/browser/app-graph-builder-TTM2YZVS.mjs.map +0 -7
  183. package/dist/lib/browser/chunk-2NMUVDMZ.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-ENRYFGYE.mjs.map +0 -7
  185. package/dist/lib/browser/chunk-H2AR4OLP.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-RLZQJD47.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-S5IGZNXJ.mjs.map +0 -7
  188. package/dist/lib/browser/intent-resolver-A5274MUR.mjs.map +0 -7
  189. package/dist/lib/browser/react-surface-STMNA7W7.mjs.map +0 -7
  190. package/dist/lib/node/app-graph-builder-6N4TEVHH.cjs.map +0 -7
  191. package/dist/lib/node/chunk-2RCJT3P2.cjs.map +0 -7
  192. package/dist/lib/node/chunk-I2LRRRMV.cjs.map +0 -7
  193. package/dist/lib/node/chunk-MMXP2NHE.cjs.map +0 -7
  194. package/dist/lib/node/chunk-SPCSJ2CY.cjs.map +0 -7
  195. package/dist/lib/node/chunk-UX3U4RU2.cjs.map +0 -7
  196. package/dist/lib/node/intent-resolver-NVTAESKB.cjs.map +0 -7
  197. package/dist/lib/node/react-surface-ANSZ4FKK.cjs.map +0 -7
  198. package/dist/lib/node-esm/app-graph-builder-MS6BI5EW.mjs.map +0 -7
  199. package/dist/lib/node-esm/chunk-4HICD7AU.mjs.map +0 -7
  200. package/dist/lib/node-esm/chunk-77RE7Y5J.mjs.map +0 -7
  201. package/dist/lib/node-esm/chunk-ESWV7ICX.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-LGL4A5B5.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-S6VAU6VJ.mjs.map +0 -7
  204. package/dist/lib/node-esm/intent-resolver-KJ67TU34.mjs.map +0 -7
  205. package/dist/lib/node-esm/react-surface-G2H5T2D2.mjs.map +0 -7
  206. /package/dist/lib/browser/{app-graph-serializer-ZGM5NDXE.mjs.map → app-graph-serializer-FOWFLYGU.mjs.map} +0 -0
  207. /package/dist/lib/browser/{identity-created-VICTPQX7.mjs.map → identity-created-FYGS6TBH.mjs.map} +0 -0
  208. /package/dist/lib/browser/{react-root-N6QTWYCV.mjs.map → react-root-IP2ZB245.mjs.map} +0 -0
  209. /package/dist/lib/browser/{settings-HN5UIYQO.mjs.map → settings-PHPCXX33.mjs.map} +0 -0
  210. /package/dist/lib/browser/{spaces-ready-F57ITJDR.mjs.map → spaces-ready-K47RR7N2.mjs.map} +0 -0
  211. /package/dist/lib/browser/{state-6DCY5YJP.mjs.map → state-INJ63O57.mjs.map} +0 -0
  212. /package/dist/lib/node/{app-graph-serializer-AWKVTYAB.cjs.map → app-graph-serializer-VQOGHKXL.cjs.map} +0 -0
  213. /package/dist/lib/node/{identity-created-JNDKMFKI.cjs.map → identity-created-AXI64BLE.cjs.map} +0 -0
  214. /package/dist/lib/node/{react-root-YCHSAYQE.cjs.map → react-root-3OX5Z5CX.cjs.map} +0 -0
  215. /package/dist/lib/node/{settings-RBBL22DJ.cjs.map → settings-5QYFWNH7.cjs.map} +0 -0
  216. /package/dist/lib/node/{spaces-ready-WHU4J6E5.cjs.map → spaces-ready-FQNAKR7G.cjs.map} +0 -0
  217. /package/dist/lib/node/{state-WPZC4JXB.cjs.map → state-57UE3DYE.cjs.map} +0 -0
  218. /package/dist/lib/node-esm/{app-graph-serializer-AWAWDSCM.mjs.map → app-graph-serializer-GZRSWHEN.mjs.map} +0 -0
  219. /package/dist/lib/node-esm/{identity-created-3AUSSVEK.mjs.map → identity-created-3CGEXNPO.mjs.map} +0 -0
  220. /package/dist/lib/node-esm/{react-root-NBQQKAZD.mjs.map → react-root-7XXGP56B.mjs.map} +0 -0
  221. /package/dist/lib/node-esm/{settings-VBAUB37B.mjs.map → settings-H6MXTEQM.mjs.map} +0 -0
  222. /package/dist/lib/node-esm/{spaces-ready-ABADUX2P.mjs.map → spaces-ready-HKAQG5SA.mjs.map} +0 -0
  223. /package/dist/lib/node-esm/{state-5GH2D5U4.mjs.map → state-VYA6OFHD.mjs.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/util.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, type PromiseIntentDispatcher, LayoutAction } 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: 'item',\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 disposition: 'toolbar',\n iconOnly: false,\n variant: 'default',\n testId: 'spacePlugin.shareSpace',\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: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: 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": ["createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getObjectAnnotation", "getTypename", "invariant", "getSchema", "isReactiveObject", "makeRef", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "cleanup", "getGraph", "memoize", "Filter", "fullyQualifiedId", "getSpace", "isEchoObject", "isSpace", "SpaceState", "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", "iconOnly", "variant", "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", "LayoutAction", "Expose", "part", "subject", "getActiveSpace", "active", "findNode", "isReactiveObject", "getSpace", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getObjectAnnotation", "EXPANDO_TYPENAME", "serializer", "invariant", "content", "serialize", "deserialize", "newId"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { type Expando, getTypename, type HasId } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef, type ReactiveObject } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { isSpace, getSpace, SpaceState, type Space, fullyQualifiedId, isEchoObject } from '@dxos/react-client/echo';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n CREATE_SPACE_DIALOG,\n JOIN_DIALOG,\n SPACE_SETTINGS_DIALOG,\n type SpaceSettingsDialogProps,\n type JoinDialogProps,\n POPOVER_RENAME_SPACE,\n CREATE_OBJECT_DIALOG,\n type CreateObjectDialogProps,\n POPOVER_RENAME_OBJECT,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionAction, CollectionType, SpaceAction } from '../types';\nimport { cloneObject, COMPOSER_SPACE_LOCK, getNestedObjects } from '../util';\n\n// TODO(wittjosiah): Remove.\nconst SPACE_MAX_OBJECTS = 500;\n\ntype IntentResolverOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n context: PluginsContext;\n observability?: boolean;\n};\n\nexport default ({ createInvitationUrl, context, observability }: IntentResolverOptions) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n return contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: SpaceAction.OpenCreateSpace,\n resolve: () => ({\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: CREATE_SPACE_DIALOG,\n options: {\n blockAlign: 'start',\n },\n }),\n ],\n }),\n }),\n createResolver({\n intent: SpaceAction.Create,\n resolve: async ({ name, edgeReplication }) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const space = await client.spaces.create({ name });\n if (edgeReplication) {\n await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);\n }\n await space.waitUntilReady();\n const collection = create(CollectionType, { objects: [], views: {} });\n space.properties[CollectionType.typename] = makeRef(collection);\n\n if (Migrations.versionProperty) {\n space.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return {\n data: {\n id: space.id,\n subject: [space.id],\n space,\n },\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.create',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Join,\n resolve: ({ invitationCode }) => ({\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: JOIN_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n initialInvitationCode: invitationCode,\n } satisfies Partial<JoinDialogProps>,\n },\n }),\n ],\n }),\n }),\n createResolver({\n intent: SpaceAction.Share,\n filter: (data): data is { space: Space } => !data.space.properties[COMPOSER_SPACE_LOCK],\n resolve: ({ space }) => {\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const current = attention.current.at(-1);\n const target = current?.startsWith(space.id) ? current : undefined;\n\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: SPACE_SETTINGS_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n space,\n target,\n initialTab: 'members',\n createInvitationUrl,\n } satisfies Partial<SpaceSettingsDialogProps>,\n },\n }),\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.share',\n properties: {\n space: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Lock,\n resolve: ({ space }) => {\n space.properties[COMPOSER_SPACE_LOCK] = true;\n return {\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.lock',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Unlock,\n resolve: ({ space }) => {\n space.properties[COMPOSER_SPACE_LOCK] = false;\n return {\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.unlock',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Rename,\n resolve: ({ caller, space }) => {\n return {\n intents: [\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: POPOVER_RENAME_SPACE,\n options: {\n anchorId: `dxos.org/ui/${caller}/${space.id}`,\n props: space,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.OpenSettings,\n resolve: ({ space }) => {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: SPACE_SETTINGS_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n space,\n initialTab: 'settings',\n createInvitationUrl,\n } satisfies Partial<SpaceSettingsDialogProps>,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Open,\n resolve: async ({ space }) => {\n await space.open();\n },\n }),\n createResolver({\n intent: SpaceAction.Close,\n resolve: async ({ space }) => {\n await space.close();\n },\n }),\n createResolver({\n intent: SpaceAction.Migrate,\n resolve: async ({ space, version }) => {\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n\n if (space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n state.sdkMigrationRunning[space.id] = true;\n await space.internal.migrate();\n state.sdkMigrationRunning[space.id] = false;\n }\n const result = await Migrations.migrate(space, version);\n return {\n data: result,\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.migrate',\n properties: {\n spaceId: space.id,\n version,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.OpenCreateObject,\n resolve: ({ target, navigable = true }) => {\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: CREATE_OBJECT_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n target,\n shouldNavigate: navigable\n ? (object: ReactiveObject<any>) => !(object instanceof CollectionType) || state.navigableCollections\n : () => false,\n } satisfies Partial<CreateObjectDialogProps>,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.AddObject,\n resolve: async ({ target, object }) => {\n const space = isSpace(target) ? target : getSpace(target);\n invariant(space, 'Space not found.');\n\n if (space.db.coreDatabase.getAllObjectIds().length >= SPACE_MAX_OBJECTS) {\n return {\n error: new Error('Space limit reached.'),\n intents: [\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${SPACE_PLUGIN}/space-limit`,\n title: ['space limit label', { ns: SPACE_PLUGIN }],\n description: ['space limit description', { ns: SPACE_PLUGIN }],\n duration: 5_000,\n icon: 'ph--warning--regular',\n actionLabel: ['remove deleted objects label', { ns: SPACE_PLUGIN }],\n actionAlt: ['remove deleted objects alt', { ns: SPACE_PLUGIN }],\n closeLabel: ['close label', { ns: 'os' }],\n onAction: () => space.db.coreDatabase.unlinkDeletedObjects(),\n },\n }),\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.limit',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n }\n\n if (target instanceof CollectionType) {\n target.objects.push(makeRef(object as HasId));\n } else if (isSpace(target)) {\n const collection = space.properties[CollectionType.typename]?.target;\n if (collection instanceof CollectionType) {\n collection.objects.push(makeRef(object as HasId));\n } else {\n // TODO(wittjosiah): Can't add non-echo objects by including in a collection because of types.\n const collection = create(CollectionType, { objects: [makeRef(object as HasId)], views: {} });\n space.properties[CollectionType.typename] = makeRef(collection);\n }\n }\n\n return {\n data: {\n id: fullyQualifiedId(object),\n subject: [fullyQualifiedId(object)],\n object: object as HasId,\n },\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.object.add',\n properties: {\n spaceId: space.id,\n objectId: object.id,\n typename: getTypename(object),\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.RemoveObjects,\n resolve: async ({ objects, target, deletionData }, undo) => {\n const layout = context.requestCapability(Capabilities.Layout);\n\n // All objects must be a member of the same space.\n const space = getSpace(objects[0]);\n invariant(space && objects.every((obj) => isEchoObject(obj) && getSpace(obj) === space));\n const openObjectIds = new Set<string>(layout.active);\n\n if (!undo) {\n const parentCollection: CollectionType = target ?? space.properties[CollectionType.typename]?.target;\n const nestedObjectsList = await Promise.all(objects.map((obj) => getNestedObjects(obj, resolve)));\n\n const deletionData = {\n objects,\n parentCollection,\n indices: objects.map((obj) =>\n parentCollection instanceof CollectionType\n ? parentCollection.objects.findIndex((object) => object.target === obj)\n : -1,\n ),\n nestedObjectsList,\n wasActive: objects\n .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])\n .map((obj) => fullyQualifiedId(obj))\n .filter((id) => openObjectIds.has(id)),\n } satisfies SpaceAction.DeletionData;\n\n if (deletionData.parentCollection instanceof CollectionType) {\n [...deletionData.indices]\n .sort((a, b) => b - a)\n .forEach((index: number) => {\n if (index !== -1) {\n deletionData.parentCollection.objects.splice(index, 1);\n }\n });\n }\n\n deletionData.nestedObjectsList.flat().forEach((obj) => {\n space.db.remove(obj);\n });\n objects.forEach((obj) => space.db.remove(obj));\n\n const undoMessageKey = objects.some((obj) => obj instanceof CollectionType)\n ? 'collection deleted label'\n : objects.length > 1\n ? 'objects deleted label'\n : 'object deleted label';\n\n return {\n undoable: {\n // TODO(ZaymonFC): Pluralize if more than one object.\n message: [undoMessageKey, { ns: SPACE_PLUGIN }],\n data: { deletionData },\n },\n intents:\n deletionData.wasActive.length > 0\n ? [\n createIntent(LayoutAction.Close, {\n part: 'main',\n subject: deletionData.wasActive,\n options: { state: false },\n }),\n ]\n : undefined,\n };\n } else {\n if (\n deletionData?.objects?.length &&\n deletionData.objects.every(isEchoObject) &&\n deletionData.parentCollection instanceof CollectionType\n ) {\n // Restore the object to the space.\n const restoredObjects = deletionData.objects.map((obj: Expando) => space.db.add(obj));\n\n // Restore nested objects to the space.\n deletionData.nestedObjectsList.flat().forEach((obj: Expando) => {\n space.db.add(obj);\n });\n\n deletionData.indices.forEach((index: number, i: number) => {\n if (index !== -1) {\n deletionData.parentCollection.objects.splice(index, 0, makeRef(restoredObjects[i] as Expando));\n }\n });\n\n return {\n intents:\n deletionData.wasActive.length > 0\n ? [\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: deletionData.wasActive,\n }),\n ]\n : undefined,\n };\n }\n }\n },\n }),\n createResolver({\n intent: SpaceAction.RenameObject,\n resolve: async ({ object, caller }) => ({\n intents: [\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: POPOVER_RENAME_OBJECT,\n options: {\n anchorId: `dxos.org/ui/${caller}/${fullyQualifiedId(object)}`,\n props: object,\n },\n }),\n ],\n }),\n }),\n createResolver({\n intent: SpaceAction.DuplicateObject,\n resolve: async ({ object, target }) => {\n const space = isSpace(target) ? target : getSpace(target);\n invariant(space, 'Space not found.');\n\n const newObject = await cloneObject(object, resolve, space);\n return {\n intents: [createIntent(SpaceAction.AddObject, { object: newObject, target })],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.WaitForObject,\n resolve: async ({ id }) => {\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n state.awaiting = id;\n },\n }),\n createResolver({\n intent: CollectionAction.Create,\n resolve: async ({ name }) => ({\n data: { object: create(CollectionType, { name, objects: [], views: {} }) },\n }),\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Capabilities", "contributes", "createIntent", "createResolver", "LayoutAction", "getTypename", "invariant", "create", "makeRef", "Migrations", "AttentionCapabilities", "ClientCapabilities", "ObservabilityAction", "EdgeReplicationSetting", "isSpace", "getSpace", "SpaceState", "fullyQualifiedId", "isEchoObject", "SPACE_MAX_OBJECTS", "createInvitationUrl", "context", "observability", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "contributes", "IntentResolver", "createResolver", "intent", "SpaceAction", "OpenCreateSpace", "intents", "createIntent", "LayoutAction", "UpdateDialog", "part", "subject", "CREATE_SPACE_DIALOG", "options", "blockAlign", "Create", "name", "edgeReplication", "client", "requestCapability", "ClientCapabilities", "Client", "space", "spaces", "create", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "waitUntilReady", "collection", "CollectionType", "objects", "views", "properties", "makeRef", "Migrations", "versionProperty", "targetVersion", "data", "ObservabilityAction", "SendEvent", "spaceId", "Join", "invitationCode", "JOIN_DIALOG", "props", "initialInvitationCode", "Share", "filter", "COMPOSER_SPACE_LOCK", "attention", "AttentionCapabilities", "Attention", "current", "at", "target", "startsWith", "undefined", "SPACE_SETTINGS_DIALOG", "initialTab", "Lock", "Unlock", "Rename", "caller", "UpdatePopover", "POPOVER_RENAME_SPACE", "anchorId", "OpenSettings", "Open", "open", "Close", "close", "Migrate", "version", "state", "SpaceCapabilities", "MutableState", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "sdkMigrationRunning", "migrate", "result", "OpenCreateObject", "navigable", "State", "CREATE_OBJECT_DIALOG", "shouldNavigate", "object", "navigableCollections", "AddObject", "isSpace", "getSpace", "invariant", "db", "coreDatabase", "getAllObjectIds", "length", "error", "Error", "AddToast", "SPACE_PLUGIN", "title", "ns", "description", "duration", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "unlinkDeletedObjects", "push", "fullyQualifiedId", "objectId", "getTypename", "RemoveObjects", "deletionData", "undo", "layout", "Layout", "every", "obj", "isEchoObject", "openObjectIds", "Set", "active", "parentCollection", "nestedObjectsList", "Promise", "all", "map", "getNestedObjects", "indices", "findIndex", "wasActive", "flatMap", "i", "has", "sort", "a", "b", "forEach", "index", "splice", "flat", "remove", "undoMessageKey", "some", "undoable", "message", "restoredObjects", "add", "RenameObject", "POPOVER_RENAME_OBJECT", "DuplicateObject", "newObject", "cloneObject", "WaitForObject", "awaiting", "CollectionAction"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n contributes,\n createSurface,\n Surface,\n useCapability,\n useCapabilities,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport {\n getSpace,\n isEchoObject,\n isReactiveObject,\n isSpace,\n SpaceState,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n AdvancedObjectSettings,\n BaseObjectSettings,\n CollectionMain,\n CollectionSection,\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CreateObjectDialog,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MenuFooter,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n SmallPresenceLive,\n SPACE_SETTINGS_DIALOG,\n SpacePluginSettings,\n SpacePresence,\n SpaceSettingsDialog,\n SpaceSettingsPanel,\n SyncStatus,\n type CreateObjectDialogProps,\n type SpaceSettingsDialogProps,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, type SpaceSettingsProps } from '../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{ id: data.subject.id, subject: data.subject.properties[CollectionType.typename]?.target }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings-panel`,\n // TODO(burdon): Add role name syntax to minimal plugin docs.\n role: 'complementary--settings',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => <SpaceSettingsPanel space={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-base-panel`,\n role: 'complementary--settings',\n position: 'hoist',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <BaseObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-advanced-panel`,\n role: 'complementary--settings',\n position: 'fallback',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <AdvancedObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: SPACE_SETTINGS_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: SpaceSettingsDialogProps } => data.component === SPACE_SETTINGS_DIALOG,\n component: ({ data }) => <SpaceSettingsDialog {...data.props} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: Partial<CreateObjectDialogProps> } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => {\n const schemas = useCapabilities(ClientCapabilities.Schema).flat();\n const manager = usePluginManager();\n\n const resolve = useCallback(\n (typename: string) => {\n return (\n manager.context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ??\n {}\n );\n },\n [manager],\n );\n\n return <CreateObjectDialog schemas={schemas} resolve={resolve} {...data.props} />;\n },\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { props: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isReactiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>\n typeof data.id === 'string' && isEchoObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n createSurface({\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>\n isSpace(data.subject) || isEchoObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[CollectionType.typename]?.target as CollectionType)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SACEC,cACAC,aACAC,eACAC,SACAC,eACAC,iBACAC,wBACK;AACP,SAASC,qBAAqB;AAC9B,SAASC,0BAA0B;AACnC,SACEC,UACAC,cACAC,kBACAC,SACAC,kBAGK;AAsCP,IAAA,wBAAe,CAAC,EAAEC,oBAAmB,MACnCC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC;;MAEPC,QAAQD,KAAKE,OAAO,KAAKF,KAAKE,QAAQC,MAAMC,IAAG,MAAOC,WAAWC;;IACnEC,WAAW,CAAC,EAAEP,MAAMF,MAAM,GAAGU,KAAAA,MAC3B,sBAAA,cAACC,SAAAA;MACCT,MAAM;QAAEJ,IAAII,KAAKE,QAAQN;QAAIM,SAASF,KAAKE,QAAQQ,WAAWC,eAAeC,QAAQ,GAAGC;MAAO;MAC/Ff;MACC,GAAGU;;EAGV,CAAA;EACAb,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNgB,UAAU;IACVf,QAAQ,CAACC,SAA8CA,KAAKE,mBAAmBS;IAC/EJ,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACe,gBAAAA;MAAeC,YAAYhB,KAAKE;;EAC5D,CAAA;EACAP,cAAc;IACZC,IAAI,GAAGC,YAAAA;;IAEPC,MAAM;IACNC,QAAQ,CAACC,SAAqCC,QAAQD,KAAKE,OAAO;IAClEK,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACiB,oBAAAA;MAAmBC,OAAOlB,KAAKE;;EAC3D,CAAA;EACAP,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNgB,UAAU;IACVf,QAAQ,CAACC,SAAuDmB,aAAanB,KAAKE,OAAO;IACzFK,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACoB,oBAAAA;MAAmBC,QAAQrB,KAAKE;;EAC5D,CAAA;EACAP,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNgB,UAAU;IACVf,QAAQ,CAACC,SAAuDmB,aAAanB,KAAKE,OAAO;IACzFK,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACsB,wBAAAA;MAAuBD,QAAQrB,KAAKE;;EAChE,CAAA;EACAP,cAAc;IACZC,IAAI2B;IACJzB,MAAM;IACNC,QAAQ,CAACC,SAAsDA,KAAKO,cAAcgB;IAClFhB,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACwB,qBAAAA;MAAqB,GAAGxB,KAAKyB;MAAOlC;;EAChE,CAAA;EACAI,cAAc;IACZC,IAAI8B;IACJ5B,MAAM;IACNC,QAAQ,CAACC,SAA4CA,KAAKO,cAAcmB;IACxEnB,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAAC2B,YAAe3B,KAAKyB,KAAK;EACrD,CAAA;EACA9B,cAAc;IACZC,IAAIgC;IACJ9B,MAAM;IACNC,QAAQ,CAACC,SAAsBA,KAAKO,cAAcqB;IAClDrB,WAAW,MAAM,sBAAA,cAACsB,mBAAAA,IAAAA;EACpB,CAAA;EACAlC,cAAc;IACZC,IAAIkC;IACJhC,MAAM;IACNC,QAAQ,CAACC,SAA8DA,KAAKO,cAAcuB;IAC1FvB,WAAW,CAAC,EAAEP,KAAI,MAAE;AAClB,YAAM+B,UAAUC,gBAAgBC,mBAAmBC,MAAM,EAAEC,KAAI;AAC/D,YAAMC,UAAUC,iBAAAA;AAEhB,YAAMC,UAAUC,YACd,CAAC3B,aAAAA;AACC,eACEwB,QAAQI,QAAQC,oBAAoBhD,aAAaiD,QAAQ,EAAEC,KAAK,CAAC,EAAE/C,GAAE,MAAOA,OAAOgB,QAAAA,GAAWgC,YAC9F,CAAC;MAEL,GACA;QAACR;OAAQ;AAGX,aAAO,sBAAA,cAACS,oBAAAA;QAAmBd;QAAkBO;QAAmB,GAAGtC,KAAKyB;;IAC1E;EACF,CAAA;EACA9B,cAAc;IACZC,IAAIkD;IACJhD,MAAM;IACNC,QAAQ,CAACC,SAAmCA,KAAKO,cAAcuC,wBAAwB7C,QAAQD,KAAKyB,KAAK;IACzGlB,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAAC+C,oBAAAA;MAAmB7B,OAAOlB,KAAKyB;;EAC3D,CAAA;EACA9B,cAAc;IACZC,IAAIoD;IACJlD,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKO,cAAcyC,yBAAyBC,iBAAiBjD,KAAKyB,KAAK;IACzElB,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACkD,qBAAAA;MAAoB7B,QAAQrB,KAAKyB;;EAC7D,CAAA;EACA9B,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACP,OAAOA,KAAKJ,OAAO,YAAYuB,aAAanB,KAAKE,OAAO;IAC1DK,WAAW,CAAC,EAAEP,KAAI,MAAE;AAElB,YAAMG,QAAQgD,cAAcC,kBAAkBC,YAAY;AAC1D,aAAO,sBAAA,cAACC,mBAAAA;QAAkB1D,IAAII,KAAKJ;QAAI2D,MAAMvD,KAAKuD;QAAMC,SAASrD,MAAMsD,gBAAgBzD,KAAKJ,EAAE;;IAChG;EACF,CAAA;EACAD,cAAc;;IAEZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNgB,UAAU;IACVf,QAAQ,CAACC,SAAiD,OAAOA,KAAKJ,OAAO;IAC7EW,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACsD,mBAAAA;MAAkB1D,IAAII,KAAKJ;MAAI2D,MAAMvD,KAAKuD;;EACtE,CAAA;EACA5D,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAqDC,QAAQD,KAAKE,OAAO;IAClFK,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAAC0D,kBAAAA;MAAiBxC,OAAOlB,KAAKE;MAASqD,MAAMvD,KAAKuD;;EAC7E,CAAA;EACA5D,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNgB,UAAU;IACVf,QAAQ,CAACC,SACPC,QAAQD,KAAKE,OAAO,KAAKiB,aAAanB,KAAKE,OAAO;IACpDK,WAAW,CAAC,EAAEP,KAAI,MAAE;AAClB,YAAMkB,QAAQjB,QAAQD,KAAKE,OAAO,IAAIF,KAAKE,UAAUyD,SAAS3D,KAAKE,OAAO;AAC1E,YAAMmB,SAASpB,QAAQD,KAAKE,OAAO,IAC/BF,KAAKE,QAAQC,MAAMC,IAAG,MAAOC,WAAWC,cACrCY,OAAOR,WAAWC,eAAeC,QAAQ,GAAGC,SAC7C+C,SACF5D,KAAKE;AAET,aAAOmB,SAAS,sBAAA,cAACwC,eAAAA;QAAcxC;WAAqB;IACtD;EACF,CAAA;EACA1B,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA8CA,KAAKE,mBAAmBS;IAC/EJ,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAAC8D,mBAAAA;MAAkB9C,YAAYhB,KAAKE;;EAC/D,CAAA;EACAP,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKE,mBAAmB6D,iBAAiB/D,KAAKE,QAAQ8D,WAAWnE;IACnEU,WAAW,CAAC,EAAEP,MAAM,EAAEE,QAAO,EAAE,MAAO,sBAAA,cAAC+D,qBAAAA;MAAoBC,UAAUhE,QAAQiE;;EAC/E,CAAA;EACAxE,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAuDmB,aAAanB,KAAKE,OAAO;IACzFK,WAAW,CAAC,EAAEP,KAAI,MAAO,sBAAA,cAACoE,YAAAA;MAAW/C,QAAQrB,KAAKE;;EACpD,CAAA;EACAP,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNS,WAAW,MAAM,sBAAA,cAAC8D,YAAAA,IAAAA;EACpB,CAAA;CACD;",
6
- "names": ["React", "useCallback", "Capabilities", "contributes", "createSurface", "Surface", "useCapability", "useCapabilities", "usePluginManager", "SettingsStore", "ClientCapabilities", "getSpace", "isEchoObject", "isReactiveObject", "isSpace", "SpaceState", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "Surface", "properties", "CollectionType", "typename", "target", "position", "CollectionMain", "collection", "SpaceSettingsPanel", "space", "isEchoObject", "BaseObjectSettings", "object", "AdvancedObjectSettings", "SPACE_SETTINGS_DIALOG", "SpaceSettingsDialog", "props", "JOIN_DIALOG", "JoinDialog", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "schemas", "useCapabilities", "ClientCapabilities", "Schema", "flat", "manager", "usePluginManager", "resolve", "useCallback", "context", "requestCapabilities", "Metadata", "find", "metadata", "CreateObjectDialog", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isReactiveObject", "PopoverRenameObject", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "undefined", "SpacePresence", "CollectionSection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "MenuFooter", "SyncStatus"]
7
- }
@@ -1,7 +0,0 @@
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 parseId,\n type ReactiveEchoObject,\n SPACE_ID_LENGTH,\n SpaceState,\n type Space,\n} from '@dxos/client/echo';\nimport { getTypename, isDeleted } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, toSignal, type Node } from '@dxos/plugin-graph';\nimport { nonNullable } 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.OpenCreateSpace._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.OpenCreateSpace));\n },\n properties: {\n label: ['create space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.createSpace',\n disposition: 'item',\n },\n },\n {\n id: SpaceAction.Join._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.Join));\n },\n properties: {\n label: ['join space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sign-in--regular',\n testId: 'spacePlugin.joinSpace',\n disposition: 'item',\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 {\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(nonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(nonNullable);\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(nonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(nonNullable);\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 // Create nodes for object settings.\n createExtension({\n id: `${SPACE_PLUGIN}/settings-for-subject`,\n resolver: ({ id }) => {\n if (!id.endsWith('~settings')) {\n return;\n }\n\n const type = 'orphan-settings-for-subject';\n const icon = 'ph--gear--regular';\n\n const [subjectId] = id.split('~');\n const { spaceId, objectId } = parseId(subjectId);\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n const space = spaces?.find((space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY);\n if (!objectId) {\n const label = space\n ? space.properties.name || ['unnamed space label', { ns: SPACE_PLUGIN }]\n : ['unnamed object settings label', { ns: SPACE_PLUGIN }];\n\n // TODO(wittjosiah): Support comments for arbitrary subjects.\n // This is to ensure that the comments panel is not stuck on an old object.\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n showResolvedThreads: false,\n object: null,\n space,\n },\n };\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n if (!object || !subjectId) {\n return;\n }\n\n const meta = resolve(getTypename(object) ?? '');\n const label = meta.label?.(object) ||\n object.name ||\n meta.placeholder || ['unnamed object settings label', { ns: SPACE_PLUGIN }];\n\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n object,\n },\n };\n },\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["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", "OpenCreateSpace", "_tag", "data", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "Join", "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", "isSpace", "constructSpaceActions", "migrating", "sdkMigrationRunning", "spaceState", "SPACE_READY", "collection", "CollectionType", "target", "object", "nonNullable", "createObjectNode", "getSpace", "FQ_ID_LENGTH", "spaceId", "objectId", "split", "OBJECT_ID_LENGTH", "isDeleted", "isEchoObject", "constructObjectActions", "endsWith", "subjectId", "parseId", "name", "showResolvedThreads", "meta", "getTypename", "placeholder"]
7
- }