@dxos/plugin-space 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{CollectionArticle-WASDM637.mjs → CollectionArticle-WPLUW5HF.mjs} +5 -36
- package/dist/lib/browser/CollectionArticle-WPLUW5HF.mjs.map +7 -0
- package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs → CollectionSection-H2MBNI63.mjs} +2 -2
- package/dist/lib/browser/{CreateObjectDialog-MA6DPYMD.mjs → CreateObjectDialog-YUBUWSEL.mjs} +17 -21
- package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
- package/dist/lib/browser/{CreateSpaceDialog-WCEICWIE.mjs → CreateSpaceDialog-3M2LAWV6.mjs} +7 -7
- package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
- package/dist/lib/browser/{InlineSyncStatus-BT7BRBCO.mjs → InlineSyncStatus-K5MZ3YMZ.mjs} +9 -18
- package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
- package/dist/lib/browser/{JoinDialog-PMCAIRCU.mjs → JoinDialog-PBK2RE5F.mjs} +8 -10
- package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
- package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs → MembersContainer-OGYV2L4M.mjs} +4 -4
- package/dist/lib/browser/{MenuFooter-HYBTNOBT.mjs → MenuFooter-XCBDK7WP.mjs} +3 -4
- package/dist/lib/{node-esm/MenuFooter-2QB3453Y.mjs.map → browser/MenuFooter-XCBDK7WP.mjs.map} +1 -1
- package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs → ObjectCardStack-OMXF2DSG.mjs} +6 -6
- package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs → ObjectDetails-QFTQQN4W.mjs} +6 -6
- package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs → ObjectRenamePopover-JNPJIFIR.mjs} +3 -3
- package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs.map → ObjectRenamePopover-JNPJIFIR.mjs.map} +1 -1
- package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs → RecordArticle-BO2XHBFN.mjs} +2 -2
- package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs → SchemaContainer-QWCSIZBS.mjs} +2 -2
- package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
- package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs → SpacePluginSettings-QGZKNQLK.mjs} +4 -4
- package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
- package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs → SpaceRenamePopover-ZL6RRZ2B.mjs} +3 -3
- package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs.map → SpaceRenamePopover-ZL6RRZ2B.mjs.map} +1 -1
- package/dist/lib/browser/{SpaceSettingsContainer-UBMVKUPR.mjs → SpaceSettingsContainer-MIOOT63N.mjs} +5 -5
- package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
- package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs → SyncStatus-6N7JJ7XF.mjs} +6 -6
- package/dist/lib/browser/{ViewEditor-F74RR542.mjs → ViewEditor-3FX5HDRT.mjs} +4 -7
- package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs +1203 -0
- package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs → app-graph-serializer-UZWWGLGY.mjs} +5 -5
- package/dist/lib/browser/{chunk-RWOK4F4G.mjs → chunk-2WHUSAHE.mjs} +17 -14
- package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-USN5QKRV.mjs → chunk-6IT5IBB5.mjs} +54 -86
- package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
- package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
- package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PXVKN4LU.mjs → chunk-AUX3RRLY.mjs} +34 -9
- package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
- package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-XIIYC7P5.mjs → chunk-ICXESMDI.mjs} +6 -6
- package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
- package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
- package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-J5F4LUJD.mjs → chunk-SSTUPFZ2.mjs} +3 -3
- package/dist/lib/browser/{chunk-ABCDB5YC.mjs → chunk-UYOJYBGW.mjs} +7 -16
- package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +8 -17
- package/dist/lib/browser/cli/index.mjs.map +3 -3
- package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs → identity-created-ETXNQYR6.mjs} +4 -4
- package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs.map → identity-created-ETXNQYR6.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +33 -53
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-Y3HYRXX7.mjs → operation-resolver-D4LHB4D4.mjs} +64 -88
- package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
- package/dist/lib/browser/{react-root-UYBW5RE7.mjs → react-root-OD2HP63B.mjs} +6 -6
- package/dist/lib/browser/{react-surface-NJ23NZFF.mjs → react-surface-E4TAFED5.mjs} +57 -79
- package/dist/lib/browser/react-surface-E4TAFED5.mjs.map +7 -0
- package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
- package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
- package/dist/lib/browser/{settings-2ELVUFDR.mjs → settings-RUDP2Q56.mjs} +3 -3
- package/dist/lib/browser/{spaces-ready-Q6JASPT4.mjs → spaces-ready-B2GYL5IN.mjs} +6 -6
- package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
- package/dist/lib/browser/{state-CTX4WQOM.mjs → state-I6JDZCDE.mjs} +5 -5
- package/dist/lib/browser/{state-CTX4WQOM.mjs.map → state-I6JDZCDE.mjs.map} +2 -2
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{CollectionArticle-A6GGG73Z.mjs → CollectionArticle-JGVNBX66.mjs} +5 -36
- package/dist/lib/node-esm/CollectionArticle-JGVNBX66.mjs.map +7 -0
- package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs → CollectionSection-BI66Y34F.mjs} +2 -2
- package/dist/lib/node-esm/{CreateObjectDialog-4WEFNDDF.mjs → CreateObjectDialog-B6OLP5VQ.mjs} +17 -21
- package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
- package/dist/lib/node-esm/{CreateSpaceDialog-P7QCPB5J.mjs → CreateSpaceDialog-J47M5FPQ.mjs} +7 -7
- package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
- package/dist/lib/node-esm/{InlineSyncStatus-3PCXU7NX.mjs → InlineSyncStatus-BLD57LB5.mjs} +9 -18
- package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
- package/dist/lib/node-esm/{JoinDialog-XEOLJZVN.mjs → JoinDialog-XCOYKSHA.mjs} +8 -10
- package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
- package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs → MembersContainer-4PV3Z4BA.mjs} +4 -4
- package/dist/lib/node-esm/{MenuFooter-2QB3453Y.mjs → MenuFooter-PXG2GV6A.mjs} +3 -4
- package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs → ObjectCardStack-457SNNVF.mjs} +6 -6
- package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs → ObjectDetails-OLF7HSM4.mjs} +6 -6
- package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs → ObjectRenamePopover-BRPKVNVF.mjs} +3 -3
- package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs.map → ObjectRenamePopover-BRPKVNVF.mjs.map} +1 -1
- package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs → RecordArticle-XUIT25PP.mjs} +2 -2
- package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs → SchemaContainer-5G4R3Z6O.mjs} +2 -2
- package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
- package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
- package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs → SpacePluginSettings-PENV4GHL.mjs} +4 -4
- package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
- package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
- package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs → SpaceRenamePopover-XEMTI4PU.mjs} +3 -3
- package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs.map → SpaceRenamePopover-XEMTI4PU.mjs.map} +1 -1
- package/dist/lib/node-esm/{SpaceSettingsContainer-Y62J2L65.mjs → SpaceSettingsContainer-WI4D7RWA.mjs} +5 -5
- package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
- package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs → SyncStatus-YEBGTNSD.mjs} +6 -6
- package/dist/lib/node-esm/{ViewEditor-B2BLYF5U.mjs → ViewEditor-CUQVNM2H.mjs} +4 -7
- package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs +1204 -0
- package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs → app-graph-serializer-RT2RQTV2.mjs} +5 -5
- package/dist/lib/node-esm/{chunk-OSFH2XKO.mjs → chunk-2OLR2ZKH.mjs} +6 -6
- package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
- package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-UJQUBDQS.mjs → chunk-EDC2RUJU.mjs} +7 -16
- package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3DWZCVVQ.mjs → chunk-EVNSLSQS.mjs} +54 -86
- package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
- package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P2AVANDG.mjs → chunk-RYQQXNI7.mjs} +34 -9
- package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GWUPFA7J.mjs → chunk-S5BQUCL4.mjs} +17 -14
- package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S2IELCDF.mjs → chunk-XYLDAH5C.mjs} +3 -3
- package/dist/lib/node-esm/cli/index.mjs +8 -17
- package/dist/lib/node-esm/cli/index.mjs.map +3 -3
- package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs → identity-created-U5LGULVL.mjs} +4 -4
- package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs.map → identity-created-U5LGULVL.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +33 -53
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-IRQ2NVUQ.mjs → operation-resolver-IL2AHNPN.mjs} +64 -88
- package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
- package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs → react-root-RILC5MBD.mjs} +6 -6
- package/dist/lib/node-esm/{react-surface-UDO3PGH6.mjs → react-surface-SWKRVK4S.mjs} +57 -79
- package/dist/lib/node-esm/react-surface-SWKRVK4S.mjs.map +7 -0
- package/dist/lib/node-esm/repair-LRZHFPSJ.mjs +32 -0
- package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DCTVM2BV.mjs → settings-3EKSEAAG.mjs} +3 -3
- package/dist/lib/node-esm/{spaces-ready-XLGRTJV2.mjs → spaces-ready-QK3EHBOS.mjs} +6 -6
- package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
- package/dist/lib/node-esm/{state-G74V3WZG.mjs → state-W36RRYUO.mjs} +5 -5
- package/dist/lib/node-esm/{state-G74V3WZG.mjs.map → state-W36RRYUO.mjs.map} +2 -2
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -2
- 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 +33 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
- package/dist/types/src/cli/commands/database/add.d.ts +0 -1
- package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
- package/dist/types/src/cli/plugin.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
- package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
- package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +0 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
- package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +1 -2
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +2 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts +2 -2
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/index.d.ts +2 -2
- package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts +1 -0
- package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -1
- package/dist/types/src/containers/SmallPresenceLive/index.d.ts +1 -1
- package/dist/types/src/containers/SmallPresenceLive/index.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 +67 -13
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/index.d.ts +2 -2
- package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +67 -13
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +67 -13
- 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 +1 -1
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +67 -13
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +0 -2
- package/dist/types/src/types/form.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +29 -46
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +4 -161
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -57
- package/src/SpacePlugin.ts +14 -22
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -657
- package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
- package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
- package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
- package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
- package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
- package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
- package/src/capabilities/app-graph-builder/extensions/types.ts +421 -0
- package/src/capabilities/identity-created/identity-created.ts +3 -3
- package/src/capabilities/operation-resolver/operation-resolver.ts +65 -73
- package/src/capabilities/react-surface/react-surface.tsx +33 -58
- package/src/capabilities/repair/repair.ts +3 -32
- package/src/capabilities/spaces-ready/spaces-ready.ts +2 -2
- package/src/capabilities/state/state.ts +4 -2
- package/src/cli/commands/database/add.ts +0 -1
- package/src/cli/commands/space/close/close.ts +1 -1
- package/src/cli/commands/space/create/create.ts +1 -1
- package/src/cli/commands/space/join/join.ts +1 -1
- package/src/cli/commands/space/open/open.ts +1 -1
- package/src/cli/plugin.ts +0 -1
- package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +2 -2
- package/src/components/AwaitingObject/index.ts +5 -0
- package/src/components/CreateDialog/CreateObjectPanel.tsx +5 -2
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +4 -4
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +4 -4
- package/src/components/ObjectForm/ObjectForm.tsx +6 -4
- package/src/constants.ts +5 -5
- package/src/containers/CollectionArticle/CollectionArticle.tsx +7 -54
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -10
- package/src/containers/CreateObjectDialog/index.ts +2 -3
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -3
- package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +7 -18
- package/src/containers/JoinDialog/JoinDialog.tsx +4 -4
- package/src/containers/JoinDialog/index.ts +2 -3
- package/src/containers/ObjectRenamePopover/ObjectRenamePopover.tsx +1 -1
- package/src/containers/SmallPresenceLive/index.ts +1 -1
- package/src/containers/SpacePresence/SpacePresence.tsx +4 -16
- package/src/containers/SpacePresence/index.ts +2 -3
- package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +1 -1
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +2 -2
- package/src/containers/ViewEditor/ViewEditor.tsx +0 -1
- package/src/containers/index.ts +1 -1
- package/src/helpers/query.test.ts +1 -1
- package/src/hooks/useActiveSpace.ts +4 -4
- package/src/meta.ts +1 -1
- package/src/translations.ts +27 -1
- package/src/types/capabilities.ts +7 -7
- package/src/types/events.ts +5 -5
- package/src/types/form.ts +1 -8
- package/src/types/types.ts +36 -58
- package/src/util.ts +82 -0
- package/dist/lib/browser/CollectionArticle-WASDM637.mjs.map +0 -7
- package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs.map +0 -7
- package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs.map +0 -7
- package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs.map +0 -7
- package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs.map +0 -7
- package/dist/lib/browser/SmallPresenceLive-LZD2NGKK.mjs +0 -10
- package/dist/lib/browser/SpacePresence-MLU576L6.mjs +0 -13
- package/dist/lib/browser/SpacePresence-MLU576L6.mjs.map +0 -7
- package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs.map +0 -7
- package/dist/lib/browser/ViewEditor-F74RR542.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs +0 -593
- package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs.map +0 -7
- package/dist/lib/browser/chunk-ABCDB5YC.mjs.map +0 -7
- package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
- package/dist/lib/browser/chunk-PXVKN4LU.mjs.map +0 -7
- package/dist/lib/browser/chunk-RWOK4F4G.mjs.map +0 -7
- package/dist/lib/browser/chunk-TPZUQ5DC.mjs +0 -749
- package/dist/lib/browser/chunk-TPZUQ5DC.mjs.map +0 -7
- package/dist/lib/browser/chunk-USN5QKRV.mjs.map +0 -7
- package/dist/lib/browser/chunk-XIIYC7P5.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs.map +0 -7
- package/dist/lib/browser/react-surface-NJ23NZFF.mjs.map +0 -7
- package/dist/lib/browser/repair-N2I4DR2Z.mjs +0 -50
- package/dist/lib/browser/repair-N2I4DR2Z.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs.map +0 -7
- package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs.map +0 -7
- package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs.map +0 -7
- package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs.map +0 -7
- package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs.map +0 -7
- package/dist/lib/node-esm/SmallPresenceLive-K4243KXR.mjs +0 -11
- package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs +0 -14
- package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs.map +0 -7
- package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs.map +0 -7
- package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs +0 -594
- package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
- package/dist/lib/node-esm/chunk-GWUPFA7J.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OSFH2XKO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P2AVANDG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UJQUBDQS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WW6YYBRG.mjs +0 -750
- package/dist/lib/node-esm/chunk-WW6YYBRG.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs.map +0 -7
- package/dist/lib/node-esm/repair-P6ND7ZRU.mjs +0 -51
- package/dist/lib/node-esm/repair-P6ND7ZRU.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs.map +0 -7
- package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
- package/src/util.tsx +0 -956
- /package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs.map → CollectionSection-H2MBNI63.mjs.map} +0 -0
- /package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs.map → MembersContainer-OGYV2L4M.mjs.map} +0 -0
- /package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs.map → ObjectCardStack-OMXF2DSG.mjs.map} +0 -0
- /package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs.map → ObjectDetails-QFTQQN4W.mjs.map} +0 -0
- /package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs.map → RecordArticle-BO2XHBFN.mjs.map} +0 -0
- /package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs.map → SchemaContainer-QWCSIZBS.mjs.map} +0 -0
- /package/dist/lib/browser/{SmallPresenceLive-LZD2NGKK.mjs.map → SmallPresenceLive-AHHLBAUP.mjs.map} +0 -0
- /package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs.map → SpacePluginSettings-QGZKNQLK.mjs.map} +0 -0
- /package/dist/lib/{node-esm/SmallPresenceLive-K4243KXR.mjs.map → browser/SpacePresence-JIWLBUWO.mjs.map} +0 -0
- /package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs.map → SyncStatus-6N7JJ7XF.mjs.map} +0 -0
- /package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs.map → app-graph-serializer-UZWWGLGY.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-J5F4LUJD.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-UYBW5RE7.mjs.map → react-root-OD2HP63B.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-2ELVUFDR.mjs.map → settings-RUDP2Q56.mjs.map} +0 -0
- /package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs.map → CollectionSection-BI66Y34F.mjs.map} +0 -0
- /package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs.map → MembersContainer-4PV3Z4BA.mjs.map} +0 -0
- /package/dist/lib/{browser/MenuFooter-HYBTNOBT.mjs.map → node-esm/MenuFooter-PXG2GV6A.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs.map → ObjectCardStack-457SNNVF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs.map → ObjectDetails-OLF7HSM4.mjs.map} +0 -0
- /package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs.map → RecordArticle-XUIT25PP.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs.map → SchemaContainer-5G4R3Z6O.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs.map → SpacePluginSettings-PENV4GHL.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs.map → SyncStatus-YEBGTNSD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs.map → app-graph-serializer-RT2RQTV2.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-S2IELCDF.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs.map → react-root-RILC5MBD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-DCTVM2BV.mjs.map → settings-3EKSEAAG.mjs.map} +0 -0
- /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/util.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\nimport * as Effect from 'effect/Effect';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\n\nimport { type CapabilityManager } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { type Space, SpaceState, isSpace } from '@dxos/client/echo';\nimport { type Database, Feed, Filter, JsonSchema, Obj, Query, Ref, Type } from '@dxos/echo';\nimport { Collection } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport { Operation } from '@dxos/operation';\nimport { Graph, Node } from '@dxos/plugin-graph';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';\nimport { type TreeData } from '@dxos/react-ui-list';\nimport { Expando, ManagedCollection } from '@dxos/schema';\nimport { type Label } from '@dxos/ui-types';\nimport { createFilename } from '@dxos/util';\n\nimport { meta } from './meta';\nimport { SPACE_TYPE, SpaceOperation } from './types';\n\n//\n// Constants\n//\n\nconst CACHEABLE_PROPS: string[] = ['label', 'icon', 'role'];\nconst ACCEPT_ECHO_CLASS: Set<string> = new Set(['echo']);\n\n/** Shared translation namespace descriptor. */\nconst META_NS: { ns: string } = { ns: meta.id };\n\n/** Static label tuples (translation key + namespace). */\nconst PERSONAL_SPACE_LABEL: Label = ['personal space label', META_NS];\nconst UNNAMED_SPACE_LABEL: Label = ['unnamed space label', META_NS];\nconst SETTINGS_PANEL_LABEL: Label = ['settings panel label', META_NS];\nconst MIGRATE_SPACE_LABEL: Label = ['migrate space label', META_NS];\nconst CREATE_OBJECT_IN_SPACE_LABEL: Label = ['create object in space label', META_NS];\nconst RENAME_SPACE_LABEL: Label = ['rename space label', META_NS];\nconst ADD_VIEW_TO_SCHEMA_LABEL: Label = ['add view to schema label', META_NS];\nconst SNAPSHOT_BY_SCHEMA_LABEL: Label = ['snapshot by schema label', META_NS];\nconst CREATE_OBJECT_IN_COLLECTION_LABEL: Label = ['create object in collection label', META_NS];\nconst CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL: Label = ['create object in system collection label', META_NS];\nconst COPY_LINK_LABEL: Label = ['copy link label', META_NS];\nconst EXPOSE_OBJECT_LABEL: Label = ['expose object label', META_NS];\n\n/** Stable callback constants (no closed-over state). */\nconst CAN_DROP_FALSE = () => false;\nconst CAN_DROP_SPACE = (source: TreeData) => Obj.isObject(source.item.data) || isSpace(source.item.data);\nconst CAN_DROP_OBJECT = (source: TreeData) => Node.isGraphNode(source.item) && Obj.isObject(source.item.data);\n\nexport const SPACES = `${meta.id}-spaces`;\nexport const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst SCHEMA_GRAPH_NODE_PARTIALS = {\n role: 'branch',\n canDrop: CAN_DROP_FALSE,\n} as const;\n\nconst getSchemaGraphNodePartials = () => SCHEMA_GRAPH_NODE_PARTIALS;\n\n//\n// Caching Infrastructure\n//\n\n/** Creates a string-keyed memoized factory. Returns the same instance for the same key. */\n// TODO(wittjosiah): Factor out as app-graph utility.\nfunction createFactory<T>(create: (key: string) => T): (key: string) => T;\nfunction createFactory<TArgs extends any[], T>(\n create: (...args: TArgs) => T,\n keyFn: (...args: TArgs) => string,\n): (...args: TArgs) => T;\nfunction createFactory<TArgs extends any[], T>(\n create: (...args: TArgs) => T,\n keyFn?: (...args: TArgs) => string,\n): (...args: TArgs) => T {\n const cache = new Map<string, T>();\n return (...args: TArgs) => {\n const key = keyFn ? keyFn(...args) : (args[0] as string);\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n const value = create(...args);\n cache.set(key, value);\n return value;\n };\n}\n\n/** Stable Set instances keyed by spaceId. */\nconst getAcceptPersistenceKey = createFactory((spaceId: string) => new Set([spaceId]));\n\n/** Caches for closures that capture ECHO objects, keyed by DXN/ID string. */\nconst rearrangeCache = new Map<string, (nextOrder: unknown[]) => void>();\nconst blockInstructionCache = new Map<string, (source: TreeData, instruction: Instruction) => boolean>();\nconst spaceRearrangeCache = new Map<string, (nextOrder: Space[]) => void>();\nconst collectionPartialsCache = new Map<string, ReturnType<typeof buildCollectionPartials>>();\nconst systemCollectionPartialsCache = new Map<\n string,\n {\n label: Label;\n icon?: string;\n iconHue?: string;\n acceptPersistenceClass: Set<string>;\n acceptPersistenceKey: Set<string>;\n role: string;\n }\n>();\nconst spaceActionsCache = new Map<\n string,\n {\n state: SpaceState;\n hasPendingMigration: boolean;\n migrating: boolean;\n actions: Node.NodeArg<Node.ActionData<Operation.Service>>[];\n }\n>();\n\n/** Dynamic label tuples keyed by composite key string. */\nconst getDynamicLabel = createFactory(\n (key: string, ns: string, extra?: Record<string, any>): Label => [key, { ns, ...extra }],\n (key: string, ns: string, extra?: Record<string, any>) => `${key}\\0${ns}${extra ? `\\0${JSON.stringify(extra)}` : ''}`,\n);\n\n//\n// Node Constructors\n//\n\n/**\n * Builds an app-graph node for a space (workspace), including settings children and optional rearrange handler.\n *\n * @param space - Space to wrap as a graph node.\n * @param navigable - Whether the space node is navigable; affects disabled state.\n * @param personal - Passed to display name resolution (e.g. \"Personal space\" fallback).\n * @param namesCache - Optional cache of space id to display name.\n * @param resolve - Metadata resolver for typename.\n * @param graph - Optional expandable graph for sorting edges on rearrange.\n * @param spacesOrder - Optional ECHO object holding workspace order; used with graph for persist on rearrange.\n * @returns A graph node for the space.\n */\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n graph,\n spacesOrder,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n /** Graph for sorting edges on rearrange. */\n graph?: Graph.ExpandableGraph;\n // TODO(wittjosiah): Should be Type.Expando but it doesn't work with the AtomQuery result type.\n /** Spaces order object for persisting workspace order. */\n spacesOrder?: Obj.Any;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection =\n space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)\n ? getCollectionGraphNodePartials({ collection, db: space.db, resolve })\n : {};\n\n let onRearrange: ((nextOrder: Space[]) => void) | undefined;\n if (graph && spacesOrder) {\n onRearrange = spaceRearrangeCache.get(space.id);\n if (!onRearrange) {\n onRearrange = (nextOrder: Space[]) => {\n // NOTE: This is needed to ensure order is updated by next animation frame.\n Graph.sortEdges(\n graph,\n Node.RootId,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n // Persist order to database.\n Obj.change(spacesOrder, (mutableOrder: any) => {\n mutableOrder.order = nextOrder.map(({ id }) => id);\n });\n };\n spaceRearrangeCache.set(space.id, onRearrange);\n }\n }\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: CACHEABLE_PROPS,\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n disposition: 'workspace',\n testId: 'spacePlugin.space',\n onRearrange,\n // TODO(wittjosiah): Find a way to only allow space as source for rearranging.\n canDrop: CAN_DROP_SPACE,\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/settings`,\n data: null,\n properties: {\n label: SETTINGS_PANEL_LABEL,\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n },\n ],\n };\n};\n\n/**\n * Builds an app-graph node for an ECHO object (collection, managed feed, schema, or generic object).\n *\n * @param db - Database for the object's space.\n * @param object - ECHO object to wrap.\n * @param disposition - Optional UI disposition.\n * @param droppable - Whether the node accepts drops.\n * @param navigable - Whether the node is navigable.\n * @param managedCollectionChild - Whether the object is a managed collection child (affects blockInstruction).\n * @param resolve - Metadata resolver for typename.\n * @param parentCollection - Parent collection for rearranging objects.\n * @returns A graph node or null if the object has no typename.\n */\nexport const createObjectNode = ({\n db,\n object,\n disposition,\n droppable = true,\n navigable = false,\n managedCollectionChild = false,\n resolve,\n parentCollection,\n}: {\n db: Database.Database;\n object: Obj.Unknown;\n disposition?: string;\n droppable?: boolean;\n navigable?: boolean;\n managedCollectionChild?: boolean;\n resolve: (typename: string) => Record<string, any>;\n /** Parent collection for rearranging objects. */\n parentCollection?: Collection.Collection;\n}) => {\n const type = Obj.getTypename(object);\n if (!type) {\n return null;\n }\n\n // For feeds, use the kind property for metadata lookup instead of the generic Feed typename.\n const metadataKey = Obj.instanceOf(Feed.Feed, object) ? (object.kind ?? type) : type;\n const metadata = resolve(metadataKey);\n const partials = Obj.instanceOf(Collection.Collection, object)\n ? getCollectionGraphNodePartials({ collection: object, db, resolve })\n : Obj.instanceOf(ManagedCollection.ManagedCollection, object)\n ? getSystemCollectionNodePartials({ collection: object, db, resolve })\n : Obj.instanceOf(Type.PersistentType, object)\n ? getSchemaGraphNodePartials()\n : metadata.graphProps;\n\n // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.\n // e.g., create new collection with no name and rename it.\n const label =\n (object as any).name ||\n Obj.getLabel(object) ||\n // TODO(wittjosiah): Remove metadata labels.\n metadata.label?.(object) ||\n getDynamicLabel('object name placeholder', metadataKey, { default: 'New item' });\n\n const selectable =\n (!Obj.instanceOf(Type.PersistentType, object) &&\n !Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&\n !Obj.instanceOf(Collection.Collection, object)) ||\n (navigable && Obj.instanceOf(Collection.Collection, object));\n\n let onRearrange: ((nextOrder: unknown[]) => void) | undefined;\n if (parentCollection) {\n const collectionId = Obj.getDXN(parentCollection).toString();\n onRearrange = rearrangeCache.get(collectionId);\n if (!onRearrange) {\n onRearrange = (nextOrder: unknown[]) => {\n Obj.change(parentCollection, (c) => {\n c.objects = nextOrder.filter(Obj.isObject).map(Ref.make);\n });\n };\n rearrangeCache.set(collectionId, onRearrange);\n }\n }\n\n const objectId = Obj.getDXN(object).toString();\n const blockInstructionKey = `${objectId}:${managedCollectionChild}`;\n let blockInstruction = blockInstructionCache.get(blockInstructionKey);\n if (!blockInstruction) {\n blockInstruction = (source: TreeData, instruction: Instruction) => {\n if (source.item.properties.managedCollectionChild) {\n return true;\n }\n if (Obj.instanceOf(ManagedCollection.ManagedCollection, object)) {\n return !instruction.type.startsWith('reorder');\n }\n return managedCollectionChild;\n };\n blockInstructionCache.set(blockInstructionKey, blockInstruction);\n }\n\n const canDrop = droppable ? CAN_DROP_OBJECT : CAN_DROP_FALSE;\n\n return {\n id: Obj.getDXN(object).toString(),\n type,\n cacheable: CACHEABLE_PROPS,\n data: object,\n properties: {\n label,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n iconHue: metadata.iconHue,\n disposition,\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: db.spaceId,\n selectable,\n managedCollectionChild,\n onRearrange,\n blockInstruction,\n canDrop,\n ...partials,\n },\n };\n};\n\n/**\n * Builds a static schema node for the app graph.\n *\n * @param schema - ECHO schema entity.\n * @param space - Space that owns the schema.\n * @returns A graph node for the schema.\n */\nexport const createStaticSchemaNode = ({ schema, space }: { schema: Type.AnyEntity; space: Space }): Node.Node => {\n return {\n id: `${space.id}/${Type.getTypename(schema)}`,\n type: `${meta.id}/static-schema`,\n data: schema,\n properties: {\n label: getDynamicLabel('typename label', Type.getTypename(schema), {\n count: 2,\n default: Type.getTypename(schema),\n }),\n icon: 'ph--database--regular',\n iconHue: 'green',\n role: 'branch',\n selectable: false,\n canDrop: CAN_DROP_FALSE,\n space,\n },\n };\n};\n\n//\n// Action Constructors\n//\n\n/**\n * Builds the action list for a space node (migrate, create object, rename).\n * Results are cached by space id and state flags.\n *\n * @param space - Space to build actions for.\n * @param migrating - When true, treats the space as currently migrating (disables migrate action).\n * @returns Array of graph action descriptors for the space.\n */\nexport const constructSpaceActions = ({ space, migrating }: { space: Space; migrating?: boolean }) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const isMigrating = migrating || Migrations.running(space);\n\n const cached = spaceActionsCache.get(space.id);\n if (\n cached &&\n cached.state === state &&\n cached.hasPendingMigration === hasPendingMigration &&\n cached.migrating === isMigrating\n ) {\n return cached.actions;\n }\n\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceOperation.Migrate.meta.key),\n type: Node.ActionGroupType,\n data: () => Operation.invoke(SpaceOperation.Migrate, { space }),\n properties: {\n label: MIGRATE_SPACE_LABEL,\n icon: 'ph--database--regular',\n disposition: 'list-item-primary',\n disabled: isMigrating,\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n actions.push(\n {\n id: getId(SpaceOperation.OpenCreateObject.meta.key),\n type: Node.ActionType,\n data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: space.db }),\n properties: {\n label: CREATE_OBJECT_IN_SPACE_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceOperation.Rename.meta.key),\n type: Node.ActionType,\n data: (params?: Node.InvokeProps) => Operation.invoke(SpaceOperation.Rename, { space, caller: params?.caller }),\n properties: {\n label: RENAME_SPACE_LABEL,\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n );\n }\n\n spaceActionsCache.set(space.id, { state, hasPendingMigration, migrating: isMigrating, actions });\n return actions;\n};\n\n/**\n * Builds the action list for a static schema node (add view, rename, delete, snapshot).\n *\n * @param schema - ECHO schema entity (e.g. static record type).\n * @param space - Space that owns the schema.\n * @param deletable - Whether the delete/snapshot actions are enabled.\n * @returns Array of graph action descriptors for the schema.\n */\nexport const createStaticSchemaActions = ({\n schema,\n space,\n deletable,\n}: {\n schema: Type.AnyObj;\n space: Space;\n deletable: boolean;\n}) => {\n const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;\n\n const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [\n {\n id: getId(SpaceOperation.AddObject.meta.key),\n type: Node.ActionType,\n data: () =>\n Operation.invoke(SpaceOperation.OpenCreateObject, {\n target: space.db,\n views: true,\n initialFormValues: { typename: Type.getTypename(schema) },\n }),\n properties: {\n label: ADD_VIEW_TO_SCHEMA_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceOperation.RenameObject.meta.key),\n type: Node.ActionType,\n data: () => Effect.fail(new Error('Not implemented')),\n properties: {\n label: getDynamicLabel('rename object label', Type.getTypename(Type.PersistentType)),\n icon: 'ph--pencil-simple-line--regular',\n disabled: true,\n disposition: 'list-item',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceOperation.RemoveObjects.meta.key),\n type: Node.ActionType,\n data: () =>\n Effect.sync(() => {\n const index = space.properties.staticRecords.findIndex(\n (typename: string) => typename === Type.getTypename(schema),\n );\n if (index > -1) {\n Obj.change(space.properties, (p) => {\n p.staticRecords.splice(index, 1);\n });\n }\n }),\n properties: {\n label: getDynamicLabel('delete object label', Type.getTypename(Type.PersistentType)),\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n testId: 'spacePlugin.deleteObject',\n },\n },\n {\n id: getId(SpaceOperation.Snapshot.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n const result = yield* Operation.invoke(SpaceOperation.Snapshot, {\n db: space.db,\n query: Query.select(Filter.type(schema)).ast,\n });\n if (result.snapshot) {\n yield* Effect.tryPromise(() =>\n downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(schema)], ext: 'json' })),\n );\n }\n }),\n properties: {\n label: SNAPSHOT_BY_SCHEMA_LABEL,\n icon: 'ph--camera--regular',\n disposition: 'list-item',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * Builds the action list for an ECHO object node (create, rename, delete, copy link, etc.).\n *\n * @param object - ECHO object to build actions for.\n * @param graph - Readable app graph (used for action wiring).\n * @param resolve - Metadata resolver for typename.\n * @param capabilities - Capability manager for feature checks.\n * @param shareableLinkOrigin - Origin URL for shareable links.\n * @param deletable - Whether delete action is included. Defaults to true.\n * @param navigable - Whether the object is navigable (affects available actions). Defaults to false.\n * @returns Array of graph action descriptors for the object.\n */\nexport const constructObjectActions = ({\n object,\n graph,\n resolve,\n capabilities,\n deletable = true,\n navigable = false,\n shareableLinkOrigin,\n}: {\n object: Obj.Unknown;\n graph: Graph.ReadableGraph;\n resolve: (typename: string) => Record<string, any>;\n capabilities: CapabilityManager.CapabilityManager;\n shareableLinkOrigin: string;\n deletable?: boolean;\n navigable?: boolean;\n}) => {\n const db = Obj.getDatabase(object);\n invariant(db, 'Database not found');\n const typename = Obj.getTypename(object);\n invariant(typename, 'Object has no typename');\n\n const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;\n\n const metadataKey = Match.value(object).pipe(\n Match.when(Obj.instanceOf(Feed.Feed), (feed: Feed.Feed) => feed.kind ?? Obj.getTypename(feed)!),\n Match.when(Obj.instanceOf(ManagedCollection.ManagedCollection), (managed) => {\n const [, feedKind] = managed.key.split('~') ?? [];\n return feedKind ?? managed.key;\n }),\n Match.orElse((obj) => Obj.getTypename(obj)!),\n );\n const managedCollection = Option.some(object).pipe(\n Option.filter(Obj.instanceOf(ManagedCollection.ManagedCollection)),\n Option.getOrUndefined,\n );\n const metadata = metadataKey ? resolve(metadataKey) : {};\n const createObject = metadata.createObject;\n const inputSchema = metadata.inputSchema;\n\n const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [\n ...(Obj.instanceOf(Collection.Collection, object)\n ? [\n {\n id: getId(SpaceOperation.OpenCreateObject.meta.key),\n type: Node.ActionType,\n data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: object }),\n properties: {\n label: CREATE_OBJECT_IN_COLLECTION_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(Obj.instanceOf(Type.PersistentType, object)\n ? [\n {\n id: getId(SpaceOperation.AddObject.meta.key),\n type: Node.ActionType,\n data: () =>\n Operation.invoke(SpaceOperation.OpenCreateObject, {\n target: db,\n views: true,\n initialFormValues: { typename: object.typename },\n }),\n properties: {\n label: ADD_VIEW_TO_SCHEMA_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceOperation.Snapshot.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n const result = yield* Operation.invoke(SpaceOperation.Snapshot, {\n db,\n query: Query.select(Filter.type(JsonSchema.toEffectSchema(object.jsonSchema))).ast,\n });\n if (result.snapshot) {\n yield* Effect.promise(() =>\n downloadBlob(result.snapshot, createFilename({ parts: [db.spaceId, object.typename], ext: 'json' })),\n );\n }\n }),\n properties: {\n label: SNAPSHOT_BY_SCHEMA_LABEL,\n icon: 'ph--camera--regular',\n disposition: 'list-item',\n },\n },\n ]\n : []),\n ...(createObject && managedCollection\n ? [\n {\n id: getId(SpaceOperation.OpenCreateObject.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n if (inputSchema) {\n yield* Operation.invoke(SpaceOperation.OpenCreateObject, {\n target: db,\n typename: managedCollection ? metadataKey : undefined,\n });\n } else {\n const createdObject = yield* createObject({}, { db, capabilities }) as Effect.Effect<\n Obj.Unknown,\n Error,\n never\n >;\n const addResult = yield* Operation.invoke(SpaceOperation.AddObject, {\n target: db,\n hidden: true,\n object: createdObject,\n });\n if (addResult.id) {\n yield* Operation.invoke(LayoutOperation.Open, { subject: [addResult.id] });\n }\n }\n }),\n properties: {\n label: CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL,\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(managedCollection\n ? []\n : [\n {\n id: getId(SpaceOperation.RenameObject.meta.key),\n type: Node.ActionType,\n data: (params?: Node.InvokeProps) =>\n Operation.invoke(SpaceOperation.RenameObject, { object, caller: params?.caller }),\n properties: {\n label: getDynamicLabel('rename object label', metadataKey),\n icon: 'ph--pencil-simple-line--regular',\n disposition: 'list-item',\n // TODO(wittjosiah): Not working.\n // keyBinding: {\n // macos: 'shift+F6',\n // },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceOperation.RemoveObjects.meta.key),\n type: Node.ActionType,\n data: Effect.fnUntraced(function* () {\n const collection = Graph.getConnections(\n graph,\n Obj.getDXN(object).toString(),\n Node.childRelation('inbound'),\n ).find((node: Node.Node): node is Node.Node<Collection.Collection> =>\n Obj.instanceOf(Collection.Collection, node.data),\n )?.data;\n yield* Operation.invoke(SpaceOperation.RemoveObjects, { objects: [object], target: collection });\n }),\n properties: {\n label: getDynamicLabel('delete object label', metadataKey),\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n // TODO(wittjosiah): This is a browser shortcut.\n // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ]),\n ...(navigable ||\n (!Obj.instanceOf(Collection.Collection, object) &&\n !Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&\n !Obj.instanceOf(Type.PersistentType, object))\n ? [\n {\n id: getId('copy-link'),\n type: Node.ActionType,\n data: () =>\n Effect.promise(async () => {\n const url = `${shareableLinkOrigin}/${db.spaceId}/${Obj.getDXN(object).toString()}`;\n await navigator.clipboard.writeText(url);\n }),\n properties: {\n label: COPY_LINK_LABEL,\n icon: 'ph--link--regular',\n disposition: 'list-item',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutOperation.Expose.meta.key),\n type: Node.ActionType,\n data: () => Operation.invoke(LayoutOperation.Expose, { subject: Obj.getDXN(object).toString() }),\n properties: {\n label: EXPOSE_OBJECT_LABEL,\n icon: 'ph--eye--regular',\n disposition: 'heading-list-item',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n//\n// Helpers\n//\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\n/**\n * Returns the display label for a space (name, namesCache entry, or fallback).\n *\n * @param space - Space to label.\n * @param options.personal - If true, use personal-space fallback when unnamed.\n * @param options.namesCache - Optional cache of space id to display name.\n * @returns Label tuple (translation key or string, and namespace).\n */\n// TODO(wittjosiah): Factor out? Exposer via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): Label => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name!\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? PERSONAL_SPACE_LABEL\n : UNNAMED_SPACE_LABEL;\n};\n\n// TODO(wittjosiah): Factor out.\nconst downloadBlob = async (blob: Blob, filename: string) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename;\n\n document.body.appendChild(a);\n a.click();\n\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n};\n\nconst buildCollectionPartials = (\n collection: Collection.Collection,\n db: Database.Database,\n resolve: (typename: string) => Record<string, any>,\n) => ({\n acceptPersistenceClass: ACCEPT_ECHO_CLASS,\n acceptPersistenceKey: getAcceptPersistenceKey(db.spaceId),\n role: 'branch' as const,\n onTransferStart: (child: Node.Node<Obj.Unknown>, index?: number) => {\n Obj.change(collection, (c) => {\n if (!c.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n c.objects.splice(index, 0, Ref.make(child.data));\n } else {\n c.objects.push(Ref.make(child.data));\n }\n }\n });\n },\n onTransferEnd: (child: Node.Node<Obj.Unknown>, _destination: Node.Node) => {\n Obj.change(collection, (c) => {\n const index = c.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n c.objects.splice(index, 1);\n }\n });\n },\n onCopy: async (child: Node.Node<Obj.Unknown>, index?: number) => {\n const newObject = await cloneObject(child.data, resolve, db);\n db.add(newObject);\n Obj.change(collection, (c) => {\n if (typeof index !== 'undefined') {\n c.objects.splice(index, 0, Ref.make(newObject));\n } else {\n c.objects.push(Ref.make(newObject));\n }\n });\n },\n});\n\nconst getCollectionGraphNodePartials = ({\n collection,\n db,\n resolve,\n}: {\n collection: Collection.Collection;\n db: Database.Database;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const id = Obj.getDXN(collection).toString();\n let cached = collectionPartialsCache.get(id);\n if (!cached) {\n cached = buildCollectionPartials(collection, db, resolve);\n collectionPartialsCache.set(id, cached);\n }\n return cached;\n};\n\nconst getSystemCollectionNodePartials = ({\n collection,\n db,\n resolve,\n}: {\n collection: ManagedCollection.ManagedCollection;\n db: Database.Database;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const cacheKey = `${db.spaceId}:${collection.key}`;\n let cached = systemCollectionPartialsCache.get(cacheKey);\n if (!cached) {\n const [, feedKind] = collection.key.split('~');\n const metadataKey = feedKind ?? collection.key;\n const metadata = resolve(metadataKey);\n cached = {\n label: getDynamicLabel('typename label', metadataKey, { count: 2 }),\n icon: metadata.icon,\n iconHue: metadata.iconHue,\n acceptPersistenceClass: ACCEPT_ECHO_CLASS,\n acceptPersistenceKey: getAcceptPersistenceKey(db.spaceId),\n role: 'branch',\n };\n systemCollectionPartialsCache.set(cacheKey, cached);\n }\n return cached;\n};\n\n//\n// Deprecated\n//\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: Obj.Unknown,\n resolve: (typename: string) => Record<string, any>,\n): Promise<Obj.Unknown[]> => {\n const type = Obj.getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: Obj.Unknown[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Obj.Unknown,\n resolve: (typename: string) => Record<string, any>,\n newDb: Database.Database,\n): Promise<Obj.Unknown> => {\n const schema = Obj.getSchema(object);\n const typename = schema ? (Type.getTypename(schema) ?? Expando.Expando.typename) : Expando.Expando.typename;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, db: newDb, newId: true });\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Match", "Option", "LayoutOperation", "SpaceState", "isSpace", "Feed", "Filter", "JsonSchema", "Obj", "Query", "Ref", "Type", "Collection", "invariant", "Migrations", "Operation", "Graph", "Node", "ATTENDABLE_PATH_SEPARATOR", "Expando", "ManagedCollection", "createFilename", "CACHEABLE_PROPS", "ACCEPT_ECHO_CLASS", "Set", "META_NS", "ns", "meta", "id", "PERSONAL_SPACE_LABEL", "UNNAMED_SPACE_LABEL", "SETTINGS_PANEL_LABEL", "MIGRATE_SPACE_LABEL", "CREATE_OBJECT_IN_SPACE_LABEL", "RENAME_SPACE_LABEL", "ADD_VIEW_TO_SCHEMA_LABEL", "SNAPSHOT_BY_SCHEMA_LABEL", "CREATE_OBJECT_IN_COLLECTION_LABEL", "CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL", "COPY_LINK_LABEL", "EXPOSE_OBJECT_LABEL", "CAN_DROP_FALSE", "CAN_DROP_SPACE", "source", "Obj", "isObject", "item", "data", "isSpace", "CAN_DROP_OBJECT", "Node", "isGraphNode", "SPACES", "COMPOSER_SPACE_LOCK", "SHARED", "SCHEMA_GRAPH_NODE_PARTIALS", "role", "canDrop", "getSchemaGraphNodePartials", "createFactory", "create", "keyFn", "cache", "Map", "args", "key", "has", "get", "value", "set", "getAcceptPersistenceKey", "spaceId", "rearrangeCache", "blockInstructionCache", "spaceRearrangeCache", "collectionPartialsCache", "systemCollectionPartialsCache", "spaceActionsCache", "getDynamicLabel", "extra", "JSON", "stringify", "constructSpaceNode", "space", "navigable", "personal", "namesCache", "resolve", "graph", "spacesOrder", "hasPendingMigration", "checkPendingMigration", "collection", "state", "SpaceState", "SPACE_READY", "properties", "Collection", "typename", "target", "partials", "instanceOf", "getCollectionGraphNodePartials", "db", "onRearrange", "nextOrder", "Graph", "sortEdges", "RootId", "map", "change", "mutableOrder", "order", "type", "SPACE_TYPE", "cacheable", "label", "getSpaceDisplayName", "description", "hue", "icon", "undefined", "iconHue", "disabled", "disposition", "testId", "nodes", "ATTENDABLE_PATH_SEPARATOR", "createObjectNode", "object", "droppable", "managedCollectionChild", "parentCollection", "getTypename", "metadataKey", "Feed", "kind", "metadata", "ManagedCollection", "getSystemCollectionNodePartials", "Type", "PersistentType", "graphProps", "name", "getLabel", "default", "selectable", "collectionId", "getDXN", "toString", "c", "objects", "filter", "Ref", "make", "objectId", "blockInstructionKey", "blockInstruction", "instruction", "startsWith", "persistenceClass", "persistenceKey", "createStaticSchemaNode", "schema", "count", "constructSpaceActions", "migrating", "isMigrating", "Migrations", "running", "cached", "actions", "getId", "push", "SpaceOperation", "Migrate", "ActionGroupType", "Operation", "invoke", "OpenCreateObject", "ActionType", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createStaticSchemaActions", "deletable", "AddObject", "views", "initialFormValues", "RenameObject", "fail", "Error", "RemoveObjects", "sync", "index", "staticRecords", "findIndex", "p", "splice", "Snapshot", "fnUntraced", "result", "query", "Query", "select", "Filter", "ast", "snapshot", "tryPromise", "downloadBlob", "createFilename", "parts", "ext", "constructObjectActions", "capabilities", "shareableLinkOrigin", "getDatabase", "invariant", "pipe", "when", "feed", "managed", "feedKind", "split", "orElse", "obj", "managedCollection", "some", "getOrUndefined", "createObject", "inputSchema", "JsonSchema", "toEffectSchema", "jsonSchema", "promise", "createdObject", "addResult", "hidden", "LayoutOperation", "Open", "subject", "getConnections", "childRelation", "find", "node", "url", "navigator", "clipboard", "writeText", "Expose", "SPACE_REQUIRES_MIGRATION", "versionProperty", "targetVersion", "length", "blob", "filename", "URL", "createObjectURL", "a", "document", "createElement", "href", "download", "body", "appendChild", "click", "removeChild", "revokeObjectURL", "buildCollectionPartials", "acceptPersistenceClass", "acceptPersistenceKey", "onTransferStart", "child", "onTransferEnd", "_destination", "onCopy", "newObject", "cloneObject", "add", "cacheKey", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newDb", "getSchema", "Expando", "serializer", "content", "serialize", "deserialize", "newId"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/capabilities.ts", "../../../src/types/events.ts", "../../../src/types/form.ts", "../../../src/types/types.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport type * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Space } from '@dxos/client/echo';\nimport { type Database } from '@dxos/echo';\nimport { type Collection } from '@dxos/echo';\nimport { type PublicKey } from '@dxos/keys';\nimport { type Operation } from '@dxos/operation';\nimport { type Label } from '@dxos/ui-types';\nimport { type ComplexMap, type Position } from '@dxos/util';\n\nimport { meta } from '../meta';\n\nimport { type ObjectViewerProps, type SpaceSettingsProps } from './types';\n\nexport namespace SpaceCapabilities {\n export const Settings = Capability.make<Atom.Writable<SpaceSettingsProps>>(`${meta.id}/capability/settings`);\n\n /** Schema for persisted space plugin state. */\n export const StateSchema = Schema.mutable(\n Schema.Struct({\n spaceNames: Schema.Record({ key: Schema.String, value: Schema.String }),\n enabledEdgeReplication: Schema.Boolean,\n }),\n );\n\n export type SpaceState = Schema.Schema.Type<typeof StateSchema>;\n\n /** Persisted state (stored in KVS/localStorage). */\n export const State = Capability.make<Atom.Writable<SpaceState>>(`${meta.id}/capability/state`);\n\n /** Ephemeral space plugin state (not persisted). */\n export type SpaceEphemeralState = {\n awaiting: string | undefined;\n sdkMigrationRunning: Record<string, boolean>;\n navigableCollections: boolean;\n viewersByObject: Record<string, ComplexMap<PublicKey, ObjectViewerProps>>;\n viewersByIdentity: ComplexMap<PublicKey, Set<string>>;\n };\n\n /** Transient/ephemeral state (not persisted). */\n export const EphemeralState = Capability.make<Atom.Writable<SpaceEphemeralState>>(\n `${meta.id}/capability/ephemeral-state`,\n );\n\n export type SettingsSection = { id: string; label: Label; position?: Position };\n export const SettingsSection = Capability.make<SettingsSection>(`${meta.id}/capability/settings-section`);\n\n export type OnCreateSpace = (params: {\n space: Space;\n isDefault: boolean;\n rootCollection: Collection.Collection;\n }) => Effect.Effect<void, Error, Operation.Service>;\n export const OnCreateSpace = Capability.make<OnCreateSpace>(`${meta.id}/capability/on-space-created`);\n\n export type OnSchemaAdded = (params: {\n db: Database.Database;\n schema: Schema.Schema.AnyNoContext;\n // TODO(wittjosiah): This is leaky.\n show?: boolean;\n }) => Effect.Effect<void, Error, Operation.Service>;\n export const OnSchemaAdded = Capability.make<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);\n\n // TODO(wittjosiah): Replace with migrations, this is not a sustainable solution.\n export type HandleRepair = (params: { space: Space; isDefault: boolean }) => Promise<void>;\n export const Repair = Capability.make<HandleRepair>(`${meta.id}/capability/repair`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '../meta';\n\nexport namespace SpaceEvents {\n export const StateReady = AppActivationEvents.createStateEvent(`${meta.id}/event/state-ready`);\n export const SetupSettingsPanel = ActivationEvent.make(`${meta.id}/event/setup-settings-panel`);\n export const DefaultSpaceReady = ActivationEvent.make(`${meta.id}/event/default-space-ready`);\n export const SpaceCreated = ActivationEvent.make(`${meta.id}/event/space-created`);\n export const SchemaAdded = ActivationEvent.make(`${meta.id}/event/schema-added`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\n\nimport { type Space } from '@dxos/client/echo';\nimport { Type } from '@dxos/echo';\nimport { EntityKind, SystemTypeAnnotation, createAnnotationHelper, getTypeAnnotation } from '@dxos/echo/internal';\n\nexport const TypeInputOptions = Schema.Struct({\n location: Schema.Array(Schema.Literal('database', 'runtime')),\n kind: Schema.Array(Schema.Literal('system', 'user')),\n registered: Schema.Array(Schema.Literal('registered', 'unregistered')),\n});\n\nexport type TypeInputOptions = Schema.Schema.Type<typeof TypeInputOptions>;\n\n/**\n * Used in forms to identify the field representing an object's type and determine which types are shown as options.\n */\nexport const TypeInputOptionsAnnotationId = Symbol.for('@dxos/schema/annotation/TypeInputOptions');\nexport const TypeInputOptionsAnnotation = createAnnotationHelper<TypeInputOptions>(TypeInputOptionsAnnotationId);\n\n// TODO(wittjosiah): This is too complicated and needs to be simplified.\nexport const getTypenames = ({ annotation, space }: { annotation: TypeInputOptions; space?: Space }) => {\n const includeRuntime = annotation.location.includes('runtime');\n const includeDatabase = annotation.location.includes('database');\n const includeSystemType = annotation.kind.includes('system');\n const includeUserType = annotation.kind.includes('user');\n const includeRegistered = annotation.registered.includes('registered');\n const includeUnregistered = annotation.registered.includes('unregistered');\n\n const runtimeTypenames =\n includeRuntime && space\n ? space.db.schemaRegistry\n .query({ location: ['runtime'] })\n .runSync()\n .filter((schema) => {\n const relation = getTypeAnnotation(schema)?.kind === EntityKind.Relation;\n if (relation) {\n return includeSystemType;\n }\n\n const system = SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false));\n if (system) {\n return includeSystemType;\n }\n\n return includeUserType;\n })\n .filter((schema) => {\n const registered = space?.properties.staticRecords?.includes(Type.getTypename(schema));\n return registered ? includeRegistered : includeUnregistered;\n })\n .map((schema) => Type.getTypename(schema))\n : [];\n\n const databaseTypenames =\n includeDatabase && includeRegistered && space\n ? space.db.schemaRegistry\n .query({ location: ['database'] })\n .runSync()\n .map((schema) => Type.getTypename(schema))\n : [];\n\n return Array.from(new Set<string>([...runtimeTypenames, ...databaseTypenames])).sort();\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability, Plugin } from '@dxos/app-framework';\nimport { type PublicKey } from '@dxos/client';\n// TODO(wittjosiah): This pulls in full client.\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { CancellableInvitationObservable, Invitation } from '@dxos/client/invitations';\nimport { Database, Obj, QueryAST, Type } from '@dxos/echo';\nimport { Collection, View } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { type ComplexMap } from '@dxos/util';\n\nimport { meta } from '../meta';\n\nimport { TypeInputOptionsAnnotation } from './form';\n\nexport const SPACE_DIRECTORY_HANDLE = `${meta.id}/directory`;\n\nexport const SPACE_TYPE = 'dxos.org/type/Space';\n\nexport type SpacePluginOptions = {\n /**\n * Origin used for shareable links (object copy-link and invitation base).\n * Defaults to window.location.origin.\n */\n shareableLinkOrigin?: string;\n\n /**\n * Path appended to shareableLinkOrigin to form the invitation base URL.\n * Defaults to '/'.\n */\n invitationPath?: string;\n\n /**\n * Query parameter name for the invitation code.\n */\n invitationProp?: string;\n\n /**\n * Whether to send observability events.\n */\n observability?: boolean;\n};\n\nexport type ObjectViewerProps = {\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type ObjectId = string;\n\nexport type PluginState = {\n /**\n * Which objects are currently being viewed by which peers.\n */\n viewersByObject: Record<ObjectId, ComplexMap<PublicKey, ObjectViewerProps>>;\n\n /**\n * Which peers are currently viewing which objects.\n */\n viewersByIdentity: ComplexMap<PublicKey, Set<ObjectId>>;\n\n /**\n * Object that was linked to directly but not found and is being awaited.\n */\n awaiting: string | undefined;\n\n /**\n * Cached space names, used when spaces are closed or loading.\n */\n spaceNames: Record<string, string>;\n\n /**\n * Which spaces have an SDK migration running currently.\n */\n // TODO(wittjosiah): Factor out to sdk. Migration running should probably be a space state.\n sdkMigrationRunning: Record<string, boolean>;\n\n /**\n * Whether or not the user can navigate to collections in the graph.\n * Determined by whether or not there is an available plugin that can render a collection.\n */\n navigableCollections: boolean;\n\n /**\n * Tracks whether setting edge replication as default has been run on spaces.\n */\n // TODO(wittjosiah): Systematic way to handle migrations of state outside of spaces.\n enabledEdgeReplication: boolean;\n};\n\nexport const SpaceSettingsSchema = Schema.mutable(\n Schema.Struct({\n /**\n * Show closed spaces.\n */\n showHidden: Schema.Boolean,\n }),\n);\n\nexport type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;\n\n// TODO(wittjosiah): Reconcile with graph export serializers.\n\nexport type SerializerMap = Record<string, TypedObjectSerializer>;\n\nexport interface TypedObjectSerializer<T extends Obj.Unknown = Obj.Unknown> {\n serialize(params: { object: T }): Promise<string>;\n\n /**\n * @param params.content\n * @param params.space Space to use for deserializing schema references.\n * @param params.newId Generate new ID for deserialized object.\n */\n deserialize(params: { content: string; db: Database.Database; newId?: boolean }): Promise<T>;\n}\n\n/**\n * Factory function that creates an object directly using Type.make().\n * Returns an Effect that resolves to the created object.\n *\n * Options include:\n * - `db`: The database to use for object creation.\n */\nexport type CreateObject = (\n props: any,\n options: { db: Database.Database },\n) => Effect.Effect<Obj.Unknown, Error, Capability.Service | Operation.Service>;\n\n// TODO(burdon): Move to FormatEnum or SDK.\nexport const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');\nexport const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');\n\n// TOOD(burdon): Use SpacePropertiesSchema.\nexport const SpaceForm = Schema.Struct({\n name: Schema.optional(Schema.String.annotations({ title: 'Name' })),\n icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),\n hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),\n edgeReplication: Schema.optional(Schema.Boolean.annotations({ title: 'Enable EDGE Replication' })),\n});\n\nconst COLLECTION_OPERATION = 'dxos.org/plugin/collection/operation';\n\nexport namespace CollectionOperation {\n export const Create = Operation.make({\n meta: { key: `${COLLECTION_OPERATION}/create`, name: 'Create Collection' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Collection.Collection,\n }),\n },\n });\n}\n\nconst SPACE_OPERATION = `${meta.id}/operation`;\n\n/**\n * Operations for the Space plugin.\n */\nexport namespace SpaceOperation {\n export const Create = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/create`,\n name: 'Create Space',\n description: 'Create a new space.',\n },\n services: [Capability.Service, Plugin.Service],\n schema: {\n input: SpaceForm,\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n space: SpaceSchema,\n }),\n },\n });\n\n export const Join = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/join`,\n name: 'Join Space',\n description: 'Join a space via invitation.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n onDone: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n },\n });\n\n export const Open = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/open`,\n name: 'Open Space',\n description: 'Open a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n },\n });\n\n export const Close = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/close`,\n name: 'Close Space',\n description: 'Close a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n },\n });\n\n export const Share = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/share`,\n name: 'Share Space',\n description: 'Share a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n type: Schema.Enums(Invitation.Type),\n authMethod: Schema.Enums(Invitation.AuthMethod),\n multiUse: Schema.Boolean,\n target: Schema.optional(Schema.String),\n }),\n output: Schema.instanceOf(CancellableInvitationObservable),\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const Lock = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/lock`,\n name: 'Lock Space',\n description: 'Lock a space to prevent modifications.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const Unlock = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/unlock`,\n name: 'Unlock Space',\n description: 'Unlock a space to allow modifications.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n },\n });\n\n export const OpenSettings = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/open-settings`,\n name: 'Open Space Settings',\n description: 'Open space settings.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n },\n });\n\n export const WaitForObject = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/wait-for-object`,\n name: 'Wait For Object',\n description: 'Wait for an object to be available.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n id: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n },\n });\n\n export const AddObject = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/add-object`,\n name: 'Add Object',\n description: 'Add an object to a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n object: Obj.Unknown.annotations({ description: 'The object to add.' }),\n target: Schema.Union(Database.Database, Collection.Collection).annotations({\n description: 'The database or collection to add to.',\n }),\n hidden: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n object: Obj.Unknown,\n }),\n },\n });\n\n export const RemoveObjectsOutput = Schema.Struct({\n objects: Schema.Array(Obj.Unknown).annotations({ description: 'The removed objects.' }),\n parentCollection: Collection.Collection.annotations({ description: 'The collection removed from.' }),\n indices: Schema.Array(Schema.Number).annotations({ description: 'The indices the objects were at.' }),\n nestedObjectsList: Schema.Array(Schema.Array(Obj.Unknown)).annotations({\n description: 'Nested objects that were removed.',\n }),\n wasActive: Schema.Array(Schema.String).annotations({\n description: 'IDs of objects that were active before removal.',\n }),\n });\n\n export type RemoveObjectsOutput = Schema.Schema.Type<typeof RemoveObjectsOutput>;\n\n export const RemoveObjects = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/remove-objects`,\n name: 'Remove Objects',\n description: 'Remove objects from a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n objects: Schema.Array(Obj.Unknown).annotations({ description: 'The objects to remove.' }),\n target: Schema.optional(Collection.Collection).annotations({ description: 'The collection to remove from.' }),\n }),\n output: RemoveObjectsOutput,\n },\n });\n\n export const DeleteFieldOutput = Schema.Struct({\n field: View.FieldSchema.annotations({ description: 'The deleted field schema.' }),\n // TODO(wittjosiah): This creates a type error with PropertySchema.\n props: Schema.Any.annotations({ description: 'The deleted field properties.' }),\n index: Schema.Number.annotations({ description: 'The index the field was at.' }),\n });\n\n export type DeleteFieldOutput = Schema.Schema.Type<typeof DeleteFieldOutput>;\n\n export const DeleteField = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/delete-field`,\n name: 'Delete Field',\n description: 'Delete a field from a view.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n view: View.View.annotations({ description: 'The view to delete the field from.' }),\n fieldId: Schema.String,\n }),\n output: DeleteFieldOutput,\n },\n });\n\n export const OpenCreateObject = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/open-create-object`,\n name: 'Open Create Object Dialog',\n description: 'Open the create object dialog.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n target: Schema.Union(Database.Database, Collection.Collection).annotations({\n description: 'The database or collection to create in.',\n }),\n views: Schema.optional(Schema.Boolean),\n typename: Schema.optional(Schema.String),\n initialFormValues: Schema.optional(Schema.Any),\n navigable: Schema.optional(Schema.Boolean),\n // TODO(wittjosiah): This is a function, is there a better way to handle this?\n onCreateObject: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n },\n });\n\n export const OpenCreateSpace = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/open-create-space`,\n name: 'Open Create Space Dialog',\n description: 'Open the create space dialog.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Void,\n output: Schema.Void,\n },\n });\n\n export const Migrate = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/migrate`,\n name: 'Migrate Space',\n description: 'Migrate a space to a new version.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n version: Schema.optional(Schema.String),\n }),\n output: Schema.Boolean,\n },\n });\n\n export const Snapshot = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/snapshot`,\n name: 'Create Snapshot',\n description: 'Create a snapshot of the space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n db: Database.Database,\n query: QueryAST.Query.pipe(Schema.optional),\n }),\n output: Schema.Struct({\n snapshot: Schema.instanceOf(Blob),\n }),\n },\n });\n\n export const Rename = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/rename`,\n name: 'Rename Space',\n description: 'Rename a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n },\n });\n\n export const RenameObject = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/rename-object`,\n name: 'Rename Object',\n description: 'Rename an object.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n object: Obj.Unknown,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n },\n });\n\n export const OpenMembers = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/open-members`,\n name: 'Open Members',\n description: 'Open the members panel for a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n },\n });\n\n export const GetShareLink = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/get-share-link`,\n name: 'Get Share Link',\n description: 'Get a shareable link for a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n target: Schema.optional(Schema.String),\n copyToClipboard: Schema.optional(Schema.Boolean),\n }),\n output: Schema.String,\n },\n });\n\n export const StoredSchemaForm = Schema.Struct({\n name: Schema.optional(Schema.String),\n typename: Schema.String.pipe(\n Schema.annotations({ title: 'Select type (leave blank to create a new type)' }),\n TypeInputOptionsAnnotation.set({\n location: ['runtime'],\n kind: ['user'],\n registered: ['unregistered'],\n }),\n Schema.optional,\n ),\n });\n\n export const UseStaticSchema = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/use-static-schema`,\n name: 'Use Static Schema',\n description: 'Use a static schema in the space.',\n },\n services: [Capability.Service, Plugin.Service],\n schema: {\n input: Schema.Struct({\n db: Database.Database,\n typename: Schema.String,\n show: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({}),\n },\n });\n\n export const AddSchema = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/add-schema`,\n name: 'Add Schema',\n description: 'Add a schema to the space.',\n },\n services: [Capability.Service, Plugin.Service],\n schema: {\n input: Schema.Struct({\n db: Database.Database,\n name: Schema.optional(Schema.String),\n typename: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n // TODO(wittjosiah): Schema for schema?\n schema: Schema.Any,\n show: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n id: Schema.String,\n object: Type.PersistentType,\n schema: Schema.instanceOf(Type.RuntimeType),\n }),\n },\n });\n\n export const AddRelation = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/add-relation`,\n name: 'Add Relation',\n description: 'Add a relation between objects.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n db: Database.Database,\n // TODO(wittjosiah): Relation schema.\n schema: Schema.Any,\n source: Obj.Unknown,\n target: Obj.Unknown,\n // TODO(wittjosiah): Type based on relation schema.\n fields: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Struct({\n relation: Schema.Any,\n }),\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const DuplicateObject = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/duplicate-object`,\n name: 'Duplicate Object',\n description: 'Duplicate an object.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n object: Obj.Unknown,\n target: Schema.Union(Database.Database, Collection.Collection),\n }),\n output: Schema.Void,\n },\n });\n\n /**\n * Restore a deleted field to a view (inverse of DeleteField).\n */\n export const RestoreField = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/restore-field`,\n name: 'Restore Field',\n description: 'Restore a deleted field to a view.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n view: View.View.annotations({ description: 'The view to restore the field to.' }),\n field: View.FieldSchema.annotations({ description: 'The field schema to restore.' }),\n // TODO(wittjosiah): This creates a type error with PropertySchema.\n props: Schema.Any.annotations({ description: 'The field properties to restore.' }),\n index: Schema.Number.annotations({ description: 'The index to restore the field at.' }),\n }),\n output: Schema.Void,\n },\n });\n\n /**\n * Restore deleted objects to a space (inverse of RemoveObjects).\n */\n export const RestoreObjects = Operation.make({\n meta: {\n key: `${SPACE_OPERATION}/restore-objects`,\n name: 'Restore Objects',\n description: 'Restore deleted objects to a space.',\n },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n objects: Schema.Array(Obj.Unknown).annotations({ description: 'The objects to restore.' }),\n parentCollection: Collection.Collection.annotations({ description: 'The collection to restore to.' }),\n indices: Schema.Array(Schema.Number).annotations({ description: 'The indices to restore at.' }),\n nestedObjectsList: Schema.Array(Schema.Array(Obj.Unknown)).annotations({\n description: 'Nested objects to restore.',\n }),\n wasActive: Schema.Array(Schema.String).annotations({\n description: 'IDs of objects that were active before deletion.',\n }),\n }),\n output: Schema.Void,\n },\n });\n}\n"],
|
|
5
|
-
"mappings": ";;;;;AAMA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;UAaVC,oBAAAA;qBACFC,WAAWC,WAAWC,KAAwC,GAAGC,KAAKC,EAAE,sBAAsB;qBAG9FC,cAAqBC,eACzBC,cAAO;IACZC,YAAmBC,cAAO;MAAEC,KAAYC;MAAQC,OAAcD;IAAO,CAAA;IACrEE,wBAA+BC;EACjC,CAAA,CAAA;qBAMWC,QAAQd,WAAWC,KAAgC,GAAGC,KAAKC,EAAE,mBAAmB;qBAYhFY,iBAAiBf,WAAWC,KACvC,GAAGC,KAAKC,EAAE,6BAA6B;qBAI5Ba,kBAAkBhB,WAAWC,KAAsB,GAAGC,KAAKC,EAAE,8BAA8B;qBAO3Fc,gBAAgBjB,WAAWC,KAAoB,GAAGC,KAAKC,EAAE,8BAA8B;qBAQvFe,gBAAgBlB,WAAWC,KAAoB,GAAGC,KAAKC,EAAE,6BAA6B;qBAItFgB,SAASnB,WAAWC,KAAmB,GAAGC,KAAKC,EAAE,oBAAoB;AACpF,GAnDiBL,sBAAAA,oBAAAA,CAAAA,EAAAA;;;;ACjBjB,SAASsB,uBAAuB;AAChC,SAASC,2BAA2B;UAInBC,cAAAA;eACFC,aAAaC,oBAAoBC,iBAAiB,GAAGC,KAAKC,EAAE,oBAAoB;eAChFC,qBAAqBC,gBAAgBC,KAAK,GAAGJ,KAAKC,EAAE,6BAA6B;eACjFI,oBAAoBF,gBAAgBC,KAAK,GAAGJ,KAAKC,EAAE,4BAA4B;eAC/EK,eAAeH,gBAAgBC,KAAK,GAAGJ,KAAKC,EAAE,sBAAsB;eACpEM,cAAcJ,gBAAgBC,KAAK,GAAGJ,KAAKC,EAAE,qBAAqB;AACjF,GANiBL,gBAAAA,cAAAA,CAAAA,EAAAA;;;;ACLjB,YAAYY,YAAY;AACxB,YAAYC,aAAY;AAGxB,SAASC,YAAY;AACrB,SAASC,YAAYC,sBAAsBC,wBAAwBC,yBAAyB;AAErF,IAAMC,mBAA0BC,eAAO;EAC5CC,UAAiBC,cAAaC,gBAAQ,YAAY,SAAA,CAAA;EAClDC,MAAaF,cAAaC,gBAAQ,UAAU,MAAA,CAAA;EAC5CE,YAAmBH,cAAaC,gBAAQ,cAAc,cAAA,CAAA;AACxD,CAAA;AAOO,IAAMG,+BAA+BC,uBAAOC,IAAI,0CAAA;AAChD,IAAMC,6BAA6BC,uBAAyCJ,4BAAAA;AAG5E,IAAMK,eAAe,CAAC,EAAEC,YAAYC,MAAK,MAAmD;AACjG,QAAMC,iBAAiBF,WAAWX,SAASc,SAAS,SAAA;AACpD,QAAMC,kBAAkBJ,WAAWX,SAASc,SAAS,UAAA;AACrD,QAAME,oBAAoBL,WAAWR,KAAKW,SAAS,QAAA;AACnD,QAAMG,kBAAkBN,WAAWR,KAAKW,SAAS,MAAA;AACjD,QAAMI,oBAAoBP,WAAWP,WAAWU,SAAS,YAAA;AACzD,QAAMK,sBAAsBR,WAAWP,WAAWU,SAAS,cAAA;AAE3D,QAAMM,mBACJP,kBAAkBD,QACdA,MAAMS,GAAGC,eACNC,MAAM;IAAEvB,UAAU;MAAC;;EAAW,CAAA,EAC9BwB,QAAO,EACPC,OAAO,CAACC,WAAAA;AACP,UAAMC,WAAWC,kBAAkBF,MAAAA,GAASvB,SAAS0B,WAAWC;AAChE,QAAIH,UAAU;AACZ,aAAOX;IACT;AAEA,UAAMe,SAASC,qBAAqBC,IAAIP,MAAAA,EAAQQ,KAAYC,iBAAU,MAAM,KAAA,CAAA;AAC5E,QAAIJ,QAAQ;AACV,aAAOf;IACT;AAEA,WAAOC;EACT,CAAA,EACCQ,OAAO,CAACC,WAAAA;AACP,UAAMtB,aAAaQ,OAAOwB,WAAWC,eAAevB,SAASwB,KAAKC,YAAYb,MAAAA,CAAAA;AAC9E,WAAOtB,aAAac,oBAAoBC;EAC1C,CAAA,EACCqB,IAAI,CAACd,WAAWY,KAAKC,YAAYb,MAAAA,CAAAA,IACpC,CAAA;AAEN,QAAMe,oBACJ1B,mBAAmBG,qBAAqBN,QACpCA,MAAMS,GAAGC,eACNC,MAAM;IAAEvB,UAAU;MAAC;;EAAY,CAAA,EAC/BwB,QAAO,EACPgB,IAAI,CAACd,WAAWY,KAAKC,YAAYb,MAAAA,CAAAA,IACpC,CAAA;AAEN,SAAOzB,MAAMyC,KAAK,oBAAIC,IAAY;OAAIvB;OAAqBqB;GAAkB,CAAA,EAAGG,KAAI;AACtF;;;AC/DA,YAAYC,aAAY;AAExB,SAASC,cAAAA,aAAYC,cAAc;AAGnC,SAASC,mBAAmB;AAC5B,SAASC,iCAAiCC,kBAAkB;AAC5D,SAASC,UAAUC,KAAKC,UAAUC,QAAAA,aAAY;AAC9C,SAASC,YAAYC,YAAY;AACjC,SAASC,iBAAiB;AAOnB,IAAMC,yBAAyB,GAAGC,KAAKC,EAAE;AAEzC,IAAMC,aAAa;AAyEnB,IAAMC,sBAA6BC,gBACjCC,eAAO;;;;EAIZC,YAAmBC;AACrB,CAAA,CAAA;AAiCK,IAAMC,mBAAmBC,uBAAOC,IAAI,oCAAA;AACpC,IAAMC,kBAAkBF,uBAAOC,IAAI,mCAAA;AAGnC,IAAME,YAAmBP,eAAO;EACrCQ,MAAaC,iBAAgBC,eAAOC,YAAY;IAAEC,OAAO;EAAO,CAAA,CAAA;EAChEC,MAAaJ,iBAAgBC,eAAOC,YAAY;IAAEC,OAAO;IAAQ,CAACT,gBAAAA,GAAmB;EAAK,CAAA,CAAA;EAC1FW,KAAYL,iBAAgBC,eAAOC,YAAY;IAAEC,OAAO;IAAS,CAACN,eAAAA,GAAkB;EAAK,CAAA,CAAA;EACzFS,iBAAwBN,iBAAgBP,gBAAQS,YAAY;IAAEC,OAAO;EAA0B,CAAA,CAAA;AACjG,CAAA;AAEA,IAAMI,uBAAuB;UAEZC,sBAAAA;uBACFC,SAASC,UAAUC,KAAK;IACnCzB,MAAM;MAAE0B,KAAK,GAAGL,oBAAAA;MAA+BR,MAAM;IAAoB;IACzEc,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBQ,MAAaC,iBAAgBC,cAAM;MACrC,CAAA;MACAiB,QAAe3B,eAAO;QACpB4B,QAAQC,WAAWA;MACrB,CAAA;IACF;EACF,CAAA;AACF,GAbiBZ,wBAAAA,sBAAAA,CAAAA,EAAAA;AAejB,IAAMa,kBAAkB,GAAGnC,KAAKC,EAAE;UAKjBmC,iBAAAA;kBACFb,SAASC,UAAUC,KAAK;IACnCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;MAASS,OAAOT;;IACtCC,QAAQ;MACNC,OAAOnB;MACPoB,QAAe3B,eAAO;QACpBJ,IAAWc;QACXwB,SAAgBC,cAAazB,cAAM;QACnC0B,OAAOC;MACT,CAAA;IACF;EACF,CAAA;kBAEaC,OAAOnB,UAAUC,KAAK;IACjCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBuC,gBAAuB9B,iBAAgBC,cAAM;QAC7C8B,QAAe/B,iBAAgBgC,WAAG;MACpC,CAAA;MACAd,QAAee;IACjB;EACF,CAAA;kBAEaC,OAAOxB,UAAUC,KAAK;IACjCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;MACT,CAAA;MACAV,QAAee;IACjB;EACF,CAAA;kBAEaE,QAAQzB,UAAUC,KAAK;IAClCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;MACT,CAAA;MACAV,QAAee;IACjB;EACF,CAAA;kBAEaG,QAAQ1B,UAAUC,KAAK;IAClCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;QACPS,MAAaC,cAAMC,WAAWC,IAAI;QAClCC,YAAmBH,cAAMC,WAAWG,UAAU;QAC9CC,UAAiBlD;QACjBmD,QAAe5C,iBAAgBC,cAAM;MACvC,CAAA;MACAiB,QAAe2B,mBAAWC,+BAAAA;IAC5B;EACF,CAAA;kBAGaC,OAAOrC,UAAUC,KAAK;IACjCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;MACT,CAAA;MACAV,QAAee;IACjB;EACF,CAAA;kBAGae,SAAStC,UAAUC,KAAK;IACnCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;MACT,CAAA;MACAV,QAAee;IACjB;EACF,CAAA;kBAEagB,eAAevC,UAAUC,KAAK;IACzCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;MACT,CAAA;MACAV,QAAee;IACjB;EACF,CAAA;kBAEaiB,gBAAgBxC,UAAUC,KAAK;IAC1CzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBJ,IAAWa,iBAAgBC,cAAM;MACnC,CAAA;MACAiB,QAAee;IACjB;EACF,CAAA;kBAEakB,YAAYzC,UAAUC,KAAK;IACtCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnB4B,QAAQiC,IAAIC,QAAQnD,YAAY;UAAEqB,aAAa;QAAqB,CAAA;QACpEqB,QAAeU,cAAMC,SAASA,UAAUnC,WAAWA,UAAU,EAAElB,YAAY;UACzEqB,aAAa;QACf,CAAA;QACAiC,QAAexD,iBAAgBP,eAAO;MACxC,CAAA;MACAyB,QAAe3B,eAAO;QACpBJ,IAAWc;QACXwB,SAAgBC,cAAazB,cAAM;QACnCkB,QAAQiC,IAAIC;MACd,CAAA;IACF;EACF,CAAA;kBAEaI,sBAA6BlE,eAAO;IAC/CmE,SAAgBhC,cAAM0B,IAAIC,OAAO,EAAEnD,YAAY;MAAEqB,aAAa;IAAuB,CAAA;IACrFoC,kBAAkBvC,WAAWA,WAAWlB,YAAY;MAAEqB,aAAa;IAA+B,CAAA;IAClGqC,SAAgBlC,cAAamC,cAAM,EAAE3D,YAAY;MAAEqB,aAAa;IAAmC,CAAA;IACnGuC,mBAA0BpC,cAAaA,cAAM0B,IAAIC,OAAO,CAAA,EAAGnD,YAAY;MACrEqB,aAAa;IACf,CAAA;IACAwC,WAAkBrC,cAAazB,cAAM,EAAEC,YAAY;MACjDqB,aAAa;IACf,CAAA;EACF,CAAA;kBAIayC,gBAAgBtD,UAAUC,KAAK;IAC1CzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBmE,SAAgBhC,cAAM0B,IAAIC,OAAO,EAAEnD,YAAY;UAAEqB,aAAa;QAAyB,CAAA;QACvFqB,QAAe5C,iBAASoB,WAAWA,UAAU,EAAElB,YAAY;UAAEqB,aAAa;QAAiC,CAAA;MAC7G,CAAA;MACAL,QAAMI,gBAAEmC;IACV;EACF,CAAA;kBAEaQ,oBAA2B1E,eAAO;IAC7C2E,OAAOC,KAAKC,YAAYlE,YAAY;MAAEqB,aAAa;IAA4B,CAAA;;IAE/E8C,OAAcrC,YAAI9B,YAAY;MAAEqB,aAAa;IAAgC,CAAA;IAC7E+C,OAAcT,eAAO3D,YAAY;MAAEqB,aAAa;IAA8B,CAAA;EAChF,CAAA;kBAIagD,cAAc7D,UAAUC,KAAK;IACxCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBiF,MAAML,KAAKA,KAAKjE,YAAY;UAAEqB,aAAa;QAAqC,CAAA;QAChFkD,SAAgBxE;MAClB,CAAA;MACAiB,QAAMI,gBAAE2C;IACV;EACF,CAAA;kBAEaS,mBAAmBhE,UAAUC,KAAK;IAC7CzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBqD,QAAeU,cAAMC,SAASA,UAAUnC,WAAWA,UAAU,EAAElB,YAAY;UACzEqB,aAAa;QACf,CAAA;QACAoD,OAAc3E,iBAAgBP,eAAO;QACrCmF,UAAiB5E,iBAAgBC,cAAM;QACvC4E,mBAA0B7E,iBAAgBgC,WAAG;QAC7C8C,WAAkB9E,iBAAgBP,eAAO;;QAEzCsF,gBAAuB/E,iBAAgBgC,WAAG;MAC5C,CAAA;MACAd,QAAee;IACjB;EACF,CAAA;kBAEa+C,kBAAkBtE,UAAUC,KAAK;IAC5CzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAcgB;MACdf,QAAee;IACjB;EACF,CAAA;kBAEagD,UAAUvE,UAAUC,KAAK;IACpCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;QACPsD,SAAgBlF,iBAAgBC,cAAM;MACxC,CAAA;MACAiB,QAAezB;IACjB;EACF,CAAA;kBAEa0F,WAAWzE,UAAUC,KAAK;IACrCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnB6F,IAAI7B,SAASA;QACb8B,OAAOC,SAASC,MAAMC,KAAYxF,gBAAQ;MAC5C,CAAA;MACAkB,QAAe3B,eAAO;QACpBkG,UAAiB5C,mBAAW6C,IAAAA;MAC9B,CAAA;IACF;EACF,CAAA;kBAEaC,SAASjF,UAAUC,KAAK;IACnCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;QACPgE,QAAe5F,iBAAgBC,cAAM;MACvC,CAAA;MACAiB,QAAee;IACjB;EACF,CAAA;kBAEa4D,eAAenF,UAAUC,KAAK;IACzCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnB4B,QAAQiC,IAAIC;QACZuC,QAAe5F,iBAAgBC,cAAM;MACvC,CAAA;MACAiB,QAAee;IACjB;EACF,CAAA;kBAEa6D,cAAcpF,UAAUC,KAAK;IACxCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;MACT,CAAA;MACAV,QAAee;IACjB;EACF,CAAA;kBAEa8D,eAAerF,UAAUC,KAAK;IACzCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBoC,OAAOC;QACPgB,QAAe5C,iBAAgBC,cAAM;QACrC+F,iBAAwBhG,iBAAgBP,eAAO;MACjD,CAAA;MACAyB,QAAejB;IACjB;EACF,CAAA;kBAEagG,mBAA0B1G,eAAO;IAC5CQ,MAAaC,iBAAgBC,cAAM;IACnC2E,UAAiB3E,eAAOuF,KACftF,oBAAY;MAAEC,OAAO;IAAiD,CAAA,GAC7E+F,2BAA2BC,IAAI;MAC7BC,UAAU;QAAC;;MACXC,MAAM;QAAC;;MACPC,YAAY;QAAC;;IACf,CAAA,GACOtG,gBAAQ;EAEnB,CAAA;kBAEauG,kBAAkB7F,UAAUC,KAAK;IAC5CzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;MAASS,OAAOT;;IACtCC,QAAQ;MACNC,OAAc1B,eAAO;QACnB6F,IAAI7B,SAASA;QACbqB,UAAiB3E;QACjBuG,MAAaxG,iBAAgBP,eAAO;MACtC,CAAA;MACAyB,QAAe3B,eAAO,CAAC,CAAA;IACzB;EACF,CAAA;kBAEakH,YAAY/F,UAAUC,KAAK;IACtCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;MAASS,OAAOT;;IACtCC,QAAQ;MACNC,OAAc1B,eAAO;QACnB6F,IAAI7B,SAASA;QACbxD,MAAaC,iBAAgBC,cAAM;QACnC2E,UAAiB5E,iBAAgBC,cAAM;QACvCiF,SAAgBlF,iBAAgBC,cAAM;;QAEtCe,QAAegB;QACfwE,MAAaxG,iBAAgBP,eAAO;MACtC,CAAA;MACAyB,QAAe3B,eAAO;QACpBJ,IAAWc;QACXkB,QAAQqB,MAAKkE;QACb1F,QAAe6B,mBAAWL,MAAKmE,WAAW;MAC5C,CAAA;IACF;EACF,CAAA;kBAEaC,cAAclG,UAAUC,KAAK;IACxCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnB6F,IAAI7B,SAASA;;QAEbvC,QAAegB;QACf6E,QAAQzD,IAAIC;QACZT,QAAQQ,IAAIC;;QAEZyD,QAAe9G,iBAAgB+G,eAAO;UAAEnG,KAAYX;UAAQ+G,OAAchF;QAAI,CAAA,CAAA;MAChF,CAAA;MACAd,QAAe3B,eAAO;QACpB0H,UAAiBjF;MACnB,CAAA;IACF;EACF,CAAA;kBAGakF,kBAAkBxG,UAAUC,KAAK;IAC5CzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnB4B,QAAQiC,IAAIC;QACZT,QAAeU,cAAMC,SAASA,UAAUnC,WAAWA,UAAU;MAC/D,CAAA;MACAF,QAAee;IACjB;EACF,CAAA;kBAKakF,eAAezG,UAAUC,KAAK;IACzCzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBiF,MAAML,KAAKA,KAAKjE,YAAY;UAAEqB,aAAa;QAAoC,CAAA;QAC/E2C,OAAOC,KAAKC,YAAYlE,YAAY;UAAEqB,aAAa;QAA+B,CAAA;;QAElF8C,OAAcrC,YAAI9B,YAAY;UAAEqB,aAAa;QAAmC,CAAA;QAChF+C,OAAcT,eAAO3D,YAAY;UAAEqB,aAAa;QAAqC,CAAA;MACvF,CAAA;MACAL,QAAee;IACjB;EACF,CAAA;kBAKamF,iBAAiB1G,UAAUC,KAAK;IAC3CzB,MAAM;MACJ0B,KAAK,GAAGS,eAAAA;MACRtB,MAAM;MACNwB,aAAa;IACf;IACAV,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNC,OAAc1B,eAAO;QACnBmE,SAAgBhC,cAAM0B,IAAIC,OAAO,EAAEnD,YAAY;UAAEqB,aAAa;QAA0B,CAAA;QACxFoC,kBAAkBvC,WAAWA,WAAWlB,YAAY;UAAEqB,aAAa;QAAgC,CAAA;QACnGqC,SAAgBlC,cAAamC,cAAM,EAAE3D,YAAY;UAAEqB,aAAa;QAA6B,CAAA;QAC7FuC,mBAA0BpC,cAAaA,cAAM0B,IAAIC,OAAO,CAAA,EAAGnD,YAAY;UACrEqB,aAAa;QACf,CAAA;QACAwC,WAAkBrC,cAAazB,cAAM,EAAEC,YAAY;UACjDqB,aAAa;QACf,CAAA;MACF,CAAA;MACAL,QAAee;IACjB;EACF,CAAA;AACF,GAnfiBX,mBAAAA,iBAAAA,CAAAA,EAAAA;;;",
|
|
6
|
-
"names": ["Schema", "Capability", "SpaceCapabilities", "Settings", "Capability", "make", "meta", "id", "StateSchema", "mutable", "Struct", "spaceNames", "Record", "key", "String", "value", "enabledEdgeReplication", "Boolean", "State", "EphemeralState", "SettingsSection", "OnCreateSpace", "OnSchemaAdded", "Repair", "ActivationEvent", "AppActivationEvents", "SpaceEvents", "StateReady", "AppActivationEvents", "createStateEvent", "meta", "id", "SetupSettingsPanel", "ActivationEvent", "make", "DefaultSpaceReady", "SpaceCreated", "SchemaAdded", "Option", "Schema", "Type", "EntityKind", "SystemTypeAnnotation", "createAnnotationHelper", "getTypeAnnotation", "TypeInputOptions", "Struct", "location", "Array", "Literal", "kind", "registered", "TypeInputOptionsAnnotationId", "Symbol", "for", "TypeInputOptionsAnnotation", "createAnnotationHelper", "getTypenames", "annotation", "space", "includeRuntime", "includes", "includeDatabase", "includeSystemType", "includeUserType", "includeRegistered", "includeUnregistered", "runtimeTypenames", "db", "schemaRegistry", "query", "runSync", "filter", "schema", "relation", "getTypeAnnotation", "EntityKind", "Relation", "system", "SystemTypeAnnotation", "get", "pipe", "getOrElse", "properties", "staticRecords", "Type", "getTypename", "map", "databaseTypenames", "from", "Set", "sort", "Schema", "Capability", "Plugin", "SpaceSchema", "CancellableInvitationObservable", "Invitation", "Database", "Obj", "QueryAST", "Type", "Collection", "View", "Operation", "SPACE_DIRECTORY_HANDLE", "meta", "id", "SPACE_TYPE", "SpaceSettingsSchema", "mutable", "Struct", "showHidden", "Boolean", "IconAnnotationId", "Symbol", "for", "HueAnnotationId", "SpaceForm", "name", "optional", "String", "annotations", "title", "icon", "hue", "edgeReplication", "COLLECTION_OPERATION", "CollectionOperation", "Create", "Operation", "make", "key", "services", "Capability", "Service", "schema", "input", "output", "object", "Collection", "SPACE_OPERATION", "SpaceOperation", "description", "Plugin", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "Void", "Open", "Close", "Share", "type", "Enums", "Invitation", "Type", "authMethod", "AuthMethod", "multiUse", "target", "instanceOf", "CancellableInvitationObservable", "Lock", "Unlock", "OpenSettings", "WaitForObject", "AddObject", "Obj", "Unknown", "Union", "Database", "hidden", "RemoveObjectsOutput", "objects", "parentCollection", "indices", "Number", "nestedObjectsList", "wasActive", "RemoveObjects", "DeleteFieldOutput", "field", "View", "FieldSchema", "props", "index", "DeleteField", "view", "fieldId", "OpenCreateObject", "views", "typename", "initialFormValues", "navigable", "onCreateObject", "OpenCreateSpace", "Migrate", "version", "Snapshot", "db", "query", "QueryAST", "Query", "pipe", "snapshot", "Blob", "Rename", "caller", "RenameObject", "OpenMembers", "GetShareLink", "copyToClipboard", "StoredSchemaForm", "TypeInputOptionsAnnotation", "set", "location", "kind", "registered", "UseStaticSchema", "show", "AddSchema", "PersistentType", "RuntimeType", "AddRelation", "source", "fields", "Record", "value", "relation", "DuplicateObject", "RestoreField", "RestoreObjects"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/hooks/useActiveSpace.ts", "../../../src/hooks/useInputSurfaceLookup.tsx", "../../../src/hooks/usePath.ts", "../../../src/hooks/useTypeOptions.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type CapabilityManager } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { useLayout } from '@dxos/app-toolkit/ui';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { parseId, useSpace } from '@dxos/react-client/echo';\n\nexport const getActiveSpace = (capabilities: CapabilityManager.CapabilityManager) => {\n const client = capabilities.get(ClientCapabilities.Client);\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const layoutAtom = capabilities.get(AppCapabilities.Layout);\n const layout = registry.get(layoutAtom);\n const { spaceId } = parseId(layout.workspace);\n return spaceId ? client.spaces.get(spaceId) : undefined;\n};\n\nexport const useActiveSpace = () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n return useSpace(spaceId);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Surface, usePluginManager } from '@dxos/app-framework/ui';\nimport { type FormFieldProvider } from '@dxos/react-ui-form';\n\n/**\n * Creates a surface input component based on plugin context.\n * @param baseData Additional data that will be merged with form data and passed to the surface.\n * This allows providing more context to the surface than what's available from the form itself.\n */\n// TODO(burdon): Factor out?\nexport const useInputSurfaceLookup = (baseData?: Record<string, any>): FormFieldProvider => {\n const pluginManager = usePluginManager();\n return useCallback<FormFieldProvider>(\n ({ schema, prop, fieldProps }) => {\n const data = { prop, schema, ...baseData };\n if (Surface.isAvailable(pluginManager.capabilities, { role: 'form-input', data })) {\n return <Surface.Surface role='form-input' data={data} {...fieldProps} />;\n }\n },\n [pluginManager, baseData],\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport { useEffect, useState } from 'react';\n\nimport { Graph } from '@dxos/plugin-graph';\n\n/**\n * React hook to get a path from the graph.\n *\n * @param graph Graph to find the node in.\n * @param id Id of the node to find a path to.\n * @param timeout Optional timeout in milliseconds to wait for the node to be found.\n * @returns Path if found, undefined otherwise.\n */\n// TODO(wittjosiah): Factor out.\nexport const usePath = (graph: Graph.ReadableGraph, id?: string, timeout?: number): Option.Option<string[]> => {\n const [pathState, setPathState] = useState<Option.Option<string[]>>(\n id ? Graph.getPath(graph, { target: id }) : Option.none(),\n );\n\n useEffect(() => {\n if (!id && pathState) {\n setPathState(Option.none());\n }\n\n if ((Option.isSome(pathState) && pathState.value.at(-1) === id) || !id) {\n return;\n }\n\n // Set timeout did not seem to effectively not block the UI thread.\n const frame = requestAnimationFrame(async () => {\n try {\n const path = await Graph.waitForPath(graph, { target: id }, { timeout });\n if (path) {\n setPathState(Option.some(path));\n }\n } catch {}\n });\n\n return () => cancelAnimationFrame(frame);\n }, [graph, id, timeout, pathState]);\n\n return pathState;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\n\nimport { type TypeInputOptions, getTypenames } from '../types';\n\nexport const useTypeOptions = ({ space, annotation }: { space?: Space; annotation: TypeInputOptions }) => {\n const { t } = useTranslation();\n const typenames = getTypenames({ annotation, space });\n return useMemo(\n () =>\n typenames\n .map((typename) => ({\n value: typename,\n label: t('typename label', { ns: typename, defaultValue: typename }),\n }))\n .toSorted((a, b) => a.label.localeCompare(b.label)),\n [t, typenames],\n );\n};\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,oBAA4C;AACrD,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,SAASC,gBAAgB;AAE3B,IAAMC,iBAAiB,CAACC,iBAAAA;AAC7B,QAAMC,SAASD,aAAaE,IAAIC,mBAAmBC,MAAM;AACzD,QAAMC,WAAWL,aAAaE,IAAII,aAAaC,YAAY;AAC3D,QAAMC,aAAaR,aAAaE,IAAIO,gBAAgBC,MAAM;AAC1D,QAAMC,SAASN,SAASH,IAAIM,UAAAA;AAC5B,QAAM,EAAEI,QAAO,IAAKC,QAAQF,OAAOG,SAAS;AAC5C,SAAOF,UAAUX,OAAOc,OAAOb,IAAIU,OAAAA,IAAWI;AAChD;AAEO,IAAMC,iBAAiB,MAAA;AAC5B,QAAMN,SAASO,UAAAA;AACf,QAAM,EAAEN,QAAO,IAAKC,QAAQF,OAAOG,SAAS;AAC5C,SAAOK,SAASP,OAAAA;AAClB;;;ACnBA,OAAOQ,SAASC,mBAAmB;AAEnC,SAASC,SAASC,wBAAwB;AASnC,IAAMC,wBAAwB,CAACC,aAAAA;AACpC,QAAMC,gBAAgBC,iBAAAA;AACtB,SAAOC,YACL,CAAC,EAAEC,QAAQC,MAAMC,WAAU,MAAE;AAC3B,UAAMC,OAAO;MAAEF;MAAMD;MAAQ,GAAGJ;IAAS;AACzC,QAAIQ,QAAQC,YAAYR,cAAcS,cAAc;MAAEC,MAAM;MAAcJ;IAAK,CAAA,GAAI;AACjF,aAAO,sBAAA,cAACC,QAAQA,SAAO;QAACG,MAAK;QAAaJ;QAAa,GAAGD;;IAC5D;EACF,GACA;IAACL;IAAeD;GAAS;AAE7B;;;ACtBA,YAAYY,YAAY;AACxB,SAASC,WAAWC,gBAAgB;AAEpC,SAASC,aAAa;AAWf,IAAMC,UAAU,CAACC,OAA4BC,IAAaC,YAAAA;AAC/D,QAAM,CAACC,WAAWC,YAAAA,IAAgBC,SAChCJ,KAAKK,MAAMC,QAAQP,OAAO;IAAEQ,QAAQP;EAAG,CAAA,IAAYQ,YAAI,CAAA;AAGzDC,YAAU,MAAA;AACR,QAAI,CAACT,MAAME,WAAW;AACpBC,mBAAoBK,YAAI,CAAA;IAC1B;AAEA,QAAYE,cAAOR,SAAAA,KAAcA,UAAUS,MAAMC,GAAG,EAAC,MAAOZ,MAAO,CAACA,IAAI;AACtE;IACF;AAGA,UAAMa,QAAQC,sBAAsB,YAAA;AAClC,UAAI;AACF,cAAMC,OAAO,MAAMV,MAAMW,YAAYjB,OAAO;UAAEQ,QAAQP;QAAG,GAAG;UAAEC;QAAQ,CAAA;AACtE,YAAIc,MAAM;AACRZ,uBAAoBc,YAAKF,IAAAA,CAAAA;QAC3B;MACF,QAAQ;MAAC;IACX,CAAA;AAEA,WAAO,MAAMG,qBAAqBL,KAAAA;EACpC,GAAG;IAACd;IAAOC;IAAIC;IAASC;GAAU;AAElC,SAAOA;AACT;;;AC1CA,SAASiB,eAAe;AAGxB,SAASC,sBAAsB;AAIxB,IAAMC,iBAAiB,CAAC,EAAEC,OAAOC,WAAU,MAAmD;AACnG,QAAM,EAAEC,EAAC,IAAKC,eAAAA;AACd,QAAMC,YAAYC,aAAa;IAAEJ;IAAYD;EAAM,CAAA;AACnD,SAAOM,QACL,MACEF,UACGG,IAAI,CAACC,cAAc;IAClBC,OAAOD;IACPE,OAAOR,EAAE,kBAAkB;MAAES,IAAIH;MAAUI,cAAcJ;IAAS,CAAA;EACpE,EAAA,EACCK,SAAS,CAACC,GAAGC,MAAMD,EAAEJ,MAAMM,cAAcD,EAAEL,KAAK,CAAA,GACrD;IAACR;IAAGE;GAAU;AAElB;",
|
|
6
|
-
"names": ["Capabilities", "AppCapabilities", "useLayout", "ClientCapabilities", "parseId", "useSpace", "getActiveSpace", "capabilities", "client", "get", "ClientCapabilities", "Client", "registry", "Capabilities", "AtomRegistry", "layoutAtom", "AppCapabilities", "Layout", "layout", "spaceId", "parseId", "workspace", "spaces", "undefined", "useActiveSpace", "useLayout", "useSpace", "React", "useCallback", "Surface", "usePluginManager", "useInputSurfaceLookup", "baseData", "pluginManager", "usePluginManager", "useCallback", "schema", "prop", "fieldProps", "data", "Surface", "isAvailable", "capabilities", "role", "Option", "useEffect", "useState", "Graph", "usePath", "graph", "id", "timeout", "pathState", "setPathState", "useState", "Graph", "getPath", "target", "none", "useEffect", "isSome", "value", "at", "frame", "requestAnimationFrame", "path", "waitForPath", "some", "cancelAnimationFrame", "useMemo", "useTranslation", "useTypeOptions", "space", "annotation", "t", "useTranslation", "typenames", "getTypenames", "useMemo", "map", "typename", "value", "label", "ns", "defaultValue", "toSorted", "a", "b", "localeCompare"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/operation-resolver/operation-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability, Plugin, UndoMapping } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { SpaceState, getSpace } from '@dxos/client/echo';\nimport { Database, Obj, Query, Ref, Relation, Type } from '@dxos/echo';\nimport { Collection } from '@dxos/echo';\nimport { EchoDatabaseImpl, Serializer } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport { OperationResolver } from '@dxos/operation';\nimport { Operation } from '@dxos/operation';\nimport { ClientCapabilities } from '@dxos/plugin-client/types';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';\nimport { iconValues } from '@dxos/react-ui-pickers/icons';\nimport {\n CollectionModel,\n ManagedCollection,\n ProjectionModel,\n createEchoChangeCallback,\n getTypenameFromQuery,\n} from '@dxos/schema';\nimport { hues } from '@dxos/ui-theme';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n JOIN_DIALOG,\n OBJECT_RENAME_POPOVER,\n SPACE_RENAME_POPOVER,\n} from '../../constants';\nimport { type JoinDialogProps } from '../../containers/JoinDialog/JoinDialog';\nimport { meta } from '../../meta';\nimport { SpaceEvents } from '../../types';\nimport { SpaceCapabilities, SpaceOperation } from '../../types';\nimport { COMPOSER_SPACE_LOCK, cloneObject, getNestedObjects } from '../../util';\n\ntype OperationResolverOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n observability?: boolean;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ createInvitationUrl, observability }: OperationResolverOptions) {\n const capabilityManager = yield* Capability.Service;\n\n const resolve = (typename: string) =>\n capabilityManager.getAll(AppCapabilities.Metadata).find(({ id }: { id: string }) => id === typename)?.metadata ??\n {};\n\n return [\n Capability.contributes(Capabilities.UndoMapping, [\n UndoMapping.make({\n operation: SpaceOperation.DeleteField,\n inverse: SpaceOperation.RestoreField,\n deriveContext: (input, output) => ({\n view: input.view,\n field: output.field,\n props: output.props,\n index: output.index,\n }),\n message: ['field deleted label', { ns: meta.id }],\n }),\n UndoMapping.make({\n operation: SpaceOperation.RemoveObjects,\n inverse: SpaceOperation.RestoreObjects,\n deriveContext: (_input, output) => ({\n objects: output.objects,\n parentCollection: output.parentCollection,\n indices: output.indices,\n nestedObjectsList: output.nestedObjectsList,\n wasActive: output.wasActive,\n }),\n message: (input, _output) => {\n const ns = Obj.getTypename(input.objects[0]);\n return ns && input.objects.length === 1\n ? ['object deleted label', { ns: meta.id }]\n : ['objects deleted label', { ns: meta.id }];\n },\n }),\n ]),\n Capability.contributes(Capabilities.OperationResolver, [\n //\n // Open\n //\n OperationResolver.make({\n operation: SpaceOperation.Open,\n handler: (input) =>\n Effect.promise(async () => {\n await input.space.open();\n }),\n }),\n\n //\n // Close\n //\n OperationResolver.make({\n operation: SpaceOperation.Close,\n handler: (input) =>\n Effect.promise(async () => {\n await input.space.close();\n }),\n }),\n\n //\n // Join\n //\n OperationResolver.make({\n operation: SpaceOperation.Join,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: JOIN_DIALOG,\n blockAlign: 'start',\n props: {\n initialInvitationCode: input.invitationCode,\n onDone: input.onDone,\n } satisfies Partial<JoinDialogProps>,\n });\n }),\n }),\n\n //\n // WaitForObject\n //\n OperationResolver.make({\n operation: SpaceOperation.WaitForObject,\n handler: Effect.fnUntraced(function* (input) {\n yield* Capabilities.updateAtomValue(SpaceCapabilities.EphemeralState, (current) => ({\n ...current,\n awaiting: input.id,\n }));\n }),\n }),\n\n //\n // OpenSettings\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenSettings,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`properties-settings${ATTENDABLE_PATH_SEPARATOR}${input.space.id}`],\n workspace: input.space.id,\n });\n }),\n }),\n\n //\n // RemoveObjects\n //\n OperationResolver.make({\n operation: SpaceOperation.RemoveObjects,\n handler: Effect.fnUntraced(function* (input) {\n const layout = yield* Capabilities.getAtomValue(AppCapabilities.Layout);\n const objects = input.objects as Obj.Unknown[];\n\n // All objects must be a member of the same space.\n const space = getSpace(objects[0]);\n invariant(space && objects.every((obj) => Obj.isObject(obj) && getSpace(obj) === space));\n const openObjectIds = new Set<string>(layout.active);\n\n const parentCollection: Collection.Collection =\n input.target ?? space.properties[Collection.Collection.typename]?.target;\n\n const nestedObjectsList = yield* Effect.promise(() =>\n Promise.all(objects.map((obj) => getNestedObjects(obj, resolve))),\n );\n\n // Capture indices before removal.\n const indices = objects.map((obj) =>\n Obj.instanceOf(Collection.Collection, parentCollection)\n ? parentCollection.objects.findIndex((ref) => ref.target === obj)\n : -1,\n );\n\n // Close objects that were open.\n const wasActive = objects\n .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])\n .filter((obj) => Obj.isObject(obj) && openObjectIds.has(Obj.getDXN(obj).toString()))\n .map((obj) => Obj.getDXN(obj).toString());\n\n for (let i = 0; i < objects.length; i++) {\n const obj = objects[i];\n const nestedObjects = nestedObjectsList[i];\n\n // Remove from parent collection.\n const index = parentCollection.objects.findIndex((ref) => ref.target === obj);\n if (index !== -1) {\n Obj.change(parentCollection, (c) => {\n c.objects.splice(index, 1);\n });\n }\n\n // Delete nested objects.\n for (const nestedObject of nestedObjects) {\n if (Obj.isObject(nestedObject)) {\n Obj.getDatabase(nestedObject)?.remove(nestedObject);\n } else if (Relation.isRelation(nestedObject)) {\n const db = Obj.getDatabase(Relation.getSource(nestedObject));\n db?.remove(nestedObject);\n }\n }\n\n // Delete the object.\n const db = Obj.getDatabase(obj);\n db?.remove(obj);\n }\n\n if (wasActive.length > 0) {\n yield* Operation.invoke(LayoutOperation.Close, { subject: wasActive });\n }\n\n // Return data needed for undo.\n return {\n objects,\n parentCollection,\n indices,\n nestedObjectsList,\n wasActive,\n };\n }),\n }),\n\n //\n // DeleteField\n //\n OperationResolver.make({\n operation: SpaceOperation.DeleteField,\n handler: Effect.fnUntraced(function* (input) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const view = input.view as any;\n const db = Obj.getDatabase(view);\n invariant(db);\n const typename = getTypenameFromQuery(view.query.ast);\n invariant(typename);\n const schema = yield* Effect.promise(() => db.schemaRegistry.query({ typename }).firstOrUndefined());\n invariant(schema);\n\n // Create projection with change callbacks that wrap in Obj.change().\n const projection = new ProjectionModel({\n registry,\n view,\n baseSchema: schema.jsonSchema,\n change: createEchoChangeCallback(view, schema),\n });\n\n const result = projection.deleteFieldProjection(input.fieldId);\n\n // Return data needed for undo.\n return {\n field: result.deleted.field,\n props: result.deleted.props,\n index: result.index,\n };\n }),\n }),\n\n //\n // OpenCreateObject\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenCreateObject,\n handler: Effect.fnUntraced(function* (input) {\n const ephemeralState = yield* Capabilities.getAtomValue(SpaceCapabilities.EphemeralState);\n const navigable = input.navigable ?? true;\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: CREATE_OBJECT_DIALOG,\n blockAlign: 'start',\n props: {\n target: input.target,\n views: input.views,\n typename: input.typename,\n initialFormValues: input.initialFormValues,\n onCreateObject: input.onCreateObject,\n shouldNavigate: navigable\n ? (object: Obj.Unknown) => {\n const isCollection = Obj.instanceOf(Collection.Collection, object);\n const isSystemCollection = Obj.instanceOf(ManagedCollection.ManagedCollection, object);\n return (!isCollection && !isSystemCollection) || ephemeralState.navigableCollections;\n }\n : () => false,\n },\n });\n }),\n }),\n\n //\n // AddObject\n //\n OperationResolver.make({\n operation: SpaceOperation.AddObject,\n handler: Effect.fnUntraced(function* (input) {\n const target = input.target as any;\n const object = input.object as Obj.Unknown;\n const db = Database.isDatabase(target) ? target : Obj.getDatabase(target);\n invariant(db, 'Database not found.');\n\n yield* CollectionModel.add({\n object,\n target: Database.isDatabase(target) ? undefined : target,\n hidden: input.hidden,\n }).pipe(Effect.provide(Database.layer(db)));\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.object.add',\n properties: {\n spaceId: db.spaceId,\n objectId: object.id,\n typename: Obj.getTypename(object),\n },\n });\n\n return {\n id: Obj.getDXN(object).toString(),\n subject: [Obj.getDXN(object).toString()],\n object,\n };\n }),\n }),\n\n //\n // Share\n //\n OperationResolver.make({\n operation: SpaceOperation.Share,\n handler: Effect.fnUntraced(function* (input) {\n const { space, type, authMethod, multiUse, target } = input;\n const invitation = space.share({ type, authMethod, multiUse, target });\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.share',\n properties: {\n spaceId: space.id,\n },\n });\n\n return invitation;\n }),\n }),\n\n //\n // Lock\n // TODO(wittjosiah): This appears to be unused.\n //\n OperationResolver.make({\n operation: SpaceOperation.Lock,\n handler: Effect.fnUntraced(function* ({ space }) {\n Obj.change(space.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = true;\n });\n\n if (observability) {\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.lock',\n properties: { spaceId: space.id },\n });\n }\n }),\n }),\n\n //\n // Unlock\n // TODO(wittjosiah): This appears to be unused.\n //\n OperationResolver.make({\n operation: SpaceOperation.Unlock,\n handler: Effect.fnUntraced(function* ({ space }) {\n Obj.change(space.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = false;\n });\n\n if (observability) {\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.unlock',\n properties: { spaceId: space.id },\n });\n }\n }),\n }),\n\n //\n // OpenCreateSpace\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenCreateSpace,\n handler: Effect.fnUntraced(function* () {\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: CREATE_SPACE_DIALOG,\n blockAlign: 'start',\n });\n }),\n }),\n\n //\n // Create\n //\n OperationResolver.make({\n operation: SpaceOperation.Create,\n handler: Effect.fnUntraced(function* ({ name, hue: hue_, icon: icon_, edgeReplication }) {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const hue = hue_ ?? hues[Math.floor(Math.random() * hues.length)];\n const icon = icon_ ?? iconValues[Math.floor(Math.random() * iconValues.length)];\n const space = yield* Effect.promise(() => client.spaces.create({ name, hue, icon }));\n if (edgeReplication) {\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n }\n yield* Effect.promise(() => space.waitUntilReady());\n\n // Create root collection.\n const collection = Obj.make(Collection.Collection, { objects: [] });\n Obj.change(space.properties, (p) => {\n p[Collection.Collection.typename] = Ref.make(collection);\n // Set current migration version.\n if (Migrations.versionProperty) {\n p[Migrations.versionProperty] = Migrations.targetVersion;\n }\n });\n\n // Create records smart collection.\n Obj.change(collection, (c) => {\n c.objects.push(\n Ref.make(ManagedCollection.makeManagedCollection({ key: Type.getTypename(Type.PersistentType) })),\n );\n });\n\n // Allow other plugins to add default content.\n yield* Plugin.activate(SpaceEvents.SpaceCreated);\n const onCreateSpaceCallbacks = yield* Capability.getAll(SpaceCapabilities.OnCreateSpace);\n yield* Effect.all(\n onCreateSpaceCallbacks.map((onCreateSpace) =>\n onCreateSpace({ space, isDefault: false, rootCollection: collection }),\n ),\n );\n\n if (observability) {\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.create',\n properties: { spaceId: space.id },\n });\n }\n\n return { id: space.id, subject: [space.id], space };\n }),\n }),\n\n //\n // Migrate\n //\n OperationResolver.make({\n operation: SpaceOperation.Migrate,\n handler: Effect.fnUntraced(function* (input) {\n const { space, version: targetVersion } = input;\n\n if (space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n yield* Capabilities.updateAtomValue(SpaceCapabilities.EphemeralState, (current) => ({\n ...current,\n sdkMigrationRunning: { ...current.sdkMigrationRunning, [space.id]: true },\n }));\n yield* Effect.promise(() => space.internal.migrate());\n yield* Capabilities.updateAtomValue(SpaceCapabilities.EphemeralState, (current) => ({\n ...current,\n sdkMigrationRunning: { ...current.sdkMigrationRunning, [space.id]: false },\n }));\n }\n const result = yield* Effect.promise(() => Migrations.migrate(space, targetVersion));\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.migrate',\n properties: {\n spaceId: space.id,\n targetVersion,\n version: Migrations.versionProperty ? space.properties[Migrations.versionProperty] : undefined,\n },\n });\n\n return result;\n }),\n }),\n\n //\n // Snapshot\n //\n OperationResolver.make({\n operation: SpaceOperation.Snapshot,\n handler: (input) =>\n Effect.promise(async () => {\n const db = input.db as any;\n invariant(db instanceof EchoDatabaseImpl, 'Database must be an instance of EchoDatabaseImpl');\n const backup = await new Serializer().export(db, input.query && Query.fromAst(input.query));\n return {\n snapshot: new Blob([JSON.stringify(backup, null, 2)], { type: 'application/json' }),\n };\n }),\n }),\n\n //\n // Rename\n //\n OperationResolver.make({\n operation: SpaceOperation.Rename,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.UpdatePopover, {\n subject: SPACE_RENAME_POPOVER,\n anchorId: `dxos.org/ui/${input.caller}/${input.space.id}`,\n props: input.space,\n });\n }),\n }),\n\n //\n // RenameObject\n //\n OperationResolver.make({\n operation: SpaceOperation.RenameObject,\n handler: Effect.fnUntraced(function* (input) {\n const object = input.object as Obj.Unknown;\n yield* Operation.invoke(LayoutOperation.UpdatePopover, {\n subject: OBJECT_RENAME_POPOVER,\n anchorId: `dxos.org/ui/${input.caller}/${Obj.getDXN(object).toString()}`,\n props: object,\n });\n }),\n }),\n\n //\n // OpenMembers\n //\n OperationResolver.make({\n operation: SpaceOperation.OpenMembers,\n handler: Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`members-settings${ATTENDABLE_PATH_SEPARATOR}${input.space.id}`],\n workspace: input.space.id,\n });\n }),\n }),\n\n //\n // GetShareLink\n //\n OperationResolver.make({\n operation: SpaceOperation.GetShareLink,\n handler: Effect.fnUntraced(function* (input) {\n const { Invitation, InvitationEncoder } = yield* Effect.promise(\n () => import('@dxos/react-client/invitations'),\n );\n\n const invitation = yield* Operation.invoke(SpaceOperation.Share, {\n space: input.space,\n type: Invitation.Type.DELEGATED,\n authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,\n multiUse: true,\n target: input.target,\n });\n\n // NOTE: Delegated invitations are invalid until the connecting state when keys are filled in.\n const invitationCode = yield* Effect.tryPromise(\n () =>\n new Promise<string>((resolve) => {\n invitation.subscribe((inv) => {\n if (inv.state === Invitation.State.CONNECTING) {\n resolve(InvitationEncoder.encode(inv));\n }\n });\n }),\n );\n const url = createInvitationUrl(invitationCode);\n if (input.copyToClipboard) {\n yield* Effect.tryPromise(() => navigator.clipboard.writeText(url));\n }\n return url;\n }),\n }),\n\n //\n // UseStaticSchema\n //\n OperationResolver.make({\n operation: SpaceOperation.UseStaticSchema,\n handler: Effect.fnUntraced(function* (input) {\n const db = input.db as Database.Database;\n const client = yield* Capability.get(ClientCapabilities.Client);\n const schema: any = yield* Effect.promise(() =>\n (client as any).graph.schemaRegistry.query({ typename: input.typename, location: ['runtime'] }).first(),\n );\n const space = client.spaces.get(db.spaceId);\n invariant(space, 'Space not found');\n\n Obj.change(space.properties, (p) => {\n if (!p.staticRecords) {\n p.staticRecords = [];\n }\n if (!p.staticRecords.includes(input.typename)) {\n p.staticRecords.push(input.typename);\n }\n });\n\n yield* Plugin.activate(SpaceEvents.SchemaAdded);\n const onSchemaAdded = yield* Capability.getAll(SpaceCapabilities.OnSchemaAdded);\n yield* Effect.all(\n onSchemaAdded.map((callback) => callback({ db, schema, show: input.show })),\n { concurrency: 'unbounded' },\n );\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.schema.use',\n properties: {\n spaceId: space.id,\n typename: Type.getTypename(schema),\n },\n });\n\n return {};\n }),\n }),\n\n //\n // AddSchema\n //\n OperationResolver.make({\n operation: SpaceOperation.AddSchema,\n handler: Effect.fnUntraced(function* (input) {\n const db = input.db;\n const schemas = yield* Effect.promise(() => db.schemaRegistry.register([input.schema]));\n const schema = schemas[0];\n Obj.change(schema.persistentSchema, (s) => {\n if (input.name) {\n s.name = input.name;\n }\n if (input.typename) {\n s.typename = input.typename;\n }\n if (input.version) {\n s.version = input.version;\n }\n });\n\n yield* Plugin.activate(SpaceEvents.SchemaAdded);\n const onSchemaAdded = yield* Capability.getAll(SpaceCapabilities.OnSchemaAdded);\n yield* Effect.all(\n onSchemaAdded.map((callback) => callback({ db, schema, show: input.show })),\n { concurrency: 'unbounded' },\n );\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.schema.add',\n properties: {\n spaceId: db.spaceId,\n objectId: schema.id,\n typename: schema.typename,\n },\n });\n\n return { id: schema.id, object: schema.persistentSchema, schema };\n }),\n }),\n\n //\n // AddRelation\n //\n OperationResolver.make({\n operation: SpaceOperation.AddRelation,\n handler: (input) =>\n Effect.sync(() => {\n const db = input.db as Database.Database;\n const relation = db.add(\n Relation.make(input.schema, {\n [Relation.Source]: input.source,\n [Relation.Target]: input.target,\n ...input.fields,\n }),\n );\n return { relation };\n }),\n }),\n\n //\n // DuplicateObject\n // TODO(wittjosiah): This appears to be unused.\n //\n OperationResolver.make({\n operation: SpaceOperation.DuplicateObject,\n handler: Effect.fnUntraced(function* (input) {\n const object = input.object as Obj.Unknown;\n const db = Obj.getDatabase(object);\n invariant(db, 'Database not found.');\n const newObject = yield* Effect.promise(() => cloneObject(object, resolve, db));\n yield* Operation.invoke(SpaceOperation.AddObject, { object: newObject, target: db });\n }),\n }),\n\n //\n // RestoreField (inverse of DeleteField)\n //\n OperationResolver.make({\n operation: SpaceOperation.RestoreField,\n handler: Effect.fnUntraced(function* (input) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const view = input.view as any;\n const db = Obj.getDatabase(view);\n invariant(db);\n const typename = getTypenameFromQuery(view.query.ast);\n invariant(typename);\n const schema = yield* Effect.promise(() => db.schemaRegistry.query({ typename }).firstOrUndefined());\n invariant(schema);\n\n // Create projection with change callbacks that wrap in Obj.change().\n const projection = new ProjectionModel({\n registry,\n view,\n baseSchema: schema.jsonSchema,\n change: createEchoChangeCallback(view, schema),\n });\n\n projection.setFieldProjection({ field: input.field, props: input.props }, input.index);\n }),\n }),\n\n //\n // RestoreObjects (inverse of RemoveObjects)\n //\n OperationResolver.make({\n operation: SpaceOperation.RestoreObjects,\n handler: Effect.fnUntraced(function* (input) {\n const objects = input.objects as Obj.Unknown[];\n const parentCollection = input.parentCollection as Collection.Collection;\n const indices = input.indices as number[];\n const nestedObjectsList = input.nestedObjectsList as Obj.Unknown[][];\n const wasActive = input.wasActive as string[];\n\n // Get the space from the first object.\n const space = getSpace(objects[0]);\n invariant(space);\n\n // Restore objects to the space.\n const restoredObjects = objects.map((obj: Obj.Unknown) => space.db.add(obj));\n\n // Restore nested objects to the space.\n nestedObjectsList.flat().forEach((obj: Obj.Unknown) => {\n if (Obj.isObject(obj)) {\n space.db.add(obj);\n } else if (Relation.isRelation(obj)) {\n space.db.add(obj);\n }\n });\n\n // Restore objects to the parent collection at their original indices.\n Obj.change(parentCollection, (c) => {\n indices.forEach((index: number, i: number) => {\n if (index !== -1) {\n c.objects.splice(index, 0, Ref.make(restoredObjects[i] as Obj.Unknown));\n }\n });\n });\n\n // Re-open objects that were active.\n if (wasActive.length > 0) {\n yield* Operation.invoke(LayoutOperation.Open, { subject: wasActive });\n }\n }),\n }),\n ]),\n ];\n }),\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Capabilities", "Capability", "Plugin", "UndoMapping", "AppCapabilities", "LayoutOperation", "SpaceState", "getSpace", "Database", "Obj", "Query", "Ref", "Relation", "Type", "Collection", "EchoDatabaseImpl", "Serializer", "invariant", "Migrations", "OperationResolver", "Operation", "ClientCapabilities", "ObservabilityOperation", "EdgeReplicationSetting", "ATTENDABLE_PATH_SEPARATOR", "iconValues", "CollectionModel", "ManagedCollection", "ProjectionModel", "createEchoChangeCallback", "getTypenameFromQuery", "hues", "Capability", "makeModule", "fnUntraced", "createInvitationUrl", "observability", "capabilityManager", "Service", "resolve", "typename", "getAll", "AppCapabilities", "Metadata", "find", "id", "metadata", "contributes", "Capabilities", "UndoMapping", "make", "operation", "SpaceOperation", "DeleteField", "inverse", "RestoreField", "deriveContext", "input", "output", "view", "field", "props", "index", "message", "ns", "meta", "RemoveObjects", "RestoreObjects", "_input", "objects", "parentCollection", "indices", "nestedObjectsList", "wasActive", "_output", "Obj", "getTypename", "length", "OperationResolver", "Open", "handler", "promise", "space", "open", "Close", "close", "Join", "Operation", "invoke", "LayoutOperation", "UpdateDialog", "subject", "JOIN_DIALOG", "blockAlign", "initialInvitationCode", "invitationCode", "onDone", "WaitForObject", "updateAtomValue", "SpaceCapabilities", "EphemeralState", "current", "awaiting", "OpenSettings", "ATTENDABLE_PATH_SEPARATOR", "workspace", "layout", "getAtomValue", "Layout", "getSpace", "invariant", "every", "obj", "isObject", "openObjectIds", "Set", "active", "target", "properties", "Collection", "Promise", "all", "map", "getNestedObjects", "instanceOf", "findIndex", "ref", "flatMap", "i", "filter", "has", "getDXN", "toString", "nestedObjects", "change", "c", "splice", "nestedObject", "getDatabase", "remove", "Relation", "isRelation", "db", "getSource", "registry", "get", "AtomRegistry", "getTypenameFromQuery", "query", "ast", "schema", "schemaRegistry", "firstOrUndefined", "projection", "ProjectionModel", "baseSchema", "jsonSchema", "createEchoChangeCallback", "result", "deleteFieldProjection", "fieldId", "deleted", "OpenCreateObject", "ephemeralState", "navigable", "CREATE_OBJECT_DIALOG", "views", "initialFormValues", "onCreateObject", "shouldNavigate", "object", "isCollection", "isSystemCollection", "ManagedCollection", "navigableCollections", "AddObject", "Database", "isDatabase", "CollectionModel", "add", "undefined", "hidden", "pipe", "provide", "layer", "schedule", "ObservabilityOperation", "SendEvent", "name", "spaceId", "objectId", "Share", "type", "authMethod", "multiUse", "invitation", "share", "Lock", "p", "COMPOSER_SPACE_LOCK", "Unlock", "OpenCreateSpace", "CREATE_SPACE_DIALOG", "Create", "hue", "hue_", "icon", "icon_", "edgeReplication", "client", "ClientCapabilities", "Client", "hues", "Math", "floor", "random", "iconValues", "spaces", "create", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "waitUntilReady", "collection", "Ref", "Migrations", "versionProperty", "targetVersion", "push", "makeManagedCollection", "key", "Type", "PersistentType", "Plugin", "activate", "SpaceEvents", "SpaceCreated", "onCreateSpaceCallbacks", "OnCreateSpace", "onCreateSpace", "isDefault", "rootCollection", "Migrate", "version", "state", "SpaceState", "SPACE_REQUIRES_MIGRATION", "sdkMigrationRunning", "migrate", "Snapshot", "EchoDatabaseImpl", "backup", "Serializer", "export", "Query", "fromAst", "snapshot", "Blob", "JSON", "stringify", "Rename", "UpdatePopover", "SPACE_RENAME_POPOVER", "anchorId", "caller", "RenameObject", "OBJECT_RENAME_POPOVER", "OpenMembers", "GetShareLink", "Invitation", "InvitationEncoder", "DELEGATED", "AuthMethod", "KNOWN_PUBLIC_KEY", "tryPromise", "subscribe", "inv", "State", "CONNECTING", "encode", "url", "copyToClipboard", "navigator", "clipboard", "writeText", "UseStaticSchema", "graph", "location", "first", "staticRecords", "includes", "SchemaAdded", "onSchemaAdded", "OnSchemaAdded", "callback", "show", "concurrency", "AddSchema", "schemas", "register", "persistentSchema", "s", "AddRelation", "sync", "relation", "Source", "source", "Target", "fields", "DuplicateObject", "newObject", "cloneObject", "setFieldProjection", "restoredObjects", "flat", "forEach"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/containers/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useAtomCapability, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { useLayout } from '@dxos/app-toolkit/ui';\nimport { Database, Obj, type Ref } from '@dxos/echo';\nimport { Collection, type View } from '@dxos/echo';\nimport { findAnnotation } from '@dxos/effect';\nimport { type Space, SpaceState, getSpace, isSpace, parseId, useSpace } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { type FormFieldComponentProps, SelectField } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { ManagedCollection, ViewAnnotation } from '@dxos/schema';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n JOIN_DIALOG,\n OBJECT_RENAME_POPOVER,\n SPACE_RENAME_POPOVER,\n} from '../../constants';\nimport {\n CollectionArticle,\n CollectionSection,\n CreateObjectDialog,\n type CreateObjectDialogProps,\n CreateSpaceDialog,\n InlineSyncStatus,\n JoinDialog,\n MembersContainer,\n MenuFooter,\n ObjectCardStack,\n ObjectDetails,\n ObjectRenamePopover,\n RecordArticle,\n SchemaContainer,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SpaceRenamePopover,\n SpaceSettingsContainer,\n SyncStatus,\n ViewEditor,\n} from '../../containers';\nimport { useTypeOptions } from '../../hooks';\nimport { meta } from '../../meta';\nimport {\n HueAnnotationId,\n IconAnnotationId,\n SpaceCapabilities,\n type SpaceSettingsProps,\n type TypeInputOptions,\n TypeInputOptionsAnnotationId,\n} from '../../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ createInvitationUrl }: ReactSurfaceOptions) {\n return Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface.Surface\n data={{\n id: data.subject.id,\n subject: data.subject.properties[Collection.Collection.typename]?.target,\n }}\n role={role}\n {...rest}\n />\n ),\n }),\n Surface.create({\n id: `${meta.id}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Collection.Collection | ManagedCollection.ManagedCollection } =>\n Obj.instanceOf(Collection.Collection, data.subject) ||\n Obj.instanceOf(ManagedCollection.ManagedCollection, data.subject),\n component: ({ data }) => <CollectionArticle subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/record-article`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),\n component: ({ data }) => <RecordArticle subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: AppCapabilities.Settings } =>\n AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => {\n const { settings, updateSettings } = useSettingsState<SpaceSettingsProps>(subject.atom);\n return <SpacePluginSettings settings={settings} onSettingsChange={updateSettings} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/companion/object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Unknown } =>\n Obj.isObject(data.companionTo) && data.subject === 'settings',\n component: ({ ref, data, role }) => <ObjectDetails subject={data.companionTo} role={role} ref={ref} />,\n }),\n Surface.create({\n id: `${meta.id}/space-settings-properties`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/properties`,\n component: ({ ref }) => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/space-settings-members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/members`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/space-settings-schema`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/schema`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/selected-objects`,\n role: 'article',\n filter: (\n data,\n ): data is { companionTo: Obj.OfShape<{ view: Ref.Ref<View.View> }>; subject: 'selected-objects' } => {\n if (data.subject !== 'selected-objects' || !Obj.isObject(data.companionTo)) {\n return false;\n }\n\n // TODO(burdon): Check companionTo.view.target is valid.\n const schema = Obj.getSchema(data.companionTo);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n // TODO(burdon): Replace with mosaic.\n component: ({ data, ref }) => (\n <ObjectCardStack\n key={Obj.getDXN(data.companionTo).toString()}\n objectId={Obj.getDXN(data.companionTo).toString()}\n view={data.companionTo.view.target!}\n ref={ref}\n />\n ),\n }),\n Surface.create({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n Surface.create({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n Surface.create({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n Surface.create({\n id: `${meta.id}/create-initial-space-form-[hue]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, HueAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <HuePicker disabled={!!readonly} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}/create-initial-space-form-[icon]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, IconAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextIcon: string) => onValueChange(type, nextIcon), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <IconPicker\n disabled={!!readonly}\n value={getValue() ?? ''}\n onChange={handleChange}\n onReset={handleReset}\n />\n </Input.Root>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}/typename-form-input`,\n role: 'form-input',\n filter: (\n data,\n ): data is {\n prop: string;\n schema: Schema.Schema.Any;\n target: Database.Database | Collection.Collection | undefined;\n } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = findAnnotation((data.schema as Schema.Schema.All).ast, TypeInputOptionsAnnotationId);\n return !!annotation;\n },\n component: ({ data: { schema, target }, ...inputProps }) => {\n const props = inputProps as any as FormFieldComponentProps;\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n const space = useSpace(db?.spaceId);\n const annotation = findAnnotation<TypeInputOptions>(schema.ast, TypeInputOptionsAnnotationId)!;\n const options = useTypeOptions({ space, annotation });\n\n return <SelectField {...props} options={options} />;\n },\n }),\n Surface.create({\n id: `${meta.id}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: { view: Ref.Ref<View.View> } } => {\n if (!Obj.isObject(data.subject)) {\n return false;\n }\n\n const schema = Obj.getSchema(data.subject);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n component: ({ data }) => {\n const view = data.subject.view.target;\n if (!view) {\n return null;\n }\n\n return <ViewEditor view={view} />;\n },\n }),\n Surface.create({\n id: SPACE_RENAME_POPOVER,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === SPACE_RENAME_POPOVER && isSpace(data.props),\n component: ({ data }) => <SpaceRenamePopover space={data.props} />,\n }),\n Surface.create({\n id: OBJECT_RENAME_POPOVER,\n role: 'popover',\n filter: (data): data is { props: Obj.Unknown } =>\n data.component === OBJECT_RENAME_POPOVER && Obj.isObject(data.props),\n component: ({ data }) => <ObjectRenamePopover object={data.props} />,\n }),\n Surface.create({\n id: `${meta.id}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: Obj.Unknown; open?: boolean } =>\n typeof data.id === 'string' && Obj.isObject(data.subject),\n component: ({ data }) => {\n const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={ephemeral.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n Surface.create({\n id: `${meta.id}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n // TODO(wittjosiah): Broken?\n Surface.create({\n id: `${meta.id}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n Surface.create({\n id: `${meta.id}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | Obj.Unknown } => isSpace(data.subject) || Obj.isObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[Collection.Collection.typename]?.target as Collection.Collection)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n Surface.create({\n id: `${meta.id}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: Collection.Collection } =>\n Obj.instanceOf(Collection.Collection, data.subject),\n component: ({ data }) => <CollectionSection subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport type { CreateObjectDialogProps } from './CreateObjectDialog/CreateObjectDialog';\n\nexport const CollectionArticle: ComponentType<any> = lazy(() => import('./CollectionArticle'));\nexport const CollectionSection: ComponentType<any> = lazy(() => import('./CollectionSection'));\nexport const CreateObjectDialog: ComponentType<any> = lazy(() => import('./CreateObjectDialog'));\nexport const CreateSpaceDialog: ComponentType<any> = lazy(() => import('./CreateSpaceDialog'));\nexport const InlineSyncStatus: ComponentType<any> = lazy(() => import('./InlineSyncStatus'));\nexport const JoinDialog: ComponentType<any> = lazy(() => import('./JoinDialog'));\nexport const MembersContainer: ComponentType<any> = lazy(() => import('./MembersContainer'));\nexport const MenuFooter: ComponentType<any> = lazy(() => import('./MenuFooter'));\nexport const ObjectCardStack: ComponentType<any> = lazy(() => import('./ObjectCardStack'));\nexport const ObjectDetails: ComponentType<any> = lazy(() => import('./ObjectDetails'));\nexport const ObjectRenamePopover: ComponentType<any> = lazy(() => import('./ObjectRenamePopover'));\nexport const RecordArticle: ComponentType<any> = lazy(() => import('./RecordArticle'));\nexport const SchemaContainer: ComponentType<any> = lazy(() => import('./SchemaContainer'));\nexport const SmallPresenceLive: ComponentType<any> = lazy(() => import('./SmallPresenceLive'));\nexport const SpacePluginSettings: ComponentType<any> = lazy(() => import('./SpacePluginSettings'));\nexport const SpacePresence: ComponentType<any> = lazy(() => import('./SpacePresence'));\nexport const SpaceRenamePopover: ComponentType<any> = lazy(() => import('./SpaceRenamePopover'));\nexport const SpaceSettingsContainer: ComponentType<any> = lazy(() => import('./SpaceSettingsContainer'));\nexport const SyncStatus: ComponentType<any> = lazy(() => import('./SyncStatus'));\nexport const ViewEditor: ComponentType<any> = lazy(() => import('./ViewEditor'));\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Option", "React", "useCallback", "Capabilities", "Capability", "Surface", "useAtomCapability", "useSettingsState", "AppCapabilities", "useLayout", "Database", "Obj", "Collection", "findAnnotation", "SpaceState", "getSpace", "isSpace", "parseId", "useSpace", "Input", "SelectField", "HuePicker", "IconPicker", "ManagedCollection", "ViewAnnotation", "lazy", "CollectionArticle", "lazy", "CollectionSection", "CreateObjectDialog", "CreateSpaceDialog", "InlineSyncStatus", "JoinDialog", "MembersContainer", "MenuFooter", "ObjectCardStack", "ObjectDetails", "ObjectRenamePopover", "RecordArticle", "SchemaContainer", "SmallPresenceLive", "SpacePluginSettings", "SpacePresence", "SpaceRenamePopover", "SpaceSettingsContainer", "SyncStatus", "ViewEditor", "Capability", "makeModule", "fnUntraced", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "properties", "Collection", "typename", "target", "position", "Obj", "instanceOf", "ManagedCollection", "CollectionArticle", "isObject", "RecordArticle", "AppCapabilities", "isSettings", "prefix", "settings", "updateSettings", "useSettingsState", "atom", "SpacePluginSettings", "onSettingsChange", "companionTo", "ref", "ObjectDetails", "layout", "useLayout", "spaceId", "parseId", "workspace", "space", "useSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "schema", "getSchema", "fromNullable", "pipe", "flatMap", "ViewAnnotation", "getOrElse", "ObjectCardStack", "key", "getDXN", "toString", "objectId", "view", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "findAnnotation", "ast", "HueAnnotationId", "_", "inputProps", "label", "readonly", "type", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "undefined", "Input", "Root", "Label", "HuePicker", "disabled", "value", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "prop", "TypeInputOptionsAnnotationId", "db", "Database", "isDatabase", "getDatabase", "options", "useTypeOptions", "SelectField", "ViewEditor", "SPACE_RENAME_POPOVER", "SpaceRenamePopover", "OBJECT_RENAME_POPOVER", "ObjectRenamePopover", "object", "MenuFooter", "ephemeral", "useAtomCapability", "SpaceCapabilities", "EphemeralState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "SpacePresence", "CollectionSection", "SyncStatus"]
|
|
7
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SpaceCapabilities
|
|
3
|
-
} from "./chunk-USN5QKRV.mjs";
|
|
4
|
-
import "./chunk-HSMQFM57.mjs";
|
|
5
|
-
|
|
6
|
-
// src/capabilities/repair/repair.ts
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
|
-
import { Capability } from "@dxos/app-framework";
|
|
9
|
-
import { Collection, Obj, Ref, Type } from "@dxos/echo";
|
|
10
|
-
import { ManagedCollection } from "@dxos/schema";
|
|
11
|
-
var repair_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(SpaceCapabilities.Repair, async ({ space }) => {
|
|
12
|
-
await removeQueryCollections(space);
|
|
13
|
-
await ensureSystemCollection(space);
|
|
14
|
-
})));
|
|
15
|
-
var removeQueryCollections = async (space) => {
|
|
16
|
-
const rootCollection = await space.properties[Collection.Collection.typename]?.load();
|
|
17
|
-
if (!rootCollection) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
|
|
21
|
-
const queryCollections = objects.filter((object) => Obj.getTypename(object) === "dxos.org/type/QueryCollection");
|
|
22
|
-
if (queryCollections.length === 0) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
Obj.change(rootCollection, (c) => {
|
|
26
|
-
c.objects = objects.filter((object) => Obj.getTypename(object) !== "dxos.org/type/QueryCollection").map((object) => Ref.make(object));
|
|
27
|
-
});
|
|
28
|
-
queryCollections.forEach((object) => space.db.remove(object));
|
|
29
|
-
};
|
|
30
|
-
var ensureSystemCollection = async (space) => {
|
|
31
|
-
const rootCollection = await space.properties[Collection.Collection.typename]?.load();
|
|
32
|
-
if (!rootCollection) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
|
|
36
|
-
const records = objects.find((object) => Obj.instanceOf(ManagedCollection.ManagedCollection, object) && object.key === Type.getTypename(Type.PersistentType));
|
|
37
|
-
if (records) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const recordsCollectionRef = Ref.make(ManagedCollection.makeManagedCollection({
|
|
41
|
-
key: Type.getTypename(Type.PersistentType)
|
|
42
|
-
}));
|
|
43
|
-
Obj.change(rootCollection, (c) => {
|
|
44
|
-
c.objects.push(recordsCollectionRef);
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
export {
|
|
48
|
-
repair_default as default
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=repair-N2I4DR2Z.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/repair/repair.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Collection, Obj, Ref, Type } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { ManagedCollection } from '@dxos/schema';\n\nimport { SpaceCapabilities } from '../../types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.Repair, async ({ space }: { space: Space }) => {\n await removeQueryCollections(space);\n await ensureSystemCollection(space);\n }),\n ),\n);\n\n/**\n * Remove all existing query collections from the root collection.\n */\nconst removeQueryCollections = async (space: Space) => {\n const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();\n if (!rootCollection) {\n return;\n }\n\n const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));\n const queryCollections = objects.filter((object) => Obj.getTypename(object) === 'dxos.org/type/QueryCollection');\n if (queryCollections.length === 0) {\n return;\n }\n\n Obj.change(rootCollection, (c) => {\n c.objects = objects\n .filter((object) => Obj.getTypename(object) !== 'dxos.org/type/QueryCollection')\n .map((object) => Ref.make(object));\n });\n queryCollections.forEach((object) => space.db.remove(object));\n};\n\n/**\n * Ensure the root collection has a system collection for StoredSchema.\n */\nconst ensureSystemCollection = async (space: Space) => {\n const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();\n if (!rootCollection) {\n return;\n }\n\n const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));\n const records = objects.find(\n (object) =>\n Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&\n object.key === Type.getTypename(Type.PersistentType),\n );\n if (records) {\n return;\n }\n\n const recordsCollectionRef = Ref.make(\n ManagedCollection.makeManagedCollection({ key: Type.getTypename(Type.PersistentType) }),\n );\n Obj.change(rootCollection, (c) => {\n c.objects.push(recordsCollectionRef);\n });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,YAAYC,KAAKC,KAAKC,YAAY;AAE3C,SAASC,yBAAyB;AAIlC,IAAA,iBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,kBAAkBC,QAAQ,OAAO,EAAEC,MAAK,MAAoB;AACjF,QAAMC,uBAAuBD,KAAAA;AAC7B,QAAME,uBAAuBF,KAAAA;AAC/B,CAAA,CAAA,CAAA;AAOJ,IAAMC,yBAAyB,OAAOD,UAAAA;AACpC,QAAMG,iBAAwC,MAAMH,MAAMI,WAAWC,WAAWA,WAAWC,QAAQ,GAAGC,KAAAA;AACtG,MAAI,CAACJ,gBAAgB;AACnB;EACF;AAEA,QAAMK,UAAU,MAAMC,QAAQC,IAAIP,eAAeK,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMM,mBAAmBL,QAAQM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,+BAAA;AAChF,MAAIF,iBAAiBK,WAAW,GAAG;AACjC;EACF;AAEAF,MAAIG,OAAOhB,gBAAgB,CAACiB,MAAAA;AAC1BA,MAAEZ,UAAUA,QACTM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,+BAAA,EAC/CJ,IAAI,CAACI,WAAWM,IAAIC,KAAKP,MAAAA,CAAAA;EAC9B,CAAA;AACAF,mBAAiBU,QAAQ,CAACR,WAAWf,MAAMwB,GAAGC,OAAOV,MAAAA,CAAAA;AACvD;AAKA,IAAMb,yBAAyB,OAAOF,UAAAA;AACpC,QAAMG,iBAAwC,MAAMH,MAAMI,WAAWC,WAAWA,WAAWC,QAAQ,GAAGC,KAAAA;AACtG,MAAI,CAACJ,gBAAgB;AACnB;EACF;AAEA,QAAMK,UAAU,MAAMC,QAAQC,IAAIP,eAAeK,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMmB,UAAUlB,QAAQmB,KACtB,CAACZ,WACCC,IAAIY,WAAWC,kBAAkBA,mBAAmBd,MAAAA,KACpDA,OAAOe,QAAQC,KAAKd,YAAYc,KAAKC,cAAc,CAAA;AAEvD,MAAIN,SAAS;AACX;EACF;AAEA,QAAMO,uBAAuBZ,IAAIC,KAC/BO,kBAAkBK,sBAAsB;IAAEJ,KAAKC,KAAKd,YAAYc,KAAKC,cAAc;EAAE,CAAA,CAAA;AAEvFhB,MAAIG,OAAOhB,gBAAgB,CAACiB,MAAAA;AAC1BA,MAAEZ,QAAQ2B,KAAKF,oBAAAA;EACjB,CAAA;AACF;",
|
|
6
|
-
"names": ["Effect", "Capability", "Collection", "Obj", "Ref", "Type", "ManagedCollection", "Capability", "makeModule", "succeed", "contributes", "SpaceCapabilities", "Repair", "space", "removeQueryCollections", "ensureSystemCollection", "rootCollection", "properties", "Collection", "typename", "load", "objects", "Promise", "all", "map", "ref", "queryCollections", "filter", "object", "Obj", "getTypename", "length", "change", "c", "Ref", "make", "forEach", "db", "remove", "records", "find", "instanceOf", "ManagedCollection", "key", "Type", "PersistentType", "recordsCollectionRef", "makeManagedCollection", "push"]
|
|
7
|
-
}
|