@dxos/plugin-space 0.8.4-main.422d1c7879 → 0.8.4-main.43cb759274
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.
- package/LICENSE +102 -5
- package/PLUGIN.mdl +626 -0
- package/README.md +1 -1
- package/dist/lib/neutral/CollectionArticle-S3OF5KJ7.mjs +96 -0
- package/dist/lib/neutral/CollectionArticle-S3OF5KJ7.mjs.map +7 -0
- package/dist/lib/neutral/CollectionSection-A5WRHE5Z.mjs +19 -0
- package/dist/lib/neutral/CollectionSection-A5WRHE5Z.mjs.map +7 -0
- package/dist/lib/neutral/CreateObjectDialog-APLFTWSB.mjs +167 -0
- package/dist/lib/neutral/CreateObjectDialog-APLFTWSB.mjs.map +7 -0
- package/dist/lib/neutral/CreateSpaceDialog-WPKMRZH3.mjs +57 -0
- package/dist/lib/neutral/CreateSpaceDialog-WPKMRZH3.mjs.map +7 -0
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs +59 -0
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs.map +7 -0
- package/dist/lib/neutral/ImportSpaceDialog-7GKV4OTF.mjs +64 -0
- package/dist/lib/neutral/ImportSpaceDialog-7GKV4OTF.mjs.map +7 -0
- package/dist/lib/neutral/InlineSyncStatus-TBJKZCH7.mjs +49 -0
- package/dist/lib/neutral/InlineSyncStatus-TBJKZCH7.mjs.map +7 -0
- package/dist/lib/neutral/JoinDialog-SSFKRFTJ.mjs +114 -0
- package/dist/lib/neutral/JoinDialog-SSFKRFTJ.mjs.map +7 -0
- package/dist/lib/neutral/MembersContainer-KMCQDWCS.mjs +227 -0
- package/dist/lib/neutral/MembersContainer-KMCQDWCS.mjs.map +7 -0
- package/dist/lib/neutral/MenuFooter-J3YE4JGI.mjs +33 -0
- package/dist/lib/neutral/MenuFooter-J3YE4JGI.mjs.map +7 -0
- package/dist/lib/neutral/ObjectCardStack-HWLILOA3.mjs +55 -0
- package/dist/lib/neutral/ObjectCardStack-HWLILOA3.mjs.map +7 -0
- package/dist/lib/neutral/ObjectProperties-BF6KGFFC.mjs +33 -0
- package/dist/lib/neutral/ObjectProperties-BF6KGFFC.mjs.map +7 -0
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs +51 -0
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs.map +7 -0
- package/dist/lib/neutral/RelatedArticle-YDNGUDAJ.mjs +68 -0
- package/dist/lib/neutral/RelatedArticle-YDNGUDAJ.mjs.map +7 -0
- package/dist/lib/neutral/SchemaContainer-Q4BP6X2M.mjs +49 -0
- package/dist/lib/neutral/SchemaContainer-Q4BP6X2M.mjs.map +7 -0
- package/dist/lib/neutral/SmallPresenceLive-GUF4WLUC.mjs +8 -0
- package/dist/lib/neutral/SpacePlugin.mjs +10 -0
- package/dist/lib/{browser/cli/index.mjs → neutral/SpacePlugin.node.mjs} +97 -122
- package/dist/lib/neutral/SpacePlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/SpacePlugin.workerd.mjs +34 -0
- package/dist/lib/neutral/SpacePlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/SpacePresence-ACEXUS3N.mjs +11 -0
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs +56 -0
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs.map +7 -0
- package/dist/lib/{browser/SpaceSettings-TR2IMHOL.mjs → neutral/SpaceSettings-RJWNYZAL.mjs} +3 -3
- package/dist/lib/neutral/SpaceSettingsContainer-IB34TEOB.mjs +276 -0
- package/dist/lib/neutral/SpaceSettingsContainer-IB34TEOB.mjs.map +7 -0
- package/dist/lib/neutral/SyncStatus-CWOXWDDZ.mjs +147 -0
- package/dist/lib/neutral/SyncStatus-CWOXWDDZ.mjs.map +7 -0
- package/dist/lib/neutral/ViewEditor-BR26G555.mjs +101 -0
- package/dist/lib/neutral/ViewEditor-BR26G555.mjs.map +7 -0
- package/dist/lib/{browser/add-object-XUA4QRWE.mjs → neutral/add-object-NXJGPV7U.mjs} +15 -28
- package/dist/lib/neutral/add-object-NXJGPV7U.mjs.map +7 -0
- package/dist/lib/{browser/add-relation-YNTOBNYM.mjs → neutral/add-relation-4XGLANGJ.mjs} +4 -4
- package/dist/lib/neutral/add-relation-4XGLANGJ.mjs.map +7 -0
- package/dist/lib/neutral/add-type-EOQMBI63.mjs +57 -0
- package/dist/lib/neutral/add-type-EOQMBI63.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-5QSN3MP7.mjs +1254 -0
- package/dist/lib/neutral/app-graph-builder-5QSN3MP7.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-serializer-BKLAS7NE.mjs +81 -0
- package/dist/lib/neutral/app-graph-serializer-BKLAS7NE.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +43 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/node.mjs +15 -0
- package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
- package/dist/lib/neutral/chunk-2DHCIE27.mjs +25 -0
- package/dist/lib/neutral/chunk-2DHCIE27.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs +37 -0
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-CRZHK3BW.mjs +154 -0
- package/dist/lib/neutral/chunk-CRZHK3BW.mjs.map +7 -0
- package/dist/lib/{browser/chunk-FBRDXXNK.mjs → neutral/chunk-E55TPDLR.mjs} +8 -3
- package/dist/lib/neutral/chunk-E55TPDLR.mjs.map +7 -0
- package/dist/lib/neutral/chunk-EEXRKYOD.mjs +163 -0
- package/dist/lib/neutral/chunk-EEXRKYOD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-F5MESIRH.mjs +19 -0
- package/dist/lib/neutral/chunk-F5MESIRH.mjs.map +7 -0
- package/dist/lib/{browser/chunk-BJAZV3HI.mjs → neutral/chunk-HCDLT7WU.mjs} +165 -81
- package/dist/lib/neutral/chunk-HCDLT7WU.mjs.map +7 -0
- package/dist/lib/{browser/chunk-JH2UWMN2.mjs → neutral/chunk-JHZGRYGS.mjs} +1 -1
- package/dist/lib/{browser/chunk-JH2UWMN2.mjs.map → neutral/chunk-JHZGRYGS.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-LE2BYN7U.mjs +8 -0
- package/dist/lib/neutral/chunk-LE2BYN7U.mjs.map +7 -0
- package/dist/lib/{browser/close-MPL6CV3Z.mjs → neutral/close-5LMOR4PD.mjs} +4 -4
- package/dist/lib/{browser/close-MPL6CV3Z.mjs.map → neutral/close-5LMOR4PD.mjs.map} +1 -1
- package/dist/lib/neutral/components/index.mjs +404 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +49 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/{browser/create-AE3FYWXG.mjs → neutral/create-KUJARM45.mjs} +14 -13
- package/dist/lib/neutral/create-KUJARM45.mjs.map +7 -0
- package/dist/lib/neutral/create-object-22WUOWZQ.mjs +101 -0
- package/dist/lib/neutral/create-object-22WUOWZQ.mjs.map +7 -0
- package/dist/lib/neutral/delete-HONXXXUH.mjs +17 -0
- package/dist/lib/neutral/delete-HONXXXUH.mjs.map +7 -0
- package/dist/lib/{browser/delete-field-G77IGW6B.mjs → neutral/delete-field-OVN35NPO.mjs} +11 -36
- package/dist/lib/neutral/delete-field-OVN35NPO.mjs.map +7 -0
- package/dist/lib/neutral/duplicate-object-7HODEIGW.mjs +17 -0
- package/dist/lib/neutral/duplicate-object-7HODEIGW.mjs.map +7 -0
- package/dist/lib/neutral/export-space-HGI6N3IA.mjs +34 -0
- package/dist/lib/neutral/export-space-HGI6N3IA.mjs.map +7 -0
- package/dist/lib/{browser/get-share-link-R745OMNC.mjs → neutral/get-share-link-76OF5TPM.mjs} +5 -5
- package/dist/lib/{browser/get-share-link-R745OMNC.mjs.map → neutral/get-share-link-76OF5TPM.mjs.map} +1 -1
- package/dist/lib/neutral/hooks/index.mjs +121 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/identity-created-57RML5XT.mjs +32 -0
- package/dist/lib/neutral/identity-created-57RML5XT.mjs.map +7 -0
- package/dist/lib/neutral/import-space-P57N4PSP.mjs +28 -0
- package/dist/lib/neutral/import-space-P57N4PSP.mjs.map +7 -0
- package/dist/lib/{node-esm/types → neutral}/index.mjs +23 -4
- package/dist/lib/{browser/join-EDCBOGMO.mjs → neutral/join-WCAPNPUJ.mjs} +5 -5
- package/dist/lib/{browser/join-EDCBOGMO.mjs.map → neutral/join-WCAPNPUJ.mjs.map} +1 -1
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/{browser → neutral}/meta.mjs +1 -1
- package/dist/lib/{browser/migrate-J7OVAUIM.mjs → neutral/migrate-OSPAOAVW.mjs} +9 -7
- package/dist/lib/neutral/migrate-OSPAOAVW.mjs.map +7 -0
- package/dist/lib/neutral/navigation-handler-CXZ655SE.mjs +38 -0
- package/dist/lib/neutral/navigation-handler-CXZ655SE.mjs.map +7 -0
- package/dist/lib/neutral/navigation-resolver-WQ5A4637.mjs +65 -0
- package/dist/lib/neutral/navigation-resolver-WQ5A4637.mjs.map +7 -0
- package/dist/lib/{browser/open-LGLVOLR3.mjs → neutral/open-KU76PZVS.mjs} +4 -4
- package/dist/lib/{browser/open-LGLVOLR3.mjs.map → neutral/open-KU76PZVS.mjs.map} +1 -1
- package/dist/lib/{browser/open-create-object-QQFDBDDC.mjs → neutral/open-create-object-K5FI2KMV.mjs} +5 -5
- package/dist/lib/neutral/open-create-object-K5FI2KMV.mjs.map +7 -0
- package/dist/lib/{browser/open-create-space-7IVA2QOK.mjs → neutral/open-create-space-2ODSFMLD.mjs} +5 -5
- package/dist/lib/{browser/open-create-space-7IVA2QOK.mjs.map → neutral/open-create-space-2ODSFMLD.mjs.map} +1 -1
- package/dist/lib/neutral/open-import-space-VMILOCQO.mjs +24 -0
- package/dist/lib/neutral/open-import-space-VMILOCQO.mjs.map +7 -0
- package/dist/lib/{browser/open-members-RF5E7PAE.mjs → neutral/open-members-ZJUBRLFW.mjs} +4 -4
- package/dist/lib/{browser/open-members-RF5E7PAE.mjs.map → neutral/open-members-ZJUBRLFW.mjs.map} +1 -1
- package/dist/lib/{browser/open-settings-A56XL7NJ.mjs → neutral/open-settings-T5GEFCGI.mjs} +5 -5
- package/dist/lib/{browser/open-settings-A56XL7NJ.mjs.map → neutral/open-settings-T5GEFCGI.mjs.map} +1 -1
- package/dist/lib/neutral/operation-handler-YPIRQOH2.mjs +13 -0
- package/dist/lib/neutral/operation-handler-YPIRQOH2.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +13 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +18 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-root-2DJPZQT4.mjs +23 -0
- package/dist/lib/neutral/react-root-2DJPZQT4.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-UAHPI22Y.mjs +375 -0
- package/dist/lib/neutral/react-surface-UAHPI22Y.mjs.map +7 -0
- package/dist/lib/neutral/remove-objects-3LYKANEQ.mjs +55 -0
- package/dist/lib/neutral/remove-objects-3LYKANEQ.mjs.map +7 -0
- package/dist/lib/{browser/rename-UOGQQJ3T.mjs → neutral/rename-P3KRT5SX.mjs} +5 -5
- package/dist/lib/{browser/rename-UOGQQJ3T.mjs.map → neutral/rename-P3KRT5SX.mjs.map} +1 -1
- package/dist/lib/{browser/rename-object-V2LDZGOE.mjs → neutral/rename-object-Y5CZY66F.mjs} +8 -9
- package/dist/lib/neutral/rename-object-Y5CZY66F.mjs.map +7 -0
- package/dist/lib/neutral/repair-PSYRVSJ6.mjs +32 -0
- package/dist/lib/neutral/repair-PSYRVSJ6.mjs.map +7 -0
- package/dist/lib/{browser/restore-field-TQJP2YJI.mjs → neutral/restore-field-RAHWH43Z.mjs} +11 -36
- package/dist/lib/neutral/restore-field-RAHWH43Z.mjs.map +7 -0
- package/dist/lib/{browser/restore-objects-23VJYK72.mjs → neutral/restore-objects-YOFCXTWE.mjs} +11 -28
- package/dist/lib/neutral/restore-objects-YOFCXTWE.mjs.map +7 -0
- package/dist/lib/neutral/settings-DUCCRYX7.mjs +30 -0
- package/dist/lib/neutral/settings-DUCCRYX7.mjs.map +7 -0
- package/dist/lib/{browser/share-2PZJXFJM.mjs → neutral/share-OOKWURCK.mjs} +5 -5
- package/dist/lib/{browser/share-2PZJXFJM.mjs.map → neutral/share-OOKWURCK.mjs.map} +1 -1
- package/dist/lib/{browser/snapshot-OOA2JZ67.mjs → neutral/snapshot-3IIGQ7ZS.mjs} +5 -13
- package/dist/lib/neutral/snapshot-3IIGQ7ZS.mjs.map +7 -0
- package/dist/lib/neutral/spaces-ready-LFRQW3VQ.mjs +268 -0
- package/dist/lib/neutral/spaces-ready-LFRQW3VQ.mjs.map +7 -0
- package/dist/lib/neutral/state-DPBOZRAW.mjs +55 -0
- package/dist/lib/neutral/state-DPBOZRAW.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +8 -0
- package/dist/lib/neutral/testing.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +309 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/types/index.mjs +5 -1
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/undo-mappings-OBRQOYN4.mjs +68 -0
- package/dist/lib/neutral/undo-mappings-OBRQOYN4.mjs.map +7 -0
- package/dist/lib/{browser/wait-for-object-2XLXLCNS.mjs → neutral/wait-for-object-YAE3NYNU.mjs} +4 -4
- package/dist/lib/{browser/wait-for-object-2XLXLCNS.mjs.map → neutral/wait-for-object-YAE3NYNU.mjs.map} +1 -1
- package/dist/types/src/SpacePlugin.d.ts +1 -0
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/{cli/plugin.d.ts → SpacePlugin.node.d.ts} +2 -1
- package/dist/types/src/SpacePlugin.node.d.ts.map +1 -0
- package/dist/types/src/SpacePlugin.test.d.ts +2 -0
- package/dist/types/src/SpacePlugin.test.d.ts.map +1 -0
- package/dist/types/src/SpacePlugin.workerd.d.ts +4 -0
- package/dist/types/src/SpacePlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +32 -8
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +3 -3
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts +68 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +11 -3
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +6 -7
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -6
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +37 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +32 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +32 -1
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -1
- package/dist/types/src/commands/database/add.d.ts +10 -0
- package/dist/types/src/commands/database/add.d.ts.map +1 -0
- package/dist/types/src/commands/database/index.d.ts.map +1 -0
- package/dist/types/src/commands/database/query/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/database/query/query.d.ts +2 -2
- package/dist/types/src/commands/database/query/query.d.ts.map +1 -0
- package/dist/types/src/commands/database/query/query.test.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/database/remove.d.ts +1 -1
- package/dist/types/src/commands/database/remove.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/database/stats.d.ts +1 -1
- package/dist/types/src/commands/database/stats.d.ts.map +1 -0
- package/dist/types/src/commands/database/util.d.ts.map +1 -0
- package/dist/types/src/commands/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/queue/index.d.ts +2 -2
- package/dist/types/src/commands/queue/index.d.ts.map +1 -0
- package/dist/types/src/commands/queue/query.d.ts +7 -0
- package/dist/types/src/commands/queue/query.d.ts.map +1 -0
- package/dist/types/src/commands/queue/util.d.ts.map +1 -0
- package/dist/types/src/commands/space/close/close.d.ts +12 -0
- package/dist/types/src/commands/space/close/close.d.ts.map +1 -0
- package/dist/types/src/commands/space/close/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/create/create.d.ts +2 -2
- package/dist/types/src/commands/space/create/create.d.ts.map +1 -0
- package/dist/types/src/commands/space/create/create.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/create/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/index.d.ts +13 -13
- package/dist/types/src/commands/space/index.d.ts.map +1 -0
- package/dist/types/src/commands/space/info/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/info/info.d.ts +2 -2
- package/dist/types/src/commands/space/info/info.d.ts.map +1 -0
- package/dist/types/src/commands/space/info/info.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/join/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/join/join.d.ts +2 -2
- package/dist/types/src/commands/space/join/join.d.ts.map +1 -0
- package/dist/types/src/commands/space/join/util.d.ts.map +1 -0
- package/dist/types/src/commands/space/list/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/list/list.d.ts +2 -2
- package/dist/types/src/commands/space/list/list.d.ts.map +1 -0
- package/dist/types/src/commands/space/list/list.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/members/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/members/members.d.ts +2 -2
- package/dist/types/src/commands/space/members/members.d.ts.map +1 -0
- package/dist/types/src/commands/space/members/members.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/members/util.d.ts.map +1 -0
- package/dist/types/src/commands/space/open/index.d.ts.map +1 -0
- package/dist/types/src/commands/space/open/open.d.ts +12 -0
- package/dist/types/src/commands/space/open/open.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/schema/index.d.ts +1 -1
- package/dist/types/src/commands/space/schema/index.d.ts.map +1 -0
- package/dist/types/src/commands/space/schema/list/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/schema/list/list.d.ts +2 -3
- package/dist/types/src/commands/space/schema/list/list.d.ts.map +1 -0
- package/dist/types/src/commands/space/schema/list/list.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/schema/list/util.d.ts.map +1 -0
- package/dist/types/src/commands/space/share/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/space/share/share.d.ts +2 -2
- package/dist/types/src/commands/space/share/share.d.ts.map +1 -0
- package/dist/types/src/commands/space/sync/index.d.ts.map +1 -0
- package/dist/types/src/commands/space/sync/sync.d.ts.map +1 -0
- package/dist/types/src/commands/space/sync/sync.test.d.ts.map +1 -0
- package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/{CreateDialog → CreateObjectPanel}/CreateObjectPanel.d.ts +11 -14
- package/dist/types/src/components/CreateObjectPanel/CreateObjectPanel.d.ts.map +1 -0
- package/dist/types/src/components/CreateObjectPanel/index.d.ts.map +1 -0
- package/dist/types/src/components/ForeignKeys/ForeignKeys.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts +590 -248
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/save-tracker.d.ts +1 -1
- package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +7 -5
- package/dist/types/src/constants.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +590 -248
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +590 -248
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts +7 -0
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts.map +1 -0
- package/dist/types/src/containers/EntityRenamePopover/index.d.ts +2 -0
- package/dist/types/src/containers/{ObjectRenamePopover → EntityRenamePopover}/index.d.ts.map +1 -1
- package/dist/types/src/containers/ImportSpaceDialog/ImportSpaceDialog.d.ts +3 -0
- package/dist/types/src/containers/ImportSpaceDialog/ImportSpaceDialog.d.ts.map +1 -0
- package/dist/types/src/containers/ImportSpaceDialog/index.d.ts +2 -0
- package/dist/types/src/containers/ImportSpaceDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +590 -248
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/MembersContainer/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectCardStack/ObjectCardStack.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +1 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.stories.d.ts.map +1 -1
- package/dist/types/src/containers/RelatedArticle/RelatedArticle.d.ts.map +1 -1
- package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts +3 -3
- package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +590 -248
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts +4 -4
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +590 -248
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +590 -248
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +2 -1
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/usePath.d.ts.map +1 -1
- package/dist/types/src/hooks/useRelatedObjects.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/add-object.d.ts +1 -1
- package/dist/types/src/operations/add-object.d.ts.map +1 -1
- package/dist/types/src/operations/add-relation.d.ts +1 -1
- package/dist/types/src/operations/add-relation.d.ts.map +1 -1
- package/dist/types/src/operations/{add-schema.d.ts → add-type.d.ts} +3 -3
- package/dist/types/src/operations/add-type.d.ts.map +1 -0
- package/dist/types/src/operations/close.d.ts +1 -1
- package/dist/types/src/operations/close.d.ts.map +1 -1
- package/dist/types/src/operations/create.d.ts +1 -1
- package/dist/types/src/operations/create.d.ts.map +1 -1
- package/dist/types/src/operations/definitions.d.ts +72 -55
- package/dist/types/src/operations/definitions.d.ts.map +1 -1
- package/dist/types/src/operations/delete-field.d.ts +1 -1
- package/dist/types/src/operations/delete-field.d.ts.map +1 -1
- package/dist/types/src/operations/delete.d.ts +5 -0
- package/dist/types/src/operations/delete.d.ts.map +1 -0
- package/dist/types/src/operations/duplicate-object.d.ts +1 -1
- package/dist/types/src/operations/duplicate-object.d.ts.map +1 -1
- package/dist/types/src/operations/export-space.d.ts +5 -0
- package/dist/types/src/operations/export-space.d.ts.map +1 -0
- package/dist/types/src/operations/get-share-link.d.ts +1 -1
- package/dist/types/src/operations/get-share-link.d.ts.map +1 -1
- package/dist/types/src/operations/import-space.d.ts +5 -0
- package/dist/types/src/operations/import-space.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +1 -1
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/join.d.ts +1 -1
- package/dist/types/src/operations/join.d.ts.map +1 -1
- package/dist/types/src/operations/migrate.d.ts +1 -1
- package/dist/types/src/operations/migrate.d.ts.map +1 -1
- package/dist/types/src/operations/open-create-object.d.ts +1 -1
- package/dist/types/src/operations/open-create-object.d.ts.map +1 -1
- package/dist/types/src/operations/open-create-space.d.ts +1 -1
- package/dist/types/src/operations/open-create-space.d.ts.map +1 -1
- package/dist/types/src/operations/open-import-space.d.ts +5 -0
- package/dist/types/src/operations/open-import-space.d.ts.map +1 -0
- package/dist/types/src/operations/open-members.d.ts +1 -1
- package/dist/types/src/operations/open-members.d.ts.map +1 -1
- package/dist/types/src/operations/open-settings.d.ts +1 -1
- package/dist/types/src/operations/open-settings.d.ts.map +1 -1
- package/dist/types/src/operations/open.d.ts +1 -1
- package/dist/types/src/operations/open.d.ts.map +1 -1
- package/dist/types/src/operations/remove-objects.d.ts +1 -1
- package/dist/types/src/operations/remove-objects.d.ts.map +1 -1
- package/dist/types/src/operations/rename-object.d.ts +1 -1
- package/dist/types/src/operations/rename-object.d.ts.map +1 -1
- package/dist/types/src/operations/rename.d.ts +1 -1
- package/dist/types/src/operations/rename.d.ts.map +1 -1
- package/dist/types/src/operations/restore-field.d.ts +1 -1
- package/dist/types/src/operations/restore-field.d.ts.map +1 -1
- package/dist/types/src/operations/restore-objects.d.ts +1 -1
- package/dist/types/src/operations/restore-objects.d.ts.map +1 -1
- package/dist/types/src/operations/share.d.ts +1 -1
- package/dist/types/src/operations/share.d.ts.map +1 -1
- package/dist/types/src/operations/snapshot.d.ts +1 -1
- package/dist/types/src/operations/snapshot.d.ts.map +1 -1
- package/dist/types/src/operations/wait-for-object.d.ts +1 -1
- package/dist/types/src/operations/wait-for-object.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts +2 -0
- package/dist/types/src/testing.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +590 -248
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +45 -8
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/events.d.ts +1 -1
- package/dist/types/src/types/events.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +6 -3
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -6
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +134 -101
- package/src/{cli/plugin.ts → SpacePlugin.node.ts} +7 -27
- package/src/SpacePlugin.test.ts +33 -0
- package/src/SpacePlugin.ts +20 -118
- package/src/SpacePlugin.workerd.ts +46 -0
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +3 -3
- package/src/capabilities/app-graph-builder/extensions/collections.ts +36 -36
- package/src/capabilities/app-graph-builder/extensions/companions.ts +12 -10
- package/src/capabilities/app-graph-builder/extensions/{types.ts → database.ts} +89 -92
- package/src/capabilities/app-graph-builder/extensions/index.ts +1 -1
- package/src/capabilities/app-graph-builder/extensions/settings.ts +46 -22
- package/src/capabilities/app-graph-builder/extensions/shared.test.ts +80 -22
- package/src/capabilities/app-graph-builder/extensions/shared.ts +41 -19
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +61 -23
- package/src/capabilities/app-graph-serializer.ts +6 -6
- package/src/capabilities/create-object.ts +107 -0
- package/src/capabilities/identity-created.ts +8 -9
- package/src/capabilities/index.ts +2 -2
- package/src/capabilities/navigation-handler/navigation-handler.ts +1 -1
- package/src/capabilities/navigation-resolver.ts +8 -20
- package/src/capabilities/node.ts +2 -1
- package/src/capabilities/operation-handler.ts +1 -1
- package/src/capabilities/react-surface.tsx +110 -72
- package/src/capabilities/repair.ts +6 -3
- package/src/capabilities/spaces-ready.ts +107 -90
- package/src/capabilities/state.ts +1 -1
- package/src/capabilities/undo-mappings.ts +3 -4
- package/src/{cli/commands → commands}/database/add.ts +24 -29
- package/src/{cli/commands → commands}/database/query/query.test.ts +3 -3
- package/src/{cli/commands → commands}/database/stats.ts +1 -2
- package/src/{cli/commands → commands}/database/util.ts +1 -1
- package/src/{cli/commands → commands}/queue/query.ts +20 -14
- package/src/{cli/commands → commands}/space/create/create.ts +1 -1
- package/src/{cli/commands → commands}/space/list/list.test.ts +1 -1
- package/src/{cli/commands → commands}/space/schema/list/list.ts +10 -17
- package/src/components/AwaitingObject/AwaitingObject.tsx +31 -32
- package/src/components/{CreateDialog → CreateObjectPanel}/CreateObjectPanel.tsx +64 -34
- package/src/components/SpaceSettings/SpaceSettings.stories.tsx +2 -1
- package/src/components/SyncStatus/save-tracker.ts +2 -1
- package/src/components/index.ts +1 -1
- package/src/constants.ts +8 -5
- package/src/containers/CollectionArticle/CollectionArticle.tsx +14 -37
- package/src/containers/CreateObjectDialog/CreateObjectDialog.stories.tsx +2 -3
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +65 -33
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.tsx +5 -4
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +1 -1
- package/src/containers/{ObjectRenamePopover/ObjectRenamePopover.tsx → EntityRenamePopover/EntityRenamePopover.tsx} +9 -9
- package/src/containers/EntityRenamePopover/index.ts +5 -0
- package/src/containers/ImportSpaceDialog/ImportSpaceDialog.tsx +62 -0
- package/src/containers/ImportSpaceDialog/index.ts +5 -0
- package/src/containers/JoinDialog/JoinDialog.stories.tsx +3 -2
- package/src/containers/JoinDialog/JoinDialog.tsx +1 -1
- package/src/containers/MembersContainer/MembersContainer.tsx +8 -5
- package/src/containers/ObjectCardStack/ObjectCardStack.tsx +6 -7
- package/src/containers/RecordArticle/RecordArticle.stories.tsx +6 -4
- package/src/containers/RecordArticle/RecordArticle.tsx +23 -16
- package/src/containers/RelatedArticle/RelatedArticle.tsx +7 -15
- package/src/containers/SchemaContainer/SchemaContainer.tsx +13 -18
- package/src/containers/SpacePresence/SpacePresence.stories.tsx +2 -1
- package/src/containers/SpacePresence/SpacePresence.tsx +1 -1
- package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +3 -3
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.tsx +4 -3
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +68 -56
- package/src/containers/SyncStatus/SyncStatus.stories.tsx +2 -1
- package/src/containers/SyncStatus/SyncStatus.tsx +8 -2
- package/src/containers/ViewEditor/ViewEditor.tsx +31 -29
- package/src/containers/index.ts +2 -1
- package/src/hooks/useInputSurfaceLookup.tsx +9 -2
- package/src/index.ts +2 -4
- package/src/meta.ts +24 -6
- package/src/operations/add-object.ts +16 -13
- package/src/operations/add-relation.ts +1 -1
- package/src/operations/add-type.ts +51 -0
- package/src/operations/close.ts +1 -1
- package/src/operations/create.ts +17 -10
- package/src/operations/definitions.ts +142 -57
- package/src/operations/delete-field.ts +5 -4
- package/src/operations/delete.ts +18 -0
- package/src/operations/duplicate-object.ts +4 -17
- package/src/operations/export-space.ts +30 -0
- package/src/operations/get-share-link.ts +1 -1
- package/src/operations/import-space.ts +23 -0
- package/src/operations/index.ts +6 -2
- package/src/operations/join.ts +1 -1
- package/src/operations/migrate.ts +6 -4
- package/src/operations/open-create-object.ts +1 -1
- package/src/operations/open-create-space.ts +1 -1
- package/src/operations/open-import-space.ts +21 -0
- package/src/operations/open-members.ts +1 -1
- package/src/operations/open-settings.ts +2 -2
- package/src/operations/open.ts +1 -1
- package/src/operations/remove-objects.ts +29 -46
- package/src/operations/rename-object.ts +4 -6
- package/src/operations/rename.ts +1 -1
- package/src/operations/restore-field.ts +5 -4
- package/src/operations/restore-objects.ts +8 -18
- package/src/operations/share.ts +2 -2
- package/src/operations/snapshot.ts +1 -1
- package/src/operations/wait-for-object.ts +1 -1
- package/src/plugin.ts +11 -0
- package/src/testing.ts +7 -0
- package/src/translations.ts +48 -18
- package/src/types/capabilities.ts +33 -8
- package/src/types/events.ts +1 -1
- package/src/types/types.ts +8 -3
- package/src/util.ts +1 -44
- package/src/vite-env.d.ts +10 -0
- package/dist/lib/browser/add-object-XUA4QRWE.mjs.map +0 -7
- package/dist/lib/browser/add-relation-YNTOBNYM.mjs.map +0 -7
- package/dist/lib/browser/add-schema-Q5X2SAX4.mjs +0 -60
- package/dist/lib/browser/add-schema-Q5X2SAX4.mjs.map +0 -7
- package/dist/lib/browser/chunk-5CKPBXLB.mjs +0 -16
- package/dist/lib/browser/chunk-5CKPBXLB.mjs.map +0 -7
- package/dist/lib/browser/chunk-BJAZV3HI.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBRDXXNK.mjs.map +0 -7
- package/dist/lib/browser/chunk-VV4C4APQ.mjs +0 -16
- package/dist/lib/browser/chunk-VV4C4APQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-YSV6LKD6.mjs +0 -71
- package/dist/lib/browser/chunk-YSV6LKD6.mjs.map +0 -7
- package/dist/lib/browser/cli/index.mjs.map +0 -7
- package/dist/lib/browser/create-AE3FYWXG.mjs.map +0 -7
- package/dist/lib/browser/delete-field-G77IGW6B.mjs.map +0 -7
- package/dist/lib/browser/duplicate-object-B3Q64ELR.mjs +0 -42
- package/dist/lib/browser/duplicate-object-B3Q64ELR.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -913
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/migrate-J7OVAUIM.mjs.map +0 -7
- package/dist/lib/browser/open-create-object-QQFDBDDC.mjs.map +0 -7
- package/dist/lib/browser/operations/index.mjs +0 -14
- package/dist/lib/browser/operations/index.mjs.map +0 -7
- package/dist/lib/browser/remove-objects-5JFRQRGL.mjs +0 -79
- package/dist/lib/browser/remove-objects-5JFRQRGL.mjs.map +0 -7
- package/dist/lib/browser/rename-object-V2LDZGOE.mjs.map +0 -7
- package/dist/lib/browser/restore-field-TQJP2YJI.mjs.map +0 -7
- package/dist/lib/browser/restore-objects-23VJYK72.mjs.map +0 -7
- package/dist/lib/browser/snapshot-OOA2JZ67.mjs.map +0 -7
- package/dist/lib/node-esm/SpaceSettings-YW75BDWT.mjs +0 -48
- package/dist/lib/node-esm/SpaceSettings-YW75BDWT.mjs.map +0 -7
- package/dist/lib/node-esm/add-object-OULSB2DR.mjs +0 -87
- package/dist/lib/node-esm/add-object-OULSB2DR.mjs.map +0 -7
- package/dist/lib/node-esm/add-relation-K6EZYWKL.mjs +0 -27
- package/dist/lib/node-esm/add-relation-K6EZYWKL.mjs.map +0 -7
- package/dist/lib/node-esm/add-schema-4GSWOILA.mjs +0 -61
- package/dist/lib/node-esm/add-schema-4GSWOILA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-64AL4GHY.mjs +0 -18
- package/dist/lib/node-esm/chunk-64AL4GHY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7Z5ON2QQ.mjs +0 -99
- package/dist/lib/node-esm/chunk-7Z5ON2QQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GTF56ZOK.mjs +0 -10
- package/dist/lib/node-esm/chunk-GTF56ZOK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-IHOQPYNT.mjs +0 -73
- package/dist/lib/node-esm/chunk-IHOQPYNT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IYW6CXLN.mjs +0 -18
- package/dist/lib/node-esm/chunk-IYW6CXLN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TZTVDLGM.mjs +0 -490
- package/dist/lib/node-esm/chunk-TZTVDLGM.mjs.map +0 -7
- package/dist/lib/node-esm/cli/index.mjs +0 -861
- package/dist/lib/node-esm/cli/index.mjs.map +0 -7
- package/dist/lib/node-esm/close-JSUMHN7R.mjs +0 -18
- package/dist/lib/node-esm/close-JSUMHN7R.mjs.map +0 -7
- package/dist/lib/node-esm/create-BRA5OQHY.mjs +0 -75
- package/dist/lib/node-esm/create-BRA5OQHY.mjs.map +0 -7
- package/dist/lib/node-esm/delete-field-UNKELUX7.mjs +0 -68
- package/dist/lib/node-esm/delete-field-UNKELUX7.mjs.map +0 -7
- package/dist/lib/node-esm/duplicate-object-QDZHK24D.mjs +0 -43
- package/dist/lib/node-esm/duplicate-object-QDZHK24D.mjs.map +0 -7
- package/dist/lib/node-esm/get-share-link-XLBJHWDY.mjs +0 -42
- package/dist/lib/node-esm/get-share-link-XLBJHWDY.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -914
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/join-RGM74NMA.mjs +0 -29
- package/dist/lib/node-esm/join-RGM74NMA.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/meta.mjs +0 -9
- package/dist/lib/node-esm/migrate-NXBHBCFU.mjs +0 -51
- package/dist/lib/node-esm/migrate-NXBHBCFU.mjs.map +0 -7
- package/dist/lib/node-esm/open-ZUK63Z2F.mjs +0 -18
- package/dist/lib/node-esm/open-ZUK63Z2F.mjs.map +0 -7
- package/dist/lib/node-esm/open-create-object-CMNXPKSF.mjs +0 -43
- package/dist/lib/node-esm/open-create-object-CMNXPKSF.mjs.map +0 -7
- package/dist/lib/node-esm/open-create-space-W6DDCTCA.mjs +0 -25
- package/dist/lib/node-esm/open-create-space-W6DDCTCA.mjs.map +0 -7
- package/dist/lib/node-esm/open-members-BUANVOZL.mjs +0 -24
- package/dist/lib/node-esm/open-members-BUANVOZL.mjs.map +0 -7
- package/dist/lib/node-esm/open-settings-U2SJX5EW.mjs +0 -24
- package/dist/lib/node-esm/open-settings-U2SJX5EW.mjs.map +0 -7
- package/dist/lib/node-esm/operations/index.mjs +0 -15
- package/dist/lib/node-esm/operations/index.mjs.map +0 -7
- package/dist/lib/node-esm/remove-objects-KTAS3FB3.mjs +0 -80
- package/dist/lib/node-esm/remove-objects-KTAS3FB3.mjs.map +0 -7
- package/dist/lib/node-esm/rename-F5GAS22G.mjs +0 -26
- package/dist/lib/node-esm/rename-F5GAS22G.mjs.map +0 -7
- package/dist/lib/node-esm/rename-object-D2AVOXBO.mjs +0 -27
- package/dist/lib/node-esm/rename-object-D2AVOXBO.mjs.map +0 -7
- package/dist/lib/node-esm/restore-field-O7T4WCMB.mjs +0 -66
- package/dist/lib/node-esm/restore-field-O7T4WCMB.mjs.map +0 -7
- package/dist/lib/node-esm/restore-objects-IRKTUGP2.mjs +0 -57
- package/dist/lib/node-esm/restore-objects-IRKTUGP2.mjs.map +0 -7
- package/dist/lib/node-esm/share-5CZU3XKX.mjs +0 -32
- package/dist/lib/node-esm/share-5CZU3XKX.mjs.map +0 -7
- package/dist/lib/node-esm/snapshot-H3SRUIPR.mjs +0 -39
- package/dist/lib/node-esm/snapshot-H3SRUIPR.mjs.map +0 -7
- package/dist/lib/node-esm/wait-for-object-G2HJINN3.mjs +0 -24
- package/dist/lib/node-esm/wait-for-object-G2HJINN3.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +0 -38
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +0 -1
- package/dist/types/src/capabilities/migrations.d.ts +0 -5
- package/dist/types/src/capabilities/migrations.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/add.d.ts +0 -16
- package/dist/types/src/cli/commands/database/add.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/query/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/query/query.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/query/query.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/remove.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/stats.d.ts.map +0 -1
- package/dist/types/src/cli/commands/database/util.d.ts.map +0 -1
- package/dist/types/src/cli/commands/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/queue/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/queue/query.d.ts +0 -8
- package/dist/types/src/cli/commands/queue/query.d.ts.map +0 -1
- package/dist/types/src/cli/commands/queue/util.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/close/close.d.ts +0 -12
- package/dist/types/src/cli/commands/space/close/close.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/close/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/create/create.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/create/create.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/create/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/info/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/info/info.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/info/info.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/join/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/join/join.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/join/util.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/list/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/list/list.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/list/list.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/members/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/members/members.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/members/members.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/members/util.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/open/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/open/open.d.ts +0 -12
- package/dist/types/src/cli/commands/space/open/open.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/schema/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/schema/list/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/schema/list/list.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/schema/list/util.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/share/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/share/share.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/sync/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/sync/sync.d.ts.map +0 -1
- package/dist/types/src/cli/commands/space/sync/sync.test.d.ts.map +0 -1
- package/dist/types/src/cli/index.d.ts +0 -2
- package/dist/types/src/cli/index.d.ts.map +0 -1
- package/dist/types/src/cli/plugin.d.ts.map +0 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +0 -1
- package/dist/types/src/components/CreateDialog/index.d.ts.map +0 -1
- package/dist/types/src/containers/ObjectRenamePopover/ObjectRenamePopover.d.ts +0 -7
- package/dist/types/src/containers/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +0 -1
- package/dist/types/src/containers/ObjectRenamePopover/index.d.ts +0 -2
- package/dist/types/src/operations/add-schema.d.ts.map +0 -1
- package/src/capabilities/migrations.ts +0 -59
- package/src/cli/index.ts +0 -5
- package/src/containers/ObjectRenamePopover/index.ts +0 -5
- package/src/operations/add-schema.ts +0 -51
- /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/SmallPresenceLive-GUF4WLUC.mjs.map} +0 -0
- /package/dist/lib/{browser/meta.mjs.map → neutral/SpacePlugin.mjs.map} +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → neutral/SpacePresence-ACEXUS3N.mjs.map} +0 -0
- /package/dist/lib/{browser/SpaceSettings-TR2IMHOL.mjs.map → neutral/SpaceSettings-RJWNYZAL.mjs.map} +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm → neutral}/meta.mjs.map +0 -0
- /package/dist/types/src/{cli/commands → commands}/database/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/database/query/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/database/query/query.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/database/util.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/queue/util.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/close/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/create/create.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/create/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/info/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/info/info.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/join/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/join/util.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/list/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/list/list.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/members/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/members/members.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/members/util.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/open/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/schema/list/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/schema/list/list.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/schema/list/util.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/share/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/sync/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/sync/sync.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/space/sync/sync.test.d.ts +0 -0
- /package/dist/types/src/components/{CreateDialog → CreateObjectPanel}/index.d.ts +0 -0
- /package/src/{cli/commands → commands}/database/index.ts +0 -0
- /package/src/{cli/commands → commands}/database/query/index.ts +0 -0
- /package/src/{cli/commands → commands}/database/query/query.ts +0 -0
- /package/src/{cli/commands → commands}/database/remove.ts +0 -0
- /package/src/{cli/commands → commands}/index.ts +0 -0
- /package/src/{cli/commands → commands}/queue/index.ts +0 -0
- /package/src/{cli/commands → commands}/queue/util.ts +0 -0
- /package/src/{cli/commands → commands}/space/close/close.ts +0 -0
- /package/src/{cli/commands → commands}/space/close/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/create/create.test.ts +0 -0
- /package/src/{cli/commands → commands}/space/create/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/info/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/info/info.test.ts +0 -0
- /package/src/{cli/commands → commands}/space/info/info.ts +0 -0
- /package/src/{cli/commands → commands}/space/join/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/join/join.ts +0 -0
- /package/src/{cli/commands → commands}/space/join/util.ts +0 -0
- /package/src/{cli/commands → commands}/space/list/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/list/list.ts +0 -0
- /package/src/{cli/commands → commands}/space/members/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/members/members.test.ts +0 -0
- /package/src/{cli/commands → commands}/space/members/members.ts +0 -0
- /package/src/{cli/commands → commands}/space/members/util.ts +0 -0
- /package/src/{cli/commands → commands}/space/open/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/open/open.ts +0 -0
- /package/src/{cli/commands → commands}/space/schema/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/schema/list/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/schema/list/list.test.ts +0 -0
- /package/src/{cli/commands → commands}/space/schema/list/util.ts +0 -0
- /package/src/{cli/commands → commands}/space/share/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/share/share.ts +0 -0
- /package/src/{cli/commands → commands}/space/sync/index.ts +0 -0
- /package/src/{cli/commands → commands}/space/sync/sync.test.ts +0 -0
- /package/src/{cli/commands → commands}/space/sync/sync.ts +0 -0
- /package/src/components/{CreateDialog → CreateObjectPanel}/index.ts +0 -0
|
@@ -6,27 +6,26 @@ import { type Atom } from '@effect-atom/atom-react';
|
|
|
6
6
|
import * as Effect from 'effect/Effect';
|
|
7
7
|
import * as Match from 'effect/Match';
|
|
8
8
|
import * as Option from 'effect/Option';
|
|
9
|
-
import * as Schema from 'effect/Schema';
|
|
10
9
|
|
|
11
|
-
import { Capability } from '@dxos/app-framework';
|
|
12
|
-
import {
|
|
10
|
+
import { Capability, type CapabilityManager } from '@dxos/app-framework';
|
|
11
|
+
import { AppNode, AppNodeMatcher, LayoutOperation, Segments } from '@dxos/app-toolkit';
|
|
13
12
|
import { type Space, SpaceState, isSpace } from '@dxos/client/echo';
|
|
14
|
-
import {
|
|
13
|
+
import { Operation } from '@dxos/compute';
|
|
14
|
+
import { Annotation, Collection, Filter, Obj, Query, Scope, Type } from '@dxos/echo';
|
|
15
15
|
import { AtomObj, AtomQuery } from '@dxos/echo-atom';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { ClientCapabilities } from '@dxos/plugin-client/types';
|
|
16
|
+
import { HiddenAnnotation } from '@dxos/echo/internal';
|
|
17
|
+
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
19
18
|
import { CreateAtom, GraphBuilder, Node } from '@dxos/plugin-graph';
|
|
20
19
|
import { ViewAnnotation } from '@dxos/schema';
|
|
21
20
|
import { createFilename, isNonNullable } from '@dxos/util';
|
|
22
21
|
|
|
23
22
|
import { meta } from '#meta';
|
|
24
23
|
import { SpaceOperation } from '#operations';
|
|
24
|
+
import { SpaceCapabilities } from '#types';
|
|
25
25
|
|
|
26
26
|
import {
|
|
27
27
|
ADD_VIEW_TO_SCHEMA_LABEL,
|
|
28
28
|
BLOCK_REORDER_ABOVE,
|
|
29
|
-
type MetadataResolver,
|
|
30
29
|
SNAPSHOT_BY_SCHEMA_LABEL,
|
|
31
30
|
STATIC_SCHEMA_TYPE,
|
|
32
31
|
TYPES_SECTION_TYPE,
|
|
@@ -35,25 +34,21 @@ import {
|
|
|
35
34
|
createObjectNode,
|
|
36
35
|
downloadBlob,
|
|
37
36
|
getDynamicLabel,
|
|
38
|
-
whenSpace,
|
|
39
37
|
} from './shared';
|
|
40
38
|
|
|
41
39
|
//
|
|
42
40
|
// Extension Factory
|
|
43
41
|
//
|
|
44
42
|
|
|
45
|
-
/** Creates
|
|
46
|
-
export const
|
|
43
|
+
/** Creates database extensions: types section, schema nodes, schema children, and schema actions. */
|
|
44
|
+
export const createDatabaseExtensions = Effect.fnUntraced(function* () {
|
|
47
45
|
const capabilities = yield* Capability.Service;
|
|
48
46
|
|
|
49
|
-
const resolve = (_get: any) => (typename: string) =>
|
|
50
|
-
capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
51
|
-
|
|
52
47
|
return yield* Effect.all([
|
|
53
48
|
// Types section virtual node under each space.
|
|
54
49
|
GraphBuilder.createExtension({
|
|
55
|
-
id: '
|
|
56
|
-
match: whenSpace,
|
|
50
|
+
id: 'typesSection',
|
|
51
|
+
match: AppNodeMatcher.whenSpace,
|
|
57
52
|
connector: (space, get) => {
|
|
58
53
|
const spaceState = get(CreateAtom.fromObservable(space.state));
|
|
59
54
|
if (spaceState !== SpaceState.SPACE_READY) {
|
|
@@ -65,8 +60,9 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
65
60
|
id: Segments.types,
|
|
66
61
|
type: TYPES_SECTION_TYPE,
|
|
67
62
|
label: ['types-section.label', { ns: meta.id }],
|
|
68
|
-
icon: 'ph--
|
|
63
|
+
icon: 'ph--database--regular',
|
|
69
64
|
space,
|
|
65
|
+
position: 'last',
|
|
70
66
|
testId: 'spacePlugin.typesSection',
|
|
71
67
|
}),
|
|
72
68
|
]);
|
|
@@ -81,21 +77,24 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
81
77
|
return node.type === TYPES_SECTION_TYPE && space ? Option.some(space) : Option.none();
|
|
82
78
|
},
|
|
83
79
|
connector: (space, get) => {
|
|
80
|
+
// Persisted types live in the space db; static/runtime types live in the shared registry.
|
|
81
|
+
// Fan across both so the space's own types appear without leaking other spaces' types.
|
|
84
82
|
const allSchemas = get(
|
|
85
|
-
AtomQuery.
|
|
83
|
+
AtomQuery.make(space.db, Query.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry())),
|
|
86
84
|
);
|
|
87
85
|
|
|
88
|
-
const userSchemas = allSchemas.filter((
|
|
89
|
-
if (
|
|
86
|
+
const userSchemas = allSchemas.filter((type) => {
|
|
87
|
+
if (Type.isRelation(type)) {
|
|
90
88
|
return false;
|
|
91
89
|
}
|
|
92
|
-
if (
|
|
90
|
+
if (Type.isTypeKind(type)) {
|
|
93
91
|
return false;
|
|
94
92
|
}
|
|
95
|
-
|
|
93
|
+
const schema = Type.getSchema(type);
|
|
94
|
+
if (HiddenAnnotation.get(schema).pipe(Option.getOrElse(() => false))) {
|
|
96
95
|
return false;
|
|
97
96
|
}
|
|
98
|
-
if (Type.getTypename(
|
|
97
|
+
if (Type.getTypename(type) === Type.getTypename(Collection.Collection)) {
|
|
99
98
|
return false;
|
|
100
99
|
}
|
|
101
100
|
return true;
|
|
@@ -104,36 +103,33 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
104
103
|
const viewIndex = buildViewIndex(get, space, allSchemas);
|
|
105
104
|
|
|
106
105
|
const visibleSchemas = userSchemas.filter((schema) => {
|
|
107
|
-
if (Type.
|
|
106
|
+
if (Type.getDatabase(schema) != null) {
|
|
108
107
|
return true;
|
|
109
108
|
}
|
|
110
109
|
const typename = Type.getTypename(schema);
|
|
111
110
|
const objects = get(AtomQuery.make(space.db, Filter.typename(typename)));
|
|
111
|
+
if (ViewAnnotation.has(schema)) {
|
|
112
|
+
return objects.some((obj) => !viewIndex.isView(obj));
|
|
113
|
+
}
|
|
112
114
|
return objects.length > 0 || viewIndex.typenamesWithViews.has(typename);
|
|
113
115
|
});
|
|
114
116
|
|
|
115
|
-
return Effect.succeed(
|
|
116
|
-
visibleSchemas.map((schema) => createSchemaNode({ schema, space, resolve: resolve(get), get })),
|
|
117
|
-
);
|
|
117
|
+
return Effect.succeed(visibleSchemas.map((schema) => createSchemaNode({ schema, space, get })));
|
|
118
118
|
},
|
|
119
119
|
}),
|
|
120
120
|
|
|
121
121
|
// {All} virtual node + view objects under each schema node.
|
|
122
122
|
GraphBuilder.createExtension({
|
|
123
|
-
id: '
|
|
123
|
+
id: 'schemaChildren',
|
|
124
124
|
match: (node) => {
|
|
125
125
|
const space = isSpace(node.properties.space) ? node.properties.space : undefined;
|
|
126
|
-
return space &&
|
|
127
|
-
? Option.some({ space, schema: node.data })
|
|
128
|
-
: Option.none();
|
|
126
|
+
return space && Type.isType(node.data) ? Option.some({ space, schema: node.data }) : Option.none();
|
|
129
127
|
},
|
|
130
128
|
connector: ({ space, schema }, get) => {
|
|
131
129
|
const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
|
|
132
|
-
const schemas = client
|
|
133
|
-
? get(AtomQuery.fromQuery(client.graph.schemaRegistry.query({ location: ['runtime'] })))
|
|
134
|
-
: [];
|
|
130
|
+
const schemas = client ? get(AtomQuery.make(client.graph.registry, Filter.type(Type.Type))) : [];
|
|
135
131
|
|
|
136
|
-
const typename =
|
|
132
|
+
const typename = Type.getTypename(schema);
|
|
137
133
|
|
|
138
134
|
// {All} virtual node.
|
|
139
135
|
const allNode = Node.make({
|
|
@@ -157,12 +153,11 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
157
153
|
// View objects for this schema.
|
|
158
154
|
const viewIndex = buildViewIndex(get, space, schemas);
|
|
159
155
|
const viewNodes = viewIndex
|
|
160
|
-
.getViewsForTypename(typename)
|
|
156
|
+
.getViewsForTypename(typename!)
|
|
161
157
|
.map((object: Obj.Unknown) =>
|
|
162
158
|
createObjectNode({
|
|
163
159
|
db: space.db,
|
|
164
160
|
object,
|
|
165
|
-
resolve: resolve(get),
|
|
166
161
|
droppable: false,
|
|
167
162
|
}),
|
|
168
163
|
)
|
|
@@ -174,7 +169,7 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
174
169
|
|
|
175
170
|
// Objects of the schema type under the {All} node.
|
|
176
171
|
GraphBuilder.createExtension({
|
|
177
|
-
id: '
|
|
172
|
+
id: 'typeCollectionObjects',
|
|
178
173
|
match: (node) => {
|
|
179
174
|
if (node.type !== TYPE_COLLECTION_TYPE || !node.data?.space || !node.data?.typename) {
|
|
180
175
|
return Option.none();
|
|
@@ -182,7 +177,12 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
182
177
|
return Option.some({ space: node.data.space as Space, typename: node.data.typename as string });
|
|
183
178
|
},
|
|
184
179
|
connector: ({ space, typename }, get) => {
|
|
185
|
-
const
|
|
180
|
+
const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
|
|
181
|
+
const schemas = client ? get(AtomQuery.make(client.graph.registry, Filter.type(Type.Type))) : [];
|
|
182
|
+
const viewIndex = buildViewIndex(get, space, schemas);
|
|
183
|
+
const objects = get(AtomQuery.make(space.db, Filter.typename(typename))).filter(
|
|
184
|
+
(object: Obj.Unknown) => !viewIndex.isView(object) && !Obj.getParent(object),
|
|
185
|
+
);
|
|
186
186
|
|
|
187
187
|
return Effect.succeed(
|
|
188
188
|
objects
|
|
@@ -191,7 +191,6 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
191
191
|
return createObjectNode({
|
|
192
192
|
db: space.db,
|
|
193
193
|
object,
|
|
194
|
-
resolve: resolve(get),
|
|
195
194
|
droppable: false,
|
|
196
195
|
});
|
|
197
196
|
})
|
|
@@ -207,30 +206,21 @@ export const createTypeExtensions = Effect.fnUntraced(function* () {
|
|
|
207
206
|
|
|
208
207
|
// Actions for schema nodes.
|
|
209
208
|
GraphBuilder.createExtension({
|
|
210
|
-
id: '
|
|
209
|
+
id: 'schemaActions',
|
|
211
210
|
match: (node) => {
|
|
212
211
|
const space = isSpace(node.properties.space) ? node.properties.space : undefined;
|
|
213
|
-
return space &&
|
|
212
|
+
return space && Type.isType(node.data) ? Option.some({ space, schema: node.data }) : Option.none();
|
|
214
213
|
},
|
|
215
214
|
actions: ({ space, schema }, get) => {
|
|
216
215
|
const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
|
|
217
|
-
const schemas = client
|
|
218
|
-
? get(AtomQuery.fromQuery(client.graph.schemaRegistry.query({ location: ['runtime'] })))
|
|
219
|
-
: [];
|
|
216
|
+
const schemas = client ? get(AtomQuery.make(client.graph.registry, Filter.type(Type.Type))) : [];
|
|
220
217
|
|
|
221
|
-
const targetTypename = Type.getTypename(schema
|
|
218
|
+
const targetTypename = Type.getTypename(schema);
|
|
222
219
|
const viewIndex = buildViewIndex(get, space, schemas);
|
|
223
220
|
const deletable =
|
|
224
|
-
Type.
|
|
221
|
+
Type.getDatabase(schema) != null && viewIndex.getViewsForTypename(targetTypename).length === 0;
|
|
225
222
|
|
|
226
|
-
return Effect.succeed(
|
|
227
|
-
createSchemaActions({
|
|
228
|
-
schema: schema as Type.AnyObj,
|
|
229
|
-
space,
|
|
230
|
-
deletable,
|
|
231
|
-
resolve: resolve(get),
|
|
232
|
-
}),
|
|
233
|
-
);
|
|
223
|
+
return Effect.succeed(createSchemaActions({ type: schema, space, deletable, capabilities }));
|
|
234
224
|
},
|
|
235
225
|
}),
|
|
236
226
|
]);
|
|
@@ -254,32 +244,39 @@ const uniqueSchemasByTypename = <TSchema extends Type.AnyEntity>(schemas: TSchem
|
|
|
254
244
|
const createSchemaNode = ({
|
|
255
245
|
schema,
|
|
256
246
|
space,
|
|
257
|
-
resolve,
|
|
258
247
|
get,
|
|
259
248
|
}: {
|
|
260
249
|
schema: Type.AnyEntity;
|
|
261
250
|
space: Space;
|
|
262
|
-
resolve: MetadataResolver;
|
|
263
251
|
get: Atom.Context;
|
|
264
252
|
}): Node.NodeArg<Type.AnyEntity> => {
|
|
265
253
|
const typename = Type.getTypename(schema);
|
|
266
|
-
const
|
|
254
|
+
const iconAnnotation =
|
|
255
|
+
Type.getDatabase(schema) == null
|
|
256
|
+
? Option.getOrUndefined(Annotation.IconAnnotation.get(Type.getSchema(schema)))
|
|
257
|
+
: undefined;
|
|
267
258
|
const { label, nodeId } = Match.value(schema).pipe(
|
|
268
|
-
Match.when(
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
259
|
+
Match.when(
|
|
260
|
+
(value: Type.AnyEntity) => Type.getDatabase(value) != null,
|
|
261
|
+
(mutableSchema) => {
|
|
262
|
+
const snapshot = get(AtomObj.make(mutableSchema));
|
|
263
|
+
return {
|
|
264
|
+
label: (snapshot as { name?: string }).name || [
|
|
265
|
+
'object-name.placeholder',
|
|
266
|
+
{ ns: Type.getTypename(Type.Type) },
|
|
267
|
+
],
|
|
268
|
+
nodeId: typename,
|
|
269
|
+
};
|
|
270
|
+
},
|
|
271
|
+
),
|
|
276
272
|
Match.orElse(() => ({
|
|
277
|
-
label: getDynamicLabel('typename.label', typename, { count: 2,
|
|
273
|
+
label: getDynamicLabel('typename.label', typename, { count: 2, defaultValue: typename }),
|
|
278
274
|
nodeId: typename,
|
|
279
275
|
})),
|
|
280
276
|
);
|
|
281
|
-
const icon =
|
|
282
|
-
|
|
277
|
+
const icon =
|
|
278
|
+
Type.getDatabase(schema) != null ? 'ph--cube--regular' : (iconAnnotation?.icon ?? 'ph--circle-dashed--regular');
|
|
279
|
+
const iconHue = Type.getDatabase(schema) != null ? 'neutral' : iconAnnotation?.hue;
|
|
283
280
|
return Node.make({
|
|
284
281
|
id: nodeId,
|
|
285
282
|
type: STATIC_SCHEMA_TYPE,
|
|
@@ -301,20 +298,22 @@ const createSchemaNode = ({
|
|
|
301
298
|
|
|
302
299
|
/** Builds schema actions (add view, rename, delete, snapshot). */
|
|
303
300
|
const createSchemaActions = ({
|
|
304
|
-
|
|
301
|
+
type,
|
|
305
302
|
space,
|
|
306
303
|
deletable,
|
|
307
|
-
|
|
304
|
+
capabilities,
|
|
308
305
|
}: {
|
|
309
|
-
|
|
306
|
+
type: Type.AnyEntity;
|
|
310
307
|
space: Space;
|
|
311
308
|
deletable: boolean;
|
|
312
|
-
|
|
309
|
+
capabilities: CapabilityManager.CapabilityManager;
|
|
313
310
|
}) => {
|
|
314
|
-
const typename = Type.getTypename(
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
|
|
311
|
+
const typename = Type.getTypename(type);
|
|
312
|
+
const createEntry = capabilities
|
|
313
|
+
.getAll(SpaceCapabilities.CreateObjectEntry)
|
|
314
|
+
.find((entry: SpaceCapabilities.CreateObjectEntry) => entry.id === typename);
|
|
315
|
+
const createObjectFn = createEntry?.createObject;
|
|
316
|
+
const inputSchema = createEntry?.inputSchema;
|
|
318
317
|
|
|
319
318
|
const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
|
|
320
319
|
...(createObjectFn
|
|
@@ -328,11 +327,9 @@ const createSchemaActions = ({
|
|
|
328
327
|
typename,
|
|
329
328
|
});
|
|
330
329
|
} else {
|
|
331
|
-
const result = yield* createObjectFn({}, { db: space.db, target: space.db })
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
never
|
|
335
|
-
>;
|
|
330
|
+
const result = yield* createObjectFn({}, { db: space.db, target: space.db }).pipe(
|
|
331
|
+
Effect.provideService(Capability.Service, capabilities),
|
|
332
|
+
);
|
|
336
333
|
if (result.subject.length > 0) {
|
|
337
334
|
yield* Operation.invoke(LayoutOperation.Open, {
|
|
338
335
|
subject: [...result.subject],
|
|
@@ -356,7 +353,7 @@ const createSchemaActions = ({
|
|
|
356
353
|
Operation.invoke(SpaceOperation.OpenCreateObject, {
|
|
357
354
|
target: space.db,
|
|
358
355
|
views: true,
|
|
359
|
-
initialFormValues: { typename: Type.getTypename(
|
|
356
|
+
initialFormValues: { typename: Type.getTypename(type) },
|
|
360
357
|
}),
|
|
361
358
|
properties: {
|
|
362
359
|
label: ADD_VIEW_TO_SCHEMA_LABEL,
|
|
@@ -368,16 +365,16 @@ const createSchemaActions = ({
|
|
|
368
365
|
Node.makeAction({
|
|
369
366
|
id: SpaceOperation.RenameObject.meta.key,
|
|
370
367
|
data: (params?: Node.InvokeProps) =>
|
|
371
|
-
Type.
|
|
368
|
+
Type.getDatabase(type) != null
|
|
372
369
|
? Operation.invoke(SpaceOperation.RenameObject, {
|
|
373
|
-
object:
|
|
370
|
+
object: type,
|
|
374
371
|
caller: `${params?.caller}:${params?.parent?.id}`,
|
|
375
372
|
})
|
|
376
373
|
: Effect.fail(new Error('Cannot rename immutable schema')),
|
|
377
374
|
properties: {
|
|
378
|
-
label: getDynamicLabel('rename
|
|
375
|
+
label: getDynamicLabel('rename-object.label', Type.getTypename(Type.Type)),
|
|
379
376
|
icon: 'ph--pencil-simple-line--regular',
|
|
380
|
-
disabled:
|
|
377
|
+
disabled: Type.getDatabase(type) == null,
|
|
381
378
|
disposition: 'list-item',
|
|
382
379
|
testId: 'spacePlugin.renameObject',
|
|
383
380
|
},
|
|
@@ -385,13 +382,13 @@ const createSchemaActions = ({
|
|
|
385
382
|
Node.makeAction({
|
|
386
383
|
id: SpaceOperation.RemoveObjects.meta.key,
|
|
387
384
|
data: () =>
|
|
388
|
-
Type.
|
|
385
|
+
Type.getDatabase(type) != null
|
|
389
386
|
? Operation.invoke(SpaceOperation.RemoveObjects, {
|
|
390
|
-
objects: [
|
|
387
|
+
objects: [type],
|
|
391
388
|
})
|
|
392
389
|
: Effect.succeed(undefined),
|
|
393
390
|
properties: {
|
|
394
|
-
label: getDynamicLabel('delete object label', Type.getTypename(Type.
|
|
391
|
+
label: getDynamicLabel('delete object label', Type.getTypename(Type.Type)),
|
|
395
392
|
icon: 'ph--trash--regular',
|
|
396
393
|
disposition: 'list-item',
|
|
397
394
|
disabled: !deletable,
|
|
@@ -403,11 +400,11 @@ const createSchemaActions = ({
|
|
|
403
400
|
data: Effect.fnUntraced(function* () {
|
|
404
401
|
const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
|
|
405
402
|
db: space.db,
|
|
406
|
-
query: Query.select(Filter.type(
|
|
403
|
+
query: Query.select(Filter.type(type)).ast,
|
|
407
404
|
});
|
|
408
405
|
if (result.snapshot) {
|
|
409
406
|
yield* Effect.tryPromise(() =>
|
|
410
|
-
downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(
|
|
407
|
+
downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(type)], ext: 'json' })),
|
|
411
408
|
);
|
|
412
409
|
}
|
|
413
410
|
}),
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
export { createSpaceExtensions } from './spaces';
|
|
6
|
-
export {
|
|
6
|
+
export { createDatabaseExtensions } from './database';
|
|
7
7
|
export { createCollectionExtensions } from './collections';
|
|
8
8
|
export { createCompanionExtensions } from './companions';
|
|
9
9
|
export { createSettingsExtensions } from './settings';
|
|
@@ -3,23 +3,54 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import * as Effect from 'effect/Effect';
|
|
6
|
+
import * as Option from 'effect/Option';
|
|
6
7
|
|
|
7
|
-
import { isPersonalSpace } from '@dxos/app-toolkit';
|
|
8
|
-
import {
|
|
8
|
+
import { AppNode, AppNodeMatcher, isPersonalSpace } from '@dxos/app-toolkit';
|
|
9
|
+
import { type Space, isSpace } from '@dxos/client/echo';
|
|
10
|
+
import { GraphBuilder, Node } from '@dxos/plugin-graph';
|
|
9
11
|
|
|
10
12
|
import { meta } from '#meta';
|
|
13
|
+
import { SETTINGS_SECTION_ID, SETTINGS_SECTION_TYPE } from '#types';
|
|
11
14
|
|
|
12
15
|
//
|
|
13
16
|
// Extension Factory
|
|
14
17
|
//
|
|
15
18
|
|
|
16
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Settings section attached directly under each Space node, plus its children.
|
|
21
|
+
*
|
|
22
|
+
* The virtual `settings` section is pinned to the top via `position: 'first'`
|
|
23
|
+
* so it sits above the un-positioned middle band (collections, mailboxes,
|
|
24
|
+
* automations, integrations, etc.). It groups the panels contributed by this
|
|
25
|
+
* plugin (general, members) and by other plugins (automation, functions).
|
|
26
|
+
*/
|
|
17
27
|
export const createSettingsExtensions = Effect.fnUntraced(function* () {
|
|
18
|
-
const
|
|
19
|
-
id: '
|
|
20
|
-
match:
|
|
21
|
-
connector: (
|
|
22
|
-
|
|
28
|
+
const sectionExtension = yield* GraphBuilder.createExtension({
|
|
29
|
+
id: 'settingsSection',
|
|
30
|
+
match: AppNodeMatcher.whenSpace,
|
|
31
|
+
connector: (space) =>
|
|
32
|
+
Effect.succeed([
|
|
33
|
+
AppNode.makeSection({
|
|
34
|
+
id: SETTINGS_SECTION_ID,
|
|
35
|
+
type: SETTINGS_SECTION_TYPE,
|
|
36
|
+
label: ['settings-section.label', { ns: meta.id }],
|
|
37
|
+
icon: 'ph--sliders--regular',
|
|
38
|
+
iconHue: 'indigo',
|
|
39
|
+
space,
|
|
40
|
+
position: 'first',
|
|
41
|
+
testId: 'spacePlugin.settings',
|
|
42
|
+
}),
|
|
43
|
+
]),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const childrenExtension = yield* GraphBuilder.createExtension({
|
|
47
|
+
id: 'settingsSections',
|
|
48
|
+
match: (node) => {
|
|
49
|
+
const space = isSpace(node.properties.space) ? (node.properties.space as Space) : undefined;
|
|
50
|
+
return node.type === SETTINGS_SECTION_TYPE && space ? Option.some(space) : Option.none();
|
|
51
|
+
},
|
|
52
|
+
connector: (space) => {
|
|
53
|
+
const personal = isPersonalSpace(space);
|
|
23
54
|
return Effect.succeed([
|
|
24
55
|
Node.make({
|
|
25
56
|
id: 'general',
|
|
@@ -27,8 +58,9 @@ export const createSettingsExtensions = Effect.fnUntraced(function* () {
|
|
|
27
58
|
data: `${meta.id}.general`,
|
|
28
59
|
properties: {
|
|
29
60
|
label: ['space-settings-properties.label', { ns: meta.id }],
|
|
30
|
-
icon: 'ph--
|
|
31
|
-
|
|
61
|
+
icon: 'ph--brackets-curly--regular',
|
|
62
|
+
iconHue: 'indigo',
|
|
63
|
+
space,
|
|
32
64
|
testId: 'spacePlugin.general',
|
|
33
65
|
},
|
|
34
66
|
}),
|
|
@@ -41,24 +73,16 @@ export const createSettingsExtensions = Effect.fnUntraced(function* () {
|
|
|
41
73
|
properties: {
|
|
42
74
|
label: ['members-panel.label', { ns: meta.id }],
|
|
43
75
|
icon: 'ph--users--regular',
|
|
44
|
-
|
|
76
|
+
iconHue: 'indigo',
|
|
77
|
+
space,
|
|
45
78
|
testId: 'spacePlugin.members',
|
|
46
79
|
},
|
|
47
80
|
}),
|
|
48
81
|
]
|
|
49
82
|
: []),
|
|
50
|
-
Node.make({
|
|
51
|
-
id: 'schema',
|
|
52
|
-
type: `${meta.id}.schema`,
|
|
53
|
-
data: `${meta.id}.schema`,
|
|
54
|
-
properties: {
|
|
55
|
-
label: ['space-settings-schema.label', { ns: meta.id }],
|
|
56
|
-
icon: 'ph--shapes--regular',
|
|
57
|
-
testId: 'spacePlugin.schema',
|
|
58
|
-
},
|
|
59
|
-
}),
|
|
60
83
|
]);
|
|
61
84
|
},
|
|
62
85
|
});
|
|
63
|
-
|
|
86
|
+
|
|
87
|
+
return [sectionExtension, childrenExtension];
|
|
64
88
|
});
|
|
@@ -6,32 +6,23 @@ import * as Registry from '@effect-atom/atom/Registry';
|
|
|
6
6
|
import * as Schema from 'effect/Schema';
|
|
7
7
|
import { afterEach, beforeEach, describe, test } from 'vitest';
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { type Space, SpaceState } from '@dxos/client/echo';
|
|
10
|
+
import { Annotation, DXN, Entity, Filter, Obj, Query, Ref, Type, View } from '@dxos/echo';
|
|
10
11
|
import { type EchoDatabase } from '@dxos/echo-db';
|
|
11
12
|
import { EchoTestBuilder } from '@dxos/echo-db/testing';
|
|
13
|
+
import { MigrationVersionAnnotation, Migrations } from '@dxos/migrations';
|
|
12
14
|
import { ViewAnnotation } from '@dxos/schema';
|
|
13
15
|
|
|
14
|
-
import { buildViewIndex } from './shared';
|
|
16
|
+
import { buildViewIndex, checkPendingMigration } from './shared';
|
|
15
17
|
|
|
16
18
|
const TestContact = Schema.Struct({
|
|
17
19
|
name: Schema.String,
|
|
18
|
-
}).pipe(
|
|
19
|
-
Type.object({
|
|
20
|
-
typename: 'test/Contact',
|
|
21
|
-
version: '0.1.0',
|
|
22
|
-
}),
|
|
23
|
-
);
|
|
20
|
+
}).pipe(Type.makeObject(DXN.make('com.example.type.contact', '0.1.0')));
|
|
24
21
|
|
|
25
22
|
const TestViewWrapper = Schema.Struct({
|
|
26
23
|
name: Schema.optional(Schema.String),
|
|
27
24
|
view: Ref.Ref(View.View),
|
|
28
|
-
}).pipe(
|
|
29
|
-
Type.object({
|
|
30
|
-
typename: 'test/ViewWrapper',
|
|
31
|
-
version: '0.1.0',
|
|
32
|
-
}),
|
|
33
|
-
ViewAnnotation.set(true),
|
|
34
|
-
);
|
|
25
|
+
}).pipe(ViewAnnotation.set(['view']), Type.makeObject(DXN.make('com.example.type.viewWrapper', '0.1.0')));
|
|
35
26
|
|
|
36
27
|
describe('buildViewIndex', () => {
|
|
37
28
|
let testBuilder: EchoTestBuilder;
|
|
@@ -58,7 +49,10 @@ describe('buildViewIndex', () => {
|
|
|
58
49
|
db.add(Obj.make(TestViewWrapper, { view: Ref.make(viewObj) }));
|
|
59
50
|
await db.flush();
|
|
60
51
|
|
|
61
|
-
const allSchemas = db.
|
|
52
|
+
const allSchemas = db.graph.registry
|
|
53
|
+
.list()
|
|
54
|
+
.filter(Type.isType)
|
|
55
|
+
.filter((t) => !Type.isTypeKind(t));
|
|
62
56
|
const viewIndex = buildViewIndex(registry.get.bind(registry) as any, { db } as any, allSchemas);
|
|
63
57
|
|
|
64
58
|
expect(viewIndex.typenamesWithViews.has(Type.getTypename(TestContact))).toBe(true);
|
|
@@ -73,7 +67,10 @@ describe('buildViewIndex', () => {
|
|
|
73
67
|
db.add(Obj.make(TestViewWrapper, { view: Ref.make(viewObj) }));
|
|
74
68
|
await db.flush();
|
|
75
69
|
|
|
76
|
-
const allSchemas = db.
|
|
70
|
+
const allSchemas = db.graph.registry
|
|
71
|
+
.list()
|
|
72
|
+
.filter(Type.isType)
|
|
73
|
+
.filter((t) => !Type.isTypeKind(t));
|
|
77
74
|
const viewIndex = buildViewIndex(registry.get.bind(registry) as any, { db } as any, allSchemas);
|
|
78
75
|
|
|
79
76
|
expect(viewIndex.typenamesWithViews.has(Type.getTypename(TestContact))).toBe(false);
|
|
@@ -89,7 +86,10 @@ describe('buildViewIndex', () => {
|
|
|
89
86
|
const tableView = db.add(Obj.make(TestViewWrapper, { view: Ref.make(viewObj) }));
|
|
90
87
|
await db.flush();
|
|
91
88
|
|
|
92
|
-
const allSchemas = db.
|
|
89
|
+
const allSchemas = db.graph.registry
|
|
90
|
+
.list()
|
|
91
|
+
.filter(Type.isType)
|
|
92
|
+
.filter((t) => !Type.isTypeKind(t));
|
|
93
93
|
const viewIndex = buildViewIndex(registry.get.bind(registry) as any, { db } as any, allSchemas);
|
|
94
94
|
|
|
95
95
|
const views = viewIndex.getViewsForTypename(Type.getTypename(TestContact));
|
|
@@ -100,13 +100,71 @@ describe('buildViewIndex', () => {
|
|
|
100
100
|
test('returns empty index when no view schemas exist', async ({ expect }) => {
|
|
101
101
|
await db.flush();
|
|
102
102
|
|
|
103
|
-
const userSchemas = db.
|
|
104
|
-
.
|
|
105
|
-
.
|
|
106
|
-
.filter((
|
|
103
|
+
const userSchemas = db.graph.registry
|
|
104
|
+
.list()
|
|
105
|
+
.filter(Type.isType)
|
|
106
|
+
.filter((t) => !Type.isTypeKind(t))
|
|
107
|
+
.filter((schema) => !ViewAnnotation.has(schema));
|
|
107
108
|
const viewIndex = buildViewIndex(registry.get.bind(registry) as any, { db } as any, userSchemas);
|
|
108
109
|
|
|
109
110
|
expect(viewIndex.typenamesWithViews.size).toBe(0);
|
|
110
111
|
expect(viewIndex.getViewsForTypename(Type.getTypename(TestContact))).toHaveLength(0);
|
|
111
112
|
});
|
|
112
113
|
});
|
|
114
|
+
|
|
115
|
+
describe('checkPendingMigration', () => {
|
|
116
|
+
const TARGET = '1970-01-02';
|
|
117
|
+
|
|
118
|
+
// Minimal fake exercising only the fields checkPendingMigration reads (state, properties).
|
|
119
|
+
// Must pass isEntity (checks for Entity.KindId) and have Obj.Meta so Annotation.get works.
|
|
120
|
+
const makeFakeProperties = (version?: string): Record<string | symbol, unknown> => {
|
|
121
|
+
const annotations: Record<string, unknown> = {};
|
|
122
|
+
if (version !== undefined) {
|
|
123
|
+
Annotation.setDictionary(annotations as any, MigrationVersionAnnotation, version);
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
[Entity.KindId]: Entity.Kind.Object,
|
|
127
|
+
[Obj.Meta]: { keys: [], annotations },
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
const makeFakeSpace = (state: SpaceState, version?: string): Space =>
|
|
132
|
+
({ state: { get: () => state }, properties: makeFakeProperties(version) }) as unknown as Space;
|
|
133
|
+
|
|
134
|
+
let savedNamespace: string | undefined;
|
|
135
|
+
let savedMigrations: typeof Migrations.migrations;
|
|
136
|
+
|
|
137
|
+
beforeEach(() => {
|
|
138
|
+
savedNamespace = Migrations.namespace;
|
|
139
|
+
savedMigrations = Migrations.migrations;
|
|
140
|
+
Migrations.define('test', [
|
|
141
|
+
{ version: '1970-01-01', next: async () => {} },
|
|
142
|
+
{ version: TARGET, next: async () => {} },
|
|
143
|
+
]);
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
afterEach(() => {
|
|
147
|
+
Migrations.namespace = savedNamespace;
|
|
148
|
+
Migrations.migrations = savedMigrations;
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
test('SPACE_REQUIRES_MIGRATION is pending regardless of version property', ({ expect }) => {
|
|
152
|
+
const space = makeFakeSpace(SpaceState.SPACE_REQUIRES_MIGRATION, TARGET);
|
|
153
|
+
expect(checkPendingMigration(space)).toBe(true);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
test('READY with version matching target is not pending', ({ expect }) => {
|
|
157
|
+
const space = makeFakeSpace(SpaceState.SPACE_READY, TARGET);
|
|
158
|
+
expect(checkPendingMigration(space)).toBe(false);
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
test('READY with undefined version is pending (legacy property-migration preserved)', ({ expect }) => {
|
|
162
|
+
const space = makeFakeSpace(SpaceState.SPACE_READY);
|
|
163
|
+
expect(checkPendingMigration(space)).toBe(true);
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
test('READY with stale version is pending', ({ expect }) => {
|
|
167
|
+
const space = makeFakeSpace(SpaceState.SPACE_READY, '1970-01-01');
|
|
168
|
+
expect(checkPendingMigration(space)).toBe(true);
|
|
169
|
+
});
|
|
170
|
+
});
|