@dxos/plugin-space 0.9.0 → 0.9.1-main.c7dcc2e112
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/neutral/{CollectionArticle-S3OF5KJ7.mjs → CollectionArticle-BMH7SZ7Q.mjs} +9 -12
- package/dist/lib/neutral/CollectionArticle-BMH7SZ7Q.mjs.map +7 -0
- package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs → CollectionSection-BLYTGOKH.mjs} +2 -2
- package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs.map → CollectionSection-BLYTGOKH.mjs.map} +3 -3
- package/dist/lib/neutral/{CreateObjectDialog-66R3K6I3.mjs → CreateObjectDialog-4VMOUKM7.mjs} +10 -10
- package/dist/lib/neutral/CreateObjectDialog-4VMOUKM7.mjs.map +7 -0
- package/dist/lib/neutral/{CreateSpaceDialog-CDGSEIJB.mjs → CreateSpaceDialog-WWNUTLVK.mjs} +6 -6
- package/dist/lib/neutral/CreateSpaceDialog-WWNUTLVK.mjs.map +7 -0
- package/dist/lib/neutral/{ImportSpaceDialog-7GKV4OTF.mjs → ImportSpaceDialog-CSSRTFAO.mjs} +4 -4
- package/dist/lib/neutral/ImportSpaceDialog-CSSRTFAO.mjs.map +7 -0
- package/dist/lib/neutral/{InlineSyncStatus-TBJKZCH7.mjs → InlineSyncStatus-UOUTAPCU.mjs} +4 -4
- package/dist/lib/neutral/InlineSyncStatus-UOUTAPCU.mjs.map +7 -0
- package/dist/lib/neutral/{JoinDialog-SSFKRFTJ.mjs → JoinDialog-QZGNRJ4P.mjs} +16 -9
- package/dist/lib/neutral/JoinDialog-QZGNRJ4P.mjs.map +7 -0
- package/dist/lib/neutral/{MembersContainer-KMCQDWCS.mjs → MembersContainer-OWCAMBKS.mjs} +5 -5
- package/dist/lib/neutral/MembersContainer-OWCAMBKS.mjs.map +7 -0
- package/dist/lib/neutral/{MenuFooter-5JT7V5FZ.mjs → MenuFooter-QCNFUIAO.mjs} +6 -6
- package/dist/lib/neutral/MenuFooter-QCNFUIAO.mjs.map +7 -0
- package/dist/lib/neutral/{ObjectCardStack-IXNU3HEN.mjs → ObjectCardStack-DHVDRNRK.mjs} +4 -4
- package/dist/lib/neutral/ObjectCardStack-DHVDRNRK.mjs.map +7 -0
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs +102 -0
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs.map +7 -0
- package/dist/lib/neutral/{RelatedArticle-YDNGUDAJ.mjs → RelatedArticle-YRCRBIYU.mjs} +11 -9
- package/dist/lib/neutral/RelatedArticle-YRCRBIYU.mjs.map +7 -0
- package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs +96 -0
- package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs.map +7 -0
- package/dist/lib/neutral/{SchemaContainer-Q4BP6X2M.mjs → SchemaContainer-2NK5YB5O.mjs} +2 -2
- package/dist/lib/neutral/SchemaContainer-2NK5YB5O.mjs.map +7 -0
- package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs → SmallPresenceLive-L4H7WJOA.mjs} +2 -2
- package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs +78 -0
- package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs.map +7 -0
- package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs +83 -0
- package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs.map +7 -0
- package/dist/lib/neutral/SpacePlugin.mjs +1 -1
- package/dist/lib/neutral/SpacePlugin.node.mjs +4 -4
- package/dist/lib/neutral/SpacePlugin.node.mjs.map +3 -3
- package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs → SpacePresence-PDTEDHDE.mjs} +2 -2
- package/dist/lib/neutral/{SpaceSettings-YAHBOY5T.mjs → SpaceSettings-IVTCSLNT.mjs} +6 -6
- package/dist/lib/neutral/SpaceSettings-IVTCSLNT.mjs.map +7 -0
- package/dist/lib/neutral/{SpaceSettingsContainer-IB34TEOB.mjs → SpaceSettingsContainer-QAFQ4LWC.mjs} +8 -8
- package/dist/lib/neutral/SpaceSettingsContainer-QAFQ4LWC.mjs.map +7 -0
- package/dist/lib/neutral/{SyncStatus-CWOXWDDZ.mjs → SyncStatus-J7CHLO5O.mjs} +3 -3
- package/dist/lib/neutral/SyncStatus-J7CHLO5O.mjs.map +7 -0
- package/dist/lib/neutral/{add-object-QYOMCBJA.mjs → add-object-S64XELC3.mjs} +10 -10
- package/dist/lib/neutral/add-object-S64XELC3.mjs.map +7 -0
- package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs → add-relation-GWSE42BU.mjs} +3 -3
- package/dist/lib/neutral/{add-type-CZVKSEIW.mjs → add-type-C3KYE6PI.mjs} +3 -3
- package/dist/lib/neutral/{app-graph-builder-SQGCUCDO.mjs → app-graph-builder-TMAD2ZTH.mjs} +128 -71
- package/dist/lib/neutral/app-graph-builder-TMAD2ZTH.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +13 -15
- package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
- package/dist/lib/neutral/capabilities/node.mjs +2 -2
- package/dist/lib/neutral/{chunk-EEXRKYOD.mjs → chunk-2LTGSUGQ.mjs} +2 -2
- package/dist/lib/neutral/{chunk-EEXRKYOD.mjs.map → chunk-2LTGSUGQ.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-2RPQHHD7.mjs +17 -0
- package/dist/lib/neutral/chunk-2RPQHHD7.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5ZZS3KMK.mjs +46 -0
- package/dist/lib/neutral/chunk-5ZZS3KMK.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-K34BPPQE.mjs → chunk-DSYEB2UN.mjs} +29 -17
- package/dist/lib/neutral/chunk-DSYEB2UN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-YY62663T.mjs → chunk-F2VJ6VBV.mjs} +3 -3
- package/dist/lib/neutral/chunk-F2VJ6VBV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-JHZGRYGS.mjs → chunk-G2KHP7FX.mjs} +2 -2
- package/dist/lib/neutral/{chunk-JHZGRYGS.mjs.map → chunk-G2KHP7FX.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-I5JXVBXX.mjs +8 -0
- package/dist/lib/neutral/{chunk-BBQR23DW.mjs → chunk-LY6XK5MV.mjs} +105 -128
- package/dist/lib/neutral/chunk-LY6XK5MV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-7WUJENBF.mjs → chunk-PSCIOT7Q.mjs} +4 -4
- package/dist/lib/neutral/chunk-PSCIOT7Q.mjs.map +7 -0
- package/dist/lib/neutral/{close-FGQN37PK.mjs → close-YZHFYPUN.mjs} +3 -3
- package/dist/lib/neutral/components/index.mjs +7 -7
- package/dist/lib/neutral/components/index.mjs.map +3 -3
- package/dist/lib/neutral/containers/index.mjs +23 -21
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/{create-EPIFSRJA.mjs → create-XKU2W6QC.mjs} +6 -6
- package/dist/lib/neutral/create-XKU2W6QC.mjs.map +7 -0
- package/dist/lib/neutral/{delete-LIA5M3WI.mjs → delete-EFM7CAVO.mjs} +3 -3
- package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs → delete-field-ONAPFFO5.mjs} +3 -3
- package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs → duplicate-object-OJRPFV5I.mjs} +3 -3
- package/dist/lib/neutral/{export-space-VWJHVXWF.mjs → export-space-M5RNVUQX.mjs} +3 -3
- package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs → get-share-link-FUQBJPSQ.mjs} +4 -4
- package/dist/lib/neutral/hooks/index.mjs +16 -4
- package/dist/lib/neutral/hooks/index.mjs.map +3 -3
- package/dist/lib/neutral/{identity-created-57RML5XT.mjs → identity-created-QMV4DANW.mjs} +4 -4
- package/dist/lib/neutral/identity-created-QMV4DANW.mjs.map +7 -0
- package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs → import-space-L3AUIARM.mjs} +3 -3
- package/dist/lib/neutral/index.mjs +12 -6
- package/dist/lib/neutral/{join-Z5K4OAIG.mjs → join-VY3QYBU7.mjs} +4 -4
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/{migrate-G7I52UKD.mjs → migrate-WPUISBC4.mjs} +3 -3
- package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs → navigation-handler-IKXZGMII.mjs} +4 -4
- package/dist/lib/neutral/{navigation-resolver-IFVQRCGU.mjs → navigation-resolver-VBPGMFCE.mjs} +7 -7
- package/dist/lib/neutral/navigation-resolver-VBPGMFCE.mjs.map +7 -0
- package/dist/lib/neutral/{open-CPWVZSI4.mjs → open-RRYULTSY.mjs} +3 -3
- package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs → open-create-object-BRUVFZSY.mjs} +4 -4
- package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs → open-create-space-ARLQWW65.mjs} +4 -4
- package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs → open-import-space-65H57JXX.mjs} +4 -4
- package/dist/lib/neutral/{open-members-BEXOSSBS.mjs → open-members-677P6KD3.mjs} +6 -6
- package/dist/lib/neutral/open-members-677P6KD3.mjs.map +7 -0
- package/dist/lib/neutral/{open-settings-RHDBW2K5.mjs → open-settings-PRBSGO6D.mjs} +6 -6
- package/dist/lib/neutral/open-settings-PRBSGO6D.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +3 -3
- package/dist/lib/neutral/plugin.mjs +4 -4
- package/dist/lib/neutral/{react-root-2DJPZQT4.mjs → react-root-YLYRCSAZ.mjs} +2 -2
- package/dist/lib/neutral/{react-root-2DJPZQT4.mjs.map → react-root-YLYRCSAZ.mjs.map} +3 -3
- package/dist/lib/neutral/{react-surface-LYCTOQLY.mjs → react-surface-5EQ6X4CL.mjs} +48 -70
- package/dist/lib/neutral/react-surface-5EQ6X4CL.mjs.map +7 -0
- package/dist/lib/neutral/{remove-objects-OWDMA4IF.mjs → remove-objects-PWJJI36V.mjs} +5 -5
- package/dist/lib/neutral/remove-objects-PWJJI36V.mjs.map +7 -0
- package/dist/lib/neutral/{rename-SR6BBSPU.mjs → rename-4727PKI4.mjs} +8 -7
- package/dist/lib/neutral/rename-4727PKI4.mjs.map +7 -0
- package/dist/lib/neutral/{rename-object-5H6E5AOX.mjs → rename-object-FXUAB5FN.mjs} +8 -7
- package/dist/lib/neutral/rename-object-FXUAB5FN.mjs.map +7 -0
- package/dist/lib/neutral/{repair-PSYRVSJ6.mjs → repair-HMH476U3.mjs} +3 -3
- package/dist/lib/neutral/repair-HMH476U3.mjs.map +7 -0
- package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs → restore-field-3ICSIHGA.mjs} +3 -3
- package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs → restore-objects-V2BTEWN3.mjs} +3 -3
- package/dist/lib/neutral/{settings-Q32EQCHX.mjs → settings-5IBSYBVU.mjs} +3 -3
- package/dist/lib/neutral/{settings-Q32EQCHX.mjs.map → settings-5IBSYBVU.mjs.map} +3 -3
- package/dist/lib/neutral/{share-5Y4NZA75.mjs → share-ZOZPAUGI.mjs} +3 -3
- package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs → snapshot-ZC5PU55W.mjs} +3 -3
- package/dist/lib/neutral/{spaces-ready-GBF72QJH.mjs → spaces-ready-EXPCJD4N.mjs} +11 -11
- package/dist/lib/neutral/spaces-ready-EXPCJD4N.mjs.map +7 -0
- package/dist/lib/neutral/{state-DPBOZRAW.mjs → state-KMH2NUAL.mjs} +2 -2
- package/dist/lib/neutral/state-KMH2NUAL.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +1 -1
- package/dist/lib/neutral/translations.mjs +4 -2
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +9 -3
- package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs → undo-mappings-P43EAUGI.mjs} +5 -5
- package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs.map → undo-mappings-P43EAUGI.mjs.map} +3 -3
- package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs → wait-for-object-WURK2SLQ.mjs} +3 -3
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +12 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +0 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +13 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +10 -54
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +3 -33
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/commands/database/add.d.ts.map +1 -1
- package/dist/types/src/commands/queue/query.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts +20 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +1 -2
- package/dist/types/src/constants.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +1 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts +12 -0
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts.map +1 -0
- package/dist/types/src/containers/RenamePopover/index.d.ts +3 -0
- package/dist/types/src/containers/RenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts +15 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeArticle/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts +22 -0
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeRecent/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeRecent/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +20 -0
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +20 -0
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +20 -0
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +3 -2
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/useRelatedObjects.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +28 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/add-object.d.ts.map +1 -1
- package/dist/types/src/operations/helpers.d.ts.map +1 -1
- package/dist/types/src/operations/remove-objects.d.ts.map +1 -1
- package/dist/types/src/operations/rename-object.d.ts.map +1 -1
- package/dist/types/src/operations/rename.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +20 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/events.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +7 -1
- package/dist/types/src/types/form.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/surface.d.ts +26 -0
- package/dist/types/src/types/surface.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +7 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +35 -0
- package/package.json +51 -50
- package/src/SpacePlugin.test.ts +1 -1
- package/src/SpacePlugin.ts +1 -7
- package/src/capabilities/app-graph-builder/extensions/collections.ts +44 -24
- package/src/capabilities/app-graph-builder/extensions/companions.ts +3 -3
- package/src/capabilities/app-graph-builder/extensions/database.ts +17 -14
- package/src/capabilities/app-graph-builder/extensions/settings.ts +9 -9
- package/src/capabilities/app-graph-builder/extensions/shared.ts +5 -20
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +49 -26
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/navigation-resolver.ts +6 -13
- package/src/capabilities/react-root.tsx +1 -1
- package/src/capabilities/react-surface.tsx +58 -88
- package/src/capabilities/repair.ts +4 -2
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/spaces-ready.ts +8 -15
- package/src/capabilities/state.ts +1 -1
- package/src/capabilities/undo-mappings.ts +3 -3
- package/src/commands/database/add.ts +4 -2
- package/src/commands/queue/query.ts +4 -3
- package/src/components/AwaitingObject/AwaitingObject.tsx +1 -1
- package/src/components/CreateObjectPanel/CreateObjectPanel.tsx +2 -2
- package/src/components/ForeignKeys/ForeignKeys.tsx +1 -1
- package/src/components/SpaceSettings/SpaceSettings.tsx +3 -3
- package/src/constants.ts +5 -6
- package/src/containers/CollectionArticle/CollectionArticle.tsx +10 -6
- package/src/containers/CollectionSection/CollectionSection.tsx +1 -1
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -7
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -5
- package/src/containers/ImportSpaceDialog/ImportSpaceDialog.tsx +3 -3
- package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +3 -3
- package/src/containers/JoinDialog/JoinDialog.tsx +13 -11
- package/src/containers/MembersContainer/MembersContainer.tsx +5 -5
- package/src/containers/MenuFooter/MenuFooter.tsx +3 -3
- package/src/containers/ObjectCardStack/ObjectCardStack.tsx +3 -3
- package/src/containers/RecordArticle/RecordArticle.tsx +67 -8
- package/src/containers/RelatedArticle/RelatedArticle.tsx +17 -13
- package/src/containers/RenamePopover/RenamePopover.tsx +112 -0
- package/src/containers/RenamePopover/index.ts +6 -0
- package/src/containers/SchemaContainer/SchemaContainer.tsx +1 -1
- package/src/containers/SpaceHomeArticle/SpaceHomeArticle.tsx +100 -0
- package/src/containers/SpaceHomeArticle/index.ts +5 -0
- package/src/containers/SpaceHomeRecent/SpaceHomeRecent.tsx +101 -0
- package/src/containers/SpaceHomeRecent/index.ts +5 -0
- package/src/containers/SpacePresence/SpacePresence.tsx +1 -1
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +7 -7
- package/src/containers/SyncStatus/SyncStatus.tsx +2 -2
- package/src/containers/index.ts +3 -2
- package/src/hooks/useInputSurfaceLookup.tsx +3 -2
- package/src/hooks/useRelatedObjects.ts +13 -1
- package/src/meta.ts +2 -27
- package/src/operations/add-object.ts +7 -14
- package/src/operations/create.ts +2 -2
- package/src/operations/definitions.ts +1 -1
- package/src/operations/helpers.ts +1 -1
- package/src/operations/open-members.ts +3 -3
- package/src/operations/open-settings.ts +3 -3
- package/src/operations/remove-objects.ts +3 -2
- package/src/operations/rename-object.ts +3 -2
- package/src/operations/rename.ts +3 -2
- package/src/translations.ts +3 -1
- package/src/types/capabilities.ts +8 -8
- package/src/types/events.ts +5 -5
- package/src/types/form.ts +5 -1
- package/src/types/index.ts +1 -0
- package/src/types/surface.ts +31 -0
- package/src/types/types.ts +9 -1
- package/src/util.ts +3 -3
- package/dist/lib/neutral/CollectionArticle-S3OF5KJ7.mjs.map +0 -7
- package/dist/lib/neutral/CreateObjectDialog-66R3K6I3.mjs.map +0 -7
- package/dist/lib/neutral/CreateSpaceDialog-CDGSEIJB.mjs.map +0 -7
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs +0 -59
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs.map +0 -7
- package/dist/lib/neutral/ImportSpaceDialog-7GKV4OTF.mjs.map +0 -7
- package/dist/lib/neutral/InlineSyncStatus-TBJKZCH7.mjs.map +0 -7
- package/dist/lib/neutral/JoinDialog-SSFKRFTJ.mjs.map +0 -7
- package/dist/lib/neutral/MembersContainer-KMCQDWCS.mjs.map +0 -7
- package/dist/lib/neutral/MenuFooter-5JT7V5FZ.mjs.map +0 -7
- package/dist/lib/neutral/ObjectCardStack-IXNU3HEN.mjs.map +0 -7
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs +0 -51
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs.map +0 -7
- package/dist/lib/neutral/RelatedArticle-YDNGUDAJ.mjs.map +0 -7
- package/dist/lib/neutral/SchemaContainer-Q4BP6X2M.mjs.map +0 -7
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs +0 -56
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettings-YAHBOY5T.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettingsContainer-IB34TEOB.mjs.map +0 -7
- package/dist/lib/neutral/SyncStatus-CWOXWDDZ.mjs.map +0 -7
- package/dist/lib/neutral/add-object-QYOMCBJA.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-SQGCUCDO.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs +0 -81
- package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs +0 -37
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs.map +0 -7
- package/dist/lib/neutral/chunk-7WUJENBF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-B7DBIARR.mjs +0 -8
- package/dist/lib/neutral/chunk-BBQR23DW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-F5MESIRH.mjs +0 -19
- package/dist/lib/neutral/chunk-F5MESIRH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-K34BPPQE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YY62663T.mjs.map +0 -7
- package/dist/lib/neutral/create-EPIFSRJA.mjs.map +0 -7
- package/dist/lib/neutral/identity-created-57RML5XT.mjs.map +0 -7
- package/dist/lib/neutral/navigation-resolver-IFVQRCGU.mjs.map +0 -7
- package/dist/lib/neutral/open-members-BEXOSSBS.mjs.map +0 -7
- package/dist/lib/neutral/open-settings-RHDBW2K5.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-LYCTOQLY.mjs.map +0 -7
- package/dist/lib/neutral/remove-objects-OWDMA4IF.mjs.map +0 -7
- package/dist/lib/neutral/rename-SR6BBSPU.mjs.map +0 -7
- package/dist/lib/neutral/rename-object-5H6E5AOX.mjs.map +0 -7
- package/dist/lib/neutral/repair-PSYRVSJ6.mjs.map +0 -7
- package/dist/lib/neutral/spaces-ready-GBF72QJH.mjs.map +0 -7
- package/dist/lib/neutral/state-DPBOZRAW.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -5
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts +0 -7
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts.map +0 -1
- package/dist/types/src/containers/EntityRenamePopover/index.d.ts +0 -2
- package/dist/types/src/containers/EntityRenamePopover/index.d.ts.map +0 -1
- package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -7
- package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +0 -1
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +0 -2
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +0 -1
- package/src/capabilities/app-graph-serializer.ts +0 -85
- package/src/containers/EntityRenamePopover/EntityRenamePopover.tsx +0 -52
- package/src/containers/EntityRenamePopover/index.ts +0 -5
- package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +0 -54
- package/src/containers/SpaceRenamePopover/index.ts +0 -5
- /package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs.map → SmallPresenceLive-L4H7WJOA.mjs.map} +0 -0
- /package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs.map → SpacePresence-PDTEDHDE.mjs.map} +0 -0
- /package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs.map → add-relation-GWSE42BU.mjs.map} +0 -0
- /package/dist/lib/neutral/{add-type-CZVKSEIW.mjs.map → add-type-C3KYE6PI.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-B7DBIARR.mjs.map → chunk-I5JXVBXX.mjs.map} +0 -0
- /package/dist/lib/neutral/{close-FGQN37PK.mjs.map → close-YZHFYPUN.mjs.map} +0 -0
- /package/dist/lib/neutral/{delete-LIA5M3WI.mjs.map → delete-EFM7CAVO.mjs.map} +0 -0
- /package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs.map → delete-field-ONAPFFO5.mjs.map} +0 -0
- /package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs.map → duplicate-object-OJRPFV5I.mjs.map} +0 -0
- /package/dist/lib/neutral/{export-space-VWJHVXWF.mjs.map → export-space-M5RNVUQX.mjs.map} +0 -0
- /package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs.map → get-share-link-FUQBJPSQ.mjs.map} +0 -0
- /package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs.map → import-space-L3AUIARM.mjs.map} +0 -0
- /package/dist/lib/neutral/{join-Z5K4OAIG.mjs.map → join-VY3QYBU7.mjs.map} +0 -0
- /package/dist/lib/neutral/{migrate-G7I52UKD.mjs.map → migrate-WPUISBC4.mjs.map} +0 -0
- /package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs.map → navigation-handler-IKXZGMII.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-CPWVZSI4.mjs.map → open-RRYULTSY.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs.map → open-create-object-BRUVFZSY.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs.map → open-create-space-ARLQWW65.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs.map → open-import-space-65H57JXX.mjs.map} +0 -0
- /package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs.map → restore-field-3ICSIHGA.mjs.map} +0 -0
- /package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs.map → restore-objects-V2BTEWN3.mjs.map} +0 -0
- /package/dist/lib/neutral/{share-5Y4NZA75.mjs.map → share-ZOZPAUGI.mjs.map} +0 -0
- /package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs.map → snapshot-ZC5PU55W.mjs.map} +0 -0
- /package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs.map → wait-for-object-WURK2SLQ.mjs.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/definitions.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability, Plugin } from '@dxos/app-framework';\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { CancellableInvitationObservable, Invitation } from '@dxos/client/invitations';\nimport { Operation } from '@dxos/compute';\nimport { Collection, Database, Entity, Obj, QueryAST, Type, View, DXN } from '@dxos/echo';\nimport { SpaceArchive } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { meta } from '#meta';\n\nimport { SpaceForm } from '../types';\n\nconst COLLECTION_OPERATION = 'org.dxos.plugin.collection.operation';\n\nexport namespace CollectionOperation {\n export const Create = Operation.make({\n meta: { key: DXN.make(`${COLLECTION_OPERATION}.create`), name: 'Create Collection', icon: 'ph--folder--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Collection.Collection),\n }),\n });\n}\n\nconst makeKey = (name: string) => DXN.make(`${meta.id}.operation.${name}`);\n\n/**\n * Operations for the Space plugin.\n */\nexport namespace SpaceOperation {\n export const Create = Operation.make({\n meta: {\n key: makeKey('create'),\n name: 'Create Space',\n description: 'Create a new space.',\n icon: 'ph--plus--regular',\n },\n services: [Capability.Service, Plugin.Service],\n input: SpaceForm,\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n space: SpaceSchema,\n }),\n });\n\n export const Join = Operation.make({\n meta: {\n key: makeKey('join'),\n name: 'Join Space',\n description: 'Join a space via invitation.',\n icon: 'ph--sign-in--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n onDone: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n });\n\n export const Open = Operation.make({\n meta: {\n key: makeKey('open'),\n name: 'Open Space',\n description: 'Open a space.',\n icon: 'ph--arrow-square-out--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n });\n\n export const Close = Operation.make({\n meta: {\n key: makeKey('close'),\n name: 'Close Space',\n description: 'Close a space.',\n icon: 'ph--x-circle--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n });\n\n export const Delete = Operation.make({\n meta: {\n key: makeKey('delete'),\n name: 'Delete Space',\n description: 'Delete a space. The deletion replicates to all of your devices.',\n icon: 'ph--trash--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n });\n\n export const Share = Operation.make({\n meta: {\n key: makeKey('share'),\n name: 'Share Space',\n description: 'Share a space.',\n icon: 'ph--share-network--regular',\n },\n services: [Capability.Service],\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 export const OpenSettings = Operation.make({\n meta: {\n key: makeKey('openSettings'),\n name: 'Open Space Settings',\n description: 'Open space settings.',\n icon: 'ph--gear--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n });\n\n export const WaitForObject = Operation.make({\n meta: {\n key: makeKey('waitForObject'),\n name: 'Wait For Object',\n description: 'Wait for an object to be available.',\n icon: 'ph--clock-countdown--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n id: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n });\n\n export const AddObject = Operation.make({\n meta: {\n key: makeKey('addObject'),\n name: 'Add Object',\n description: 'Add an object to a space.',\n icon: 'ph--plus--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n object: Obj.Unknown.annotations({ description: 'The object to add.' }),\n target: Schema.Union(Database.Database, Type.getSchema(Collection.Collection)).annotations({\n description: 'The database or collection to add to.',\n }),\n hidden: Schema.optional(Schema.Boolean),\n targetNodeId: Schema.optional(\n Schema.String.annotations({ description: 'Qualified graph node ID of the target collection.' }),\n ),\n }),\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n object: Obj.Unknown,\n }),\n });\n\n // TODO(wittjosiah): Rename `objects` to `entities` (covers objects, relations, and persisted types).\n export const RemoveObjectsOutput = Schema.Struct({\n objects: Schema.Array(Entity.Unknown).annotations({ description: 'The removed entities.' }),\n parentCollection: Type.getSchema(Collection.Collection).annotations({\n description: 'The collection removed from.',\n }),\n indices: Schema.Array(Schema.Number).annotations({ description: 'The indices the objects were at.' }),\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: makeKey('removeObjects'),\n name: 'Remove Objects',\n description: 'Remove entities (objects, relations, or persisted types) from a space.',\n icon: 'ph--trash--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n objects: Schema.Array(Entity.Unknown).annotations({ description: 'The entities to remove.' }),\n target: Schema.optional(Type.getSchema(Collection.Collection)).annotations({\n description: 'The collection to remove from.',\n }),\n }),\n output: RemoveObjectsOutput,\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: makeKey('deleteField'),\n name: 'Delete Field',\n description: 'Delete a field from a view.',\n icon: 'ph--minus-circle--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n view: Type.getSchema(View.View).annotations({ description: 'The view to delete the field from.' }),\n fieldId: Schema.String,\n }),\n output: DeleteFieldOutput,\n });\n\n export const OpenCreateObject = Operation.make({\n meta: {\n key: makeKey('openCreateObject'),\n name: 'Open Create Object Dialog',\n description: 'Open the create object dialog.',\n icon: 'ph--plus--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n target: Schema.Union(Database.Database, Type.getSchema(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 targetNodeId: Schema.optional(\n Schema.String.annotations({ description: 'Qualified graph node ID of the target collection.' }),\n ),\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 export const OpenCreateSpace = Operation.make({\n meta: {\n key: makeKey('openCreateSpace'),\n name: 'Open Create Space Dialog',\n description: 'Open the create space dialog.',\n icon: 'ph--plus--regular',\n },\n services: [Capability.Service],\n input: Schema.Void,\n output: Schema.Void,\n });\n\n export const OpenImportSpace = Operation.make({\n meta: {\n key: makeKey('openImportSpace'),\n name: 'Open Import Space Dialog',\n description: 'Open the import space dialog to create a new space from a backup.',\n icon: 'ph--download--regular',\n },\n services: [Capability.Service],\n input: Schema.Void,\n output: Schema.Void,\n });\n\n export const ImportSpace = Operation.make({\n meta: {\n key: makeKey('importSpace'),\n name: 'Import Space',\n description: 'Import a space archive as a new space.',\n icon: 'ph--upload--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n archive: Schema.Struct({\n filename: Schema.String,\n contents: Schema.instanceOf(Uint8Array),\n }),\n tags: Schema.Array(Schema.String).pipe(Schema.optional),\n }),\n output: Schema.Struct({\n space: SpaceSchema,\n }),\n });\n\n export const ExportSpace = Operation.make({\n meta: {\n key: makeKey('exportSpace'),\n name: 'Export Space',\n description: 'Export a space as a backup and download the archive.',\n icon: 'ph--download--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n format: Schema.Enums(SpaceArchive.Format),\n }),\n output: Schema.Void,\n });\n\n export const Migrate = Operation.make({\n meta: {\n key: makeKey('migrate'),\n name: 'Migrate Space',\n description: 'Migrate a space to a new version.',\n icon: 'ph--arrows-clockwise--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n version: Schema.optional(Schema.String),\n }),\n output: Schema.Boolean,\n });\n\n export const Snapshot = Operation.make({\n meta: {\n key: makeKey('snapshot'),\n name: 'Create Snapshot',\n description: 'Create a snapshot of the space.',\n icon: 'ph--camera--regular',\n },\n services: [Capability.Service],\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 export const Rename = Operation.make({\n meta: {\n key: makeKey('rename'),\n name: 'Rename Space',\n description: 'Rename a space.',\n icon: 'ph--pencil-simple--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n });\n\n export const RenameObject = Operation.make({\n meta: {\n key: makeKey('renameObject'),\n name: 'Rename Object',\n description: 'Rename an entity (object, relation, or persisted type).',\n icon: 'ph--pencil-simple--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n object: Entity.Unknown,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n });\n\n export const OpenMembers = Operation.make({\n meta: {\n key: makeKey('openMembers'),\n name: 'Open Members',\n description: 'Open the members panel for a space.',\n icon: 'ph--users--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n });\n\n export const GetShareLink = Operation.make({\n meta: {\n key: makeKey('getShareLink'),\n name: 'Get Share Link',\n description: 'Get a shareable link for a space.',\n icon: 'ph--link--regular',\n },\n services: [Capability.Service],\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 export const StoredSchemaForm = Schema.Struct({\n name: Schema.optional(Schema.String),\n });\n\n export const AddType = Operation.make({\n meta: {\n key: makeKey('addType'),\n name: 'Add Type',\n description: 'Add a type to the space.',\n icon: 'ph--code--regular',\n },\n services: [Capability.Service, Plugin.Service],\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 type?\n type: Schema.Any,\n show: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n id: Schema.String,\n object: Type.getSchema(Type.Type),\n }),\n });\n\n export const AddRelation = Operation.make({\n meta: {\n key: makeKey('addRelation'),\n name: 'Add Relation',\n description: 'Add a relation between objects.',\n icon: 'ph--link--regular',\n },\n services: [Capability.Service],\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 // TODO(wittjosiah): This appears to be unused.\n export const DuplicateObject = Operation.make({\n meta: {\n key: makeKey('duplicateObject'),\n name: 'Duplicate Object',\n description: 'Duplicate an object.',\n icon: 'ph--file--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n object: Obj.Unknown,\n target: Schema.Union(Database.Database, Type.getSchema(Collection.Collection)),\n }),\n output: Schema.Void,\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: makeKey('restoreField'),\n name: 'Restore Field',\n description: 'Restore a deleted field to a view.',\n icon: 'ph--clock-counter-clockwise--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n view: Type.getSchema(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 * Restore deleted entities to a space (inverse of RemoveObjects).\n */\n export const RestoreObjects = Operation.make({\n meta: {\n key: makeKey('restoreObjects'),\n name: 'Restore Objects',\n description: 'Restore deleted entities to a space.',\n icon: 'ph--clock-counter-clockwise--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n objects: Schema.Array(Entity.Unknown).annotations({ description: 'The entities to restore.' }),\n parentCollection: Type.getSchema(Collection.Collection).annotations({\n description: 'The collection to restore to.',\n }),\n indices: Schema.Array(Schema.Number).annotations({ description: 'The indices to restore at.' }),\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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "Capability", "Plugin", "SpaceSchema", "CancellableInvitationObservable", "Invitation", "Operation", "Collection", "Database", "Entity", "Obj", "QueryAST", "Type", "View", "DXN", "SpaceArchive", "meta", "COLLECTION_OPERATION", "CollectionOperation", "Create", "Operation", "make", "meta", "key", "DXN", "name", "icon", "services", "Capability", "Service", "input", "Struct", "optional", "String", "output", "object", "Type", "getSchema", "Collection", "makeKey", "id", "SpaceOperation", "description", "Plugin", "SpaceForm", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "Void", "Open", "Close", "Delete", "Share", "type", "Enums", "Invitation", "authMethod", "AuthMethod", "multiUse", "Boolean", "target", "instanceOf", "CancellableInvitationObservable", "OpenSettings", "WaitForObject", "AddObject", "Obj", "Unknown", "annotations", "Union", "Database", "hidden", "targetNodeId", "RemoveObjectsOutput", "objects", "Entity", "parentCollection", "indices", "Number", "wasActive", "RemoveObjects", "DeleteFieldOutput", "field", "View", "FieldSchema", "props", "index", "DeleteField", "view", "fieldId", "OpenCreateObject", "views", "typename", "initialFormValues", "navigable", "onCreateObject", "OpenCreateSpace", "OpenImportSpace", "ImportSpace", "archive", "filename", "contents", "Uint8Array", "tags", "pipe", "ExportSpace", "format", "SpaceArchive", "Format", "Migrate", "version", "Snapshot", "db", "query", "QueryAST", "Query", "snapshot", "Blob", "Rename", "caller", "RenameObject", "OpenMembers", "GetShareLink", "copyToClipboard", "StoredSchemaForm", "AddType", "show", "AddRelation", "schema", "source", "fields", "Record", "value", "relation", "DuplicateObject", "RestoreField", "RestoreObjects"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/create.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Plugin } from '@dxos/app-framework';\nimport { RootCollectionAnnotation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Annotation, Collection, Obj, Ref } from '@dxos/echo';\nimport { MigrationVersionAnnotation, Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { ObservabilityOperation } from '@dxos/plugin-observability';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { iconValues } from '@dxos/react-ui-pickers/icons';\nimport { hues } from '@dxos/ui-theme';\n\nimport { SpaceEvents, SpaceCapabilities } from '../types';\nimport { SpaceOperation } from './definitions';\nimport { SpaceOperationConfig } from './helpers';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.Create> = SpaceOperation.Create.pipe(\n Operation.withHandler(\n 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(() =>\n client.spaces.create({\n name,\n hue,\n icon,\n }),\n );\n if (edgeReplication) {\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n }\n yield* Effect.promise(() => space.waitUntilReady());\n\n const collection = Obj.make(Collection.Collection, { objects: [] });\n Obj.update(space.properties, (properties) => {\n Annotation.set(properties, RootCollectionAnnotation, Ref.make(collection));\n if (Migrations.targetVersion) {\n Annotation.set(properties, MigrationVersionAnnotation, Migrations.targetVersion);\n }\n });\n\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 const { observability } = yield* Capability.get(SpaceOperationConfig);\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);\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,gCAAgC;AACzC,SAASC,iBAAiB;AAC1B,SAASC,YAAYC,YAAYC,KAAKC,WAAW;AACjD,SAASC,4BAA4BC,kBAAkB;AACvD,SAASC,0BAA0B;AACnC,SAASC,8BAA8B;AACvC,SAASC,8BAA8B;AACvC,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AAMrB,IAAMC,UAA+DC,eAAeC,OAAOC,KACzFC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,MAAMC,KAAKC,MAAMC,MAAMC,OAAOC,gBAAe,GAAE;AAC5E,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9D,QAAMT,MAAMC,QAAQS,KAAKC,KAAKC,MAAMD,KAAKE,OAAM,IAAKH,KAAKI,MAAM,CAAA;AAC/D,QAAMZ,OAAOC,SAASY,WAAWJ,KAAKC,MAAMD,KAAKE,OAAM,IAAKE,WAAWD,MAAM,CAAA;AAC7E,QAAME,QAAQ,OAAcC,eAAQ,MAClCZ,OAAOa,OAAOC,OAAO;IACnBpB;IACAC;IACAE;EACF,CAAA,CAAA;AAEF,MAAIE,iBAAiB;AACnB,WAAca,eAAQ,MAAMD,MAAMI,SAASC,6BAA6BC,uBAAuBC,OAAO,CAAA;EACxG;AACA,SAAcN,eAAQ,MAAMD,MAAMQ,eAAc,CAAA;AAEhD,QAAMC,aAAaC,IAAIC,KAAKC,WAAWA,YAAY;IAAEC,SAAS,CAAA;EAAG,CAAA;AACjEH,MAAII,OAAOd,MAAMe,YAAY,CAACA,eAAAA;AAC5BC,eAAWC,IAAIF,YAAYG,0BAA0BC,IAAIR,KAAKF,UAAAA,CAAAA;AAC9D,QAAIW,WAAWC,eAAe;AAC5BL,iBAAWC,IAAIF,YAAYO,4BAA4BF,WAAWC,aAAa;IACjF;EACF,CAAA;AAEA,SAAOE,OAAOC,SAASC,YAAYC,YAAY;AAC/C,QAAMC,yBAAyB,OAAOrC,WAAWsC,OAAOC,kBAAkBC,aAAa;AACvF,SAAcC,WACZJ,uBAAuBK,IAAI,CAACC,kBAC1BA,cAAc;IAAEjC;IAAOkC,WAAW;IAAOC,gBAAgB1B;EAAW,CAAA,CAAA,CAAA;AAIxE,QAAM,EAAE2B,cAAa,IAAK,OAAO9C,WAAWC,IAAI8C,oBAAAA;AAChD,MAAID,eAAe;AACjB,WAAOxD,UAAU0D,SAASC,uBAAuBC,WAAW;MAC1DzD,MAAM;MACNgC,YAAY;QAAE0B,SAASzC,MAAM0C;MAAG;IAClC,CAAA;EACF;AAEA,SAAO;IAAEA,IAAI1C,MAAM0C;IAAIC,SAAS;MAAC3C,MAAM0C;;IAAK1C;EAAM;AACpD,CAAA,CAAA,CAAA;AAGJ,IAAA,iBAAexB;",
|
|
6
|
-
"names": ["Effect", "Capability", "Plugin", "RootCollectionAnnotation", "Operation", "Annotation", "Collection", "Obj", "Ref", "MigrationVersionAnnotation", "Migrations", "ClientCapabilities", "ObservabilityOperation", "EdgeReplicationSetting", "iconValues", "hues", "handler", "SpaceOperation", "Create", "pipe", "Operation", "withHandler", "fnUntraced", "name", "hue", "hue_", "icon", "icon_", "edgeReplication", "client", "Capability", "get", "ClientCapabilities", "Client", "hues", "Math", "floor", "random", "length", "iconValues", "space", "promise", "spaces", "create", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "waitUntilReady", "collection", "Obj", "make", "Collection", "objects", "update", "properties", "Annotation", "set", "RootCollectionAnnotation", "Ref", "Migrations", "targetVersion", "MigrationVersionAnnotation", "Plugin", "activate", "SpaceEvents", "SpaceCreated", "onCreateSpaceCallbacks", "getAll", "SpaceCapabilities", "OnCreateSpace", "all", "map", "onCreateSpace", "isDefault", "rootCollection", "observability", "SpaceOperationConfig", "schedule", "ObservabilityOperation", "SendEvent", "spaceId", "id", "subject"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/identity-created.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { PERSONAL_SPACE_TAG, RootCollectionAnnotation } from '@dxos/app-toolkit';\nimport { Annotation, Collection, Obj, Ref } from '@dxos/echo';\nimport { MigrationVersionAnnotation, Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { MembershipPolicy } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n\n const personalSpace = yield* Effect.tryPromise(() =>\n client.spaces.create({}, { tags: [PERSONAL_SPACE_TAG], membershipPolicy: MembershipPolicy.LOCKED }),\n );\n yield* Effect.tryPromise(() => personalSpace.waitUntilReady());\n\n // Create root collection structure.\n yield* Effect.tryPromise(() => personalSpace.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n Obj.update(personalSpace.properties, (properties) => {\n Annotation.set(properties, RootCollectionAnnotation, Ref.make(Collection.make()));\n if (Migrations.targetVersion) {\n Annotation.set(properties, MigrationVersionAnnotation, Migrations.targetVersion);\n }\n });\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,oBAAoBC,gCAAgC;AAC7D,SAASC,YAAYC,YAAYC,KAAKC,WAAW;AACjD,SAASC,4BAA4BC,kBAAkB;AACvD,SAASC,0BAA0B;AACnC,SAASC,8BAA8B;AACvC,SAASC,wBAAwB;AAEjC,IAAA,2BAAeX,WAAWY,WACjBC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOd,WAAWe,IAAIN,mBAAmBO,MAAM;AAE9D,QAAMC,gBAAgB,OAAcC,kBAAW,MAC7CJ,OAAOK,OAAOC,OAAO,CAAC,GAAG;IAAEC,MAAM;MAACpB;;IAAqBqB,kBAAkBX,iBAAiBY;EAAO,CAAA,CAAA;AAEnG,SAAcL,kBAAW,MAAMD,cAAcO,eAAc,CAAA;AAG3D,SAAcN,kBAAW,MAAMD,cAAcQ,SAASC,6BAA6BhB,uBAAuBiB,OAAO,CAAA;AACjHtB,MAAIuB,OAAOX,cAAcY,YAAY,CAACA,eAAAA;AACpC1B,eAAW2B,IAAID,YAAY3B,0BAA0BI,IAAIyB,KAAK3B,WAAW2B,KAAI,CAAA,CAAA;AAC7E,QAAIvB,WAAWwB,eAAe;AAC5B7B,iBAAW2B,IAAID,YAAYtB,4BAA4BC,WAAWwB,aAAa;IACjF;EACF,CAAA;AACF,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capability", "PERSONAL_SPACE_TAG", "RootCollectionAnnotation", "Annotation", "Collection", "Obj", "Ref", "MigrationVersionAnnotation", "Migrations", "ClientCapabilities", "EdgeReplicationSetting", "MembershipPolicy", "makeModule", "fnUntraced", "client", "get", "Client", "personalSpace", "tryPromise", "spaces", "create", "tags", "membershipPolicy", "LOCKED", "waitUntilReady", "internal", "setEdgeReplicationPreference", "ENABLED", "update", "properties", "set", "make", "targetVersion"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/navigation-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capability } from '@dxos/app-framework';\nimport {\n AppCapabilities,\n getActiveSpace,\n getObjectPath,\n getSpaceIdFromPath,\n getSpacePath,\n type AppCapabilities as AppCaps,\n} from '@dxos/app-toolkit';\nimport { Database, Entity, Key } from '@dxos/echo';\nimport { EID } from '@dxos/keys';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { SETTINGS_ID, SETTINGS_KEY } from '@dxos/plugin-settings';\n\nimport { meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const capabilities = yield* Capability.Service;\n\n // TODO(wittjosiah): Remove cast once NavigationTargetResolver type includes Database.Service.\n const resolver: AppCaps.NavigationTargetResolver = ((query) =>\n Effect.gen(function* () {\n if (!query?.dxn) {\n return [\n {\n path: `${getSpacePath(SETTINGS_ID)}/${SETTINGS_KEY}:${meta.id.replaceAll('/', ':')}`,\n label: 'Spaces settings',\n type: 'settings',\n },\n ];\n }\n\n const dxn = EID.tryParse(query.dxn.startsWith('@dxn:') ? query.dxn.slice(1) : query.dxn);\n if (!dxn) {\n return [];\n }\n\n const { db } = yield* Database.Service;\n const ref = db.makeRef(dxn);\n const object = yield* Database.load(ref).pipe(Effect.catchAll(() => Effect.succeed(null)));\n if (!object) {\n return [];\n }\n\n const typename = Entity.getTypename(object);\n if (!typename) {\n return [];\n }\n\n return [\n {\n path: getObjectPath(db.spaceId, typename, object.id),\n label: Entity.getLabel(object) ?? '',\n type: typename,\n },\n ];\n })) as AppCaps.NavigationTargetResolver;\n\n // Parse object paths into EIDs (structure only; existence is checked by the caller).\n // Handles canonical type paths (root/<spaceId>/types/<typename>/all/<objectId>)\n // and collection paths (root/<spaceId>/collections/<collectionId>/<objectId>): the space id\n // is the first segment and the object id the last.\n const pathResolver: AppCaps.NavigationPathResolver = (qualifiedPath) => {\n const segments = qualifiedPath.split('/');\n const spaceId = getSpaceIdFromPath(qualifiedPath);\n const objectId = segments[segments.length - 1];\n if (!spaceId || !objectId || !Key.EntityId.isValid(objectId)) {\n return Effect.succeed(Option.none());\n }\n return Effect.succeed(Option.some(EID.make({ spaceId, entityId: objectId as Key.EntityId })));\n };\n\n // Resolve a bare entity ID (no path separators) against the current space.\n // Agents sometimes pass raw entity IDs from object creation results instead of full paths.\n const bareEntityPathResolver: AppCaps.NavigationPathResolver = (path) => {\n if (path.includes('/') || !Key.EntityId.isValid(path)) {\n return Effect.succeed(Option.none());\n }\n const space = getActiveSpace(client, capabilities);\n if (!space) {\n return Effect.succeed(Option.none());\n }\n return Effect.succeed(Option.some(EID.make({ spaceId: space.id, entityId: path as Key.EntityId })));\n };\n\n return [\n Capability.contributes(AppCapabilities.NavigationTargetResolver, resolver),\n Capability.contributes(AppCapabilities.NavigationPathResolver, pathResolver),\n Capability.contributes(AppCapabilities.NavigationPathResolver, bareEntityPathResolver),\n ];\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SACEC,iBACAC,gBACAC,eACAC,oBACAC,oBAEK;AACP,SAASC,UAAUC,QAAQC,WAAW;AACtC,SAASC,WAAW;AACpB,SAASC,0BAA0B;AACnC,SAASC,aAAaC,oBAAoB;AAE1C,SAASC,YAAY;AAErB,IAAA,8BAAeb,WAAWc,WACjBC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOhB,WAAWiB,IAAIP,mBAAmBQ,MAAM;AAC9D,QAAMC,eAAe,OAAOnB,WAAWoB;AAGvC,QAAMC,WAA8C,CAACC,UAC5CC,WAAI,aAAA;AACT,QAAI,CAACD,OAAOE,KAAK;AACf,aAAO;QACL;UACEC,MAAM,GAAGpB,aAAaM,WAAAA,CAAAA,IAAgBC,YAAAA,IAAgBC,KAAKa,GAAGC,WAAW,KAAK,GAAA,CAAA;UAC9EC,OAAO;UACPC,MAAM;QACR;;IAEJ;AAEA,UAAML,MAAMf,IAAIqB,SAASR,MAAME,IAAIO,WAAW,OAAA,IAAWT,MAAME,IAAIQ,MAAM,CAAA,IAAKV,MAAME,GAAG;AACvF,QAAI,CAACA,KAAK;AACR,aAAO,CAAA;IACT;AAEA,UAAM,EAAES,GAAE,IAAK,OAAO3B,SAASc;AAC/B,UAAMc,MAAMD,GAAGE,QAAQX,GAAAA;AACvB,UAAMY,SAAS,OAAO9B,SAAS+B,KAAKH,GAAAA,EAAKI,KAAYC,gBAAS,MAAaC,eAAQ,IAAA,CAAA,CAAA;AACnF,QAAI,CAACJ,QAAQ;AACX,aAAO,CAAA;IACT;AAEA,UAAMK,WAAWlC,OAAOmC,YAAYN,MAAAA;AACpC,QAAI,CAACK,UAAU;AACb,aAAO,CAAA;IACT;AAEA,WAAO;MACL;QACEhB,MAAMtB,cAAc8B,GAAGU,SAASF,UAAUL,OAAOV,EAAE;QACnDE,OAAOrB,OAAOqC,SAASR,MAAAA,KAAW;QAClCP,MAAMY;MACR;;EAEJ,CAAA;AAMF,QAAMI,eAA+C,CAACC,kBAAAA;AACpD,UAAMC,WAAWD,cAAcE,MAAM,GAAA;AACrC,UAAML,UAAUvC,mBAAmB0C,aAAAA;AACnC,UAAMG,WAAWF,SAASA,SAASG,SAAS,CAAA;AAC5C,QAAI,CAACP,WAAW,CAACM,YAAY,CAACzC,IAAI2C,SAASC,QAAQH,QAAAA,GAAW;AAC5D,aAAcT,eAAea,YAAI,CAAA;IACnC;AACA,WAAcb,eAAec,YAAK7C,IAAI8C,KAAK;MAAEZ;MAASa,UAAUP;IAAyB,CAAA,CAAA,CAAA;EAC3F;AAIA,QAAMQ,yBAAyD,CAAChC,SAAAA;AAC9D,QAAIA,KAAKiC,SAAS,GAAA,KAAQ,CAAClD,IAAI2C,SAASC,QAAQ3B,IAAAA,GAAO;AACrD,aAAce,eAAea,YAAI,CAAA;IACnC;AACA,UAAMM,QAAQzD,eAAec,QAAQG,YAAAA;AACrC,QAAI,CAACwC,OAAO;AACV,aAAcnB,eAAea,YAAI,CAAA;IACnC;AACA,WAAcb,eAAec,YAAK7C,IAAI8C,KAAK;MAAEZ,SAASgB,MAAMjC;MAAI8B,UAAU/B;IAAqB,CAAA,CAAA,CAAA;EACjG;AAEA,SAAO;IACLzB,WAAW4D,YAAY3D,gBAAgB4D,0BAA0BxC,QAAAA;IACjErB,WAAW4D,YAAY3D,gBAAgB6D,wBAAwBjB,YAAAA;IAC/D7C,WAAW4D,YAAY3D,gBAAgB6D,wBAAwBL,sBAAAA;;AAEnE,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Option", "Capability", "AppCapabilities", "getActiveSpace", "getObjectPath", "getSpaceIdFromPath", "getSpacePath", "Database", "Entity", "Key", "EID", "ClientCapabilities", "SETTINGS_ID", "SETTINGS_KEY", "meta", "makeModule", "fnUntraced", "client", "get", "Client", "capabilities", "Service", "resolver", "query", "gen", "dxn", "path", "id", "replaceAll", "label", "type", "tryParse", "startsWith", "slice", "db", "ref", "makeRef", "object", "load", "pipe", "catchAll", "succeed", "typename", "getTypename", "spaceId", "getLabel", "pathResolver", "qualifiedPath", "segments", "split", "objectId", "length", "EntityId", "isValid", "none", "some", "make", "entityId", "bareEntityPathResolver", "includes", "space", "contributes", "NavigationTargetResolver", "NavigationPathResolver"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/open-members.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n\nimport { SpaceOperation } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.OpenMembers> = SpaceOperation.OpenMembers.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`${getSpacePath(input.space.id)}/settings`],\n workspace: getSpacePath(input.space.id),\n });\n }),\n ),\n);\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,iBAAiB;AAI1B,IAAMC,UAAoEC,eAAeC,YAAYC,KACnGC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOH,UAAUI,OAAOC,gBAAgBC,MAAM;IAC5CC,SAAS;MAAC,GAAGC,aAAaL,MAAMM,MAAMC,EAAE,CAAA;;IACxCC,WAAWH,aAAaL,MAAMM,MAAMC,EAAE;EACxC,CAAA;AACF,CAAA,CAAA,CAAA;AAGJ,IAAA,uBAAed;",
|
|
6
|
-
"names": ["Effect", "LayoutOperation", "getSpacePath", "Operation", "handler", "SpaceOperation", "OpenMembers", "pipe", "Operation", "withHandler", "fnUntraced", "input", "invoke", "LayoutOperation", "Open", "subject", "getSpacePath", "space", "id", "workspace"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/open-settings.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n\nimport { SpaceOperation } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.OpenSettings> = SpaceOperation.OpenSettings.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`${getSpacePath(input.space.id)}/settings/general`],\n workspace: getSpacePath(input.space.id),\n });\n }),\n ),\n);\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,iBAAiB;AAI1B,IAAMC,UAAqEC,eAAeC,aAAaC,KACrGC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOH,UAAUI,OAAOC,gBAAgBC,MAAM;IAC5CC,SAAS;MAAC,GAAGC,aAAaL,MAAMM,MAAMC,EAAE,CAAA;;IACxCC,WAAWH,aAAaL,MAAMM,MAAMC,EAAE;EACxC,CAAA;AACF,CAAA,CAAA,CAAA;AAGJ,IAAA,wBAAed;",
|
|
6
|
-
"names": ["Effect", "LayoutOperation", "getSpacePath", "Operation", "handler", "SpaceOperation", "OpenSettings", "pipe", "Operation", "withHandler", "fnUntraced", "input", "invoke", "LayoutOperation", "Open", "subject", "getSpacePath", "space", "id", "workspace"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
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 * as SchemaAST from 'effect/SchemaAST';\nimport React, { type ComponentProps, useCallback } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useAtomCapability, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { RootCollectionAnnotation } from '@dxos/app-toolkit';\nimport { AppSurface, useActiveSpace, useTypeOptions } from '@dxos/app-toolkit/ui';\nimport { Annotation, Collection, Database, Entity, Obj, Type } from '@dxos/echo';\nimport { SchemaEx } from '@dxos/effect';\nimport { type Space, SpaceState, getSpace, isSpace, useSpaces } 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 { ViewAnnotation } from '@dxos/schema';\n\nimport { SpaceSettings } from '#components';\nimport {\n CollectionArticle,\n CollectionSection,\n CreateObjectDialog,\n CreateSpaceDialog,\n ImportSpaceDialog,\n InlineSyncStatus,\n JoinDialog,\n MembersContainer,\n MenuFooter,\n EntityRenamePopover,\n ObjectCardStack,\n ObjectProperties,\n RecordArticle,\n RelatedArticle,\n SchemaContainer,\n SmallPresenceLive,\n SpacePresence,\n SpaceRenamePopover,\n SpaceSettingsContainer,\n SyncStatus,\n ViewEditor,\n} from '#containers';\nimport { meta } from '#meta';\nimport { SpaceOperation } from '#operations';\nimport {\n HueAnnotationId,\n IconAnnotationId,\n SpaceCapabilities,\n type TypeInputOptions,\n TypeInputOptionsAnnotationId,\n} from '#types';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n IMPORT_SPACE_DIALOG,\n JOIN_DIALOG,\n ENTITY_RENAME_POPOVER,\n SPACE_RENAME_POPOVER,\n} from '../constants';\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: 'collectionFallback',\n position: 'last',\n filter: AppSurface.object(AppSurface.Article, Collection.Collection),\n component: ({ data }) => <CollectionArticle attendableId={data.attendableId} subject={data.subject} />,\n }),\n Surface.create({\n id: 'recordArticle',\n position: 'last',\n filter: AppSurface.subject(AppSurface.Article, Obj.isObject),\n component: ({ data }) => <RecordArticle subject={data.subject} />,\n }),\n Surface.create({\n id: 'pluginSettings',\n filter: AppSurface.settings(AppSurface.Article, meta.id),\n component: () => {\n const spaces = useSpaces();\n const { invokePromise } = useOperationInvoker();\n return (\n <SpaceSettings\n spaces={spaces}\n onOpenSpaceSettings={(space: Space) => invokePromise(SpaceOperation.OpenSettings, { space })}\n />\n );\n },\n }),\n Surface.create({\n id: 'companion.objectProperties',\n filter: AppSurface.allOf(\n AppSurface.literal(AppSurface.Article, 'settings'),\n AppSurface.companion(AppSurface.Article),\n ),\n component: ({ ref, data, role }) => <ObjectProperties role={role} subject={data.companionTo} ref={ref} />,\n }),\n Surface.create({\n id: 'companion.related',\n filter: AppSurface.allOf(\n AppSurface.literal(AppSurface.Article, 'related'),\n AppSurface.companion(AppSurface.Article),\n ),\n component: ({ data, role }) => <RelatedArticle role={role} companionTo={data.companionTo} />,\n }),\n Surface.create({\n id: 'spaceSettingsProperties',\n filter: AppSurface.literal(AppSurface.Article, `${meta.id}.general`),\n component: ({ ref }) => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} />;\n },\n }),\n Surface.create({\n id: 'spaceSettingsMembers',\n position: 'first',\n filter: AppSurface.literal(AppSurface.Article, `${meta.id}.members`),\n component: () => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n Surface.create({\n id: 'spaceSettingsSchema',\n filter: AppSurface.literal(AppSurface.Article, `${meta.id}.schema`),\n component: () => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\n }),\n Surface.create({\n id: 'selectedObjects',\n role: 'article',\n filter: (data): data is { companionTo: Obj.Unknown; subject: 'selected-objects' } => {\n if (data.subject !== 'selected-objects' || !Obj.isObject(data.companionTo)) {\n return false;\n }\n\n const type = Obj.getType(data.companionTo);\n const path = type\n ? Option.getOrElse(ViewAnnotation.get(Type.getSchema(type)), () => [] as readonly string[])\n : [];\n const viewTarget = path.length > 0 ? ViewAnnotation.tryGetTargetAlongPath(data.companionTo, path) : undefined;\n return !!viewTarget;\n },\n // TODO(burdon): Replace with mosaic.\n component: ({ data, ref }) => {\n const type = Obj.getType(data.companionTo);\n const path = type\n ? Option.getOrElse(ViewAnnotation.get(Type.getSchema(type)), () => [] as readonly string[])\n : [];\n const view = path.length > 0 ? ViewAnnotation.tryGetTargetAlongPath(data.companionTo, path) : undefined;\n if (!view) {\n return null;\n }\n\n return (\n <ObjectCardStack\n key={Obj.getURI(data.companionTo)}\n objectId={Obj.getURI(data.companionTo)}\n view={view}\n ref={ref}\n />\n );\n },\n }),\n Surface.create({\n id: JOIN_DIALOG,\n filter: AppSurface.component<ComponentProps<typeof JoinDialog>>(AppSurface.Dialog, JOIN_DIALOG),\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n Surface.create({\n id: CREATE_SPACE_DIALOG,\n filter: AppSurface.component(AppSurface.Dialog, CREATE_SPACE_DIALOG),\n component: () => <CreateSpaceDialog />,\n }),\n Surface.create({\n id: IMPORT_SPACE_DIALOG,\n filter: AppSurface.component(AppSurface.Dialog, IMPORT_SPACE_DIALOG),\n component: () => <ImportSpaceDialog />,\n }),\n Surface.create({\n id: CREATE_OBJECT_DIALOG,\n filter: AppSurface.component<ComponentProps<typeof CreateObjectDialog>>(\n AppSurface.Dialog,\n CREATE_OBJECT_DIALOG,\n ),\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n Surface.create({\n id: 'createInitialSpaceFormHue',\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any>; fieldPropertyAst?: SchemaAST.AST } => {\n const annotation = SchemaEx.findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, HueAnnotationId);\n return !!annotation;\n },\n component: ({ data, ...inputProps }) => {\n const ast = data.fieldPropertyAst;\n if (!ast) {\n return null;\n }\n\n const { label, readonly, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextHue: string) => onValueChange(ast, nextHue), [ast, onValueChange]);\n const handleReset = useCallback(() => onValueChange(ast, undefined), [ast, 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: 'createInitialSpaceFormIcon',\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any>; fieldPropertyAst?: SchemaAST.AST } => {\n const annotation = SchemaEx.findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, IconAnnotationId);\n return !!annotation;\n },\n component: ({ data, ...inputProps }) => {\n const ast = data.fieldPropertyAst;\n if (!ast) {\n return null;\n }\n\n const { label, readonly, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextIcon: string) => onValueChange(ast, nextIcon), [ast, onValueChange]);\n const handleReset = useCallback(() => onValueChange(ast, undefined), [ast, 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: 'typenameFormInput',\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 fieldPropertyAst?: SchemaAST.AST;\n } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = SchemaEx.findAnnotation(\n (data.schema as Schema.Schema.All).ast,\n TypeInputOptionsAnnotationId,\n );\n return !!annotation;\n },\n component: ({ data: { schema, target, fieldPropertyAst }, ...inputProps }) => {\n const ast = fieldPropertyAst;\n if (!ast) {\n return null;\n }\n\n const props = { ...inputProps, type: ast } as any as FormFieldComponentProps;\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n const annotation = SchemaEx.findAnnotation<TypeInputOptions>(schema.ast, TypeInputOptionsAnnotationId)!;\n const options = useTypeOptions({ db, annotation });\n\n return <SelectField {...props} options={options} />;\n },\n }),\n Surface.create({\n id: 'objectProperties',\n role: 'object-properties',\n filter: (data): data is { subject: Obj.Unknown } => {\n if (!Obj.isObject(data.subject)) {\n return false;\n }\n\n const type = Obj.getType(data.subject);\n const path = type\n ? Option.getOrElse(ViewAnnotation.get(Type.getSchema(type)), () => [] as readonly string[])\n : [];\n const viewTarget = path.length > 0 ? ViewAnnotation.tryGetTargetAlongPath(data.subject, path) : undefined;\n return !!viewTarget;\n },\n component: ({ data }) => {\n const type = Obj.getType(data.subject);\n const path = type\n ? Option.getOrElse(ViewAnnotation.get(Type.getSchema(type)), () => [] as readonly string[])\n : [];\n const view = path.length > 0 ? ViewAnnotation.tryGetTargetAlongPath(data.subject, path) : undefined;\n\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: ENTITY_RENAME_POPOVER,\n role: 'popover',\n filter: (data): data is { props: Entity.Unknown } =>\n data.component === ENTITY_RENAME_POPOVER && Entity.isEntity(data.props),\n component: ({ data }) => <EntityRenamePopover entity={data.props} />,\n }),\n Surface.create({\n id: 'menuFooter',\n filter: AppSurface.subject(AppSurface.MenuFooter, Obj.isObject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n Surface.create({\n id: 'navtreePresence',\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: 'navtreePresenceFallback',\n role: 'navtree-item-end',\n position: 'last',\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: 'navtreeSyncStatus',\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: 'navbarPresence',\n role: 'navbar-end',\n position: 'first',\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 && Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n Surface.create({\n id: 'collectionSection',\n filter: AppSurface.object(AppSurface.Section, Collection.Collection),\n component: ({ data }) => <CollectionSection subject={data.subject} />,\n }),\n Surface.create({\n id: 'syncStatus',\n role: 'status-indicator',\n component: () => <SyncStatus />,\n }),\n ]);\n }),\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Option", "React", "useCallback", "Capabilities", "Capability", "Surface", "useAtomCapability", "useOperationInvoker", "RootCollectionAnnotation", "AppSurface", "useActiveSpace", "useTypeOptions", "Annotation", "Collection", "Database", "Entity", "Obj", "Type", "SchemaEx", "SpaceState", "getSpace", "isSpace", "useSpaces", "Input", "SelectField", "HuePicker", "IconPicker", "ViewAnnotation", "SpaceSettings", "CollectionArticle", "CollectionSection", "CreateObjectDialog", "CreateSpaceDialog", "ImportSpaceDialog", "InlineSyncStatus", "JoinDialog", "MembersContainer", "MenuFooter", "EntityRenamePopover", "ObjectCardStack", "ObjectProperties", "RecordArticle", "RelatedArticle", "SchemaContainer", "SmallPresenceLive", "SpacePresence", "SpaceRenamePopover", "SpaceSettingsContainer", "SyncStatus", "ViewEditor", "meta", "SpaceOperation", "HueAnnotationId", "IconAnnotationId", "SpaceCapabilities", "TypeInputOptionsAnnotationId", "Capability", "makeModule", "fnUntraced", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "position", "filter", "AppSurface", "object", "Article", "Collection", "component", "data", "CollectionArticle", "attendableId", "subject", "Obj", "isObject", "RecordArticle", "settings", "meta", "spaces", "useSpaces", "invokePromise", "useOperationInvoker", "SpaceSettings", "onOpenSpaceSettings", "space", "SpaceOperation", "OpenSettings", "allOf", "literal", "companion", "ref", "role", "ObjectProperties", "companionTo", "RelatedArticle", "useActiveSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "type", "getType", "path", "getOrElse", "ViewAnnotation", "get", "Type", "getSchema", "viewTarget", "length", "tryGetTargetAlongPath", "undefined", "view", "ObjectCardStack", "key", "getURI", "objectId", "JOIN_DIALOG", "Dialog", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "IMPORT_SPACE_DIALOG", "ImportSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "SchemaEx", "findAnnotation", "schema", "ast", "HueAnnotationId", "inputProps", "fieldPropertyAst", "label", "readonly", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "Input", "Root", "Label", "HuePicker", "disabled", "value", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "prop", "TypeInputOptionsAnnotationId", "target", "db", "Database", "isDatabase", "getDatabase", "options", "useTypeOptions", "SelectField", "ViewEditor", "SPACE_RENAME_POPOVER", "isSpace", "SpaceRenamePopover", "ENTITY_RENAME_POPOVER", "Entity", "isEntity", "EntityRenamePopover", "entity", "MenuFooter", "ephemeral", "useAtomCapability", "SpaceCapabilities", "EphemeralState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "state", "SpaceState", "SPACE_READY", "Annotation", "properties", "RootCollectionAnnotation", "pipe", "getOrUndefined", "SpacePresence", "Section", "CollectionSection", "SyncStatus"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/remove-objects.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation, RootCollectionAnnotation } from '@dxos/app-toolkit';\nimport { getSpace } from '@dxos/client/echo';\nimport { Operation } from '@dxos/compute';\nimport { Annotation, Collection, Entity, Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceOperation } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.RemoveObjects> = SpaceOperation.RemoveObjects.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n const layout = yield* Capabilities.getAtomValue(AppCapabilities.Layout);\n const entities = input.objects;\n\n const space = getSpace(entities[0] as Obj.Unknown);\n invariant(\n space && entities.every((entity) => Entity.isEntity(entity) && getSpace(entity as Obj.Unknown) === space),\n );\n\n const parentCollection =\n input.target ?? Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target;\n invariant(parentCollection, 'No parent collection found for space — cannot remove objects.');\n\n // Type entities (persisted schemas) live outside collections — `findIndex` will\n // return -1 for them and the splice/active-tracking branches are skipped.\n const indices = entities.map((entity) =>\n Obj.instanceOf(Collection.Collection, parentCollection)\n ? parentCollection.objects.findIndex((ref) => ref.target === entity)\n : -1,\n );\n\n const wasActive = entities\n .map((entity) => layout.active.find((graphId) => graphId.endsWith(entity.id)))\n .filter(isNonNullable);\n\n for (const entity of entities) {\n if (Obj.instanceOf(Collection.Collection, parentCollection)) {\n const index = parentCollection.objects.findIndex((ref) => ref.target === entity);\n if (index !== -1) {\n Obj.update(parentCollection, (parentCollection) => {\n parentCollection.objects.splice(index, 1);\n });\n }\n }\n\n const db = Entity.getDatabase(entity);\n db?.remove(entity);\n }\n\n if (wasActive.length > 0) {\n yield* Operation.invoke(LayoutOperation.Close, { subject: wasActive });\n }\n\n return {\n objects: entities,\n parentCollection,\n indices,\n wasActive,\n };\n }),\n ),\n);\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAEA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,oBAAoB;AAC7B,SAASC,iBAAiBC,iBAAiBC,gCAAgC;AAC3E,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,YAAYC,YAAYC,QAAQC,WAAW;AACpD,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAI9B,IAAA,eAA4EC;IAItE,UAAMC,eAAiBC,cAAO,KAAA,UAAA,YAAA,kBAAA,WAAA,OAAA;AAE9B,QAAMC,SAAQC,OAAAA,aAAoB,aAAA,gBAAA,MAAA;AAClCC,QAAAA,WACEF,MAASF;AAGX,QAAMK,QAAAA,SAAAA,SACEC,CAAAA,CAAAA;AACRF,YAAUC,SAAAA,SAAkB,MAAA,CAAA,WAAA,OAAA,SAAA,MAAA,KAAA,SAAA,MAAA,MAAA,KAAA,GAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,4FAAA,EAAA,EAAA,CAAA;AAE5B,QAAA,mBAAA,MAAA,UAAA,WAAA,IAAA,MAAA,YAAA,wBAAgF,EAAA,KAAA,qBAAA,GAAA;AAChF,YAAA,kBAAA,sEAA0E,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,oBAAA,sEAAA,EAAA,CAAA;AAW1E,QAAK,UAAME,SAAUP,IAAAA,CAAU,WAAA,IAAA,WAAA,WAAA,YAAA,gBAAA,IAAA,iBAAA,QAAA,UAAA,CAAA,QAAA,IAAA,WAAA,MAAA,IAAA,EAAA;QAC7B,YAAQQ,SAAWC,IAAAA,CAAAA,WAAWA,OAAYJ,OAAAA,KAAAA,CAAAA,YAAmB,QAAA,SAAA,OAAA,EAAA,CAAA,CAAA,EAAA,OAAA,aAAA;aAC3D,UAAMK,UAAQL;QACd,IAAIK,WAAW,WAAG,YAAA,gBAAA,GAAA;YAChBC,QAAU,iBAACN,QAAmBA,UAAAA,CAAAA,QAAAA,IAAAA,WAAAA,MAAAA;oBAC5BA,IAAAA;AACF,YAAA,OAAA,kBAAA,CAAAA,sBAAA;AACF,UAAAA,kBAAA,QAAA,OAAA,OAAA,CAAA;QACF,CAAA;MAEA;IACAO;AACF,UAAA,KAAA,OAAA,YAAA,MAAA;AAEIC,QAAAA,OAAUC,MAAM;;gBAC+BC,SAASF,GAAAA;AAAU,WAAA,UAAA,OAAA,gBAAA,OAAA;MACtE,SAAA;IAEA,CAAA;;SAEER;IACAW,SAAAA;IACAH;IACF;IACF;EAGJ;;;",
|
|
6
|
-
"names": ["Effect", "Option", "Capabilities", "AppCapabilities", "LayoutOperation", "RootCollectionAnnotation", "getSpace", "Operation", "Annotation", "Collection", "Entity", "Obj", "invariant", "isNonNullable", "SpaceOperation", "entities", "objects", "space", "getSpace", "invariant", "parentCollection", "target", "entity", "instanceOf", "Collection", "index", "Obj", "db", "wasActive", "length", "subject", "indices"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/rename.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n\nimport { SPACE_RENAME_POPOVER } from '../constants';\nimport { SpaceOperation } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.Rename> = SpaceOperation.Rename.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.UpdatePopover, {\n subject: SPACE_RENAME_POPOVER,\n anchorId: input.caller ?? '',\n props: input.space,\n });\n }),\n ),\n);\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAK1B,IAAMC,UAA+DC,eAAeC,OAAOC,KACzFC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOH,UAAUI,OAAOC,gBAAgBC,eAAe;IACrDC,SAASC;IACTC,UAAUN,MAAMO,UAAU;IAC1BC,OAAOR,MAAMS;EACf,CAAA;AACF,CAAA,CAAA,CAAA;AAGJ,IAAA,iBAAehB;",
|
|
6
|
-
"names": ["Effect", "LayoutOperation", "Operation", "handler", "SpaceOperation", "Rename", "pipe", "Operation", "withHandler", "fnUntraced", "input", "invoke", "LayoutOperation", "UpdatePopover", "subject", "SPACE_RENAME_POPOVER", "anchorId", "caller", "props", "space"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/rename-object.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n\nimport { ENTITY_RENAME_POPOVER } from '../constants';\nimport { SpaceOperation } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.RenameObject> = SpaceOperation.RenameObject.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.UpdatePopover, {\n subject: ENTITY_RENAME_POPOVER,\n anchorId: input.caller ?? '',\n props: input.object,\n });\n }),\n ),\n);\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAK1B,IAAMC,UAAqEC,eAAeC,aAAaC,KACrGC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOH,UAAUI,OAAOC,gBAAgBC,eAAe;IACrDC,SAASC;IACTC,UAAUN,MAAMO,UAAU;IAC1BC,OAAOR,MAAMS;EACf,CAAA;AACF,CAAA,CAAA,CAAA;AAGJ,IAAA,wBAAehB;",
|
|
6
|
-
"names": ["Effect", "LayoutOperation", "Operation", "handler", "SpaceOperation", "RenameObject", "pipe", "Operation", "withHandler", "fnUntraced", "input", "invoke", "LayoutOperation", "UpdatePopover", "subject", "ENTITY_RENAME_POPOVER", "anchorId", "caller", "props", "object"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/repair.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capability } from '@dxos/app-framework';\nimport { RootCollectionAnnotation } from '@dxos/app-toolkit';\nimport { Annotation, Collection, Obj, Ref } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\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 }),\n ),\n);\n\n/**\n * Remove all existing query collections from the root collection.\n */\nconst removeQueryCollections = async (space: Space) => {\n const rootCollectionRef = Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined);\n const rootCollection: Collection.Collection | undefined = await rootCollectionRef?.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) === 'org.dxos.type.queryCollection');\n if (queryCollections.length === 0) {\n return;\n }\n\n Obj.update(rootCollection, (rootCollection) => {\n rootCollection.objects = objects\n .filter((object) => Obj.getTypename(object) !== 'org.dxos.type.queryCollection')\n .map((object) => Ref.make(object));\n });\n queryCollections.forEach((object) => space.db.remove(object));\n};\n"],
|
|
5
|
-
"mappings": ";;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,gCAAgC;AACzC,SAASC,YAAwBC,KAAKC,WAAW;AAGjD,SAASC,yBAAyB;AAElC,IAAA,iBAAeL,WAAWM,WAAW,MAC5BC,eACLP,WAAWQ,YAAYH,kBAAkBI,QAAQ,OAAO,EAAEC,MAAK,MAAoB;AACjF,QAAMC,uBAAuBD,KAAAA;AAC/B,CAAA,CAAA,CAAA;AAOJ,IAAMC,yBAAyB,OAAOD,UAAAA;AACpC,QAAME,oBAAoBV,WAAWW,IAAIH,MAAMI,YAAYb,wBAAAA,EAA0Bc,KAAYC,qBAAc;AAC/G,QAAMC,iBAAoD,MAAML,mBAAmBM,KAAAA;AACnF,MAAI,CAACD,gBAAgB;AACnB;EACF;AAEA,QAAME,UAAU,MAAMC,QAAQC,IAAIJ,eAAeE,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMM,mBAAmBL,QAAQM,OAAO,CAACC,WAAWvB,IAAIwB,YAAYD,MAAAA,MAAY,+BAAA;AAChF,MAAIF,iBAAiBI,WAAW,GAAG;AACjC;EACF;AAEAzB,MAAI0B,OAAOZ,gBAAgB,CAACA,oBAAAA;AAC1BA,IAAAA,gBAAeE,UAAUA,QACtBM,OAAO,CAACC,WAAWvB,IAAIwB,YAAYD,MAAAA,MAAY,+BAAA,EAC/CJ,IAAI,CAACI,WAAWtB,IAAI0B,KAAKJ,MAAAA,CAAAA;EAC9B,CAAA;AACAF,mBAAiBO,QAAQ,CAACL,WAAWhB,MAAMsB,GAAGC,OAAOP,MAAAA,CAAAA;AACvD;",
|
|
6
|
-
"names": ["Effect", "Option", "Capability", "RootCollectionAnnotation", "Annotation", "Obj", "Ref", "SpaceCapabilities", "makeModule", "succeed", "contributes", "Repair", "space", "removeQueryCollections", "rootCollectionRef", "get", "properties", "pipe", "getOrUndefined", "rootCollection", "load", "objects", "Promise", "all", "map", "ref", "queryCollections", "filter", "object", "getTypename", "length", "update", "make", "forEach", "db", "remove"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/spaces-ready.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Fiber from 'effect/Fiber';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport {\n AppCapabilities,\n LayoutOperation,\n RootCollectionAnnotation,\n getSpacePath,\n resolvePersonalSpace,\n setPersonalSpace,\n} from '@dxos/app-toolkit';\nimport { SubscriptionList } from '@dxos/async';\nimport { Annotation, Collection, Filter, Obj, Type } from '@dxos/echo';\nimport { SPACE_ID_LENGTH, parseId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { MigrationVersionAnnotation, Migrations } from '@dxos/migrations';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Graph } from '@dxos/plugin-graph';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { type Space, SpaceState } from '@dxos/react-client/echo';\nimport { Expando } from '@dxos/schema';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceOperation } from '#operations';\nimport { SpaceCapabilities } from '#types';\n\nimport { SHARED } from '../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 5_000;\n\nconst isEchoRef = (id: string) => id.startsWith('echo:/');\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { invoke, invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const layoutAtom = yield* Capability.get(AppCapabilities.Layout);\n const attention = yield* Capability.get(AttentionCapabilities.Attention);\n const stateAtom = yield* Capability.get(SpaceCapabilities.State);\n const ephemeralAtom = yield* Capability.get(SpaceCapabilities.EphemeralState);\n const client = yield* Capability.get(ClientCapabilities.Client);\n\n //\n // Personal space initialization — deferred until found.\n //\n\n // Fiber for the one-shot personal-space init Effect; interrupted in cleanup\n // so it cannot access the db after client.destroy() closes the repo.\n let personalSpaceInitFiber: Fiber.RuntimeFiber<void, unknown> | undefined;\n let personalSpaceInitialized = false;\n\n const personalSpaceInitEffect = (personalSpace: Space, { fromCredential }: { fromCredential: boolean }) =>\n Effect.gen(function* () {\n yield* Effect.promise(() => personalSpace.waitUntilReady());\n\n if (fromCredential) {\n setPersonalSpace(personalSpace);\n }\n\n // Check if deck state indicates we should switch to default space.\n const layout = registry.get(layoutAtom);\n if (layout.workspace === 'default') {\n yield* invoke(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(personalSpace.id) });\n }\n\n const queryResults = yield* Effect.promise(() =>\n personalSpace.db.query(Filter.type(Expando.Expando, { key: SHARED })).run(),\n );\n if (!queryResults[0]) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n try {\n personalSpace.db.add(Obj.make(Expando.Expando, { key: SHARED, order: [] }));\n } catch (err) {\n // The space may have been destroyed (e.g. during test teardown) between the query and the add.\n log.warn('Failed to initialize spaces order, space may be closing', { err });\n }\n }\n });\n\n const startPersonalSpaceInit = (personalSpace: Space, opts: { fromCredential: boolean }) => {\n if (personalSpaceInitialized) {\n return;\n }\n // Set before forking so concurrent subscribe callbacks don't start a second initialization.\n personalSpaceInitialized = true;\n personalSpaceInitFiber = Effect.runFork(personalSpaceInitEffect(personalSpace, opts));\n };\n\n // Try to find the personal space now, or subscribe to find it later.\n // Initialization is non-blocking so subscriptions wire immediately.\n const resolved = resolvePersonalSpace(client);\n if (resolved) {\n startPersonalSpaceInit(resolved.space, resolved);\n } else {\n const personalSpaceSub = client.spaces.subscribe(() => {\n const resolved = resolvePersonalSpace(client);\n if (resolved) {\n startPersonalSpaceInit(resolved.space, resolved);\n }\n });\n subscriptions.add(() => personalSpaceSub.unsubscribe());\n }\n\n //\n // Space subscriptions — set up immediately, do not depend on personal space.\n //\n\n // Await missing objects - subscribe to layout atom changes.\n // NOTE: Use immediate: true to check initial state (URL handler may have already set active).\n let lastActiveCleanup: (() => void) | undefined;\n subscriptions.add(\n registry.subscribe(\n layoutAtom,\n (layout) => {\n // Clean up previous effect.\n lastActiveCleanup?.();\n lastActiveCleanup = undefined;\n\n // Determine the ID to check - either from active item or workspace.\n const id = layout.active.length === 1 ? layout.active[0] : layout.workspace;\n if (!id) {\n return;\n }\n\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node && (isEchoRef(id) || id.length === SPACE_ID_LENGTH)) {\n void Graph.initialize(graph, id);\n const timeout = setTimeout(async () => {\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node) {\n await invokePromise(SpaceOperation.WaitForObject, { id });\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n lastActiveCleanup = () => clearTimeout(timeout);\n }\n },\n { immediate: true },\n ),\n );\n // Also add cleanup for the last effect.\n subscriptions.add(() => lastActiveCleanup?.());\n\n // Cache space names.\n const spaceNamesSub = client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the personal space properties.\n const personalSpaceForMigration = resolvePersonalSpace(client);\n if (\n personalSpaceForMigration?.space &&\n personalSpaceForMigration.space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION\n ) {\n await personalSpaceForMigration.space.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n if (Option.isNone(Annotation.get(space.properties, RootCollectionAnnotation))) {\n const legacyRef = (space.properties as any)[Type.getTypename(Collection.Collection)];\n if (legacyRef) {\n Obj.update(space.properties, (properties) => {\n Annotation.set(properties, RootCollectionAnnotation, legacyRef);\n });\n }\n }\n if (Migrations.namespace && Option.isNone(Annotation.get(space.properties, MigrationVersionAnnotation))) {\n const legacyVersion = (space.properties as any)[`${Migrations.namespace}.version`];\n if (typeof legacyVersion === 'string') {\n Obj.update(space.properties, (properties) => {\n Annotation.set(properties, MigrationVersionAnnotation, legacyVersion);\n });\n }\n }\n\n const updateSpaceName = () => {\n const name = space.properties.name;\n if (!name) {\n registry.update(stateAtom, (current) => {\n const { [space.id]: _, ...rest } = current.spaceNames;\n return { ...current, spaceNames: rest };\n });\n } else {\n registry.update(stateAtom, (current) => ({\n ...current,\n spaceNames: { ...current.spaceNames, [space.id]: name },\n }));\n }\n };\n updateSpaceName();\n subscriptions.add(Obj.subscribe(space.properties, updateSpaceName));\n });\n });\n subscriptions.add(() => spaceNamesSub.unsubscribe());\n\n // Broadcast active node to other peers in the space - subscribe to both layout and attention.\n let broadcastCleanup: (() => void) | undefined;\n const setupBroadcast = () => {\n broadcastCleanup?.();\n\n const layout = registry.get(layoutAtom);\n const current = attention.getCurrent();\n const active = layout.active;\n const inactive = layout.inactive;\n\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id: string) => {\n try {\n const { spaceId } = parseId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id: string) => {\n try {\n const { spaceId } = parseId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', {\n err: err.message,\n });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n broadcastCleanup = () => clearInterval(interval);\n };\n\n // Subscribe to layout changes for broadcast.\n subscriptions.add(registry.subscribe(layoutAtom, setupBroadcast));\n // Subscribe to attention.current changes.\n subscriptions.add(attention.subscribeCurrent(() => setupBroadcast()));\n // Initial setup.\n setupBroadcast();\n // Cleanup.\n subscriptions.add(() => broadcastCleanup?.());\n\n // Listen for active nodes from other peers in the space.\n const viewingSub = client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n registry.update(ephemeralAtom, (ephemeral) => {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in ephemeral.viewersByObject)) {\n ephemeral.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n ephemeral.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!ephemeral.viewersByIdentity.has(identityKey)) {\n ephemeral.viewersByIdentity.set(identityKey, new Set());\n }\n ephemeral.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n ephemeral.viewersByObject[id]?.delete(identityKey);\n ephemeral.viewersByIdentity.get(identityKey)?.delete(id);\n // It's okay for these to be empty sets/maps, reduces churn.\n }\n });\n\n return { ...ephemeral };\n });\n }\n }),\n );\n });\n });\n subscriptions.add(() => viewingSub.unsubscribe());\n\n // Enable edge replication for all spaces.\n try {\n yield* Effect.tryPromise(() =>\n Promise.all(\n client.spaces\n .get()\n .map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n ),\n );\n registry.update(stateAtom, (current) => ({ ...current, enabledEdgeReplication: true }));\n } catch (err) {\n log.catch(err);\n }\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.gen(function* () {\n if (personalSpaceInitFiber) {\n yield* Fiber.interrupt(personalSpaceInitFiber);\n }\n spaceSubscriptions.clear();\n subscriptions.clear();\n }),\n );\n }),\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Fiber", "Option", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "RootCollectionAnnotation", "getSpacePath", "resolvePersonalSpace", "setPersonalSpace", "SubscriptionList", "Annotation", "Collection", "Filter", "Obj", "Type", "SPACE_ID_LENGTH", "parseId", "log", "MigrationVersionAnnotation", "Migrations", "AttentionCapabilities", "ClientCapabilities", "Graph", "EdgeReplicationSetting", "PublicKey", "SpaceState", "Expando", "ComplexMap", "reduceGroupBy", "SpaceOperation", "SpaceCapabilities", "ACTIVE_NODE_BROADCAST_INTERVAL", "isEchoRef", "makeModule", "subscriptions", "SubscriptionList", "spaceSubscriptions", "invokePromise", "Capability", "AppCapabilities", "registry", "Capabilities", "AtomRegistry", "layoutAtom", "attention", "AttentionCapabilities", "Attention", "stateAtom", "get", "SpaceCapabilities", "ephemeralAtom", "EphemeralState", "client", "ClientCapabilities", "Client", "setPersonalSpace", "personalSpace", "invoke", "LayoutOperation", "SwitchWorkspace", "subject", "getSpacePath", "queryResults", "warn", "startPersonalSpaceInit", "personalSpaceInitialized", "space", "resolved", "personalSpaceSub", "spaces", "subscribe", "lastActiveCleanup", "active", "Graph", "initialize", "graph", "id", "timeout", "setTimeout", "node", "getNode", "SpaceOperation", "WaitForObject", "WAIT_FOR_OBJECT_TIMEOUT", "immediate", "spaceNamesSub", "personalSpaceForMigration", "resolvePersonalSpace", "migrate", "filter", "SpaceState", "SPACE_READY", "legacyRef", "properties", "Type", "getTypename", "Collection", "Obj", "Annotation", "Migrations", "legacyVersion", "MigrationVersionAnnotation", "update", "current", "spaceNames", "updateSpaceName", "broadcastCleanup", "layout", "inactive", "send", "identity", "idsBySpace", "spaceId", "parseId", "set", "find", "attended", "added", "removed", "catch", "err", "add", "subscribeCurrent", "setupBroadcast", "viewingSub", "identityKey", "PublicKey", "safeFrom", "message", "currentIdentity", "halo", "equals", "ephemeral", "viewersByObject", "currentlyAttended", "Set", "viewersByIdentity", "enabledEdgeReplication", "contributes", "Effect", "interrupt", "personalSpaceInitFiber"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { createKvsStore } from '@dxos/effect';\nimport { PublicKey } from '@dxos/keys';\nimport { ComplexMap } from '@dxos/util';\n\nimport { meta } from '#meta';\nimport { SpaceCapabilities } from '#types';\n\n/** Default persisted state. */\nconst defaultSpaceState: SpaceCapabilities.SpaceState = {\n spaceNames: {},\n enabledEdgeReplication: false,\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n\n // Persisted state using KVS store.\n const stateAtom = createKvsStore({\n key: `${meta.id}.state`,\n schema: SpaceCapabilities.StateSchema,\n defaultValue: () => ({ ...defaultSpaceState }),\n });\n\n // Ephemeral state (not persisted, but kept alive to prevent GC resets).\n const ephemeralAtom = Atom.make<SpaceCapabilities.SpaceEphemeralState>({\n awaiting: undefined,\n sdkMigrationRunning: {},\n navigableCollections: false,\n viewersByObject: {},\n viewersByIdentity: new ComplexMap<PublicKey, Set<string>>(PublicKey.hash),\n }).pipe(Atom.keepAlive);\n\n const manager = yield* Capability.get(Capabilities.PluginManager);\n // Update navigableCollections based on plugin state.\n const updateNavigableCollections = () => {\n const enabled =\n manager.getEnabled().includes('org.dxos.plugin.stack') ||\n manager.getEnabled().includes('org.dxos.plugin.simpleLayout');\n const current = registry.get(ephemeralAtom);\n if (enabled !== current.navigableCollections) {\n registry.update(ephemeralAtom, (c) => ({ ...c, navigableCollections: enabled }));\n }\n };\n // Check initial state and subscribe to changes.\n updateNavigableCollections();\n const unsubscribe = registry.subscribe(manager.enabled, updateNavigableCollections);\n\n return [\n Capability.contributes(SpaceCapabilities.State, stateAtom),\n Capability.contributes(SpaceCapabilities.EphemeralState, ephemeralAtom, () =>\n Effect.sync(() => {\n unsubscribe();\n }),\n ),\n ];\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAE3B,SAASC,YAAY;AACrB,SAASC,yBAAyB;AAGlC,IAAMC,oBAAkD;EACtDC,YAAY,CAAC;EACbC,wBAAwB;AAC1B;AAEA,IAAA,gBAAeR,WAAWS,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOX,WAAWY,IAAIb,aAAac,YAAY;AAGhE,QAAMC,YAAYb,eAAe;IAC/Bc,KAAK,GAAGX,KAAKY,EAAE;IACfC,QAAQZ,kBAAkBa;IAC1BC,cAAc,OAAO;MAAE,GAAGb;IAAkB;EAC9C,CAAA;AAGA,QAAMc,gBAAgBvB,KAAKwB,KAA4C;IACrEC,UAAUC;IACVC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,iBAAiB,CAAC;IAClBC,mBAAmB,IAAIxB,WAAmCD,UAAU0B,IAAI;EAC1E,CAAA,EAAGC,KAAKhC,KAAKiC,SAAS;AAEtB,QAAMC,UAAU,OAAO/B,WAAWY,IAAIb,aAAaiC,aAAa;AAEhE,QAAMC,6BAA6B,MAAA;AACjC,UAAMC,UACJH,QAAQI,WAAU,EAAGC,SAAS,uBAAA,KAC9BL,QAAQI,WAAU,EAAGC,SAAS,8BAAA;AAChC,UAAMC,UAAU1B,SAASC,IAAIQ,aAAAA;AAC7B,QAAIc,YAAYG,QAAQZ,sBAAsB;AAC5Cd,eAAS2B,OAAOlB,eAAe,CAACmB,OAAO;QAAE,GAAGA;QAAGd,sBAAsBS;MAAQ,EAAA;IAC/E;EACF;AAEAD,6BAAAA;AACA,QAAMO,cAAc7B,SAAS8B,UAAUV,QAAQG,SAASD,0BAAAA;AAExD,SAAO;IACLjC,WAAW0C,YAAYrC,kBAAkBsC,OAAO7B,SAAAA;IAChDd,WAAW0C,YAAYrC,kBAAkBuC,gBAAgBxB,eAAe,MAC/DyB,YAAK,MAAA;AACVL,kBAAAA;IACF,CAAA,CAAA;;AAGN,CAAA,CAAA;",
|
|
6
|
-
"names": ["Atom", "Effect", "Capabilities", "Capability", "createKvsStore", "PublicKey", "ComplexMap", "meta", "SpaceCapabilities", "defaultSpaceState", "spaceNames", "enabledEdgeReplication", "makeModule", "fnUntraced", "registry", "get", "AtomRegistry", "stateAtom", "key", "id", "schema", "StateSchema", "defaultValue", "ephemeralAtom", "make", "awaiting", "undefined", "sdkMigrationRunning", "navigableCollections", "viewersByObject", "viewersByIdentity", "hash", "pipe", "keepAlive", "manager", "PluginManager", "updateNavigableCollections", "enabled", "getEnabled", "includes", "current", "update", "c", "unsubscribe", "subscribe", "contributes", "State", "EphemeralState", "sync"]
|
|
7
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import * as Effect from 'effect/Effect';
|
|
2
|
-
import { Capability } from '@dxos/app-framework';
|
|
3
|
-
declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<import("@dxos/app-toolkit").NodeSerializer[]>>, never, Capability.Service>;
|
|
4
|
-
export default _default;
|
|
5
|
-
//# sourceMappingURL=app-graph-serializer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app-graph-serializer.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-serializer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Entity } from '@dxos/echo';
|
|
3
|
-
export declare const ENTITY_RENAME_POPOVER: string;
|
|
4
|
-
export declare const EntityRenamePopover: ({ entity }: {
|
|
5
|
-
entity: Entity.Unknown;
|
|
6
|
-
}) => React.JSX.Element;
|
|
7
|
-
//# sourceMappingURL=EntityRenamePopover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityRenamePopover.d.ts","sourceRoot":"","sources":["../../../../../src/containers/EntityRenamePopover/EntityRenamePopover.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAI7D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOpC,eAAO,MAAM,qBAAqB,QAAmC,CAAC;AAEtE,eAAO,MAAM,mBAAmB,eAAgB;IAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAA;CAAE,sBAkCzE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/EntityRenamePopover/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type Space } from '@dxos/client/echo';
|
|
3
|
-
export declare const SPACE_RENAME_POPOVER: string;
|
|
4
|
-
export declare const SpaceRenamePopover: ({ space }: {
|
|
5
|
-
space: Space;
|
|
6
|
-
}) => React.JSX.Element;
|
|
7
|
-
//# sourceMappingURL=SpaceRenamePopover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpaceRenamePopover.d.ts","sourceRoot":"","sources":["../../../../../src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAI7D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO/C,eAAO,MAAM,oBAAoB,QAAkC,CAAC;AAEpE,eAAO,MAAM,kBAAkB,cAAe;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,sBAoC7D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/SpaceRenamePopover/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
import * as Option from 'effect/Option';
|
|
7
|
-
|
|
8
|
-
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
|
-
import { AppCapabilities, RootCollectionAnnotation } from '@dxos/app-toolkit';
|
|
10
|
-
import { isSpace } from '@dxos/client/echo';
|
|
11
|
-
import { Annotation, Collection, Obj, Type } from '@dxos/echo';
|
|
12
|
-
|
|
13
|
-
import { meta } from '#meta';
|
|
14
|
-
import { SpaceOperation } from '#operations';
|
|
15
|
-
import { translations } from '#translations';
|
|
16
|
-
import { SPACE_TYPE } from '#types';
|
|
17
|
-
|
|
18
|
-
import { SPACES } from '../util';
|
|
19
|
-
|
|
20
|
-
const COLLECTION_TYPE = Type.getTypename(Collection.Collection);
|
|
21
|
-
|
|
22
|
-
// https://stackoverflow.com/a/19016910
|
|
23
|
-
const DIRECTORY_TYPE = 'text/directory';
|
|
24
|
-
|
|
25
|
-
export default Capability.makeModule(
|
|
26
|
-
Effect.fnUntraced(function* () {
|
|
27
|
-
// Get context for lazy capability access in callbacks.
|
|
28
|
-
const capabilities = yield* Capability.Service;
|
|
29
|
-
|
|
30
|
-
return Capability.contributes(AppCapabilities.AppGraphSerializer, [
|
|
31
|
-
{
|
|
32
|
-
inputType: SPACES,
|
|
33
|
-
outputType: DIRECTORY_TYPE,
|
|
34
|
-
serialize: (node) => ({
|
|
35
|
-
name: translations[0]['en-US'][meta.id]['spaces.label'] ?? 'Spaces',
|
|
36
|
-
data: translations[0]['en-US'][meta.id]['spaces.label'] ?? 'Spaces',
|
|
37
|
-
type: DIRECTORY_TYPE,
|
|
38
|
-
}),
|
|
39
|
-
deserialize: () => {
|
|
40
|
-
// No-op.
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
inputType: SPACE_TYPE,
|
|
45
|
-
outputType: DIRECTORY_TYPE,
|
|
46
|
-
serialize: (node) => ({
|
|
47
|
-
name: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed-space.label'],
|
|
48
|
-
data: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed-space.label'],
|
|
49
|
-
type: DIRECTORY_TYPE,
|
|
50
|
-
}),
|
|
51
|
-
deserialize: async (data) => {
|
|
52
|
-
const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
|
|
53
|
-
const result = await invokePromise(SpaceOperation.Create, { name: data.name, edgeReplication: true });
|
|
54
|
-
return result.data?.space;
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
inputType: COLLECTION_TYPE,
|
|
59
|
-
outputType: DIRECTORY_TYPE,
|
|
60
|
-
serialize: (node) => ({
|
|
61
|
-
name: node.data.name ?? translations[0]['en-US'][meta.id]['object-name.placeholder'],
|
|
62
|
-
data: node.data.name ?? translations[0]['en-US'][meta.id]['object-name.placeholder'],
|
|
63
|
-
type: DIRECTORY_TYPE,
|
|
64
|
-
}),
|
|
65
|
-
deserialize: async (data, ancestors) => {
|
|
66
|
-
const space = ancestors.find(isSpace);
|
|
67
|
-
const collection =
|
|
68
|
-
ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ??
|
|
69
|
-
(space && Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target);
|
|
70
|
-
if (!space || !collection) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
|
|
75
|
-
const result = await invokePromise(SpaceOperation.AddObject, {
|
|
76
|
-
target: collection,
|
|
77
|
-
object: Obj.make(Collection.Collection, { name: data.name, objects: [] }),
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
return result.data?.object;
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
]);
|
|
84
|
-
}),
|
|
85
|
-
);
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { useCallback, useRef, useState } from 'react';
|
|
6
|
-
|
|
7
|
-
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
8
|
-
import { LayoutOperation } from '@dxos/app-toolkit';
|
|
9
|
-
import { Entity } from '@dxos/echo';
|
|
10
|
-
import { log } from '@dxos/log';
|
|
11
|
-
import { Button, Input, useTranslation } from '@dxos/react-ui';
|
|
12
|
-
import { osTranslations } from '@dxos/ui-theme';
|
|
13
|
-
|
|
14
|
-
import { meta } from '#meta';
|
|
15
|
-
|
|
16
|
-
export const ENTITY_RENAME_POPOVER = `${meta.id}.EntityRenamePopover`;
|
|
17
|
-
|
|
18
|
-
export const EntityRenamePopover = ({ entity }: { entity: Entity.Unknown }) => {
|
|
19
|
-
const { t } = useTranslation(meta.id);
|
|
20
|
-
const doneButton = useRef<HTMLButtonElement>(null);
|
|
21
|
-
const [name, setName] = useState(Entity.getLabel(entity));
|
|
22
|
-
const { invokePromise } = useOperationInvoker();
|
|
23
|
-
|
|
24
|
-
const handleDone = useCallback(() => {
|
|
25
|
-
try {
|
|
26
|
-
name && Entity.update(entity, () => Entity.setLabel(entity, name));
|
|
27
|
-
} catch (err) {
|
|
28
|
-
log.error('Failed to rename entity', { err });
|
|
29
|
-
}
|
|
30
|
-
void invokePromise(LayoutOperation.UpdatePopover, { anchorId: '', state: false });
|
|
31
|
-
}, [entity, name, invokePromise]);
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<div className='p-2 flex gap-2'>
|
|
35
|
-
<div className='flex-1'>
|
|
36
|
-
<Input.Root>
|
|
37
|
-
<Input.Label srOnly>{t('object-name.label')}</Input.Label>
|
|
38
|
-
<Input.TextInput
|
|
39
|
-
placeholder={t('object.placeholder')}
|
|
40
|
-
value={name}
|
|
41
|
-
data-testid='spacePlugin.renameObject.input'
|
|
42
|
-
onChange={({ target: { value } }) => setName(value)}
|
|
43
|
-
onKeyDown={({ key }) => key === 'Enter' && doneButton.current?.click()}
|
|
44
|
-
/>
|
|
45
|
-
</Input.Root>
|
|
46
|
-
</div>
|
|
47
|
-
<Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>
|
|
48
|
-
{t('done.label', { ns: osTranslations })}
|
|
49
|
-
</Button>
|
|
50
|
-
</div>
|
|
51
|
-
);
|
|
52
|
-
};
|