@dxos/plugin-space 0.8.4-main.406dc2a → 0.8.4-main.52d7546f51

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 (626) hide show
  1. package/dist/lib/browser/CollectionArticle-XXLUNK3F.mjs +127 -0
  2. package/dist/lib/browser/CollectionArticle-XXLUNK3F.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs +148 -0
  4. package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs +143 -0
  6. package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-36LDKFWF.mjs +108 -0
  8. package/dist/lib/browser/RecordArticle-36LDKFWF.mjs.map +7 -0
  9. package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs +530 -0
  10. package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs.map +7 -0
  11. package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs +85 -0
  12. package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-PTGRQQ6J.mjs → chunk-7D63MVRS.mjs} +68 -63
  14. package/dist/lib/browser/chunk-7D63MVRS.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-A7ZCVQGZ.mjs +118 -0
  16. package/dist/lib/browser/chunk-A7ZCVQGZ.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-ASV6DYFH.mjs +19 -0
  18. package/dist/lib/browser/chunk-ASV6DYFH.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-CMLRMQNM.mjs +1889 -0
  20. package/dist/lib/browser/chunk-CMLRMQNM.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-HSMQFM57.mjs +16 -0
  22. package/dist/lib/browser/chunk-HSMQFM57.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-KGLWYGIF.mjs +715 -0
  24. package/dist/lib/browser/chunk-KGLWYGIF.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-NF3ZFAB4.mjs +13 -0
  26. package/dist/lib/browser/chunk-NF3ZFAB4.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-WAOJLA2S.mjs +772 -0
  28. package/dist/lib/browser/chunk-WAOJLA2S.mjs.map +7 -0
  29. package/dist/lib/browser/cli/index.mjs +851 -0
  30. package/dist/lib/browser/cli/index.mjs.map +7 -0
  31. package/dist/lib/browser/identity-created-VCFYLSBB.mjs +23 -0
  32. package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +235 -239
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs +830 -0
  37. package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs.map +7 -0
  38. package/dist/lib/browser/react-root-ITWAPZIY.mjs +30 -0
  39. package/dist/lib/browser/react-root-ITWAPZIY.mjs.map +7 -0
  40. package/dist/lib/browser/react-surface-6GD6K4I4.mjs +383 -0
  41. package/dist/lib/browser/react-surface-6GD6K4I4.mjs.map +7 -0
  42. package/dist/lib/browser/repair-DKU4TUD2.mjs +50 -0
  43. package/dist/lib/browser/repair-DKU4TUD2.mjs.map +7 -0
  44. package/dist/lib/browser/settings-M2DMD2ZA.mjs +34 -0
  45. package/dist/lib/browser/settings-M2DMD2ZA.mjs.map +7 -0
  46. package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs +243 -0
  47. package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs.map +7 -0
  48. package/dist/lib/browser/state-V637BLIM.mjs +58 -0
  49. package/dist/lib/browser/state-V637BLIM.mjs.map +7 -0
  50. package/dist/lib/browser/types/index.mjs +18 -10
  51. package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs +128 -0
  52. package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs +149 -0
  54. package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs.map +7 -0
  55. package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs +144 -0
  56. package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs.map +7 -0
  57. package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs +109 -0
  58. package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs.map +7 -0
  59. package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs +531 -0
  60. package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs.map +7 -0
  61. package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs +86 -0
  62. package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-2NM62ORP.mjs +1890 -0
  64. package/dist/lib/node-esm/chunk-2NM62ORP.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-HAKW2RFD.mjs → chunk-5N3YIAXD.mjs} +68 -63
  66. package/dist/lib/node-esm/chunk-5N3YIAXD.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-A5A7M37T.mjs +119 -0
  68. package/dist/lib/node-esm/chunk-A5A7M37T.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +20 -0
  70. package/dist/lib/node-esm/chunk-CVXULIYC.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-FB5YNROS.mjs +773 -0
  72. package/dist/lib/node-esm/chunk-FB5YNROS.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-NYSDQPNM.mjs +716 -0
  74. package/dist/lib/node-esm/chunk-NYSDQPNM.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-PG7DNOEX.mjs +15 -0
  76. package/dist/lib/node-esm/chunk-PG7DNOEX.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-SL4BJSUG.mjs +18 -0
  78. package/dist/lib/node-esm/chunk-SL4BJSUG.mjs.map +7 -0
  79. package/dist/lib/node-esm/cli/index.mjs +852 -0
  80. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  81. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs +25 -0
  82. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +7 -0
  83. package/dist/lib/node-esm/index.mjs +235 -239
  84. package/dist/lib/node-esm/index.mjs.map +4 -4
  85. package/dist/lib/node-esm/meta.json +1 -1
  86. package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs +831 -0
  87. package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs.map +7 -0
  88. package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs +31 -0
  89. package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs.map +7 -0
  90. package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs +384 -0
  91. package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs.map +7 -0
  92. package/dist/lib/node-esm/repair-C2H6JQCL.mjs +51 -0
  93. package/dist/lib/node-esm/repair-C2H6JQCL.mjs.map +7 -0
  94. package/dist/lib/node-esm/settings-VCPCNBOY.mjs +35 -0
  95. package/dist/lib/node-esm/settings-VCPCNBOY.mjs.map +7 -0
  96. package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs +244 -0
  97. package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs.map +7 -0
  98. package/dist/lib/node-esm/state-5MCEPWN3.mjs +59 -0
  99. package/dist/lib/node-esm/state-5MCEPWN3.mjs.map +7 -0
  100. package/dist/lib/node-esm/types/index.mjs +18 -10
  101. package/dist/types/src/SpacePlugin.d.ts +3 -15
  102. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +7 -0
  104. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
  108. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/identity-created/identity-created.d.ts +5 -0
  112. package/dist/types/src/capabilities/identity-created/identity-created.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/identity-created/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/identity-created/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/index.d.ts +10 -20
  116. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/operation-resolver/index.d.ts +6 -0
  118. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +9 -0
  120. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  122. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  124. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
  126. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +8 -0
  128. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/repair/index.d.ts +3 -0
  130. package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
  132. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  134. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  135. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  136. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/spaces-ready/index.d.ts +3 -0
  138. package/dist/types/src/capabilities/spaces-ready/index.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +5 -0
  140. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/state/index.d.ts +13 -0
  142. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/state/state.d.ts +17 -0
  144. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  145. package/dist/types/src/cli/commands/database/add.d.ts +17 -0
  146. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -0
  147. package/dist/types/src/cli/commands/database/index.d.ts +3 -0
  148. package/dist/types/src/cli/commands/database/index.d.ts.map +1 -0
  149. package/dist/types/src/cli/commands/database/query/index.d.ts +2 -0
  150. package/dist/types/src/cli/commands/database/query/index.d.ts.map +1 -0
  151. package/dist/types/src/cli/commands/database/query/query.d.ts +13 -0
  152. package/dist/types/src/cli/commands/database/query/query.d.ts.map +1 -0
  153. package/dist/types/src/cli/commands/database/query/query.test.d.ts +2 -0
  154. package/dist/types/src/cli/commands/database/query/query.test.d.ts.map +1 -0
  155. package/dist/types/src/cli/commands/database/remove.d.ts +9 -0
  156. package/dist/types/src/cli/commands/database/remove.d.ts.map +1 -0
  157. package/dist/types/src/cli/commands/database/stats.d.ts +6 -0
  158. package/dist/types/src/cli/commands/database/stats.d.ts.map +1 -0
  159. package/dist/types/src/cli/commands/database/util.d.ts +14 -0
  160. package/dist/types/src/cli/commands/database/util.d.ts.map +1 -0
  161. package/dist/types/src/cli/commands/index.d.ts +4 -0
  162. package/dist/types/src/cli/commands/index.d.ts.map +1 -0
  163. package/dist/types/src/cli/commands/queue/index.d.ts +7 -0
  164. package/dist/types/src/cli/commands/queue/index.d.ts.map +1 -0
  165. package/dist/types/src/cli/commands/queue/query.d.ts +8 -0
  166. package/dist/types/src/cli/commands/queue/query.d.ts.map +1 -0
  167. package/dist/types/src/cli/commands/queue/util.d.ts +6 -0
  168. package/dist/types/src/cli/commands/queue/util.d.ts.map +1 -0
  169. package/dist/types/src/cli/commands/space/close/close.d.ts +12 -0
  170. package/dist/types/src/cli/commands/space/close/close.d.ts.map +1 -0
  171. package/dist/types/src/cli/commands/space/close/index.d.ts +2 -0
  172. package/dist/types/src/cli/commands/space/close/index.d.ts.map +1 -0
  173. package/dist/types/src/cli/commands/space/create/create.d.ts +12 -0
  174. package/dist/types/src/cli/commands/space/create/create.d.ts.map +1 -0
  175. package/dist/types/src/cli/commands/space/create/create.test.d.ts +2 -0
  176. package/dist/types/src/cli/commands/space/create/create.test.d.ts.map +1 -0
  177. package/dist/types/src/cli/commands/space/create/index.d.ts +2 -0
  178. package/dist/types/src/cli/commands/space/create/index.d.ts.map +1 -0
  179. package/dist/types/src/cli/commands/space/index.d.ts +31 -0
  180. package/dist/types/src/cli/commands/space/index.d.ts.map +1 -0
  181. package/dist/types/src/cli/commands/space/info/index.d.ts +2 -0
  182. package/dist/types/src/cli/commands/space/info/index.d.ts.map +1 -0
  183. package/dist/types/src/cli/commands/space/info/info.d.ts +13 -0
  184. package/dist/types/src/cli/commands/space/info/info.d.ts.map +1 -0
  185. package/dist/types/src/cli/commands/space/info/info.test.d.ts +2 -0
  186. package/dist/types/src/cli/commands/space/info/info.test.d.ts.map +1 -0
  187. package/dist/types/src/cli/commands/space/join/index.d.ts +2 -0
  188. package/dist/types/src/cli/commands/space/join/index.d.ts.map +1 -0
  189. package/dist/types/src/cli/commands/space/join/join.d.ts +14 -0
  190. package/dist/types/src/cli/commands/space/join/join.d.ts.map +1 -0
  191. package/dist/types/src/cli/commands/space/join/util.d.ts +17 -0
  192. package/dist/types/src/cli/commands/space/join/util.d.ts.map +1 -0
  193. package/dist/types/src/cli/commands/space/list/index.d.ts +2 -0
  194. package/dist/types/src/cli/commands/space/list/index.d.ts.map +1 -0
  195. package/dist/types/src/cli/commands/space/list/list.d.ts +7 -0
  196. package/dist/types/src/cli/commands/space/list/list.d.ts.map +1 -0
  197. package/dist/types/src/cli/commands/space/list/list.test.d.ts +2 -0
  198. package/dist/types/src/cli/commands/space/list/list.test.d.ts.map +1 -0
  199. package/dist/types/src/cli/commands/space/members/index.d.ts +2 -0
  200. package/dist/types/src/cli/commands/space/members/index.d.ts.map +1 -0
  201. package/dist/types/src/cli/commands/space/members/members.d.ts +13 -0
  202. package/dist/types/src/cli/commands/space/members/members.d.ts.map +1 -0
  203. package/dist/types/src/cli/commands/space/members/members.test.d.ts +2 -0
  204. package/dist/types/src/cli/commands/space/members/members.test.d.ts.map +1 -0
  205. package/dist/types/src/cli/commands/space/members/util.d.ts +9 -0
  206. package/dist/types/src/cli/commands/space/members/util.d.ts.map +1 -0
  207. package/dist/types/src/cli/commands/space/open/index.d.ts +2 -0
  208. package/dist/types/src/cli/commands/space/open/index.d.ts.map +1 -0
  209. package/dist/types/src/cli/commands/space/open/open.d.ts +12 -0
  210. package/dist/types/src/cli/commands/space/open/open.d.ts.map +1 -0
  211. package/dist/types/src/cli/commands/space/schema/index.d.ts +8 -0
  212. package/dist/types/src/cli/commands/space/schema/index.d.ts.map +1 -0
  213. package/dist/types/src/cli/commands/space/schema/list/index.d.ts +2 -0
  214. package/dist/types/src/cli/commands/space/schema/list/index.d.ts.map +1 -0
  215. package/dist/types/src/cli/commands/space/schema/list/list.d.ts +15 -0
  216. package/dist/types/src/cli/commands/space/schema/list/list.d.ts.map +1 -0
  217. package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts +2 -0
  218. package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts.map +1 -0
  219. package/dist/types/src/cli/commands/space/schema/list/util.d.ts +15 -0
  220. package/dist/types/src/cli/commands/space/schema/list/util.d.ts.map +1 -0
  221. package/dist/types/src/cli/commands/space/share/index.d.ts +2 -0
  222. package/dist/types/src/cli/commands/space/share/index.d.ts.map +1 -0
  223. package/dist/types/src/cli/commands/space/share/share.d.ts +19 -0
  224. package/dist/types/src/cli/commands/space/share/share.d.ts.map +1 -0
  225. package/dist/types/src/cli/commands/space/sync/index.d.ts +2 -0
  226. package/dist/types/src/cli/commands/space/sync/index.d.ts.map +1 -0
  227. package/dist/types/src/cli/commands/space/sync/sync.d.ts +6 -0
  228. package/dist/types/src/cli/commands/space/sync/sync.d.ts.map +1 -0
  229. package/dist/types/src/cli/commands/space/sync/sync.test.d.ts +2 -0
  230. package/dist/types/src/cli/commands/space/sync/sync.test.d.ts.map +1 -0
  231. package/dist/types/src/cli/index.d.ts +2 -0
  232. package/dist/types/src/cli/index.d.ts.map +1 -0
  233. package/dist/types/src/cli/plugin.d.ts +4 -0
  234. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  235. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  236. package/dist/types/src/components/CollectionArticle.d.ts +9 -0
  237. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  238. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  239. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  240. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  241. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  242. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +218 -224
  243. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  244. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +21 -10
  245. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  246. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  247. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  248. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  249. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  250. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  251. package/dist/types/src/components/{MembersContainer.stories.d.ts → MembersContainer/MembersContainer.stories.d.ts} +212 -219
  252. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  253. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  254. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  255. package/dist/types/src/components/MenuFooter.d.ts +1 -1
  256. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  257. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts +8 -0
  258. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  259. package/dist/types/src/components/{ObjectDetailsPanel → ObjectCardStack}/ObjectForm.d.ts +2 -3
  260. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
  261. package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
  262. package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
  263. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +2 -2
  264. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
  265. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.d.ts +210 -217
  266. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.d.ts.map +1 -1
  267. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
  268. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
  269. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +9 -0
  270. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  271. package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
  272. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
  273. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  274. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  275. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  276. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  277. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  278. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  279. package/dist/types/src/components/RecordArticle.stories.d.ts +1600 -0
  280. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  281. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  282. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  283. package/dist/types/src/components/SpacePluginSettings.d.ts +4 -2
  284. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  285. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +7 -6
  286. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  287. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +210 -217
  288. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  289. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  290. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  291. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  292. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  293. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  294. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  295. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +4 -1
  296. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  297. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +214 -218
  298. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  299. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  300. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +211 -218
  301. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  302. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  303. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  304. package/dist/types/src/components/index.d.ts +15 -18
  305. package/dist/types/src/components/index.d.ts.map +1 -1
  306. package/dist/types/src/constants.d.ts +6 -0
  307. package/dist/types/src/constants.d.ts.map +1 -0
  308. package/dist/types/src/helpers/index.d.ts +2 -0
  309. package/dist/types/src/helpers/index.d.ts.map +1 -0
  310. package/dist/types/src/helpers/query.d.ts +7 -0
  311. package/dist/types/src/helpers/query.d.ts.map +1 -0
  312. package/dist/types/src/helpers/query.test.d.ts +2 -0
  313. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  314. package/dist/types/src/hooks/useActiveSpace.d.ts +2 -2
  315. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  316. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
  317. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  318. package/dist/types/src/hooks/usePath.d.ts +2 -2
  319. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  320. package/dist/types/src/hooks/useTypeOptions.d.ts +2 -2
  321. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -1
  322. package/dist/types/src/index.d.ts +2 -2
  323. package/dist/types/src/index.d.ts.map +1 -1
  324. package/dist/types/src/meta.d.ts +2 -2
  325. package/dist/types/src/meta.d.ts.map +1 -1
  326. package/dist/types/src/translations.d.ts +210 -217
  327. package/dist/types/src/translations.d.ts.map +1 -1
  328. package/dist/types/src/types/capabilities.d.ts +71 -0
  329. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  330. package/dist/types/src/types/events.d.ts +9 -0
  331. package/dist/types/src/types/events.d.ts.map +1 -0
  332. package/dist/types/src/types/form.d.ts +22 -0
  333. package/dist/types/src/types/form.d.ts.map +1 -0
  334. package/dist/types/src/types/index.d.ts +3 -0
  335. package/dist/types/src/types/index.d.ts.map +1 -1
  336. package/dist/types/src/types/types.d.ts +643 -397
  337. package/dist/types/src/types/types.d.ts.map +1 -1
  338. package/dist/types/src/util.d.ts +41 -50
  339. package/dist/types/src/util.d.ts.map +1 -1
  340. package/dist/types/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +83 -63
  342. package/src/SpacePlugin.ts +189 -235
  343. package/src/capabilities/app-graph-builder/app-graph-builder.ts +621 -0
  344. package/src/capabilities/app-graph-builder/index.ts +7 -0
  345. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +83 -0
  346. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  347. package/src/capabilities/identity-created/identity-created.ts +29 -0
  348. package/src/capabilities/identity-created/index.ts +7 -0
  349. package/src/capabilities/index.ts +10 -14
  350. package/src/capabilities/operation-resolver/index.ts +7 -0
  351. package/src/capabilities/operation-resolver/operation-resolver.ts +762 -0
  352. package/src/capabilities/react-root/index.ts +7 -0
  353. package/src/capabilities/react-root/react-root.tsx +25 -0
  354. package/src/capabilities/react-surface/index.ts +7 -0
  355. package/src/capabilities/react-surface/react-surface.tsx +377 -0
  356. package/src/capabilities/repair/index.ts +7 -0
  357. package/src/capabilities/repair/repair.ts +67 -0
  358. package/src/capabilities/settings/index.ts +7 -0
  359. package/src/capabilities/settings/settings.ts +33 -0
  360. package/src/capabilities/spaces-ready/index.ts +7 -0
  361. package/src/capabilities/spaces-ready/spaces-ready.ts +290 -0
  362. package/src/capabilities/state/index.ts +7 -0
  363. package/src/capabilities/state/state.ts +64 -0
  364. package/src/cli/commands/database/add.ts +115 -0
  365. package/src/cli/commands/database/index.ts +16 -0
  366. package/src/cli/commands/database/query/index.ts +5 -0
  367. package/src/cli/commands/database/query/query.test.ts +55 -0
  368. package/src/cli/commands/database/query/query.ts +44 -0
  369. package/src/cli/commands/database/remove.ts +51 -0
  370. package/src/cli/commands/database/stats.ts +44 -0
  371. package/src/cli/commands/database/util.ts +32 -0
  372. package/src/cli/commands/index.ts +7 -0
  373. package/src/cli/commands/queue/index.ts +12 -0
  374. package/src/cli/commands/queue/query.ts +45 -0
  375. package/src/cli/commands/queue/util.ts +19 -0
  376. package/src/cli/commands/space/close/close.ts +40 -0
  377. package/src/cli/commands/space/close/index.ts +5 -0
  378. package/src/cli/commands/space/create/create.test.ts +67 -0
  379. package/src/cli/commands/space/create/create.ts +61 -0
  380. package/src/cli/commands/space/create/index.ts +5 -0
  381. package/src/cli/commands/space/index.ts +21 -0
  382. package/src/cli/commands/space/info/index.ts +5 -0
  383. package/src/cli/commands/space/info/info.test.ts +47 -0
  384. package/src/cli/commands/space/info/info.ts +37 -0
  385. package/src/cli/commands/space/join/index.ts +5 -0
  386. package/src/cli/commands/space/join/join.ts +122 -0
  387. package/src/cli/commands/space/join/util.ts +82 -0
  388. package/src/cli/commands/space/list/index.ts +5 -0
  389. package/src/cli/commands/space/list/list.test.ts +36 -0
  390. package/src/cli/commands/space/list/list.ts +30 -0
  391. package/src/cli/commands/space/members/index.ts +5 -0
  392. package/src/cli/commands/space/members/members.test.ts +46 -0
  393. package/src/cli/commands/space/members/members.ts +40 -0
  394. package/src/cli/commands/space/members/util.ts +29 -0
  395. package/src/cli/commands/space/open/index.ts +5 -0
  396. package/src/cli/commands/space/open/open.ts +39 -0
  397. package/src/cli/commands/space/schema/index.ts +12 -0
  398. package/src/cli/commands/space/schema/list/index.ts +5 -0
  399. package/src/cli/commands/space/schema/list/list.test.ts +42 -0
  400. package/src/cli/commands/space/schema/list/list.ts +64 -0
  401. package/src/cli/commands/space/schema/list/util.ts +39 -0
  402. package/src/cli/commands/space/share/index.ts +5 -0
  403. package/src/cli/commands/space/share/share.ts +112 -0
  404. package/src/cli/commands/space/sync/index.ts +5 -0
  405. package/src/cli/commands/space/sync/sync.test.ts +12 -0
  406. package/src/cli/commands/space/sync/sync.ts +33 -0
  407. package/src/cli/index.ts +5 -0
  408. package/src/cli/plugin.ts +88 -0
  409. package/src/components/AwaitingObject.tsx +22 -20
  410. package/src/components/CollectionArticle.tsx +156 -0
  411. package/src/components/CollectionSection.tsx +6 -4
  412. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +31 -25
  413. package/src/components/CreateDialog/CreateObjectDialog.tsx +81 -69
  414. package/src/components/CreateDialog/CreateObjectPanel.tsx +146 -85
  415. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -25
  416. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +27 -37
  417. package/src/components/JoinDialog/index.ts +5 -0
  418. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +4 -4
  419. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +82 -85
  420. package/src/components/MembersContainer/index.ts +5 -0
  421. package/src/components/MenuFooter.tsx +1 -1
  422. package/src/components/ObjectCardStack/ObjectCardStack.tsx +67 -0
  423. package/src/components/ObjectCardStack/ObjectForm.tsx +97 -0
  424. package/src/components/ObjectCardStack/index.ts +7 -0
  425. package/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.tsx +11 -11
  426. package/src/components/ObjectDetails/BaseObjectSettings.tsx +122 -0
  427. package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +6 -6
  428. package/src/components/ObjectDetails/ObjectDetails.tsx +33 -0
  429. package/src/components/ObjectDetails/index.ts +7 -0
  430. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +11 -15
  431. package/src/components/ObjectRenamePopover/index.ts +5 -0
  432. package/src/components/RecordArticle.stories.tsx +116 -0
  433. package/src/components/RecordArticle.tsx +124 -0
  434. package/src/components/SchemaContainer.tsx +29 -29
  435. package/src/components/SpacePluginSettings.tsx +42 -29
  436. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +2 -2
  437. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +20 -16
  438. package/src/components/SpacePresence/index.ts +5 -0
  439. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +15 -15
  440. package/src/components/SpaceRenamePopover/index.ts +5 -0
  441. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +5 -5
  442. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +91 -74
  443. package/src/components/SyncStatus/InlineSyncStatus.tsx +1 -1
  444. package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
  445. package/src/components/SyncStatus/SyncStatus.tsx +45 -36
  446. package/src/components/SyncStatus/save-tracker.ts +2 -2
  447. package/src/components/ViewEditor.tsx +64 -21
  448. package/src/components/index.ts +7 -8
  449. package/src/constants.ts +11 -0
  450. package/src/helpers/index.ts +5 -0
  451. package/src/helpers/query.test.ts +24 -0
  452. package/src/helpers/query.ts +153 -0
  453. package/src/hooks/useActiveSpace.ts +8 -4
  454. package/src/hooks/useInputSurfaceLookup.tsx +9 -13
  455. package/src/hooks/usePath.ts +4 -4
  456. package/src/hooks/useTypeOptions.ts +3 -37
  457. package/src/index.ts +2 -2
  458. package/src/meta.ts +7 -2
  459. package/src/translations.ts +68 -59
  460. package/src/types/capabilities.ts +73 -0
  461. package/src/types/events.ts +16 -0
  462. package/src/types/form.ts +69 -0
  463. package/src/types/index.ts +3 -0
  464. package/src/types/types.ts +539 -260
  465. package/src/util.tsx +339 -282
  466. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs +0 -31
  467. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +0 -7
  468. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs +0 -145
  469. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs.map +0 -7
  470. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs +0 -151
  471. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs.map +0 -7
  472. package/dist/lib/browser/RecordMain-H4DVHICS.mjs +0 -116
  473. package/dist/lib/browser/RecordMain-H4DVHICS.mjs.map +0 -7
  474. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs +0 -520
  475. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs.map +0 -7
  476. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs +0 -80
  477. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs.map +0 -7
  478. package/dist/lib/browser/chunk-522KZGQF.mjs +0 -1952
  479. package/dist/lib/browser/chunk-522KZGQF.mjs.map +0 -7
  480. package/dist/lib/browser/chunk-7XOTWRZ3.mjs +0 -166
  481. package/dist/lib/browser/chunk-7XOTWRZ3.mjs.map +0 -7
  482. package/dist/lib/browser/chunk-EIXZABXD.mjs +0 -19
  483. package/dist/lib/browser/chunk-EIXZABXD.mjs.map +0 -7
  484. package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
  485. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
  486. package/dist/lib/browser/chunk-OV6D543A.mjs +0 -704
  487. package/dist/lib/browser/chunk-OV6D543A.mjs.map +0 -7
  488. package/dist/lib/browser/chunk-PTGRQQ6J.mjs.map +0 -7
  489. package/dist/lib/browser/chunk-RLI2IAHK.mjs +0 -20
  490. package/dist/lib/browser/chunk-RLI2IAHK.mjs.map +0 -7
  491. package/dist/lib/browser/chunk-WS2PJDES.mjs +0 -348
  492. package/dist/lib/browser/chunk-WS2PJDES.mjs.map +0 -7
  493. package/dist/lib/browser/identity-created-PW2BA46S.mjs +0 -23
  494. package/dist/lib/browser/identity-created-PW2BA46S.mjs.map +0 -7
  495. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs +0 -767
  496. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs.map +0 -7
  497. package/dist/lib/browser/react-root-H56QN474.mjs +0 -29
  498. package/dist/lib/browser/react-root-H56QN474.mjs.map +0 -7
  499. package/dist/lib/browser/react-surface-VOE2ILKO.mjs +0 -354
  500. package/dist/lib/browser/react-surface-VOE2ILKO.mjs.map +0 -7
  501. package/dist/lib/browser/schema-defs-7R7RKCAE.mjs +0 -26
  502. package/dist/lib/browser/schema-defs-7R7RKCAE.mjs.map +0 -7
  503. package/dist/lib/browser/settings-OBFJ67ZG.mjs +0 -24
  504. package/dist/lib/browser/settings-OBFJ67ZG.mjs.map +0 -7
  505. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs +0 -201
  506. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs.map +0 -7
  507. package/dist/lib/browser/state-LSPRFIRO.mjs +0 -47
  508. package/dist/lib/browser/state-LSPRFIRO.mjs.map +0 -7
  509. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs +0 -32
  510. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +0 -7
  511. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs +0 -146
  512. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs.map +0 -7
  513. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs +0 -152
  514. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs.map +0 -7
  515. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs +0 -117
  516. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs.map +0 -7
  517. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs +0 -521
  518. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs.map +0 -7
  519. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs +0 -81
  520. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs.map +0 -7
  521. package/dist/lib/node-esm/chunk-4F25JKVT.mjs +0 -349
  522. package/dist/lib/node-esm/chunk-4F25JKVT.mjs.map +0 -7
  523. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs +0 -1953
  524. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs.map +0 -7
  525. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs +0 -21
  526. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs.map +0 -7
  527. package/dist/lib/node-esm/chunk-HAKW2RFD.mjs.map +0 -7
  528. package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
  529. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
  530. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs +0 -167
  531. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs.map +0 -7
  532. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +0 -20
  533. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +0 -7
  534. package/dist/lib/node-esm/chunk-TNUWML33.mjs +0 -705
  535. package/dist/lib/node-esm/chunk-TNUWML33.mjs.map +0 -7
  536. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs +0 -25
  537. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs.map +0 -7
  538. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs +0 -768
  539. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs.map +0 -7
  540. package/dist/lib/node-esm/react-root-56PGW5PH.mjs +0 -30
  541. package/dist/lib/node-esm/react-root-56PGW5PH.mjs.map +0 -7
  542. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs +0 -355
  543. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs.map +0 -7
  544. package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs +0 -27
  545. package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs.map +0 -7
  546. package/dist/lib/node-esm/settings-QGWWNMMZ.mjs +0 -25
  547. package/dist/lib/node-esm/settings-QGWWNMMZ.mjs.map +0 -7
  548. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs +0 -202
  549. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs.map +0 -7
  550. package/dist/lib/node-esm/state-TCGOPLRO.mjs +0 -48
  551. package/dist/lib/node-esm/state-TCGOPLRO.mjs.map +0 -7
  552. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  553. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  554. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  555. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  556. package/dist/types/src/capabilities/capabilities.d.ts +0 -29
  557. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  558. package/dist/types/src/capabilities/identity-created.d.ts +0 -4
  559. package/dist/types/src/capabilities/identity-created.d.ts.map +0 -1
  560. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -9
  561. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  562. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  563. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  564. package/dist/types/src/capabilities/react-surface.d.ts +0 -7
  565. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  566. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  567. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  568. package/dist/types/src/capabilities/settings.d.ts +0 -4
  569. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  570. package/dist/types/src/capabilities/spaces-ready.d.ts +0 -4
  571. package/dist/types/src/capabilities/spaces-ready.d.ts.map +0 -1
  572. package/dist/types/src/capabilities/state.d.ts +0 -5
  573. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  574. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  575. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  576. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  577. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  578. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +0 -9
  579. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +0 -1
  580. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +0 -1
  581. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +0 -3
  582. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +0 -1
  583. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
  584. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  585. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  586. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
  587. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  588. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
  589. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  590. package/dist/types/src/components/ObjectSettings/index.d.ts +0 -3
  591. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  592. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  593. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  594. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  595. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  596. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  597. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  598. package/dist/types/src/components/RecordMain.d.ts +0 -7
  599. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  600. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  601. package/dist/types/src/events.d.ts +0 -8
  602. package/dist/types/src/events.d.ts.map +0 -1
  603. package/src/capabilities/app-graph-builder.ts +0 -757
  604. package/src/capabilities/app-graph-serializer.ts +0 -76
  605. package/src/capabilities/capabilities.ts +0 -35
  606. package/src/capabilities/identity-created.ts +0 -25
  607. package/src/capabilities/intent-resolver.ts +0 -706
  608. package/src/capabilities/react-root.tsx +0 -21
  609. package/src/capabilities/react-surface.tsx +0 -329
  610. package/src/capabilities/schema-defs.ts +0 -31
  611. package/src/capabilities/settings.ts +0 -21
  612. package/src/capabilities/spaces-ready.ts +0 -234
  613. package/src/capabilities/state.ts +0 -46
  614. package/src/components/CollectionMain.tsx +0 -32
  615. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +0 -52
  616. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +0 -75
  617. package/src/components/ObjectDetailsPanel/index.ts +0 -7
  618. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -81
  619. package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -117
  620. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -37
  621. package/src/components/ObjectSettings/index.ts +0 -7
  622. package/src/components/PersistenceStatus.tsx +0 -83
  623. package/src/components/RecordMain.tsx +0 -87
  624. package/src/events.ts +0 -15
  625. /package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +0 -0
  626. /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
