@dxos/plugin-space 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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