@dxos/plugin-space 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65

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 (344) hide show
  1. package/dist/lib/browser/{CollectionArticle-WASDM637.mjs → CollectionArticle-WPLUW5HF.mjs} +5 -36
  2. package/dist/lib/browser/CollectionArticle-WPLUW5HF.mjs.map +7 -0
  3. package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs → CollectionSection-H2MBNI63.mjs} +2 -2
  4. package/dist/lib/browser/{CreateObjectDialog-MA6DPYMD.mjs → CreateObjectDialog-YUBUWSEL.mjs} +17 -21
  5. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
  6. package/dist/lib/browser/{CreateSpaceDialog-WCEICWIE.mjs → CreateSpaceDialog-3M2LAWV6.mjs} +7 -7
  7. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
  8. package/dist/lib/browser/{InlineSyncStatus-BT7BRBCO.mjs → InlineSyncStatus-K5MZ3YMZ.mjs} +9 -18
  9. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
  10. package/dist/lib/browser/{JoinDialog-PMCAIRCU.mjs → JoinDialog-PBK2RE5F.mjs} +8 -10
  11. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
  12. package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs → MembersContainer-OGYV2L4M.mjs} +4 -4
  13. package/dist/lib/browser/{MenuFooter-HYBTNOBT.mjs → MenuFooter-XCBDK7WP.mjs} +3 -4
  14. package/dist/lib/{node-esm/MenuFooter-2QB3453Y.mjs.map → browser/MenuFooter-XCBDK7WP.mjs.map} +1 -1
  15. package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs → ObjectCardStack-OMXF2DSG.mjs} +6 -6
  16. package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs → ObjectDetails-QFTQQN4W.mjs} +6 -6
  17. package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs → ObjectRenamePopover-JNPJIFIR.mjs} +3 -3
  18. package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs.map → ObjectRenamePopover-JNPJIFIR.mjs.map} +1 -1
  19. package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs → RecordArticle-BO2XHBFN.mjs} +2 -2
  20. package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs → SchemaContainer-QWCSIZBS.mjs} +2 -2
  21. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
  22. package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs → SpacePluginSettings-QGZKNQLK.mjs} +4 -4
  23. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
  24. package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs → SpaceRenamePopover-ZL6RRZ2B.mjs} +3 -3
  25. package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs.map → SpaceRenamePopover-ZL6RRZ2B.mjs.map} +1 -1
  26. package/dist/lib/browser/{SpaceSettingsContainer-UBMVKUPR.mjs → SpaceSettingsContainer-MIOOT63N.mjs} +5 -5
  27. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
  28. package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs → SyncStatus-6N7JJ7XF.mjs} +6 -6
  29. package/dist/lib/browser/{ViewEditor-F74RR542.mjs → ViewEditor-3FX5HDRT.mjs} +4 -7
  30. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
  31. package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs +1203 -0
  32. package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs.map +7 -0
  33. package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs → app-graph-serializer-UZWWGLGY.mjs} +5 -5
  34. package/dist/lib/browser/{chunk-RWOK4F4G.mjs → chunk-2WHUSAHE.mjs} +17 -14
  35. package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
  36. package/dist/lib/browser/{chunk-USN5QKRV.mjs → chunk-6IT5IBB5.mjs} +54 -86
  37. package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
  39. package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
  40. package/dist/lib/browser/{chunk-PXVKN4LU.mjs → chunk-AUX3RRLY.mjs} +34 -9
  41. package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
  42. package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
  43. package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
  44. package/dist/lib/browser/{chunk-XIIYC7P5.mjs → chunk-ICXESMDI.mjs} +6 -6
  45. package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
  46. package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
  47. package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
  48. package/dist/lib/browser/{chunk-J5F4LUJD.mjs → chunk-SSTUPFZ2.mjs} +3 -3
  49. package/dist/lib/browser/{chunk-ABCDB5YC.mjs → chunk-UYOJYBGW.mjs} +7 -16
  50. package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
  51. package/dist/lib/browser/cli/index.mjs +8 -17
  52. package/dist/lib/browser/cli/index.mjs.map +3 -3
  53. package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs → identity-created-ETXNQYR6.mjs} +4 -4
  54. package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs.map → identity-created-ETXNQYR6.mjs.map} +3 -3
  55. package/dist/lib/browser/index.mjs +33 -53
  56. package/dist/lib/browser/index.mjs.map +3 -3
  57. package/dist/lib/browser/meta.json +1 -1
  58. package/dist/lib/browser/{operation-resolver-Y3HYRXX7.mjs → operation-resolver-D4LHB4D4.mjs} +64 -88
  59. package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
  60. package/dist/lib/browser/{react-root-UYBW5RE7.mjs → react-root-OD2HP63B.mjs} +6 -6
  61. package/dist/lib/browser/{react-surface-NJ23NZFF.mjs → react-surface-E4TAFED5.mjs} +57 -79
  62. package/dist/lib/browser/react-surface-E4TAFED5.mjs.map +7 -0
  63. package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
  64. package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
  65. package/dist/lib/browser/{settings-2ELVUFDR.mjs → settings-RUDP2Q56.mjs} +3 -3
  66. package/dist/lib/browser/{spaces-ready-Q6JASPT4.mjs → spaces-ready-B2GYL5IN.mjs} +6 -6
  67. package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
  68. package/dist/lib/browser/{state-CTX4WQOM.mjs → state-I6JDZCDE.mjs} +5 -5
  69. package/dist/lib/browser/{state-CTX4WQOM.mjs.map → state-I6JDZCDE.mjs.map} +2 -2
  70. package/dist/lib/browser/types/index.mjs +2 -2
  71. package/dist/lib/node-esm/{CollectionArticle-A6GGG73Z.mjs → CollectionArticle-JGVNBX66.mjs} +5 -36
  72. package/dist/lib/node-esm/CollectionArticle-JGVNBX66.mjs.map +7 -0
  73. package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs → CollectionSection-BI66Y34F.mjs} +2 -2
  74. package/dist/lib/node-esm/{CreateObjectDialog-4WEFNDDF.mjs → CreateObjectDialog-B6OLP5VQ.mjs} +17 -21
  75. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
  76. package/dist/lib/node-esm/{CreateSpaceDialog-P7QCPB5J.mjs → CreateSpaceDialog-J47M5FPQ.mjs} +7 -7
  77. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
  78. package/dist/lib/node-esm/{InlineSyncStatus-3PCXU7NX.mjs → InlineSyncStatus-BLD57LB5.mjs} +9 -18
  79. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
  80. package/dist/lib/node-esm/{JoinDialog-XEOLJZVN.mjs → JoinDialog-XCOYKSHA.mjs} +8 -10
  81. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
  82. package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs → MembersContainer-4PV3Z4BA.mjs} +4 -4
  83. package/dist/lib/node-esm/{MenuFooter-2QB3453Y.mjs → MenuFooter-PXG2GV6A.mjs} +3 -4
  84. package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs → ObjectCardStack-457SNNVF.mjs} +6 -6
  85. package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs → ObjectDetails-OLF7HSM4.mjs} +6 -6
  86. package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs → ObjectRenamePopover-BRPKVNVF.mjs} +3 -3
  87. package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs.map → ObjectRenamePopover-BRPKVNVF.mjs.map} +1 -1
  88. package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs → RecordArticle-XUIT25PP.mjs} +2 -2
  89. package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs → SchemaContainer-5G4R3Z6O.mjs} +2 -2
  90. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
  91. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
  92. package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs → SpacePluginSettings-PENV4GHL.mjs} +4 -4
  93. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
  94. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
  95. package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs → SpaceRenamePopover-XEMTI4PU.mjs} +3 -3
  96. package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs.map → SpaceRenamePopover-XEMTI4PU.mjs.map} +1 -1
  97. package/dist/lib/node-esm/{SpaceSettingsContainer-Y62J2L65.mjs → SpaceSettingsContainer-WI4D7RWA.mjs} +5 -5
  98. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
  99. package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs → SyncStatus-YEBGTNSD.mjs} +6 -6
  100. package/dist/lib/node-esm/{ViewEditor-B2BLYF5U.mjs → ViewEditor-CUQVNM2H.mjs} +4 -7
  101. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
  102. package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs +1204 -0
  103. package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs.map +7 -0
  104. package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs → app-graph-serializer-RT2RQTV2.mjs} +5 -5
  105. package/dist/lib/node-esm/{chunk-OSFH2XKO.mjs → chunk-2OLR2ZKH.mjs} +6 -6
  106. package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
  107. package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
  108. package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
  109. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
  110. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
  111. package/dist/lib/node-esm/{chunk-UJQUBDQS.mjs → chunk-EDC2RUJU.mjs} +7 -16
  112. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
  113. package/dist/lib/node-esm/{chunk-3DWZCVVQ.mjs → chunk-EVNSLSQS.mjs} +54 -86
  114. package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
  115. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
  116. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
  117. package/dist/lib/node-esm/{chunk-P2AVANDG.mjs → chunk-RYQQXNI7.mjs} +34 -9
  118. package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
  119. package/dist/lib/node-esm/{chunk-GWUPFA7J.mjs → chunk-S5BQUCL4.mjs} +17 -14
  120. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
  121. package/dist/lib/node-esm/{chunk-S2IELCDF.mjs → chunk-XYLDAH5C.mjs} +3 -3
  122. package/dist/lib/node-esm/cli/index.mjs +8 -17
  123. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  124. package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs → identity-created-U5LGULVL.mjs} +4 -4
  125. package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs.map → identity-created-U5LGULVL.mjs.map} +3 -3
  126. package/dist/lib/node-esm/index.mjs +33 -53
  127. package/dist/lib/node-esm/index.mjs.map +3 -3
  128. package/dist/lib/node-esm/meta.json +1 -1
  129. package/dist/lib/node-esm/{operation-resolver-IRQ2NVUQ.mjs → operation-resolver-IL2AHNPN.mjs} +64 -88
  130. package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
  131. package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs → react-root-RILC5MBD.mjs} +6 -6
  132. package/dist/lib/node-esm/{react-surface-UDO3PGH6.mjs → react-surface-SWKRVK4S.mjs} +57 -79
  133. package/dist/lib/node-esm/react-surface-SWKRVK4S.mjs.map +7 -0
  134. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs +32 -0
  135. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
  136. package/dist/lib/node-esm/{settings-DCTVM2BV.mjs → settings-3EKSEAAG.mjs} +3 -3
  137. package/dist/lib/node-esm/{spaces-ready-XLGRTJV2.mjs → spaces-ready-QK3EHBOS.mjs} +6 -6
  138. package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
  139. package/dist/lib/node-esm/{state-G74V3WZG.mjs → state-W36RRYUO.mjs} +5 -5
  140. package/dist/lib/node-esm/{state-G74V3WZG.mjs.map → state-W36RRYUO.mjs.map} +2 -2
  141. package/dist/lib/node-esm/types/index.mjs +2 -2
  142. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  143. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -2
  144. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
  146. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
  148. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
  150. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
  152. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
  153. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
  154. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
  155. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
  156. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
  157. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
  158. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
  159. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
  160. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
  161. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  162. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  163. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
  164. package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
  165. package/dist/types/src/cli/commands/database/add.d.ts +0 -1
  166. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
  167. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  168. package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
  169. package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
  170. package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
  171. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +0 -1
  172. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  173. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
  174. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
  175. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -1
  176. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +1 -2
  177. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
  178. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +2 -1
  179. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
  180. package/dist/types/src/containers/CreateObjectDialog/index.d.ts +2 -2
  181. package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -1
  182. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
  183. package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
  184. package/dist/types/src/containers/JoinDialog/index.d.ts +2 -2
  185. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
  186. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts +1 -0
  187. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -1
  188. package/dist/types/src/containers/SmallPresenceLive/index.d.ts +1 -1
  189. package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -1
  190. package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
  191. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +67 -13
  192. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  193. package/dist/types/src/containers/SpacePresence/index.d.ts +2 -2
  194. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
  195. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +67 -13
  196. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
  197. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +67 -13
  198. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  199. package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -1
  200. package/dist/types/src/containers/index.d.ts +1 -1
  201. package/dist/types/src/containers/index.d.ts.map +1 -1
  202. package/dist/types/src/translations.d.ts +67 -13
  203. package/dist/types/src/translations.d.ts.map +1 -1
  204. package/dist/types/src/types/form.d.ts +0 -2
  205. package/dist/types/src/types/form.d.ts.map +1 -1
  206. package/dist/types/src/types/types.d.ts +29 -46
  207. package/dist/types/src/types/types.d.ts.map +1 -1
  208. package/dist/types/src/util.d.ts +4 -161
  209. package/dist/types/src/util.d.ts.map +1 -1
  210. package/dist/types/tsconfig.tsbuildinfo +1 -1
  211. package/package.json +57 -57
  212. package/src/SpacePlugin.ts +14 -22
  213. package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -657
  214. package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
  215. package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
  216. package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
  217. package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
  218. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
  219. package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
  220. package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
  221. package/src/capabilities/app-graph-builder/extensions/types.ts +421 -0
  222. package/src/capabilities/identity-created/identity-created.ts +3 -3
  223. package/src/capabilities/operation-resolver/operation-resolver.ts +65 -73
  224. package/src/capabilities/react-surface/react-surface.tsx +33 -58
  225. package/src/capabilities/repair/repair.ts +3 -32
  226. package/src/capabilities/spaces-ready/spaces-ready.ts +2 -2
  227. package/src/capabilities/state/state.ts +4 -2
  228. package/src/cli/commands/database/add.ts +0 -1
  229. package/src/cli/commands/space/close/close.ts +1 -1
  230. package/src/cli/commands/space/create/create.ts +1 -1
  231. package/src/cli/commands/space/join/join.ts +1 -1
  232. package/src/cli/commands/space/open/open.ts +1 -1
  233. package/src/cli/plugin.ts +0 -1
  234. package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +2 -2
  235. package/src/components/AwaitingObject/index.ts +5 -0
  236. package/src/components/CreateDialog/CreateObjectPanel.tsx +5 -2
  237. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +4 -4
  238. package/src/components/ObjectDetails/BaseObjectSettings.tsx +4 -4
  239. package/src/components/ObjectForm/ObjectForm.tsx +6 -4
  240. package/src/constants.ts +5 -5
  241. package/src/containers/CollectionArticle/CollectionArticle.tsx +7 -54
  242. package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -10
  243. package/src/containers/CreateObjectDialog/index.ts +2 -3
  244. package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -3
  245. package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +7 -18
  246. package/src/containers/JoinDialog/JoinDialog.tsx +4 -4
  247. package/src/containers/JoinDialog/index.ts +2 -3
  248. package/src/containers/ObjectRenamePopover/ObjectRenamePopover.tsx +1 -1
  249. package/src/containers/SmallPresenceLive/index.ts +1 -1
  250. package/src/containers/SpacePresence/SpacePresence.tsx +4 -16
  251. package/src/containers/SpacePresence/index.ts +2 -3
  252. package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +1 -1
  253. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +2 -2
  254. package/src/containers/ViewEditor/ViewEditor.tsx +0 -1
  255. package/src/containers/index.ts +1 -1
  256. package/src/helpers/query.test.ts +1 -1
  257. package/src/hooks/useActiveSpace.ts +4 -4
  258. package/src/meta.ts +1 -1
  259. package/src/translations.ts +27 -1
  260. package/src/types/capabilities.ts +7 -7
  261. package/src/types/events.ts +5 -5
  262. package/src/types/form.ts +1 -8
  263. package/src/types/types.ts +36 -58
  264. package/src/util.ts +82 -0
  265. package/dist/lib/browser/CollectionArticle-WASDM637.mjs.map +0 -7
  266. package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs.map +0 -7
  267. package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs.map +0 -7
  268. package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs.map +0 -7
  269. package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs.map +0 -7
  270. package/dist/lib/browser/SmallPresenceLive-LZD2NGKK.mjs +0 -10
  271. package/dist/lib/browser/SpacePresence-MLU576L6.mjs +0 -13
  272. package/dist/lib/browser/SpacePresence-MLU576L6.mjs.map +0 -7
  273. package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs.map +0 -7
  274. package/dist/lib/browser/ViewEditor-F74RR542.mjs.map +0 -7
  275. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs +0 -593
  276. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs.map +0 -7
  277. package/dist/lib/browser/chunk-ABCDB5YC.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
  279. package/dist/lib/browser/chunk-PXVKN4LU.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-RWOK4F4G.mjs.map +0 -7
  281. package/dist/lib/browser/chunk-TPZUQ5DC.mjs +0 -749
  282. package/dist/lib/browser/chunk-TPZUQ5DC.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-USN5QKRV.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-XIIYC7P5.mjs.map +0 -7
  285. package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs.map +0 -7
  286. package/dist/lib/browser/react-surface-NJ23NZFF.mjs.map +0 -7
  287. package/dist/lib/browser/repair-N2I4DR2Z.mjs +0 -50
  288. package/dist/lib/browser/repair-N2I4DR2Z.mjs.map +0 -7
  289. package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs.map +0 -7
  290. package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs.map +0 -7
  291. package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs.map +0 -7
  292. package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs.map +0 -7
  293. package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs.map +0 -7
  294. package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs.map +0 -7
  295. package/dist/lib/node-esm/SmallPresenceLive-K4243KXR.mjs +0 -11
  296. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs +0 -14
  297. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs.map +0 -7
  298. package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs.map +0 -7
  299. package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs.map +0 -7
  300. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs +0 -594
  301. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs.map +0 -7
  303. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
  304. package/dist/lib/node-esm/chunk-GWUPFA7J.mjs.map +0 -7
  305. package/dist/lib/node-esm/chunk-OSFH2XKO.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-P2AVANDG.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-UJQUBDQS.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs +0 -750
  309. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs.map +0 -7
  310. package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs.map +0 -7
  311. package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs.map +0 -7
  312. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs +0 -51
  313. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs.map +0 -7
  314. package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs.map +0 -7
  315. package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
  316. package/src/util.tsx +0 -956
  317. /package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs.map → CollectionSection-H2MBNI63.mjs.map} +0 -0
  318. /package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs.map → MembersContainer-OGYV2L4M.mjs.map} +0 -0
  319. /package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs.map → ObjectCardStack-OMXF2DSG.mjs.map} +0 -0
  320. /package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs.map → ObjectDetails-QFTQQN4W.mjs.map} +0 -0
  321. /package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs.map → RecordArticle-BO2XHBFN.mjs.map} +0 -0
  322. /package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs.map → SchemaContainer-QWCSIZBS.mjs.map} +0 -0
  323. /package/dist/lib/browser/{SmallPresenceLive-LZD2NGKK.mjs.map → SmallPresenceLive-AHHLBAUP.mjs.map} +0 -0
  324. /package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs.map → SpacePluginSettings-QGZKNQLK.mjs.map} +0 -0
  325. /package/dist/lib/{node-esm/SmallPresenceLive-K4243KXR.mjs.map → browser/SpacePresence-JIWLBUWO.mjs.map} +0 -0
  326. /package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs.map → SyncStatus-6N7JJ7XF.mjs.map} +0 -0
  327. /package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs.map → app-graph-serializer-UZWWGLGY.mjs.map} +0 -0
  328. /package/dist/lib/browser/{chunk-J5F4LUJD.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
  329. /package/dist/lib/browser/{react-root-UYBW5RE7.mjs.map → react-root-OD2HP63B.mjs.map} +0 -0
  330. /package/dist/lib/browser/{settings-2ELVUFDR.mjs.map → settings-RUDP2Q56.mjs.map} +0 -0
  331. /package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs.map → CollectionSection-BI66Y34F.mjs.map} +0 -0
  332. /package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs.map → MembersContainer-4PV3Z4BA.mjs.map} +0 -0
  333. /package/dist/lib/{browser/MenuFooter-HYBTNOBT.mjs.map → node-esm/MenuFooter-PXG2GV6A.mjs.map} +0 -0
  334. /package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs.map → ObjectCardStack-457SNNVF.mjs.map} +0 -0
  335. /package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs.map → ObjectDetails-OLF7HSM4.mjs.map} +0 -0
  336. /package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs.map → RecordArticle-XUIT25PP.mjs.map} +0 -0
  337. /package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs.map → SchemaContainer-5G4R3Z6O.mjs.map} +0 -0
  338. /package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs.map → SpacePluginSettings-PENV4GHL.mjs.map} +0 -0
  339. /package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs.map → SyncStatus-YEBGTNSD.mjs.map} +0 -0
  340. /package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs.map → app-graph-serializer-RT2RQTV2.mjs.map} +0 -0
  341. /package/dist/lib/node-esm/{chunk-S2IELCDF.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
  342. /package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs.map → react-root-RILC5MBD.mjs.map} +0 -0
  343. /package/dist/lib/node-esm/{settings-DCTVM2BV.mjs.map → settings-3EKSEAAG.mjs.map} +0 -0
  344. /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +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 { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\nimport * as Effect from 'effect/Effect';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\n\nimport { type CapabilityManager } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { type Space, SpaceState, isSpace } from '@dxos/client/echo';\nimport { type Database, Feed, Filter, JsonSchema, Obj, Query, Ref, Type } from '@dxos/echo';\nimport { Collection } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport { Operation } from '@dxos/operation';\nimport { Graph, Node } from '@dxos/plugin-graph';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';\nimport { type TreeData } from '@dxos/react-ui-list';\nimport { Expando, ManagedCollection } from '@dxos/schema';\nimport { type Label } from '@dxos/ui-types';\nimport { createFilename } from '@dxos/util';\n\nimport { meta } from './meta';\nimport { SPACE_TYPE, SpaceOperation } from './types';\n\n//\n// Constants\n//\n\nconst CACHEABLE_PROPS: string[] = ['label', 'icon', 'role'];\nconst ACCEPT_ECHO_CLASS: Set<string> = new Set(['echo']);\n\n/** Shared translation namespace descriptor. */\nconst META_NS: { ns: string } = { ns: meta.id };\n\n/** Static label tuples (translation key + namespace). */\nconst PERSONAL_SPACE_LABEL: Label = ['personal space label', META_NS];\nconst UNNAMED_SPACE_LABEL: Label = ['unnamed space label', META_NS];\nconst SETTINGS_PANEL_LABEL: Label = ['settings panel label', META_NS];\nconst MIGRATE_SPACE_LABEL: Label = ['migrate space label', META_NS];\nconst CREATE_OBJECT_IN_SPACE_LABEL: Label = ['create object in space label', META_NS];\nconst RENAME_SPACE_LABEL: Label = ['rename space label', META_NS];\nconst ADD_VIEW_TO_SCHEMA_LABEL: Label = ['add view to schema label', META_NS];\nconst SNAPSHOT_BY_SCHEMA_LABEL: Label = ['snapshot by schema label', META_NS];\nconst CREATE_OBJECT_IN_COLLECTION_LABEL: Label = ['create object in collection label', META_NS];\nconst CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL: Label = ['create object in system collection label', META_NS];\nconst COPY_LINK_LABEL: Label = ['copy link label', META_NS];\nconst EXPOSE_OBJECT_LABEL: Label = ['expose object label', META_NS];\n\n/** Stable callback constants (no closed-over state). */\nconst CAN_DROP_FALSE = () => false;\nconst CAN_DROP_SPACE = (source: TreeData) => Obj.isObject(source.item.data) || isSpace(source.item.data);\nconst CAN_DROP_OBJECT = (source: TreeData) => Node.isGraphNode(source.item) && Obj.isObject(source.item.data);\n\nexport const SPACES = `${meta.id}-spaces`;\nexport const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst SCHEMA_GRAPH_NODE_PARTIALS = {\n role: 'branch',\n canDrop: CAN_DROP_FALSE,\n} as const;\n\nconst getSchemaGraphNodePartials = () => SCHEMA_GRAPH_NODE_PARTIALS;\n\n//\n// Caching Infrastructure\n//\n\n/** Creates a string-keyed memoized factory. Returns the same instance for the same key. */\n// TODO(wittjosiah): Factor out as app-graph utility.\nfunction createFactory<T>(create: (key: string) => T): (key: string) => T;\nfunction createFactory<TArgs extends any[], T>(\n create: (...args: TArgs) => T,\n keyFn: (...args: TArgs) => string,\n): (...args: TArgs) => T;\nfunction createFactory<TArgs extends any[], T>(\n create: (...args: TArgs) => T,\n keyFn?: (...args: TArgs) => string,\n): (...args: TArgs) => T {\n const cache = new Map<string, T>();\n return (...args: TArgs) => {\n const key = keyFn ? keyFn(...args) : (args[0] as string);\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n const value = create(...args);\n cache.set(key, value);\n return value;\n };\n}\n\n/** Stable Set instances keyed by spaceId. */\nconst getAcceptPersistenceKey = createFactory((spaceId: string) => new Set([spaceId]));\n\n/** Caches for closures that capture ECHO objects, keyed by DXN/ID string. */\nconst rearrangeCache = new Map<string, (nextOrder: unknown[]) => void>();\nconst blockInstructionCache = new Map<string, (source: TreeData, instruction: Instruction) => boolean>();\nconst spaceRearrangeCache = new Map<string, (nextOrder: Space[]) => void>();\nconst collectionPartialsCache = new Map<string, ReturnType<typeof buildCollectionPartials>>();\nconst systemCollectionPartialsCache = new Map<\n string,\n {\n label: Label;\n icon?: string;\n iconHue?: string;\n acceptPersistenceClass: Set<string>;\n acceptPersistenceKey: Set<string>;\n role: string;\n }\n>();\nconst spaceActionsCache = new Map<\n string,\n {\n state: SpaceState;\n hasPendingMigration: boolean;\n migrating: boolean;\n actions: Node.NodeArg<Node.ActionData<Operation.Service>>[];\n }\n>();\n\n/** Dynamic label tuples keyed by composite key string. */\nconst getDynamicLabel = createFactory(\n (key: string, ns: string, extra?: Record<string, any>): Label => [key, { ns, ...extra }],\n (key: string, ns: string, extra?: Record<string, any>) => `${key}\\0${ns}${extra ? `\\0${JSON.stringify(extra)}` : ''}`,\n);\n\n//\n// Node Constructors\n//\n\n/**\n * Builds an app-graph node for a space (workspace), including settings children and optional rearrange handler.\n *\n * @param space - Space to wrap as a graph node.\n * @param navigable - Whether the space node is navigable; affects disabled state.\n * @param personal - Passed to display name resolution (e.g. \"Personal space\" fallback).\n * @param namesCache - Optional cache of space id to display name.\n * @param resolve - Metadata resolver for typename.\n * @param graph - Optional expandable graph for sorting edges on rearrange.\n * @param spacesOrder - Optional ECHO object holding workspace order; used with graph for persist on rearrange.\n * @returns A graph node for the space.\n */\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n graph,\n spacesOrder,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n /** Graph for sorting edges on rearrange. */\n graph?: Graph.ExpandableGraph;\n // TODO(wittjosiah): Should be Type.Expando but it doesn't work with the AtomQuery result type.\n /** Spaces order object for persisting workspace order. */\n spacesOrder?: Obj.Any;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection =\n space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)\n ? getCollectionGraphNodePartials({ collection, db: space.db, resolve })\n : {};\n\n let onRearrange: ((nextOrder: Space[]) => void) | undefined;\n if (graph && spacesOrder) {\n onRearrange = spaceRearrangeCache.get(space.id);\n if (!onRearrange) {\n onRearrange = (nextOrder: Space[]) => {\n // NOTE: This is needed to ensure order is updated by next animation frame.\n Graph.sortEdges(\n graph,\n Node.RootId,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n // Persist order to database.\n Obj.change(spacesOrder, (mutableOrder: any) => {\n mutableOrder.order = nextOrder.map(({ id }) => id);\n });\n };\n spaceRearrangeCache.set(space.id, onRearrange);\n }\n }\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: CACHEABLE_PROPS,\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 hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n disposition: 'workspace',\n testId: 'spacePlugin.space',\n onRearrange,\n // TODO(wittjosiah): Find a way to only allow space as source for rearranging.\n canDrop: CAN_DROP_SPACE,\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/settings`,\n data: null,\n properties: {\n label: SETTINGS_PANEL_LABEL,\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n },\n ],\n };\n};\n\n/**\n * Builds an app-graph node for an ECHO object (collection, managed feed, schema, or generic object).\n *\n * @param db - Database for the object's space.\n * @param object - ECHO object to wrap.\n * @param disposition - Optional UI disposition.\n * @param droppable - Whether the node accepts drops.\n * @param navigable - Whether the node is navigable.\n * @param managedCollectionChild - Whether the object is a managed collection child (affects blockInstruction).\n * @param resolve - Metadata resolver for typename.\n * @param parentCollection - Parent collection for rearranging objects.\n * @returns A graph node or null if the object has no typename.\n */\nexport const createObjectNode = ({\n db,\n object,\n disposition,\n droppable = true,\n navigable = false,\n managedCollectionChild = false,\n resolve,\n parentCollection,\n}: {\n db: Database.Database;\n object: Obj.Unknown;\n disposition?: string;\n droppable?: boolean;\n navigable?: boolean;\n managedCollectionChild?: boolean;\n resolve: (typename: string) => Record<string, any>;\n /** Parent collection for rearranging objects. */\n parentCollection?: Collection.Collection;\n}) => {\n const type = Obj.getTypename(object);\n if (!type) {\n return null;\n }\n\n // For feeds, use the kind property for metadata lookup instead of the generic Feed typename.\n const metadataKey = Obj.instanceOf(Feed.Feed, object) ? (object.kind ?? type) : type;\n const metadata = resolve(metadataKey);\n const partials = Obj.instanceOf(Collection.Collection, object)\n ? getCollectionGraphNodePartials({ collection: object, db, resolve })\n : Obj.instanceOf(ManagedCollection.ManagedCollection, object)\n ? getSystemCollectionNodePartials({ collection: object, db, resolve })\n : Obj.instanceOf(Type.PersistentType, object)\n ? getSchemaGraphNodePartials()\n : metadata.graphProps;\n\n // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.\n // e.g., create new collection with no name and rename it.\n const label =\n (object as any).name ||\n Obj.getLabel(object) ||\n // TODO(wittjosiah): Remove metadata labels.\n metadata.label?.(object) ||\n getDynamicLabel('object name placeholder', metadataKey, { default: 'New item' });\n\n const selectable =\n (!Obj.instanceOf(Type.PersistentType, object) &&\n !Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&\n !Obj.instanceOf(Collection.Collection, object)) ||\n (navigable && Obj.instanceOf(Collection.Collection, object));\n\n let onRearrange: ((nextOrder: unknown[]) => void) | undefined;\n if (parentCollection) {\n const collectionId = Obj.getDXN(parentCollection).toString();\n onRearrange = rearrangeCache.get(collectionId);\n if (!onRearrange) {\n onRearrange = (nextOrder: unknown[]) => {\n Obj.change(parentCollection, (c) => {\n c.objects = nextOrder.filter(Obj.isObject).map(Ref.make);\n });\n };\n rearrangeCache.set(collectionId, onRearrange);\n }\n }\n\n const objectId = Obj.getDXN(object).toString();\n const blockInstructionKey = `${objectId}:${managedCollectionChild}`;\n let blockInstruction = blockInstructionCache.get(blockInstructionKey);\n if (!blockInstruction) {\n blockInstruction = (source: TreeData, instruction: Instruction) => {\n if (source.item.properties.managedCollectionChild) {\n return true;\n }\n if (Obj.instanceOf(ManagedCollection.ManagedCollection, object)) {\n return !instruction.type.startsWith('reorder');\n }\n return managedCollectionChild;\n };\n blockInstructionCache.set(blockInstructionKey, blockInstruction);\n }\n\n const canDrop = droppable ? CAN_DROP_OBJECT : CAN_DROP_FALSE;\n\n return {\n id: Obj.getDXN(object).toString(),\n type,\n cacheable: CACHEABLE_PROPS,\n data: object,\n properties: {\n label,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n iconHue: metadata.iconHue,\n disposition,\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: db.spaceId,\n selectable,\n managedCollectionChild,\n onRearrange,\n blockInstruction,\n canDrop,\n ...partials,\n },\n };\n};\n\n/**\n * Builds a static schema node for the app graph.\n *\n * @param schema - ECHO schema entity.\n * @param space - Space that owns the schema.\n * @returns A graph node for the schema.\n */\nexport const createStaticSchemaNode = ({ schema, space }: { schema: Type.AnyEntity; space: Space }): Node.Node => {\n return {\n id: `${space.id}/${Type.getTypename(schema)}`,\n type: `${meta.id}/static-schema`,\n data: schema,\n properties: {\n label: getDynamicLabel('typename label', Type.getTypename(schema), {\n count: 2,\n default: Type.getTypename(schema),\n }),\n icon: 'ph--database--regular',\n iconHue: 'green',\n role: 'branch',\n selectable: false,\n canDrop: CAN_DROP_FALSE,\n space,\n },\n };\n};\n\n//\n// Action Constructors\n//\n\n/**\n * Builds the action list for a space node (migrate, create object, rename).\n * Results are cached by space id and state flags.\n *\n * @param space - Space to build actions for.\n * @param migrating - When true, treats the space as currently migrating (disables migrate action).\n * @returns Array of graph action descriptors for the space.\n */\nexport const constructSpaceActions = ({ space, migrating }: { space: Space; migrating?: boolean }) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const isMigrating = migrating || Migrations.running(space);\n\n const cached = spaceActionsCache.get(space.id);\n if (\n cached &&\n cached.state === state &&\n cached.hasPendingMigration === hasPendingMigration &&\n cached.migrating === isMigrating\n ) {\n return cached.actions;\n }\n\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceOperation.Migrate.meta.key),\n type: Node.ActionGroupType,\n data: () => Operation.invoke(SpaceOperation.Migrate, { space }),\n properties: {\n label: MIGRATE_SPACE_LABEL,\n icon: 'ph--database--regular',\n disposition: 'list-item-primary',\n disabled: isMigrating,\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n actions.push(\n {\n id: getId(SpaceOperation.OpenCreateObject.meta.key),\n type: Node.ActionType,\n data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: space.db }),\n properties: {\n label: CREATE_OBJECT_IN_SPACE_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceOperation.Rename.meta.key),\n type: Node.ActionType,\n data: (params?: Node.InvokeProps) => Operation.invoke(SpaceOperation.Rename, { space, caller: params?.caller }),\n properties: {\n label: RENAME_SPACE_LABEL,\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n );\n }\n\n spaceActionsCache.set(space.id, { state, hasPendingMigration, migrating: isMigrating, actions });\n return actions;\n};\n\n/**\n * Builds the action list for a static schema node (add view, rename, delete, snapshot).\n *\n * @param schema - ECHO schema entity (e.g. static record type).\n * @param space - Space that owns the schema.\n * @param deletable - Whether the delete/snapshot actions are enabled.\n * @returns Array of graph action descriptors for the schema.\n */\nexport const createStaticSchemaActions = ({\n schema,\n space,\n deletable,\n}: {\n schema: Type.AnyObj;\n space: Space;\n deletable: boolean;\n}) => {\n const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;\n\n const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [\n {\n id: getId(SpaceOperation.AddObject.meta.key),\n type: Node.ActionType,\n data: () =>\n Operation.invoke(SpaceOperation.OpenCreateObject, {\n target: space.db,\n views: true,\n initialFormValues: { typename: Type.getTypename(schema) },\n }),\n properties: {\n label: ADD_VIEW_TO_SCHEMA_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceOperation.RenameObject.meta.key),\n type: Node.ActionType,\n data: () => Effect.fail(new Error('Not implemented')),\n properties: {\n label: getDynamicLabel('rename object label', Type.getTypename(Type.PersistentType)),\n icon: 'ph--pencil-simple-line--regular',\n disabled: true,\n disposition: 'list-item',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceOperation.RemoveObjects.meta.key),\n type: Node.ActionType,\n data: () =>\n Effect.sync(() => {\n const index = space.properties.staticRecords.findIndex(\n (typename: string) => typename === Type.getTypename(schema),\n );\n if (index > -1) {\n Obj.change(space.properties, (p) => {\n p.staticRecords.splice(index, 1);\n });\n }\n }),\n properties: {\n label: getDynamicLabel('delete object label', Type.getTypename(Type.PersistentType)),\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n testId: 'spacePlugin.deleteObject',\n },\n },\n {\n id: getId(SpaceOperation.Snapshot.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n const result = yield* Operation.invoke(SpaceOperation.Snapshot, {\n db: space.db,\n query: Query.select(Filter.type(schema)).ast,\n });\n if (result.snapshot) {\n yield* Effect.tryPromise(() =>\n downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(schema)], ext: 'json' })),\n );\n }\n }),\n properties: {\n label: SNAPSHOT_BY_SCHEMA_LABEL,\n icon: 'ph--camera--regular',\n disposition: 'list-item',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * Builds the action list for an ECHO object node (create, rename, delete, copy link, etc.).\n *\n * @param object - ECHO object to build actions for.\n * @param graph - Readable app graph (used for action wiring).\n * @param resolve - Metadata resolver for typename.\n * @param capabilities - Capability manager for feature checks.\n * @param shareableLinkOrigin - Origin URL for shareable links.\n * @param deletable - Whether delete action is included. Defaults to true.\n * @param navigable - Whether the object is navigable (affects available actions). Defaults to false.\n * @returns Array of graph action descriptors for the object.\n */\nexport const constructObjectActions = ({\n object,\n graph,\n resolve,\n capabilities,\n deletable = true,\n navigable = false,\n shareableLinkOrigin,\n}: {\n object: Obj.Unknown;\n graph: Graph.ReadableGraph;\n resolve: (typename: string) => Record<string, any>;\n capabilities: CapabilityManager.CapabilityManager;\n shareableLinkOrigin: string;\n deletable?: boolean;\n navigable?: boolean;\n}) => {\n const db = Obj.getDatabase(object);\n invariant(db, 'Database not found');\n const typename = Obj.getTypename(object);\n invariant(typename, 'Object has no typename');\n\n const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;\n\n const metadataKey = Match.value(object).pipe(\n Match.when(Obj.instanceOf(Feed.Feed), (feed: Feed.Feed) => feed.kind ?? Obj.getTypename(feed)!),\n Match.when(Obj.instanceOf(ManagedCollection.ManagedCollection), (managed) => {\n const [, feedKind] = managed.key.split('~') ?? [];\n return feedKind ?? managed.key;\n }),\n Match.orElse((obj) => Obj.getTypename(obj)!),\n );\n const managedCollection = Option.some(object).pipe(\n Option.filter(Obj.instanceOf(ManagedCollection.ManagedCollection)),\n Option.getOrUndefined,\n );\n const metadata = metadataKey ? resolve(metadataKey) : {};\n const createObject = metadata.createObject;\n const inputSchema = metadata.inputSchema;\n\n const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [\n ...(Obj.instanceOf(Collection.Collection, object)\n ? [\n {\n id: getId(SpaceOperation.OpenCreateObject.meta.key),\n type: Node.ActionType,\n data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: object }),\n properties: {\n label: CREATE_OBJECT_IN_COLLECTION_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(Obj.instanceOf(Type.PersistentType, object)\n ? [\n {\n id: getId(SpaceOperation.AddObject.meta.key),\n type: Node.ActionType,\n data: () =>\n Operation.invoke(SpaceOperation.OpenCreateObject, {\n target: db,\n views: true,\n initialFormValues: { typename: object.typename },\n }),\n properties: {\n label: ADD_VIEW_TO_SCHEMA_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceOperation.Snapshot.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n const result = yield* Operation.invoke(SpaceOperation.Snapshot, {\n db,\n query: Query.select(Filter.type(JsonSchema.toEffectSchema(object.jsonSchema))).ast,\n });\n if (result.snapshot) {\n yield* Effect.promise(() =>\n downloadBlob(result.snapshot, createFilename({ parts: [db.spaceId, object.typename], ext: 'json' })),\n );\n }\n }),\n properties: {\n label: SNAPSHOT_BY_SCHEMA_LABEL,\n icon: 'ph--camera--regular',\n disposition: 'list-item',\n },\n },\n ]\n : []),\n ...(createObject && managedCollection\n ? [\n {\n id: getId(SpaceOperation.OpenCreateObject.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n if (inputSchema) {\n yield* Operation.invoke(SpaceOperation.OpenCreateObject, {\n target: db,\n typename: managedCollection ? metadataKey : undefined,\n });\n } else {\n const createdObject = yield* createObject({}, { db, capabilities }) as Effect.Effect<\n Obj.Unknown,\n Error,\n never\n >;\n const addResult = yield* Operation.invoke(SpaceOperation.AddObject, {\n target: db,\n hidden: true,\n object: createdObject,\n });\n if (addResult.id) {\n yield* Operation.invoke(LayoutOperation.Open, { subject: [addResult.id] });\n }\n }\n }),\n properties: {\n label: CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(managedCollection\n ? []\n : [\n {\n id: getId(SpaceOperation.RenameObject.meta.key),\n type: Node.ActionType,\n data: (params?: Node.InvokeProps) =>\n Operation.invoke(SpaceOperation.RenameObject, { object, caller: params?.caller }),\n properties: {\n label: getDynamicLabel('rename object label', metadataKey),\n icon: 'ph--pencil-simple-line--regular',\n disposition: 'list-item',\n // TODO(wittjosiah): Not working.\n // keyBinding: {\n // macos: 'shift+F6',\n // },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceOperation.RemoveObjects.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n const collection = Graph.getConnections(\n graph,\n Obj.getDXN(object).toString(),\n Node.childRelation('inbound'),\n ).find((node: Node.Node): node is Node.Node<Collection.Collection> =>\n Obj.instanceOf(Collection.Collection, node.data),\n )?.data;\n yield* Operation.invoke(SpaceOperation.RemoveObjects, { objects: [object], target: collection });\n }),\n properties: {\n label: getDynamicLabel('delete object label', metadataKey),\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n // TODO(wittjosiah): This is a browser shortcut.\n // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ]),\n ...(navigable ||\n (!Obj.instanceOf(Collection.Collection, object) &&\n !Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&\n !Obj.instanceOf(Type.PersistentType, object))\n ? [\n {\n id: getId('copy-link'),\n type: Node.ActionType,\n data: () =>\n Effect.promise(async () => {\n const url = `${shareableLinkOrigin}/${db.spaceId}/${Obj.getDXN(object).toString()}`;\n await navigator.clipboard.writeText(url);\n }),\n properties: {\n label: COPY_LINK_LABEL,\n icon: 'ph--link--regular',\n disposition: 'list-item',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutOperation.Expose.meta.key),\n type: Node.ActionType,\n data: () => Operation.invoke(LayoutOperation.Expose, { subject: Obj.getDXN(object).toString() }),\n properties: {\n label: EXPOSE_OBJECT_LABEL,\n icon: 'ph--eye--regular',\n disposition: 'heading-list-item',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n//\n// Helpers\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\n/**\n * Returns the display label for a space (name, namesCache entry, or fallback).\n *\n * @param space - Space to label.\n * @param options.personal - If true, use personal-space fallback when unnamed.\n * @param options.namesCache - Optional cache of space id to display name.\n * @returns Label tuple (translation key or string, and namespace).\n */\n// TODO(wittjosiah): Factor out? Exposer via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): Label => {\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\n : UNNAMED_SPACE_LABEL;\n};\n\n// TODO(wittjosiah): Factor out.\nconst downloadBlob = async (blob: Blob, filename: string) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename;\n\n document.body.appendChild(a);\n a.click();\n\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n};\n\nconst buildCollectionPartials = (\n collection: Collection.Collection,\n db: Database.Database,\n resolve: (typename: string) => Record<string, any>,\n) => ({\n acceptPersistenceClass: ACCEPT_ECHO_CLASS,\n acceptPersistenceKey: getAcceptPersistenceKey(db.spaceId),\n role: 'branch' as const,\n onTransferStart: (child: Node.Node<Obj.Unknown>, index?: number) => {\n Obj.change(collection, (c) => {\n if (!c.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n c.objects.splice(index, 0, Ref.make(child.data));\n } else {\n c.objects.push(Ref.make(child.data));\n }\n }\n });\n },\n onTransferEnd: (child: Node.Node<Obj.Unknown>, _destination: Node.Node) => {\n Obj.change(collection, (c) => {\n const index = c.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n c.objects.splice(index, 1);\n }\n });\n },\n onCopy: async (child: Node.Node<Obj.Unknown>, index?: number) => {\n const newObject = await cloneObject(child.data, resolve, db);\n db.add(newObject);\n Obj.change(collection, (c) => {\n if (typeof index !== 'undefined') {\n c.objects.splice(index, 0, Ref.make(newObject));\n } else {\n c.objects.push(Ref.make(newObject));\n }\n });\n },\n});\n\nconst getCollectionGraphNodePartials = ({\n collection,\n db,\n resolve,\n}: {\n collection: Collection.Collection;\n db: Database.Database;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const id = Obj.getDXN(collection).toString();\n let cached = collectionPartialsCache.get(id);\n if (!cached) {\n cached = buildCollectionPartials(collection, db, resolve);\n collectionPartialsCache.set(id, cached);\n }\n return cached;\n};\n\nconst getSystemCollectionNodePartials = ({\n collection,\n db,\n resolve,\n}: {\n collection: ManagedCollection.ManagedCollection;\n db: Database.Database;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const cacheKey = `${db.spaceId}:${collection.key}`;\n let cached = systemCollectionPartialsCache.get(cacheKey);\n if (!cached) {\n const [, feedKind] = collection.key.split('~');\n const metadataKey = feedKind ?? collection.key;\n const metadata = resolve(metadataKey);\n cached = {\n label: getDynamicLabel('typename label', metadataKey, { count: 2 }),\n icon: metadata.icon,\n iconHue: metadata.iconHue,\n acceptPersistenceClass: ACCEPT_ECHO_CLASS,\n acceptPersistenceKey: getAcceptPersistenceKey(db.spaceId),\n role: 'branch',\n };\n systemCollectionPartialsCache.set(cacheKey, cached);\n }\n return cached;\n};\n\n//\n// Deprecated\n//\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: Obj.Unknown,\n resolve: (typename: string) => Record<string, any>,\n): Promise<Obj.Unknown[]> => {\n const type = Obj.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: Obj.Unknown[] = 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: Obj.Unknown,\n resolve: (typename: string) => Record<string, any>,\n newDb: Database.Database,\n): Promise<Obj.Unknown> => {\n const schema = Obj.getSchema(object);\n const typename = schema ? (Type.getTypename(schema) ?? Expando.Expando.typename) : Expando.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, db: newDb, newId: true });\n};\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Match", "Option", "LayoutOperation", "SpaceState", "isSpace", "Feed", "Filter", "JsonSchema", "Obj", "Query", "Ref", "Type", "Collection", "invariant", "Migrations", "Operation", "Graph", "Node", "ATTENDABLE_PATH_SEPARATOR", "Expando", "ManagedCollection", "createFilename", "CACHEABLE_PROPS", "ACCEPT_ECHO_CLASS", "Set", "META_NS", "ns", "meta", "id", "PERSONAL_SPACE_LABEL", "UNNAMED_SPACE_LABEL", "SETTINGS_PANEL_LABEL", "MIGRATE_SPACE_LABEL", "CREATE_OBJECT_IN_SPACE_LABEL", "RENAME_SPACE_LABEL", "ADD_VIEW_TO_SCHEMA_LABEL", "SNAPSHOT_BY_SCHEMA_LABEL", "CREATE_OBJECT_IN_COLLECTION_LABEL", "CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL", "COPY_LINK_LABEL", "EXPOSE_OBJECT_LABEL", "CAN_DROP_FALSE", "CAN_DROP_SPACE", "source", "Obj", "isObject", "item", "data", "isSpace", "CAN_DROP_OBJECT", "Node", "isGraphNode", "SPACES", "COMPOSER_SPACE_LOCK", "SHARED", "SCHEMA_GRAPH_NODE_PARTIALS", "role", "canDrop", "getSchemaGraphNodePartials", "createFactory", "create", "keyFn", "cache", "Map", "args", "key", "has", "get", "value", "set", "getAcceptPersistenceKey", "spaceId", "rearrangeCache", "blockInstructionCache", "spaceRearrangeCache", "collectionPartialsCache", "systemCollectionPartialsCache", "spaceActionsCache", "getDynamicLabel", "extra", "JSON", "stringify", "constructSpaceNode", "space", "navigable", "personal", "namesCache", "resolve", "graph", "spacesOrder", "hasPendingMigration", "checkPendingMigration", "collection", "state", "SpaceState", "SPACE_READY", "properties", "Collection", "typename", "target", "partials", "instanceOf", "getCollectionGraphNodePartials", "db", "onRearrange", "nextOrder", "Graph", "sortEdges", "RootId", "map", "change", "mutableOrder", "order", "type", "SPACE_TYPE", "cacheable", "label", "getSpaceDisplayName", "description", "hue", "icon", "undefined", "iconHue", "disabled", "disposition", "testId", "nodes", "ATTENDABLE_PATH_SEPARATOR", "createObjectNode", "object", "droppable", "managedCollectionChild", "parentCollection", "getTypename", "metadataKey", "Feed", "kind", "metadata", "ManagedCollection", "getSystemCollectionNodePartials", "Type", "PersistentType", "graphProps", "name", "getLabel", "default", "selectable", "collectionId", "getDXN", "toString", "c", "objects", "filter", "Ref", "make", "objectId", "blockInstructionKey", "blockInstruction", "instruction", "startsWith", "persistenceClass", "persistenceKey", "createStaticSchemaNode", "schema", "count", "constructSpaceActions", "migrating", "isMigrating", "Migrations", "running", "cached", "actions", "getId", "push", "SpaceOperation", "Migrate", "ActionGroupType", "Operation", "invoke", "OpenCreateObject", "ActionType", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createStaticSchemaActions", "deletable", "AddObject", "views", "initialFormValues", "RenameObject", "fail", "Error", "RemoveObjects", "sync", "index", "staticRecords", "findIndex", "p", "splice", "Snapshot", "fnUntraced", "result", "query", "Query", "select", "Filter", "ast", "snapshot", "tryPromise", "downloadBlob", "createFilename", "parts", "ext", "constructObjectActions", "capabilities", "shareableLinkOrigin", "getDatabase", "invariant", "pipe", "when", "feed", "managed", "feedKind", "split", "orElse", "obj", "managedCollection", "some", "getOrUndefined", "createObject", "inputSchema", "JsonSchema", "toEffectSchema", "jsonSchema", "promise", "createdObject", "addResult", "hidden", "LayoutOperation", "Open", "subject", "getConnections", "childRelation", "find", "node", "url", "navigator", "clipboard", "writeText", "Expose", "SPACE_REQUIRES_MIGRATION", "versionProperty", "targetVersion", "length", "blob", "filename", "URL", "createObjectURL", "a", "document", "createElement", "href", "download", "body", "appendChild", "click", "removeChild", "revokeObjectURL", "buildCollectionPartials", "acceptPersistenceClass", "acceptPersistenceKey", "onTransferStart", "child", "onTransferEnd", "_destination", "onCopy", "newObject", "cloneObject", "add", "cacheKey", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newDb", "getSchema", "Expando", "serializer", "content", "serialize", "deserialize", "newId"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/operation-resolver/operation-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability, Plugin, UndoMapping } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { SpaceState, getSpace } from '@dxos/client/echo';\nimport { Database, Obj, Query, Ref, Relation, Type } from '@dxos/echo';\nimport { Collection } from '@dxos/echo';\nimport { EchoDatabaseImpl, Serializer } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport { OperationResolver } from '@dxos/operation';\nimport { Operation } from '@dxos/operation';\nimport { ClientCapabilities } from '@dxos/plugin-client/types';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';\nimport { iconValues } from '@dxos/react-ui-pickers/icons';\nimport {\n CollectionModel,\n ManagedCollection,\n ProjectionModel,\n createEchoChangeCallback,\n getTypenameFromQuery,\n} from '@dxos/schema';\nimport { hues } from '@dxos/ui-theme';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n JOIN_DIALOG,\n OBJECT_RENAME_POPOVER,\n SPACE_RENAME_POPOVER,\n} from '../../constants';\nimport { type JoinDialogProps } from '../../containers/JoinDialog/JoinDialog';\nimport { meta } from '../../meta';\nimport { SpaceEvents } from '../../types';\nimport { SpaceCapabilities, SpaceOperation } from '../../types';\nimport { COMPOSER_SPACE_LOCK, cloneObject, getNestedObjects } from '../../util';\n\ntype OperationResolverOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n observability?: boolean;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ createInvitationUrl, observability }: OperationResolverOptions) {\n const capabilityManager = yield* Capability.Service;\n\n const resolve = (typename: string) =>\n capabilityManager.getAll(AppCapabilities.Metadata).find(({ id }: { id: string }) => id === typename)?.metadata ??\n {};\n\n return [\n Capability.contributes(Capabilities.UndoMapping, [\n UndoMapping.make({\n operation: SpaceOperation.DeleteField,\n inverse: SpaceOperation.RestoreField,\n deriveContext: (input, output) => ({\n view: input.view,\n field: output.field,\n props: output.props,\n index: output.index,\n }),\n message: ['field deleted label', { ns: meta.id }],\n }),\n UndoMapping.make({\n operation: SpaceOperation.RemoveObjects,\n inverse: SpaceOperation.RestoreObjects,\n deriveContext: (_input, output) => ({\n objects: output.objects,\n parentCollection: output.parentCollection,\n indices: output.indices,\n nestedObjectsList: output.nestedObjectsList,\n wasActive: output.wasActive,\n }),\n message: (input, _output) => {\n const ns = Obj.getTypename(input.objects[0]);\n return ns && input.objects.length === 1\n ? ['object deleted label', { ns: meta.id }]\n : ['objects deleted label', { ns: meta.id }];\n },\n }),\n ]),\n Capability.contributes(Capabilities.OperationResolver, [\n //\n // Open\n //\n OperationResolver.make({\n operation: SpaceOperation.Open,\n handler: (input) =>\n Effect.promise(async () => {\n await input.space.open();\n }),\n }),\n\n //\n // Close\n //\n OperationResolver.make({\n operation: SpaceOperation.Close,\n handler: (input) =>\n Effect.promise(async () => {\n await input.space.close();\n }),\n }),\n\n //\n // Join\n //\n OperationResolver.make({\n operation: SpaceOperation.Join,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: JOIN_DIALOG,\n blockAlign: 'start',\n props: {\n initialInvitationCode: input.invitationCode,\n onDone: input.onDone,\n } satisfies Partial<JoinDialogProps>,\n });\n }),\n }),\n\n //\n // WaitForObject\n //\n OperationResolver.make({\n operation: SpaceOperation.WaitForObject,\n handler: Effect.fnUntraced(function* (input) {\n yield* Capabilities.updateAtomValue(SpaceCapabilities.EphemeralState, (current) => ({\n ...current,\n awaiting: input.id,\n }));\n }),\n }),\n\n //\n // OpenSettings\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenSettings,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`properties-settings${ATTENDABLE_PATH_SEPARATOR}${input.space.id}`],\n workspace: input.space.id,\n });\n }),\n }),\n\n //\n // RemoveObjects\n //\n OperationResolver.make({\n operation: SpaceOperation.RemoveObjects,\n handler: Effect.fnUntraced(function* (input) {\n const layout = yield* Capabilities.getAtomValue(AppCapabilities.Layout);\n const objects = input.objects as Obj.Unknown[];\n\n // All objects must be a member of the same space.\n const space = getSpace(objects[0]);\n invariant(space && objects.every((obj) => Obj.isObject(obj) && getSpace(obj) === space));\n const openObjectIds = new Set<string>(layout.active);\n\n const parentCollection: Collection.Collection =\n input.target ?? space.properties[Collection.Collection.typename]?.target;\n\n const nestedObjectsList = yield* Effect.promise(() =>\n Promise.all(objects.map((obj) => getNestedObjects(obj, resolve))),\n );\n\n // Capture indices before removal.\n const indices = objects.map((obj) =>\n Obj.instanceOf(Collection.Collection, parentCollection)\n ? parentCollection.objects.findIndex((ref) => ref.target === obj)\n : -1,\n );\n\n // Close objects that were open.\n const wasActive = objects\n .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])\n .filter((obj) => Obj.isObject(obj) && openObjectIds.has(Obj.getDXN(obj).toString()))\n .map((obj) => Obj.getDXN(obj).toString());\n\n for (let i = 0; i < objects.length; i++) {\n const obj = objects[i];\n const nestedObjects = nestedObjectsList[i];\n\n // Remove from parent collection.\n const index = parentCollection.objects.findIndex((ref) => ref.target === obj);\n if (index !== -1) {\n Obj.change(parentCollection, (c) => {\n c.objects.splice(index, 1);\n });\n }\n\n // Delete nested objects.\n for (const nestedObject of nestedObjects) {\n if (Obj.isObject(nestedObject)) {\n Obj.getDatabase(nestedObject)?.remove(nestedObject);\n } else if (Relation.isRelation(nestedObject)) {\n const db = Obj.getDatabase(Relation.getSource(nestedObject));\n db?.remove(nestedObject);\n }\n }\n\n // Delete the object.\n const db = Obj.getDatabase(obj);\n db?.remove(obj);\n }\n\n if (wasActive.length > 0) {\n yield* Operation.invoke(LayoutOperation.Close, { subject: wasActive });\n }\n\n // Return data needed for undo.\n return {\n objects,\n parentCollection,\n indices,\n nestedObjectsList,\n wasActive,\n };\n }),\n }),\n\n //\n // DeleteField\n //\n OperationResolver.make({\n operation: SpaceOperation.DeleteField,\n handler: Effect.fnUntraced(function* (input) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const view = input.view as any;\n const db = Obj.getDatabase(view);\n invariant(db);\n const typename = getTypenameFromQuery(view.query.ast);\n invariant(typename);\n const schema = yield* Effect.promise(() => db.schemaRegistry.query({ typename }).firstOrUndefined());\n invariant(schema);\n\n // Create projection with change callbacks that wrap in Obj.change().\n const projection = new ProjectionModel({\n registry,\n view,\n baseSchema: schema.jsonSchema,\n change: createEchoChangeCallback(view, schema),\n });\n\n const result = projection.deleteFieldProjection(input.fieldId);\n\n // Return data needed for undo.\n return {\n field: result.deleted.field,\n props: result.deleted.props,\n index: result.index,\n };\n }),\n }),\n\n //\n // OpenCreateObject\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenCreateObject,\n handler: Effect.fnUntraced(function* (input) {\n const ephemeralState = yield* Capabilities.getAtomValue(SpaceCapabilities.EphemeralState);\n const navigable = input.navigable ?? true;\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: CREATE_OBJECT_DIALOG,\n blockAlign: 'start',\n props: {\n target: input.target,\n views: input.views,\n typename: input.typename,\n initialFormValues: input.initialFormValues,\n onCreateObject: input.onCreateObject,\n shouldNavigate: navigable\n ? (object: Obj.Unknown) => {\n const isCollection = Obj.instanceOf(Collection.Collection, object);\n const isSystemCollection = Obj.instanceOf(ManagedCollection.ManagedCollection, object);\n return (!isCollection && !isSystemCollection) || ephemeralState.navigableCollections;\n }\n : () => false,\n },\n });\n }),\n }),\n\n //\n // AddObject\n //\n OperationResolver.make({\n operation: SpaceOperation.AddObject,\n handler: Effect.fnUntraced(function* (input) {\n const target = input.target as any;\n const object = input.object as Obj.Unknown;\n const db = Database.isDatabase(target) ? target : Obj.getDatabase(target);\n invariant(db, 'Database not found.');\n\n yield* CollectionModel.add({\n object,\n target: Database.isDatabase(target) ? undefined : target,\n hidden: input.hidden,\n }).pipe(Effect.provide(Database.layer(db)));\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.object.add',\n properties: {\n spaceId: db.spaceId,\n objectId: object.id,\n typename: Obj.getTypename(object),\n },\n });\n\n return {\n id: Obj.getDXN(object).toString(),\n subject: [Obj.getDXN(object).toString()],\n object,\n };\n }),\n }),\n\n //\n // Share\n //\n OperationResolver.make({\n operation: SpaceOperation.Share,\n handler: Effect.fnUntraced(function* (input) {\n const { space, type, authMethod, multiUse, target } = input;\n const invitation = space.share({ type, authMethod, multiUse, target });\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.share',\n properties: {\n spaceId: space.id,\n },\n });\n\n return invitation;\n }),\n }),\n\n //\n // Lock\n // TODO(wittjosiah): This appears to be unused.\n //\n OperationResolver.make({\n operation: SpaceOperation.Lock,\n handler: Effect.fnUntraced(function* ({ space }) {\n Obj.change(space.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = true;\n });\n\n if (observability) {\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.lock',\n properties: { spaceId: space.id },\n });\n }\n }),\n }),\n\n //\n // Unlock\n // TODO(wittjosiah): This appears to be unused.\n //\n OperationResolver.make({\n operation: SpaceOperation.Unlock,\n handler: Effect.fnUntraced(function* ({ space }) {\n Obj.change(space.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = false;\n });\n\n if (observability) {\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.unlock',\n properties: { spaceId: space.id },\n });\n }\n }),\n }),\n\n //\n // OpenCreateSpace\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenCreateSpace,\n handler: Effect.fnUntraced(function* () {\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: CREATE_SPACE_DIALOG,\n blockAlign: 'start',\n });\n }),\n }),\n\n //\n // Create\n //\n OperationResolver.make({\n operation: SpaceOperation.Create,\n handler: Effect.fnUntraced(function* ({ name, hue: hue_, icon: icon_, edgeReplication }) {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const hue = hue_ ?? hues[Math.floor(Math.random() * hues.length)];\n const icon = icon_ ?? iconValues[Math.floor(Math.random() * iconValues.length)];\n const space = yield* Effect.promise(() => client.spaces.create({ name, hue, icon }));\n if (edgeReplication) {\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n }\n yield* Effect.promise(() => space.waitUntilReady());\n\n // Create root collection.\n const collection = Obj.make(Collection.Collection, { objects: [] });\n Obj.change(space.properties, (p) => {\n p[Collection.Collection.typename] = Ref.make(collection);\n // Set current migration version.\n if (Migrations.versionProperty) {\n p[Migrations.versionProperty] = Migrations.targetVersion;\n }\n });\n\n // Create records smart collection.\n Obj.change(collection, (c) => {\n c.objects.push(\n Ref.make(ManagedCollection.makeManagedCollection({ key: Type.getTypename(Type.PersistentType) })),\n );\n });\n\n // Allow other plugins to add default content.\n yield* Plugin.activate(SpaceEvents.SpaceCreated);\n const onCreateSpaceCallbacks = yield* Capability.getAll(SpaceCapabilities.OnCreateSpace);\n yield* Effect.all(\n onCreateSpaceCallbacks.map((onCreateSpace) =>\n onCreateSpace({ space, isDefault: false, rootCollection: collection }),\n ),\n );\n\n if (observability) {\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.create',\n properties: { spaceId: space.id },\n });\n }\n\n return { id: space.id, subject: [space.id], space };\n }),\n }),\n\n //\n // Migrate\n //\n OperationResolver.make({\n operation: SpaceOperation.Migrate,\n handler: Effect.fnUntraced(function* (input) {\n const { space, version: targetVersion } = input;\n\n if (space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n yield* Capabilities.updateAtomValue(SpaceCapabilities.EphemeralState, (current) => ({\n ...current,\n sdkMigrationRunning: { ...current.sdkMigrationRunning, [space.id]: true },\n }));\n yield* Effect.promise(() => space.internal.migrate());\n yield* Capabilities.updateAtomValue(SpaceCapabilities.EphemeralState, (current) => ({\n ...current,\n sdkMigrationRunning: { ...current.sdkMigrationRunning, [space.id]: false },\n }));\n }\n const result = yield* Effect.promise(() => Migrations.migrate(space, targetVersion));\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.migrate',\n properties: {\n spaceId: space.id,\n targetVersion,\n version: Migrations.versionProperty ? space.properties[Migrations.versionProperty] : undefined,\n },\n });\n\n return result;\n }),\n }),\n\n //\n // Snapshot\n //\n OperationResolver.make({\n operation: SpaceOperation.Snapshot,\n handler: (input) =>\n Effect.promise(async () => {\n const db = input.db as any;\n invariant(db instanceof EchoDatabaseImpl, 'Database must be an instance of EchoDatabaseImpl');\n const backup = await new Serializer().export(db, input.query && Query.fromAst(input.query));\n return {\n snapshot: new Blob([JSON.stringify(backup, null, 2)], { type: 'application/json' }),\n };\n }),\n }),\n\n //\n // Rename\n //\n OperationResolver.make({\n operation: SpaceOperation.Rename,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.UpdatePopover, {\n subject: SPACE_RENAME_POPOVER,\n anchorId: `dxos.org/ui/${input.caller}/${input.space.id}`,\n props: input.space,\n });\n }),\n }),\n\n //\n // RenameObject\n //\n OperationResolver.make({\n operation: SpaceOperation.RenameObject,\n handler: Effect.fnUntraced(function* (input) {\n const object = input.object as Obj.Unknown;\n yield* Operation.invoke(LayoutOperation.UpdatePopover, {\n subject: OBJECT_RENAME_POPOVER,\n anchorId: `dxos.org/ui/${input.caller}/${Obj.getDXN(object).toString()}`,\n props: object,\n });\n }),\n }),\n\n //\n // OpenMembers\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenMembers,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`members-settings${ATTENDABLE_PATH_SEPARATOR}${input.space.id}`],\n workspace: input.space.id,\n });\n }),\n }),\n\n //\n // GetShareLink\n //\n OperationResolver.make({\n operation: SpaceOperation.GetShareLink,\n handler: Effect.fnUntraced(function* (input) {\n const { Invitation, InvitationEncoder } = yield* Effect.promise(\n () => import('@dxos/react-client/invitations'),\n );\n\n const invitation = yield* Operation.invoke(SpaceOperation.Share, {\n space: input.space,\n type: Invitation.Type.DELEGATED,\n authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,\n multiUse: true,\n target: input.target,\n });\n\n // NOTE: Delegated invitations are invalid until the connecting state when keys are filled in.\n const invitationCode = yield* Effect.tryPromise(\n () =>\n new Promise<string>((resolve) => {\n invitation.subscribe((inv) => {\n if (inv.state === Invitation.State.CONNECTING) {\n resolve(InvitationEncoder.encode(inv));\n }\n });\n }),\n );\n const url = createInvitationUrl(invitationCode);\n if (input.copyToClipboard) {\n yield* Effect.tryPromise(() => navigator.clipboard.writeText(url));\n }\n return url;\n }),\n }),\n\n //\n // UseStaticSchema\n //\n OperationResolver.make({\n operation: SpaceOperation.UseStaticSchema,\n handler: Effect.fnUntraced(function* (input) {\n const db = input.db as Database.Database;\n const client = yield* Capability.get(ClientCapabilities.Client);\n const schema: any = yield* Effect.promise(() =>\n (client as any).graph.schemaRegistry.query({ typename: input.typename, location: ['runtime'] }).first(),\n );\n const space = client.spaces.get(db.spaceId);\n invariant(space, 'Space not found');\n\n Obj.change(space.properties, (p) => {\n if (!p.staticRecords) {\n p.staticRecords = [];\n }\n if (!p.staticRecords.includes(input.typename)) {\n p.staticRecords.push(input.typename);\n }\n });\n\n yield* Plugin.activate(SpaceEvents.SchemaAdded);\n const onSchemaAdded = yield* Capability.getAll(SpaceCapabilities.OnSchemaAdded);\n yield* Effect.all(\n onSchemaAdded.map((callback) => callback({ db, schema, show: input.show })),\n { concurrency: 'unbounded' },\n );\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.schema.use',\n properties: {\n spaceId: space.id,\n typename: Type.getTypename(schema),\n },\n });\n\n return {};\n }),\n }),\n\n //\n // AddSchema\n //\n OperationResolver.make({\n operation: SpaceOperation.AddSchema,\n handler: Effect.fnUntraced(function* (input) {\n const db = input.db;\n const schemas = yield* Effect.promise(() => db.schemaRegistry.register([input.schema]));\n const schema = schemas[0];\n Obj.change(schema.persistentSchema, (s) => {\n if (input.name) {\n s.name = input.name;\n }\n if (input.typename) {\n s.typename = input.typename;\n }\n if (input.version) {\n s.version = input.version;\n }\n });\n\n yield* Plugin.activate(SpaceEvents.SchemaAdded);\n const onSchemaAdded = yield* Capability.getAll(SpaceCapabilities.OnSchemaAdded);\n yield* Effect.all(\n onSchemaAdded.map((callback) => callback({ db, schema, show: input.show })),\n { concurrency: 'unbounded' },\n );\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.schema.add',\n properties: {\n spaceId: db.spaceId,\n objectId: schema.id,\n typename: schema.typename,\n },\n });\n\n return { id: schema.id, object: schema.persistentSchema, schema };\n }),\n }),\n\n //\n // AddRelation\n //\n OperationResolver.make({\n operation: SpaceOperation.AddRelation,\n handler: (input) =>\n Effect.sync(() => {\n const db = input.db as Database.Database;\n const relation = db.add(\n Relation.make(input.schema, {\n [Relation.Source]: input.source,\n [Relation.Target]: input.target,\n ...input.fields,\n }),\n );\n return { relation };\n }),\n }),\n\n //\n // DuplicateObject\n // TODO(wittjosiah): This appears to be unused.\n //\n OperationResolver.make({\n operation: SpaceOperation.DuplicateObject,\n handler: Effect.fnUntraced(function* (input) {\n const object = input.object as Obj.Unknown;\n const db = Obj.getDatabase(object);\n invariant(db, 'Database not found.');\n const newObject = yield* Effect.promise(() => cloneObject(object, resolve, db));\n yield* Operation.invoke(SpaceOperation.AddObject, { object: newObject, target: db });\n }),\n }),\n\n //\n // RestoreField (inverse of DeleteField)\n //\n OperationResolver.make({\n operation: SpaceOperation.RestoreField,\n handler: Effect.fnUntraced(function* (input) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const view = input.view as any;\n const db = Obj.getDatabase(view);\n invariant(db);\n const typename = getTypenameFromQuery(view.query.ast);\n invariant(typename);\n const schema = yield* Effect.promise(() => db.schemaRegistry.query({ typename }).firstOrUndefined());\n invariant(schema);\n\n // Create projection with change callbacks that wrap in Obj.change().\n const projection = new ProjectionModel({\n registry,\n view,\n baseSchema: schema.jsonSchema,\n change: createEchoChangeCallback(view, schema),\n });\n\n projection.setFieldProjection({ field: input.field, props: input.props }, input.index);\n }),\n }),\n\n //\n // RestoreObjects (inverse of RemoveObjects)\n //\n OperationResolver.make({\n operation: SpaceOperation.RestoreObjects,\n handler: Effect.fnUntraced(function* (input) {\n const objects = input.objects as Obj.Unknown[];\n const parentCollection = input.parentCollection as Collection.Collection;\n const indices = input.indices as number[];\n const nestedObjectsList = input.nestedObjectsList as Obj.Unknown[][];\n const wasActive = input.wasActive as string[];\n\n // Get the space from the first object.\n const space = getSpace(objects[0]);\n invariant(space);\n\n // Restore objects to the space.\n const restoredObjects = objects.map((obj: Obj.Unknown) => space.db.add(obj));\n\n // Restore nested objects to the space.\n nestedObjectsList.flat().forEach((obj: Obj.Unknown) => {\n if (Obj.isObject(obj)) {\n space.db.add(obj);\n } else if (Relation.isRelation(obj)) {\n space.db.add(obj);\n }\n });\n\n // Restore objects to the parent collection at their original indices.\n Obj.change(parentCollection, (c) => {\n indices.forEach((index: number, i: number) => {\n if (index !== -1) {\n c.objects.splice(index, 0, Ref.make(restoredObjects[i] as Obj.Unknown));\n }\n });\n });\n\n // Re-open objects that were active.\n if (wasActive.length > 0) {\n yield* Operation.invoke(LayoutOperation.Open, { subject: wasActive });\n }\n }),\n }),\n ]),\n ];\n }),\n);\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capabilities", "Capability", "Plugin", "UndoMapping", "AppCapabilities", "LayoutOperation", "SpaceState", "getSpace", "Database", "Obj", "Query", "Ref", "Relation", "Type", "Collection", "EchoDatabaseImpl", "Serializer", "invariant", "Migrations", "OperationResolver", "Operation", "ClientCapabilities", "ObservabilityOperation", "EdgeReplicationSetting", "ATTENDABLE_PATH_SEPARATOR", "iconValues", "CollectionModel", "ManagedCollection", "ProjectionModel", "createEchoChangeCallback", "getTypenameFromQuery", "hues", "Capability", "makeModule", "fnUntraced", "createInvitationUrl", "observability", "capabilityManager", "Service", "resolve", "typename", "getAll", "AppCapabilities", "Metadata", "find", "id", "metadata", "contributes", "Capabilities", "UndoMapping", "make", "operation", "SpaceOperation", "DeleteField", "inverse", "RestoreField", "deriveContext", "input", "output", "view", "field", "props", "index", "message", "ns", "meta", "RemoveObjects", "RestoreObjects", "_input", "objects", "parentCollection", "indices", "nestedObjectsList", "wasActive", "_output", "Obj", "getTypename", "length", "OperationResolver", "Open", "handler", "promise", "space", "open", "Close", "close", "Join", "Operation", "invoke", "LayoutOperation", "UpdateDialog", "subject", "JOIN_DIALOG", "blockAlign", "initialInvitationCode", "invitationCode", "onDone", "WaitForObject", "updateAtomValue", "SpaceCapabilities", "EphemeralState", "current", "awaiting", "OpenSettings", "ATTENDABLE_PATH_SEPARATOR", "workspace", "layout", "getAtomValue", "Layout", "getSpace", "invariant", "every", "obj", "isObject", "openObjectIds", "Set", "active", "target", "properties", "Collection", "Promise", "all", "map", "getNestedObjects", "instanceOf", "findIndex", "ref", "flatMap", "i", "filter", "has", "getDXN", "toString", "nestedObjects", "change", "c", "splice", "nestedObject", "getDatabase", "remove", "Relation", "isRelation", "db", "getSource", "registry", "get", "AtomRegistry", "getTypenameFromQuery", "query", "ast", "schema", "schemaRegistry", "firstOrUndefined", "projection", "ProjectionModel", "baseSchema", "jsonSchema", "createEchoChangeCallback", "result", "deleteFieldProjection", "fieldId", "deleted", "OpenCreateObject", "ephemeralState", "navigable", "CREATE_OBJECT_DIALOG", "views", "initialFormValues", "onCreateObject", "shouldNavigate", "object", "isCollection", "isSystemCollection", "ManagedCollection", "navigableCollections", "AddObject", "Database", "isDatabase", "CollectionModel", "add", "undefined", "hidden", "pipe", "provide", "layer", "schedule", "ObservabilityOperation", "SendEvent", "name", "spaceId", "objectId", "Share", "type", "authMethod", "multiUse", "invitation", "share", "Lock", "p", "COMPOSER_SPACE_LOCK", "Unlock", "OpenCreateSpace", "CREATE_SPACE_DIALOG", "Create", "hue", "hue_", "icon", "icon_", "edgeReplication", "client", "ClientCapabilities", "Client", "hues", "Math", "floor", "random", "iconValues", "spaces", "create", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "waitUntilReady", "collection", "Ref", "Migrations", "versionProperty", "targetVersion", "push", "makeManagedCollection", "key", "Type", "PersistentType", "Plugin", "activate", "SpaceEvents", "SpaceCreated", "onCreateSpaceCallbacks", "OnCreateSpace", "onCreateSpace", "isDefault", "rootCollection", "Migrate", "version", "state", "SpaceState", "SPACE_REQUIRES_MIGRATION", "sdkMigrationRunning", "migrate", "Snapshot", "EchoDatabaseImpl", "backup", "Serializer", "export", "Query", "fromAst", "snapshot", "Blob", "JSON", "stringify", "Rename", "UpdatePopover", "SPACE_RENAME_POPOVER", "anchorId", "caller", "RenameObject", "OBJECT_RENAME_POPOVER", "OpenMembers", "GetShareLink", "Invitation", "InvitationEncoder", "DELEGATED", "AuthMethod", "KNOWN_PUBLIC_KEY", "tryPromise", "subscribe", "inv", "State", "CONNECTING", "encode", "url", "copyToClipboard", "navigator", "clipboard", "writeText", "UseStaticSchema", "graph", "location", "first", "staticRecords", "includes", "SchemaAdded", "onSchemaAdded", "OnSchemaAdded", "callback", "show", "concurrency", "AddSchema", "schemas", "register", "persistentSchema", "s", "AddRelation", "sync", "relation", "Source", "source", "Target", "fields", "DuplicateObject", "newObject", "cloneObject", "setFieldProjection", "restoredObjects", "flat", "forEach"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/containers/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useAtomCapability, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { useLayout } from '@dxos/app-toolkit/ui';\nimport { Database, Obj, type Ref } from '@dxos/echo';\nimport { Collection, type View } from '@dxos/echo';\nimport { findAnnotation } from '@dxos/effect';\nimport { type Space, SpaceState, getSpace, isSpace, parseId, useSpace } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { type FormFieldComponentProps, SelectField } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { ManagedCollection, ViewAnnotation } from '@dxos/schema';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n JOIN_DIALOG,\n OBJECT_RENAME_POPOVER,\n SPACE_RENAME_POPOVER,\n} from '../../constants';\nimport {\n CollectionArticle,\n CollectionSection,\n CreateObjectDialog,\n type CreateObjectDialogProps,\n CreateSpaceDialog,\n InlineSyncStatus,\n JoinDialog,\n MembersContainer,\n MenuFooter,\n ObjectCardStack,\n ObjectDetails,\n ObjectRenamePopover,\n RecordArticle,\n SchemaContainer,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SpaceRenamePopover,\n SpaceSettingsContainer,\n SyncStatus,\n ViewEditor,\n} from '../../containers';\nimport { useTypeOptions } from '../../hooks';\nimport { meta } from '../../meta';\nimport {\n HueAnnotationId,\n IconAnnotationId,\n SpaceCapabilities,\n type SpaceSettingsProps,\n type TypeInputOptions,\n TypeInputOptionsAnnotationId,\n} from '../../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ createInvitationUrl }: ReactSurfaceOptions) {\n return Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}/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.Surface\n data={{\n id: data.subject.id,\n subject: data.subject.properties[Collection.Collection.typename]?.target,\n }}\n role={role}\n {...rest}\n />\n ),\n }),\n Surface.create({\n id: `${meta.id}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Collection.Collection | ManagedCollection.ManagedCollection } =>\n Obj.instanceOf(Collection.Collection, data.subject) ||\n Obj.instanceOf(ManagedCollection.ManagedCollection, data.subject),\n component: ({ data }) => <CollectionArticle subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/record-article`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),\n component: ({ data }) => <RecordArticle subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: AppCapabilities.Settings } =>\n AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => {\n const { settings, updateSettings } = useSettingsState<SpaceSettingsProps>(subject.atom);\n return <SpacePluginSettings settings={settings} onSettingsChange={updateSettings} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/companion/object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Unknown } =>\n Obj.isObject(data.companionTo) && data.subject === 'settings',\n component: ({ ref, data, role }) => <ObjectDetails subject={data.companionTo} role={role} ref={ref} />,\n }),\n Surface.create({\n id: `${meta.id}/space-settings-properties`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/properties`,\n component: ({ ref }) => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/space-settings-members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/members`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/space-settings-schema`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/schema`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/selected-objects`,\n role: 'article',\n filter: (\n data,\n ): data is { companionTo: Obj.OfShape<{ view: Ref.Ref<View.View> }>; subject: 'selected-objects' } => {\n if (data.subject !== 'selected-objects' || !Obj.isObject(data.companionTo)) {\n return false;\n }\n\n // TODO(burdon): Check companionTo.view.target is valid.\n const schema = Obj.getSchema(data.companionTo);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n // TODO(burdon): Replace with mosaic.\n component: ({ data, ref }) => (\n <ObjectCardStack\n key={Obj.getDXN(data.companionTo).toString()}\n objectId={Obj.getDXN(data.companionTo).toString()}\n view={data.companionTo.view.target!}\n ref={ref}\n />\n ),\n }),\n Surface.create({\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 Surface.create({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n Surface.create({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n Surface.create({\n id: `${meta.id}/create-initial-space-form-[hue]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, HueAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <HuePicker disabled={!!readonly} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}/create-initial-space-form-[icon]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, IconAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextIcon: string) => onValueChange(type, nextIcon), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <IconPicker\n disabled={!!readonly}\n value={getValue() ?? ''}\n onChange={handleChange}\n onReset={handleReset}\n />\n </Input.Root>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}/typename-form-input`,\n role: 'form-input',\n filter: (\n data,\n ): data is {\n prop: string;\n schema: Schema.Schema.Any;\n target: Database.Database | Collection.Collection | undefined;\n } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = findAnnotation((data.schema as Schema.Schema.All).ast, TypeInputOptionsAnnotationId);\n return !!annotation;\n },\n component: ({ data: { schema, target }, ...inputProps }) => {\n const props = inputProps as any as FormFieldComponentProps;\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n const space = useSpace(db?.spaceId);\n const annotation = findAnnotation<TypeInputOptions>(schema.ast, TypeInputOptionsAnnotationId)!;\n const options = useTypeOptions({ space, annotation });\n\n return <SelectField {...props} options={options} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: { view: Ref.Ref<View.View> } } => {\n if (!Obj.isObject(data.subject)) {\n return false;\n }\n\n const schema = Obj.getSchema(data.subject);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n component: ({ data }) => {\n const view = data.subject.view.target;\n if (!view) {\n return null;\n }\n\n return <ViewEditor view={view} />;\n },\n }),\n Surface.create({\n id: SPACE_RENAME_POPOVER,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === SPACE_RENAME_POPOVER && isSpace(data.props),\n component: ({ data }) => <SpaceRenamePopover space={data.props} />,\n }),\n Surface.create({\n id: OBJECT_RENAME_POPOVER,\n role: 'popover',\n filter: (data): data is { props: Obj.Unknown } =>\n data.component === OBJECT_RENAME_POPOVER && Obj.isObject(data.props),\n component: ({ data }) => <ObjectRenamePopover object={data.props} />,\n }),\n Surface.create({\n id: `${meta.id}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: Obj.Unknown; open?: boolean } =>\n typeof data.id === 'string' && Obj.isObject(data.subject),\n component: ({ data }) => {\n const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={ephemeral.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n Surface.create({\n id: `${meta.id}/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 // TODO(wittjosiah): Broken?\n Surface.create({\n id: `${meta.id}/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 Surface.create({\n id: `${meta.id}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | Obj.Unknown } => isSpace(data.subject) || Obj.isObject(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[Collection.Collection.typename]?.target as Collection.Collection)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n Surface.create({\n id: `${meta.id}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: Collection.Collection } =>\n Obj.instanceOf(Collection.Collection, data.subject),\n component: ({ data }) => <CollectionSection subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport type { CreateObjectDialogProps } from './CreateObjectDialog/CreateObjectDialog';\n\nexport const CollectionArticle: ComponentType<any> = lazy(() => import('./CollectionArticle'));\nexport const CollectionSection: ComponentType<any> = lazy(() => import('./CollectionSection'));\nexport const CreateObjectDialog: ComponentType<any> = lazy(() => import('./CreateObjectDialog'));\nexport const CreateSpaceDialog: ComponentType<any> = lazy(() => import('./CreateSpaceDialog'));\nexport const InlineSyncStatus: ComponentType<any> = lazy(() => import('./InlineSyncStatus'));\nexport const JoinDialog: ComponentType<any> = lazy(() => import('./JoinDialog'));\nexport const MembersContainer: ComponentType<any> = lazy(() => import('./MembersContainer'));\nexport const MenuFooter: ComponentType<any> = lazy(() => import('./MenuFooter'));\nexport const ObjectCardStack: ComponentType<any> = lazy(() => import('./ObjectCardStack'));\nexport const ObjectDetails: ComponentType<any> = lazy(() => import('./ObjectDetails'));\nexport const ObjectRenamePopover: ComponentType<any> = lazy(() => import('./ObjectRenamePopover'));\nexport const RecordArticle: ComponentType<any> = lazy(() => import('./RecordArticle'));\nexport const SchemaContainer: ComponentType<any> = lazy(() => import('./SchemaContainer'));\nexport const SmallPresenceLive: ComponentType<any> = lazy(() => import('./SmallPresenceLive'));\nexport const SpacePluginSettings: ComponentType<any> = lazy(() => import('./SpacePluginSettings'));\nexport const SpacePresence: ComponentType<any> = lazy(() => import('./SpacePresence'));\nexport const SpaceRenamePopover: ComponentType<any> = lazy(() => import('./SpaceRenamePopover'));\nexport const SpaceSettingsContainer: ComponentType<any> = lazy(() => import('./SpaceSettingsContainer'));\nexport const SyncStatus: ComponentType<any> = lazy(() => import('./SyncStatus'));\nexport const ViewEditor: ComponentType<any> = lazy(() => import('./ViewEditor'));\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Option", "React", "useCallback", "Capabilities", "Capability", "Surface", "useAtomCapability", "useSettingsState", "AppCapabilities", "useLayout", "Database", "Obj", "Collection", "findAnnotation", "SpaceState", "getSpace", "isSpace", "parseId", "useSpace", "Input", "SelectField", "HuePicker", "IconPicker", "ManagedCollection", "ViewAnnotation", "lazy", "CollectionArticle", "lazy", "CollectionSection", "CreateObjectDialog", "CreateSpaceDialog", "InlineSyncStatus", "JoinDialog", "MembersContainer", "MenuFooter", "ObjectCardStack", "ObjectDetails", "ObjectRenamePopover", "RecordArticle", "SchemaContainer", "SmallPresenceLive", "SpacePluginSettings", "SpacePresence", "SpaceRenamePopover", "SpaceSettingsContainer", "SyncStatus", "ViewEditor", "Capability", "makeModule", "fnUntraced", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "properties", "Collection", "typename", "target", "position", "Obj", "instanceOf", "ManagedCollection", "CollectionArticle", "isObject", "RecordArticle", "AppCapabilities", "isSettings", "prefix", "settings", "updateSettings", "useSettingsState", "atom", "SpacePluginSettings", "onSettingsChange", "companionTo", "ref", "ObjectDetails", "layout", "useLayout", "spaceId", "parseId", "workspace", "space", "useSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "schema", "getSchema", "fromNullable", "pipe", "flatMap", "ViewAnnotation", "getOrElse", "ObjectCardStack", "key", "getDXN", "toString", "objectId", "view", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "findAnnotation", "ast", "HueAnnotationId", "_", "inputProps", "label", "readonly", "type", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "undefined", "Input", "Root", "Label", "HuePicker", "disabled", "value", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "prop", "TypeInputOptionsAnnotationId", "db", "Database", "isDatabase", "getDatabase", "options", "useTypeOptions", "SelectField", "ViewEditor", "SPACE_RENAME_POPOVER", "SpaceRenamePopover", "OBJECT_RENAME_POPOVER", "ObjectRenamePopover", "object", "MenuFooter", "ephemeral", "useAtomCapability", "SpaceCapabilities", "EphemeralState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "SpacePresence", "CollectionSection", "SyncStatus"]
7
- }
@@ -1,51 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SpaceCapabilities
4
- } from "./chunk-3DWZCVVQ.mjs";
5
- import "./chunk-SL4BJSUG.mjs";
6
-
7
- // src/capabilities/repair/repair.ts
8
- import * as Effect from "effect/Effect";
9
- import { Capability } from "@dxos/app-framework";
10
- import { Collection, Obj, Ref, Type } from "@dxos/echo";
11
- import { ManagedCollection } from "@dxos/schema";
12
- var repair_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(SpaceCapabilities.Repair, async ({ space }) => {
13
- await removeQueryCollections(space);
14
- await ensureSystemCollection(space);
15
- })));
16
- var removeQueryCollections = async (space) => {
17
- const rootCollection = await space.properties[Collection.Collection.typename]?.load();
18
- if (!rootCollection) {
19
- return;
20
- }
21
- const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
22
- const queryCollections = objects.filter((object) => Obj.getTypename(object) === "dxos.org/type/QueryCollection");
23
- if (queryCollections.length === 0) {
24
- return;
25
- }
26
- Obj.change(rootCollection, (c) => {
27
- c.objects = objects.filter((object) => Obj.getTypename(object) !== "dxos.org/type/QueryCollection").map((object) => Ref.make(object));
28
- });
29
- queryCollections.forEach((object) => space.db.remove(object));
30
- };
31
- var ensureSystemCollection = async (space) => {
32
- const rootCollection = await space.properties[Collection.Collection.typename]?.load();
33
- if (!rootCollection) {
34
- return;
35
- }
36
- const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
37
- const records = objects.find((object) => Obj.instanceOf(ManagedCollection.ManagedCollection, object) && object.key === Type.getTypename(Type.PersistentType));
38
- if (records) {
39
- return;
40
- }
41
- const recordsCollectionRef = Ref.make(ManagedCollection.makeManagedCollection({
42
- key: Type.getTypename(Type.PersistentType)
43
- }));
44
- Obj.change(rootCollection, (c) => {
45
- c.objects.push(recordsCollectionRef);
46
- });
47
- };
48
- export {
49
- repair_default as default
50
- };
51
- //# sourceMappingURL=repair-P6ND7ZRU.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/repair/repair.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Collection, Obj, Ref, Type } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { ManagedCollection } from '@dxos/schema';\n\nimport { SpaceCapabilities } from '../../types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.Repair, async ({ space }: { space: Space }) => {\n await removeQueryCollections(space);\n await ensureSystemCollection(space);\n }),\n ),\n);\n\n/**\n * Remove all existing query collections from the root collection.\n */\nconst removeQueryCollections = async (space: Space) => {\n const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();\n if (!rootCollection) {\n return;\n }\n\n const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));\n const queryCollections = objects.filter((object) => Obj.getTypename(object) === 'dxos.org/type/QueryCollection');\n if (queryCollections.length === 0) {\n return;\n }\n\n Obj.change(rootCollection, (c) => {\n c.objects = objects\n .filter((object) => Obj.getTypename(object) !== 'dxos.org/type/QueryCollection')\n .map((object) => Ref.make(object));\n });\n queryCollections.forEach((object) => space.db.remove(object));\n};\n\n/**\n * Ensure the root collection has a system collection for StoredSchema.\n */\nconst ensureSystemCollection = async (space: Space) => {\n const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();\n if (!rootCollection) {\n return;\n }\n\n const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));\n const records = objects.find(\n (object) =>\n Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&\n object.key === Type.getTypename(Type.PersistentType),\n );\n if (records) {\n return;\n }\n\n const recordsCollectionRef = Ref.make(\n ManagedCollection.makeManagedCollection({ key: Type.getTypename(Type.PersistentType) }),\n );\n Obj.change(rootCollection, (c) => {\n c.objects.push(recordsCollectionRef);\n });\n};\n"],
5
- "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,YAAYC,KAAKC,KAAKC,YAAY;AAE3C,SAASC,yBAAyB;AAIlC,IAAA,iBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,kBAAkBC,QAAQ,OAAO,EAAEC,MAAK,MAAoB;AACjF,QAAMC,uBAAuBD,KAAAA;AAC7B,QAAME,uBAAuBF,KAAAA;AAC/B,CAAA,CAAA,CAAA;AAOJ,IAAMC,yBAAyB,OAAOD,UAAAA;AACpC,QAAMG,iBAAwC,MAAMH,MAAMI,WAAWC,WAAWA,WAAWC,QAAQ,GAAGC,KAAAA;AACtG,MAAI,CAACJ,gBAAgB;AACnB;EACF;AAEA,QAAMK,UAAU,MAAMC,QAAQC,IAAIP,eAAeK,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMM,mBAAmBL,QAAQM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,+BAAA;AAChF,MAAIF,iBAAiBK,WAAW,GAAG;AACjC;EACF;AAEAF,MAAIG,OAAOhB,gBAAgB,CAACiB,MAAAA;AAC1BA,MAAEZ,UAAUA,QACTM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,+BAAA,EAC/CJ,IAAI,CAACI,WAAWM,IAAIC,KAAKP,MAAAA,CAAAA;EAC9B,CAAA;AACAF,mBAAiBU,QAAQ,CAACR,WAAWf,MAAMwB,GAAGC,OAAOV,MAAAA,CAAAA;AACvD;AAKA,IAAMb,yBAAyB,OAAOF,UAAAA;AACpC,QAAMG,iBAAwC,MAAMH,MAAMI,WAAWC,WAAWA,WAAWC,QAAQ,GAAGC,KAAAA;AACtG,MAAI,CAACJ,gBAAgB;AACnB;EACF;AAEA,QAAMK,UAAU,MAAMC,QAAQC,IAAIP,eAAeK,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMmB,UAAUlB,QAAQmB,KACtB,CAACZ,WACCC,IAAIY,WAAWC,kBAAkBA,mBAAmBd,MAAAA,KACpDA,OAAOe,QAAQC,KAAKd,YAAYc,KAAKC,cAAc,CAAA;AAEvD,MAAIN,SAAS;AACX;EACF;AAEA,QAAMO,uBAAuBZ,IAAIC,KAC/BO,kBAAkBK,sBAAsB;IAAEJ,KAAKC,KAAKd,YAAYc,KAAKC,cAAc;EAAE,CAAA,CAAA;AAEvFhB,MAAIG,OAAOhB,gBAAgB,CAACiB,MAAAA;AAC1BA,MAAEZ,QAAQ2B,KAAKF,oBAAAA;EACjB,CAAA;AACF;",
6
- "names": ["Effect", "Capability", "Collection", "Obj", "Ref", "Type", "ManagedCollection", "Capability", "makeModule", "succeed", "contributes", "SpaceCapabilities", "Repair", "space", "removeQueryCollections", "ensureSystemCollection", "rootCollection", "properties", "Collection", "typename", "load", "objects", "Promise", "all", "map", "ref", "queryCollections", "filter", "object", "Obj", "getTypename", "length", "change", "c", "Ref", "make", "forEach", "db", "remove", "records", "find", "instanceOf", "ManagedCollection", "key", "Type", "PersistentType", "recordsCollectionRef", "makeManagedCollection", "push"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/spaces-ready/spaces-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { SubscriptionList } from '@dxos/async';\nimport { Filter, Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Graph } from '@dxos/plugin-graph';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { SPACE_ID_LENGTH, SpaceState, parseId } from '@dxos/react-client/echo';\nimport { Expando } from '@dxos/schema';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceCapabilities, SpaceOperation } from '../../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 5_000;\n\n// E.g., dxn:echo:BA25QRC2FEWCSAMRP4RZL65LWJ7352CKE:01J00J9B45YHYSGZQTQMSKMGJ6\nconst ECHO_DXN_LENGTH = 3 + 1 + 4 + 1 + 33 + 1 + 26;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { invoke, invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const layoutAtom = yield* Capability.get(AppCapabilities.Layout);\n const attention = yield* Capability.get(AttentionCapabilities.Attention);\n const stateAtom = yield* Capability.get(SpaceCapabilities.State);\n const ephemeralAtom = yield* Capability.get(SpaceCapabilities.EphemeralState);\n const client = yield* Capability.get(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n yield* Effect.tryPromise(() => defaultSpace.waitUntilReady());\n\n // Check if deck state indicates we should switch to default space.\n const layout = registry.get(layoutAtom);\n if (layout.workspace === 'default') {\n yield* invoke(LayoutOperation.SwitchWorkspace, { subject: defaultSpace.id });\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n Obj.change(defaultSpace.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = true;\n });\n }\n\n const queryResults = yield* Effect.tryPromise(() =>\n defaultSpace.db.query(Filter.type(Expando.Expando, { key: SHARED })).run(),\n );\n const spacesOrder = queryResults[0];\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(Obj.make(Expando.Expando, { key: SHARED, order: [] }));\n }\n\n // Await missing objects - subscribe to layout atom changes.\n // NOTE: Use immediate: true to check initial state (URL handler may have already set active).\n let lastActiveCleanup: (() => void) | undefined;\n subscriptions.add(\n registry.subscribe(\n layoutAtom,\n (layout) => {\n // Clean up previous effect.\n lastActiveCleanup?.();\n lastActiveCleanup = undefined;\n\n // Determine the ID to check - either from active item or workspace.\n const id = layout.active.length === 1 ? layout.active[0] : layout.workspace;\n if (!id) {\n return;\n }\n\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node && (id.length === ECHO_DXN_LENGTH || id.length === SPACE_ID_LENGTH)) {\n void Graph.initialize(graph, id);\n const timeout = setTimeout(async () => {\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node) {\n await invokePromise(SpaceOperation.WaitForObject, { id });\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n lastActiveCleanup = () => clearTimeout(timeout);\n }\n },\n { immediate: true },\n ),\n );\n // Also add cleanup for the last effect.\n subscriptions.add(() => lastActiveCleanup?.());\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n const updateSpaceName = () => {\n const name = space.properties.name;\n if (!name) {\n registry.update(stateAtom, (current) => {\n const { [space.id]: _, ...rest } = current.spaceNames;\n return { ...current, spaceNames: rest };\n });\n } else {\n registry.update(stateAtom, (current) => ({\n ...current,\n spaceNames: { ...current.spaceNames, [space.id]: name },\n }));\n }\n };\n updateSpaceName();\n subscriptions.add(Obj.subscribe(space.properties, updateSpaceName));\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space - subscribe to both layout and attention.\n let broadcastCleanup: (() => void) | undefined;\n const setupBroadcast = () => {\n broadcastCleanup?.();\n\n const layout = registry.get(layoutAtom);\n const current = attention.getCurrent();\n const active = layout.active;\n const inactive = layout.inactive;\n\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id: string) => {\n try {\n const { spaceId } = parseId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id: string) => {\n try {\n const { spaceId } = parseId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', {\n err: err.message,\n });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n broadcastCleanup = () => clearInterval(interval);\n };\n\n // Subscribe to layout changes for broadcast.\n subscriptions.add(registry.subscribe(layoutAtom, setupBroadcast));\n // Subscribe to attention.current changes.\n subscriptions.add(attention.subscribeCurrent(() => setupBroadcast()));\n // Initial setup.\n setupBroadcast();\n // Cleanup.\n subscriptions.add(() => broadcastCleanup?.());\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n registry.update(ephemeralAtom, (ephemeral) => {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in ephemeral.viewersByObject)) {\n ephemeral.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n ephemeral.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!ephemeral.viewersByIdentity.has(identityKey)) {\n ephemeral.viewersByIdentity.set(identityKey, new Set());\n }\n ephemeral.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n ephemeral.viewersByObject[id]?.delete(identityKey);\n ephemeral.viewersByIdentity.get(identityKey)?.delete(id);\n // It's okay for these to be empty sets/maps, reduces churn.\n }\n });\n\n return { ...ephemeral };\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n yield* Effect.tryPromise(() =>\n Promise.all(\n client.spaces\n .get()\n .map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n ),\n );\n registry.update(stateAtom, (current) => ({ ...current, enabledEdgeReplication: true }));\n } catch (err) {\n log.catch(err);\n }\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.sync(() => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n }),\n );\n }),\n);\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Option", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "SubscriptionList", "Filter", "Obj", "log", "AttentionCapabilities", "ClientCapabilities", "Graph", "EdgeReplicationSetting", "PublicKey", "SPACE_ID_LENGTH", "SpaceState", "parseId", "Expando", "ComplexMap", "reduceGroupBy", "ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "ECHO_DXN_LENGTH", "Capability", "makeModule", "fnUntraced", "subscriptions", "SubscriptionList", "spaceSubscriptions", "invoke", "invokePromise", "get", "Capabilities", "OperationInvoker", "graph", "AppCapabilities", "AppGraph", "registry", "AtomRegistry", "layoutAtom", "Layout", "attention", "AttentionCapabilities", "Attention", "stateAtom", "SpaceCapabilities", "State", "ephemeralAtom", "EphemeralState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "tryPromise", "waitUntilReady", "layout", "workspace", "LayoutOperation", "SwitchWorkspace", "subject", "id", "properties", "COMPOSER_SPACE_LOCK", "Obj", "change", "p", "queryResults", "db", "query", "Filter", "type", "Expando", "key", "SHARED", "run", "spacesOrder", "add", "make", "order", "lastActiveCleanup", "subscribe", "undefined", "active", "length", "node", "Graph", "getNode", "pipe", "getOrNull", "SPACE_ID_LENGTH", "initialize", "timeout", "setTimeout", "SpaceOperation", "WaitForObject", "clearTimeout", "immediate", "state", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "updateSpaceName", "name", "update", "current", "_", "rest", "spaceNames", "unsubscribe", "broadcastCleanup", "setupBroadcast", "getCurrent", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "subscribeCurrent", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "ephemeral", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null", "sync"]
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"AwaitingObject.d.ts","sourceRoot":"","sources":["../../../../src/components/AwaitingObject.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAiBhE,eAAO,MAAM,cAAc,GAAI,QAAQ;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,sBA4FpD,CAAC"}