package/src/util.tsx CHANGED
@@ -2,58 +2,37 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Rx } from '@effect-rx/rx-react';
6
- import * as Function from 'effect/Function';
5
+ import { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';
6
+ import * as Effect from 'effect/Effect';
7
7
 
8
- import { LayoutAction, type PromiseIntentDispatcher, chain, createIntent } from '@dxos/app-framework';
9
- import { Obj, Ref, Type } from '@dxos/echo';
10
- import { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo/internal';
8
+ import { type CapabilityManager } from '@dxos/app-framework';
9
+ import { LayoutOperation } from '@dxos/app-toolkit';
10
+ import { type Space, SpaceState, isSpace } from '@dxos/client/echo';
11
+ import { type Database, Filter, Obj, Query, Ref, Type } from '@dxos/echo';
11
12
  import { invariant } from '@dxos/invariant';
12
13
  import { Migrations } from '@dxos/migrations';
13
- import {
14
- ACTION_GROUP_TYPE,
15
- ACTION_TYPE,
16
- type ActionData,
17
- type InvokeParams,
18
- type Node,
19
- type NodeArg,
20
- type ReadableGraph,
21
- isGraphNode,
22
- } from '@dxos/plugin-graph';
23
- import { type QueryResult, type Space, SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';
24
- import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
14
+ import { Operation } from '@dxos/operation';
15
+ import { Graph, Node } from '@dxos/plugin-graph';
16
+ import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';
25
17
  import { type TreeData } from '@dxos/react-ui-list';
26
- import { DataType, getTypenameFromQuery } from '@dxos/schema';
18
+ import { Collection, Expando } from '@dxos/schema';
19
+ import { createFilename } from '@dxos/util';
27
20
 
28
21
  import { meta } from './meta';
29
- import { type ObjectForm, SPACE_TYPE, SpaceAction } from './types';
22
+ import { SPACE_TYPE, SpaceOperation } from './types';
30
23
 
31
24
  export const SPACES = `${meta.id}-spaces`;
32
25
  export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
33
26
  // TODO(wittjosiah): Remove.
34
27
  export const SHARED = 'shared-spaces';
35
28
 
36
- /**
37
- * Convert a query result to an Rx value of the objects.
38
- */
39
- export const rxFromQuery = <T extends AnyEchoObject>(query: QueryResult<T>): Rx.Rx<T[]> => {
40
- return Rx.make((get) => {
41
- const unsubscribe = query.subscribe((result) => {
42
- get.setSelf(result.objects);
43
- });
44
-
45
- get.addFinalizer(() => unsubscribe());
46
- return query.objects;
47
- });
48
- };
49
-
50
29
  // TODO(wittjosiah): Factor out? Expose via capability?
51
30
  export const getSpaceDisplayName = (
52
31
  space: Space,
53
32
  { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},
54
33
  ): string | [string, { ns: string }] => {
55
34
  return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0
56
- ? space.properties.name
35
+ ? space.properties.name!
57
36
  : namesCache[space.id]
58
37
  ? namesCache[space.id]
59
38
  : personal
@@ -63,22 +42,18 @@ export const getSpaceDisplayName = (
63
42
 
64
43
  const getCollectionGraphNodePartials = ({
65
44
  collection,
66
- space,
45
+ db,
67
46
  resolve,
68
47
  }: {
69
- collection: DataType.Collection;
70
- space: Space;
48
+ collection: Collection.Collection;
49
+ db: Database.Database;
71
50
  resolve: (typename: string) => Record<string, any>;
72
51
  }) => {
73
52
  return {
74
53
  acceptPersistenceClass: new Set(['echo']),
75
- acceptPersistenceKey: new Set([space.id]),
54
+ acceptPersistenceKey: new Set([db.spaceId]),
76
55
  role: 'branch',
77
- onRearrangeChildren: (nextOrder: unknown[]) => {
78
- // Change on disk.
79
- collection.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
80
- },
81
- onTransferStart: (child: Node<Obj.Any>, index?: number) => {
56
+ onTransferStart: (child: Node.Node<Obj.Unknown>, index?: number) => {
82
57
  // TODO(wittjosiah): Support transfer between spaces.
83
58
  // const childSpace = getSpace(child.data);
84
59
  // if (space && childSpace && !childSpace.key.equals(space.key)) {
@@ -97,22 +72,26 @@ const getCollectionGraphNodePartials = ({
97
72
 
98
73
  // Add child to destination collection.
99
74
  // TODO(dmaretskyi): Compare by id.
100
- if (!collection.objects.find((object) => object.target === child.data)) {
101
- if (typeof index !== 'undefined') {
102
- collection.objects.splice(index, 0, Ref.make(child.data));
103
- } else {
104
- collection.objects.push(Ref.make(child.data));
75
+ Obj.change(collection, (c) => {
76
+ if (!c.objects.find((object) => object.target === child.data)) {
77
+ if (typeof index !== 'undefined') {
78
+ c.objects.splice(index, 0, Ref.make(child.data));
79
+ } else {
80
+ c.objects.push(Ref.make(child.data));
81
+ }
105
82
  }
106
- }
83
+ });
107
84
 
108
85
  // }
109
86
  },
110
- onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {
87
+ onTransferEnd: (child: Node.Node<Obj.Unknown>, destination: Node.Node) => {
111
88
  // Remove child from origin collection.
112
- const index = collection.objects.findIndex((object) => object.target === child.data);
113
- if (index > -1) {
114
- collection.objects.splice(index, 1);
115
- }
89
+ Obj.change(collection, (c) => {
90
+ const index = c.objects.findIndex((object) => object.target === child.data);
91
+ if (index > -1) {
92
+ c.objects.splice(index, 1);
93
+ }
94
+ });
116
95
 
117
96
  // TODO(wittjosiah): Support transfer between spaces.
118
97
  // const childSpace = getSpace(child.data);
@@ -123,45 +102,38 @@ const getCollectionGraphNodePartials = ({
123
102
  // childSpace.db.remove(child.data);
124
103
  // }
125
104
  },
126
- onCopy: async (child: Node<Obj.Any>, index?: number) => {
105
+ onCopy: async (child: Node.Node<Obj.Unknown>, index?: number) => {
127
106
  // Create clone of child and add to destination space.
128
- const newObject = await cloneObject(child.data, resolve, space);
129
- space.db.add(newObject);
130
- if (typeof index !== 'undefined') {
131
- collection.objects.splice(index, 0, Ref.make(newObject));
132
- } else {
133
- collection.objects.push(Ref.make(newObject));
134
- }
107
+ const newObject = await cloneObject(child.data, resolve, db);
108
+ db.add(newObject);
109
+ Obj.change(collection, (c) => {
110
+ if (typeof index !== 'undefined') {
111
+ c.objects.splice(index, 0, Ref.make(newObject));
112
+ } else {
113
+ c.objects.push(Ref.make(newObject));
114
+ }
115
+ });
135
116
  },
136
117
  };
137
118
  };
138
119
 
139
- const getQueryCollectionNodePartials = ({
120
+ const getSystemCollectionNodePartials = ({
140
121
  collection,
141
- space,
122
+ db,
142
123
  resolve,
143
124
  }: {
144
- collection: DataType.QueryCollection;
145
- space: Space;
125
+ collection: Collection.Managed;
126
+ db: Database.Database;
146
127
  resolve: (typename: string) => Record<string, any>;
147
128
  }) => {
148
- const typename = getTypenameFromQuery(collection.query);
129
+ const metadata = resolve(collection.key);
149
130
  return {
150
- icon: typename && resolve(typename)?.icon,
131
+ label: ['typename label', { ns: collection.key, count: 2 }],
132
+ icon: metadata.icon,
133
+ iconHue: metadata.iconHue,
151
134
  acceptPersistenceClass: new Set(['echo']),
152
- acceptPersistenceKey: new Set([space.id]),
135
+ acceptPersistenceKey: new Set([db.spaceId]),
153
136
  role: 'branch',
154
- canDrop: (source: TreeData) => {
155
- return (
156
- isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename
157
- );
158
- },
159
- onTransferStart: (child: Node<Obj.Any>, index?: number) => {
160
- // No-op. Objects are moved into query collections by being removed from their original collection.
161
- },
162
- onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {
163
- // No-op. Objects are moved out of query collections by being added to another collection.
164
- },
165
137
  };
166
138
  };
167
139
 
@@ -172,24 +144,6 @@ const getSchemaGraphNodePartials = () => {
172
144
  };
173
145
  };
174
146
 
175
- const getViewGraphNodePartials = ({
176
- view,
177
- resolve,
178
- }: {
179
- view: DataType.View;
180
- resolve: (typename: string) => Record<string, any>;
181
- }) => {
182
- const presentation = view.presentation.target;
183
- const typename = presentation ? Obj.getTypename(presentation) : undefined;
184
- const metadata = typename ? resolve(typename) : {};
185
-
186
- return {
187
- label: view.name || ['object name placeholder', { ns: typename, default: 'New view' }],
188
- icon: metadata.icon,
189
- canDrop: () => false,
190
- };
191
- };
192
-
193
147
  const checkPendingMigration = (space: Space) => {
194
148
  return (
195
149
  space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||
@@ -205,21 +159,46 @@ export const constructSpaceNode = ({
205
159
  personal,
206
160
  namesCache,
207
161
  resolve,
162
+ graph,
163
+ spacesOrder,
208
164
  }: {
209
165
  space: Space;
210
166
  navigable?: boolean;
211
167
  personal?: boolean;
212
168
  namesCache?: Record<string, string>;
213
169
  resolve: (typename: string) => Record<string, any>;
170
+ /** Graph for sorting edges on rearrange. */
171
+ graph?: Graph.ExpandableGraph;
172
+ // TODO(wittjosiah): Should be Type.Expando but it doesn't work with the AtomQuery result type.
173
+ /** Spaces order object for persisting workspace order. */
174
+ spacesOrder?: Obj.Any;
214
175
  }) => {
215
176
  const hasPendingMigration = checkPendingMigration(space);
216
177
  const collection =
217
- space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;
178
+ space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
218
179
  const partials =
219
- space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection)
220
- ? getCollectionGraphNodePartials({ collection, space, resolve })
180
+ space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)
181
+ ? getCollectionGraphNodePartials({ collection, db: space.db, resolve })
221
182
  : {};
222
183
 
184
+ const onRearrange =
185
+ graph && spacesOrder
186
+ ? (nextOrder: Space[]) => {
187
+ // NOTE: This is needed to ensure order is updated by next animation frame.
188
+ Graph.sortEdges(
189
+ graph,
190
+ Node.RootId,
191
+ 'outbound',
192
+ nextOrder.map(({ id }) => id),
193
+ );
194
+
195
+ // Persist order to database.
196
+ Obj.change(spacesOrder, (mutableOrder: any) => {
197
+ mutableOrder.order = nextOrder.map(({ id }) => id);
198
+ });
199
+ }
200
+ : undefined;
201
+
223
202
  return {
224
203
  id: space.id,
225
204
  type: SPACE_TYPE,
@@ -234,8 +213,11 @@ export const constructSpaceNode = ({
234
213
  space.state.get() === SpaceState.SPACE_READY && space.properties.icon
235
214
  ? `ph--${space.properties.icon}--regular`
236
215
  : undefined,
216
+ iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
237
217
  disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
218
+ disposition: 'workspace',
238
219
  testId: 'spacePlugin.space',
220
+ onRearrange,
239
221
  canDrop: (source: TreeData) => {
240
222
  // TODO(wittjosiah): Find a way to only allow space as source for rearranging.
241
223
  return Obj.isObject(source.item.data) || isSpace(source.item.data);
@@ -260,6 +242,7 @@ export const constructSpaceNode = ({
260
242
  label: ['space settings properties label', { ns: meta.id }],
261
243
  icon: 'ph--sliders--regular',
262
244
  position: 'hoist',
245
+ testId: 'spacePlugin.general',
263
246
  },
264
247
  },
265
248
  {
@@ -270,6 +253,7 @@ export const constructSpaceNode = ({
270
253
  label: ['members panel label', { ns: meta.id }],
271
254
  icon: 'ph--users--regular',
272
255
  position: 'hoist',
256
+ testId: 'spacePlugin.members',
273
257
  },
274
258
  },
275
259
  {
@@ -279,6 +263,7 @@ export const constructSpaceNode = ({
279
263
  properties: {
280
264
  label: ['space settings schema label', { ns: meta.id }],
281
265
  icon: 'ph--shapes--regular',
266
+ testId: 'spacePlugin.schema',
282
267
  },
283
268
  },
284
269
  ],
@@ -289,27 +274,23 @@ export const constructSpaceNode = ({
289
274
 
290
275
  export const constructSpaceActions = ({
291
276
  space,
292
- dispatch,
293
277
  personal,
294
278
  migrating,
295
279
  }: {
296
280
  space: Space;
297
- dispatch: PromiseIntentDispatcher;
298
281
  personal?: boolean;
299
282
  migrating?: boolean;
300
283
  }) => {
301
284
  const state = space.state.get();
302
285
  const hasPendingMigration = checkPendingMigration(space);
303
286
  const getId = (id: string) => `${id}/${space.id}`;
304
- const actions: NodeArg<ActionData>[] = [];
287
+ const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [];
305
288
 
306
289
  if (hasPendingMigration) {
307
290
  actions.push({
308
- id: getId(SpaceAction.Migrate._tag),
309
- type: ACTION_GROUP_TYPE,
310
- data: async () => {
311
- await dispatch(createIntent(SpaceAction.Migrate, { space }));
312
- },
291
+ id: getId(SpaceOperation.Migrate.meta.key),
292
+ type: Node.ActionGroupType,
293
+ data: () => Operation.invoke(SpaceOperation.Migrate, { space }),
313
294
  properties: {
314
295
  label: ['migrate space label', { ns: meta.id }],
315
296
  icon: 'ph--database--regular',
@@ -322,24 +303,20 @@ export const constructSpaceActions = ({
322
303
  if (state === SpaceState.SPACE_READY && !hasPendingMigration) {
323
304
  actions.push(
324
305
  {
325
- id: getId(SpaceAction.OpenCreateObject._tag),
326
- type: ACTION_TYPE,
327
- data: async () => {
328
- await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));
329
- },
306
+ id: getId(SpaceOperation.OpenCreateObject.meta.key),
307
+ type: Node.ActionType,
308
+ data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: space.db }),
330
309
  properties: {
331
310
  label: ['create object in space label', { ns: meta.id }],
332
311
  icon: 'ph--plus--regular',
333
- disposition: 'item',
312
+ disposition: 'list-item-primary',
334
313
  testId: 'spacePlugin.createObject',
335
314
  },
336
315
  },
337
316
  {
338
- id: getId(SpaceAction.Rename._tag),
339
- type: ACTION_TYPE,
340
- data: async (params?: InvokeParams) => {
341
- await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));
342
- },
317
+ id: getId(SpaceOperation.Rename.meta.key),
318
+ type: Node.ActionType,
319
+ data: (params?: Node.InvokeProps) => Operation.invoke(SpaceOperation.Rename, { space, caller: params?.caller }),
343
320
  properties: {
344
321
  label: ['rename space label', { ns: meta.id }],
345
322
  icon: 'ph--pencil-simple-line--regular',
@@ -355,14 +332,15 @@ export const constructSpaceActions = ({
355
332
  return actions;
356
333
  };
357
334
 
358
- export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any; space: Space }) => {
335
+ export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Entity.Any; space: Space }): Node.Node => {
359
336
  return {
360
337
  id: `${space.id}/${Type.getTypename(schema)}`,
361
338
  type: `${meta.id}/static-schema`,
362
339
  data: schema,
363
340
  properties: {
364
- label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],
341
+ label: ['typename label', { ns: Type.getTypename(schema), count: 2, default: Type.getTypename(schema) }],
365
342
  icon: 'ph--database--regular',
343
+ iconHue: 'green',
366
344
  role: 'branch',
367
345
  selectable: false,
368
346
  canDrop: () => false,
@@ -374,44 +352,37 @@ export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any
374
352
  export const createStaticSchemaActions = ({
375
353
  schema,
376
354
  space,
377
- dispatch,
378
355
  deletable,
379
356
  }: {
380
357
  schema: Type.Obj.Any;
381
358
  space: Space;
382
- dispatch: PromiseIntentDispatcher;
383
359
  deletable: boolean;
384
360
  }) => {
385
361
  const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;
386
362
 
387
- const actions: NodeArg<ActionData>[] = [
363
+ const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
388
364
  {
389
- id: getId(SpaceAction.AddObject._tag),
390
- type: ACTION_TYPE,
391
- data: async () => {
392
- await dispatch(
393
- createIntent(SpaceAction.OpenCreateObject, {
394
- target: space,
395
- views: true,
396
- initialFormValues: { typename: Type.getTypename(schema) },
397
- }),
398
- );
399
- },
365
+ id: getId(SpaceOperation.AddObject.meta.key),
366
+ type: Node.ActionType,
367
+ data: () =>
368
+ Operation.invoke(SpaceOperation.OpenCreateObject, {
369
+ target: space.db,
370
+ views: true,
371
+ initialFormValues: { typename: Type.getTypename(schema) },
372
+ }),
400
373
  properties: {
401
- label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],
374
+ label: ['add view to schema label', { ns: meta.id }],
402
375
  icon: 'ph--plus--regular',
403
376
  disposition: 'list-item-primary',
404
377
  testId: 'spacePlugin.addViewToSchema',
405
378
  },
406
379
  },
407
380
  {
408
- id: getId(SpaceAction.RenameObject._tag),
409
- type: ACTION_TYPE,
410
- data: async (params?: InvokeParams) => {
411
- throw new Error('Not implemented');
412
- },
381
+ id: getId(SpaceOperation.RenameObject.meta.key),
382
+ type: Node.ActionType,
383
+ data: () => Effect.fail(new Error('Not implemented')),
413
384
  properties: {
414
- label: ['rename object label', { ns: Type.getTypename(DataType.StoredSchema) }],
385
+ label: ['rename object label', { ns: Type.getTypename(Type.PersistentType) }],
415
386
  icon: 'ph--pencil-simple-line--regular',
416
387
  disabled: true,
417
388
  disposition: 'list-item',
@@ -419,43 +390,71 @@ export const createStaticSchemaActions = ({
419
390
  },
420
391
  },
421
392
  {
422
- id: getId(SpaceAction.RemoveObjects._tag),
423
- type: ACTION_TYPE,
424
- data: async () => {
425
- const index = space.properties.staticRecords.findIndex(
426
- (typename: string) => typename === Type.getTypename(schema),
427
- );
428
- if (index > -1) {
429
- space.properties.staticRecords.splice(index, 1);
430
- }
431
- },
393
+ id: getId(SpaceOperation.RemoveObjects.meta.key),
394
+ type: Node.ActionType,
395
+ data: () =>
396
+ Effect.sync(() => {
397
+ const index = space.properties.staticRecords.findIndex(
398
+ (typename: string) => typename === Type.getTypename(schema),
399
+ );
400
+ if (index > -1) {
401
+ Obj.change(space.properties, (p) => {
402
+ p.staticRecords.splice(index, 1);
403
+ });
404
+ }
405
+ }),
432
406
  properties: {
433
- label: ['delete object label', { ns: Type.getTypename(DataType.StoredSchema) }],
407
+ label: ['delete object label', { ns: Type.getTypename(Type.PersistentType) }],
434
408
  icon: 'ph--trash--regular',
435
409
  disposition: 'list-item',
436
410
  disabled: !deletable,
437
411
  testId: 'spacePlugin.deleteObject',
438
412
  },
439
413
  },
414
+ {
415
+ id: getId(SpaceOperation.Snapshot.meta.key),
416
+ type: Node.ActionType,
417
+ data: Effect.fnUntraced(function* () {
418
+ const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
419
+ db: space.db,
420
+ query: Query.select(Filter.type(schema)).ast,
421
+ });
422
+ if (result.snapshot) {
423
+ yield* Effect.tryPromise(() =>
424
+ downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(schema)], ext: 'json' })),
425
+ );
426
+ }
427
+ }),
428
+ properties: {
429
+ label: ['snapshot by schema label', { ns: meta.id }],
430
+ icon: 'ph--camera--regular',
431
+ disposition: 'list-item',
432
+ },
433
+ },
440
434
  ];
441
435
 
442
436
  return actions;
443
437
  };
444
438
 
445
439
  export const createObjectNode = ({
446
- space,
440
+ db,
447
441
  object,
448
442
  disposition,
449
443
  droppable = true,
450
444
  navigable = false,
445
+ managedCollectionChild = false,
451
446
  resolve,
447
+ parentCollection,
452
448
  }: {
453
- space: Space;
454
- object: Obj.Any;
449
+ db: Database.Database;
450
+ object: Obj.Unknown;
455
451
  disposition?: string;
456
452
  droppable?: boolean;
457
453
  navigable?: boolean;
454
+ managedCollectionChild?: boolean;
458
455
  resolve: (typename: string) => Record<string, any>;
456
+ /** Parent collection for rearranging objects. */
457
+ parentCollection?: Collection.Collection;
459
458
  }) => {
460
459
  const type = Obj.getTypename(object);
461
460
  if (!type) {
@@ -463,15 +462,13 @@ export const createObjectNode = ({
463
462
  }
464
463
 
465
464
  const metadata = resolve(type);
466
- const partials = Obj.instanceOf(DataType.Collection, object)
467
- ? getCollectionGraphNodePartials({ collection: object, space, resolve })
468
- : Obj.instanceOf(DataType.QueryCollection, object)
469
- ? getQueryCollectionNodePartials({ collection: object, space, resolve })
470
- : Obj.instanceOf(DataType.StoredSchema, object)
465
+ const partials = Obj.instanceOf(Collection.Collection, object)
466
+ ? getCollectionGraphNodePartials({ collection: object, db, resolve })
467
+ : Obj.instanceOf(Collection.Managed, object)
468
+ ? getSystemCollectionNodePartials({ collection: object, db, resolve })
469
+ : Obj.instanceOf(Type.PersistentType, object)
471
470
  ? getSchemaGraphNodePartials()
472
- : Obj.instanceOf(DataType.View, object)
473
- ? getViewGraphNodePartials({ view: object, resolve })
474
- : metadata.graphProps;
471
+ : metadata.graphProps;
475
472
 
476
473
  // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.
477
474
  // e.g., create new collection with no name and rename it.
@@ -481,26 +478,48 @@ export const createObjectNode = ({
481
478
  metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];
482
479
 
483
480
  const selectable =
484
- (!Obj.instanceOf(DataType.StoredSchema, object) &&
485
- !Obj.instanceOf(DataType.QueryCollection, object) &&
486
- !Obj.instanceOf(DataType.Collection, object)) ||
487
- (navigable && Obj.instanceOf(DataType.Collection, object));
481
+ (!Obj.instanceOf(Type.PersistentType, object) &&
482
+ !Obj.instanceOf(Collection.Managed, object) &&
483
+ !Obj.instanceOf(Collection.Collection, object)) ||
484
+ (navigable && Obj.instanceOf(Collection.Collection, object));
488
485
 
489
486
  return {
490
- id: fullyQualifiedId(object),
487
+ id: Obj.getDXN(object).toString(),
491
488
  type,
492
489
  cacheable: ['label', 'icon', 'role'],
493
490
  data: object,
494
491
  properties: {
495
492
  label,
496
493
  icon: metadata.icon ?? 'ph--placeholder--regular',
494
+ iconHue: metadata.iconHue,
497
495
  disposition,
498
496
  testId: 'spacePlugin.object',
499
497
  persistenceClass: 'echo',
500
- persistenceKey: space?.id,
498
+ persistenceKey: db.spaceId,
501
499
  selectable,
500
+ managedCollectionChild,
501
+ onRearrange: parentCollection
502
+ ? (nextOrder: unknown[]) => {
503
+ Obj.change(parentCollection, (c) => {
504
+ c.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
505
+ });
506
+ }
507
+ : undefined,
508
+ blockInstruction: (source: TreeData, instruction: Instruction) => {
509
+ if (source.item.properties.managedCollectionChild) {
510
+ // TODO(wittjosiah): Support reordering system collections.
511
+ // return !(managedCollectionChild && source.item.type === type && instruction.type.startsWith('reorder'));
512
+ return true;
513
+ }
514
+
515
+ if (Obj.instanceOf(Collection.Managed, object)) {
516
+ return !instruction.type.startsWith('reorder');
517
+ }
518
+
519
+ return managedCollectionChild;
520
+ },
502
521
  canDrop: (source: TreeData) => {
503
- return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
522
+ return droppable && Node.isGraphNode(source.item) && Obj.isObject(source.item.data);
504
523
  },
505
524
  ...partials,
506
525
  },
@@ -510,39 +529,39 @@ export const createObjectNode = ({
510
529
  export const constructObjectActions = ({
511
530
  object,
512
531
  graph,
513
- dispatch,
514
- objectForms,
532
+ resolve,
533
+ capabilities,
515
534
  deletable = true,
516
535
  navigable = false,
536
+ shareableLinkOrigin,
517
537
  }: {
518
- object: Obj.Any;
519
- graph: ReadableGraph;
520
- dispatch: PromiseIntentDispatcher;
521
- objectForms: ObjectForm<any>[];
538
+ object: Obj.Unknown;
539
+ graph: Graph.ReadableGraph;
540
+ resolve: (typename: string) => Record<string, any>;
541
+ capabilities: CapabilityManager.CapabilityManager;
542
+ shareableLinkOrigin: string;
522
543
  deletable?: boolean;
523
544
  navigable?: boolean;
524
545
  }) => {
525
- const space = getSpace(object);
526
- invariant(space, 'Space not found');
546
+ const db = Obj.getDatabase(object);
547
+ invariant(db, 'Database not found');
527
548
  const typename = Obj.getTypename(object);
528
549
  invariant(typename, 'Object has no typename');
529
550
 
530
- const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;
551
+ const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;
531
552
 
532
- const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : undefined;
533
- const matchingObjectForm = queryCollection
534
- ? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query))
535
- : undefined;
553
+ const managedCollection = Obj.instanceOf(Collection.Managed, object) ? object : undefined;
554
+ const metadata = managedCollection ? resolve(managedCollection.key) : {};
555
+ const createObject = metadata.createObject;
556
+ const inputSchema = metadata.inputSchema;
536
557
 
537
- const actions: NodeArg<ActionData>[] = [
538
- ...(Obj.instanceOf(DataType.Collection, object)
558
+ const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
559
+ ...(Obj.instanceOf(Collection.Collection, object)
539
560
  ? [
540
561
  {
541
- id: getId(SpaceAction.OpenCreateObject._tag),
542
- type: ACTION_TYPE,
543
- data: async () => {
544
- await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));
545
- },
562
+ id: getId(SpaceOperation.OpenCreateObject.meta.key),
563
+ type: Node.ActionType,
564
+ data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: object }),
546
565
  properties: {
547
566
  label: ['create object in collection label', { ns: meta.id }],
548
567
  icon: 'ph--plus--regular',
@@ -552,54 +571,75 @@ export const constructObjectActions = ({
552
571
  },
553
572
  ]
554
573
  : []),
555
- ...(Obj.instanceOf(DataType.StoredSchema, object)
574
+ ...(Obj.instanceOf(Type.PersistentType, object)
556
575
  ? [
557
576
  {
558
- id: getId(SpaceAction.AddObject._tag),
559
- type: ACTION_TYPE,
560
- data: async () => {
561
- await dispatch(
562
- createIntent(SpaceAction.OpenCreateObject, {
563
- target: space,
564
- views: true,
565
- initialFormValues: { typename: object.typename },
566
- }),
567
- );
568
- },
577
+ id: getId(SpaceOperation.AddObject.meta.key),
578
+ type: Node.ActionType,
579
+ data: () =>
580
+ Operation.invoke(SpaceOperation.OpenCreateObject, {
581
+ target: db,
582
+ views: true,
583
+ initialFormValues: { typename: object.typename },
584
+ }),
569
585
  properties: {
570
- label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],
586
+ label: ['add view to schema label', { ns: meta.id }],
571
587
  icon: 'ph--plus--regular',
572
588
  disposition: 'list-item-primary',
573
589
  testId: 'spacePlugin.addViewToSchema',
574
590
  },
575
591
  },
592
+ {
593
+ id: getId(SpaceOperation.Snapshot.meta.key),
594
+ type: Node.ActionType,
595
+ data: Effect.fnUntraced(function* () {
596
+ const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
597
+ db,
598
+ query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast,
599
+ });
600
+ if (result.snapshot) {
601
+ yield* Effect.promise(() =>
602
+ downloadBlob(result.snapshot, createFilename({ parts: [db.spaceId, object.typename], ext: 'json' })),
603
+ );
604
+ }
605
+ }),
606
+ properties: {
607
+ label: ['snapshot by schema label', { ns: meta.id }],
608
+ icon: 'ph--camera--regular',
609
+ disposition: 'list-item',
610
+ },
611
+ },
576
612
  ]
577
613
  : []),
578
- ...(matchingObjectForm
614
+ ...(createObject
579
615
  ? [
580
616
  {
581
- id: getId(SpaceAction.OpenCreateObject._tag),
582
- type: ACTION_TYPE,
583
- data: async () => {
584
- if (matchingObjectForm.formSchema) {
585
- await dispatch(
586
- createIntent(SpaceAction.OpenCreateObject, {
587
- target: space,
588
- typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : undefined,
589
- }),
590
- );
617
+ id: getId(SpaceOperation.OpenCreateObject.meta.key),
618
+ type: Node.ActionType,
619
+ data: Effect.fnUntraced(function* () {
620
+ if (inputSchema) {
621
+ yield* Operation.invoke(SpaceOperation.OpenCreateObject, {
622
+ target: db,
623
+ typename: managedCollection ? managedCollection.key : undefined,
624
+ });
591
625
  } else {
592
- await dispatch(
593
- Function.pipe(
594
- matchingObjectForm.getIntent({}, { space }),
595
- chain(SpaceAction.AddObject, { target: space, hidden: true }),
596
- chain(LayoutAction.Open, { part: 'main' }),
597
- ),
598
- );
626
+ const createdObject = yield* createObject({}, { db, capabilities }) as Effect.Effect<
627
+ Obj.Unknown,
628
+ Error,
629
+ never
630
+ >;
631
+ const addResult = yield* Operation.invoke(SpaceOperation.AddObject, {
632
+ target: db,
633
+ hidden: true,
634
+ object: createdObject,
635
+ });
636
+ if (addResult.id) {
637
+ yield* Operation.invoke(LayoutOperation.Open, { subject: [addResult.id] });
638
+ }
599
639
  }
600
- },
640
+ }),
601
641
  properties: {
602
- label: ['create object in smart collection label', { ns: meta.id }],
642
+ label: ['create object in system collection label', { ns: meta.id }],
603
643
  icon: 'ph--plus--regular',
604
644
  disposition: 'list-item-primary',
605
645
  testId: 'spacePlugin.createObject',
@@ -607,54 +647,59 @@ export const constructObjectActions = ({
607
647
  },
608
648
  ]
609
649
  : []),
610
- {
611
- id: getId(SpaceAction.RenameObject._tag),
612
- type: ACTION_TYPE,
613
- data: async (params?: InvokeParams) => {
614
- await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));
615
- },
616
- properties: {
617
- label: ['rename object label', { ns: typename }],
618
- icon: 'ph--pencil-simple-line--regular',
619
- disposition: 'list-item',
620
- // TODO(wittjosiah): Not working.
621
- // keyBinding: {
622
- // macos: 'shift+F6',
623
- // },
624
- testId: 'spacePlugin.renameObject',
625
- },
626
- },
627
- {
628
- id: getId(SpaceAction.RemoveObjects._tag),
629
- type: ACTION_TYPE,
630
- data: async () => {
631
- const collection = graph
632
- .getConnections(fullyQualifiedId(object), 'inbound')
633
- .find(({ data }) => Obj.instanceOf(DataType.Collection, data))?.data;
634
- await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));
635
- },
636
- properties: {
637
- label: ['delete object label', { ns: typename }],
638
- icon: 'ph--trash--regular',
639
- disposition: 'list-item',
640
- disabled: !deletable,
641
- // TODO(wittjosiah): This is a browser shortcut.
642
- // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
643
- testId: 'spacePlugin.deleteObject',
644
- },
645
- },
650
+ ...(managedCollection
651
+ ? []
652
+ : [
653
+ {
654
+ id: getId(SpaceOperation.RenameObject.meta.key),
655
+ type: Node.ActionType,
656
+ data: (params?: Node.InvokeProps) =>
657
+ Operation.invoke(SpaceOperation.RenameObject, { object, caller: params?.caller }),
658
+ properties: {
659
+ label: ['rename object label', { ns: typename }],
660
+ icon: 'ph--pencil-simple-line--regular',
661
+ disposition: 'list-item',
662
+ // TODO(wittjosiah): Not working.
663
+ // keyBinding: {
664
+ // macos: 'shift+F6',
665
+ // },
666
+ testId: 'spacePlugin.renameObject',
667
+ },
668
+ },
669
+ {
670
+ id: getId(SpaceOperation.RemoveObjects.meta.key),
671
+ type: Node.ActionType,
672
+ data: Effect.fnUntraced(function* () {
673
+ const collection = Graph.getConnections(graph, Obj.getDXN(object).toString(), 'inbound').find(
674
+ (node: Node.Node): node is Node.Node<Collection.Collection> =>
675
+ Obj.instanceOf(Collection.Collection, node.data),
676
+ )?.data;
677
+ yield* Operation.invoke(SpaceOperation.RemoveObjects, { objects: [object], target: collection });
678
+ }),
679
+ properties: {
680
+ label: ['delete object label', { ns: typename }],
681
+ icon: 'ph--trash--regular',
682
+ disposition: 'list-item',
683
+ disabled: !deletable,
684
+ // TODO(wittjosiah): This is a browser shortcut.
685
+ // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
686
+ testId: 'spacePlugin.deleteObject',
687
+ },
688
+ },
689
+ ]),
646
690
  ...(navigable ||
647
- (!Obj.instanceOf(DataType.Collection, object) &&
648
- !Obj.instanceOf(DataType.QueryCollection, object) &&
649
- !Obj.instanceOf(DataType.StoredSchema, object))
691
+ (!Obj.instanceOf(Collection.Collection, object) &&
692
+ !Obj.instanceOf(Collection.Managed, object) &&
693
+ !Obj.instanceOf(Type.PersistentType, object))
650
694
  ? [
651
695
  {
652
696
  id: getId('copy-link'),
653
- type: ACTION_TYPE,
654
- data: async () => {
655
- const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;
656
- await navigator.clipboard.writeText(url);
657
- },
697
+ type: Node.ActionType,
698
+ data: () =>
699
+ Effect.promise(async () => {
700
+ const url = `${shareableLinkOrigin}/${db.spaceId}/${Obj.getDXN(object).toString()}`;
701
+ await navigator.clipboard.writeText(url);
702
+ }),
658
703
  properties: {
659
704
  label: ['copy link label', { ns: meta.id }],
660
705
  icon: 'ph--link--regular',
@@ -666,11 +711,9 @@ export const constructObjectActions = ({
666
711
  : []),
667
712
  // TODO(wittjosiah): Factor out and apply to all nodes.
668
713
  {
669
- id: getId(LayoutAction.Expose._tag),
670
- type: ACTION_TYPE,
671
- data: async () => {
672
- await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));
673
- },
714
+ id: getId(LayoutOperation.Expose.meta.key),
715
+ type: Node.ActionType,
716
+ data: () => Operation.invoke(LayoutOperation.Expose, { subject: Obj.getDXN(object).toString() }),
674
717
  properties: {
675
718
  label: ['expose object label', { ns: meta.id }],
676
719
  icon: 'ph--eye--regular',
@@ -683,13 +726,27 @@ export const constructObjectActions = ({
683
726
  return actions;
684
727
  };
685
728
 
729
+ // TODO(wittjosiah): Factor out.
730
+ const downloadBlob = async (blob: Blob, filename: string) => {
731
+ const url = URL.createObjectURL(blob);
732
+ const a = document.createElement('a');
733
+ a.href = url;
734
+ a.download = filename;
735
+
736
+ document.body.appendChild(a);
737
+ a.click();
738
+
739
+ document.body.removeChild(a);
740
+ URL.revokeObjectURL(url);
741
+ };
742
+
686
743
  /**
687
744
  * @deprecated This is a temporary solution.
688
745
  */
689
746
  export const getNestedObjects = async (
690
- object: Obj.Any,
747
+ object: Obj.Unknown,
691
748
  resolve: (typename: string) => Record<string, any>,
692
- ): Promise<Obj.Any[]> => {
749
+ ): Promise<Obj.Unknown[]> => {
693
750
  const type = Obj.getTypename(object);
694
751
  if (!type) {
695
752
  return [];
@@ -701,7 +758,7 @@ export const getNestedObjects = async (
701
758
  return [];
702
759
  }
703
760
 
704
- const objects: Obj.Any[] = await loadReferences(object);
761
+ const objects: Obj.Unknown[] = await loadReferences(object);
705
762
  const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
706
763
  return [...objects, ...nested.flat()];
707
764
  };
@@ -711,15 +768,15 @@ export const getNestedObjects = async (
711
768
  */
712
769
  // TODO(burdon): Remove.
713
770
  export const cloneObject = async (
714
- object: Type.Expando,
771
+ object: Obj.Unknown,
715
772
  resolve: (typename: string) => Record<string, any>,
716
- newSpace: Space,
717
- ): Promise<Type.Expando> => {
773
+ newDb: Database.Database,
774
+ ): Promise<Obj.Unknown> => {
718
775
  const schema = Obj.getSchema(object);
719
- const typename = schema ? (Type.getTypename(schema) ?? EXPANDO_TYPENAME) : EXPANDO_TYPENAME;
776
+ const typename = schema ? (Type.getTypename(schema) ?? Expando.Expando.typename) : Expando.Expando.typename;
720
777
  const metadata = resolve(typename);
721
778
  const serializer = metadata.serializer;
722
779
  invariant(serializer, `No serializer for type: ${typename}`);
723
780
  const content = await serializer.serialize({ object });
724
- return serializer.deserialize({ content, space: newSpace, newId: true });
781
+ return serializer.deserialize({ content, db: newDb, newId: true });
725
782
  };