@dxos/plugin-space 0.10.0 → 0.11.1
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/PLUGIN.mdl +11 -0
- package/dist/lib/SpacePlugin.mjs +2 -0
- package/dist/lib/SpacePlugin.node.mjs +628 -0
- package/dist/lib/SpacePlugin.node.mjs.map +1 -0
- package/dist/lib/SpacePlugin.workerd.mjs +26 -0
- package/dist/lib/SpacePlugin.workerd.mjs.map +1 -0
- package/dist/lib/capabilities/node.mjs +10 -0
- package/dist/lib/capabilities/node.mjs.map +1 -0
- package/dist/lib/capabilities.mjs +24 -0
- package/dist/lib/capabilities.mjs.map +1 -0
- package/dist/lib/chunk-CollectionArticle.mjs +90 -0
- package/dist/lib/chunk-CollectionArticle.mjs.map +1 -0
- package/dist/lib/chunk-CollectionSection.mjs +21 -0
- package/dist/lib/chunk-CollectionSection.mjs.map +1 -0
- package/dist/lib/chunk-CreateObjectDialog.mjs +178 -0
- package/dist/lib/chunk-CreateObjectDialog.mjs.map +1 -0
- package/dist/lib/chunk-CreateSpaceDialog.mjs +68 -0
- package/dist/lib/chunk-CreateSpaceDialog.mjs.map +1 -0
- package/dist/lib/chunk-DefaultProperties.mjs +59 -0
- package/dist/lib/chunk-DefaultProperties.mjs.map +1 -0
- package/dist/lib/chunk-ImportSpaceDialog.mjs +58 -0
- package/dist/lib/chunk-ImportSpaceDialog.mjs.map +1 -0
- package/dist/lib/chunk-InlineSyncStatus.mjs +37 -0
- package/dist/lib/chunk-InlineSyncStatus.mjs.map +1 -0
- package/dist/lib/chunk-JoinDialog.mjs +65 -0
- package/dist/lib/chunk-JoinDialog.mjs.map +1 -0
- package/dist/lib/chunk-MembersContainer.mjs +263 -0
- package/dist/lib/chunk-MembersContainer.mjs.map +1 -0
- package/dist/lib/chunk-MergePreview.mjs +91 -0
- package/dist/lib/chunk-MergePreview.mjs.map +1 -0
- package/dist/lib/chunk-ObjectCardStack.mjs +68 -0
- package/dist/lib/chunk-ObjectCardStack.mjs.map +1 -0
- package/dist/lib/chunk-RecordArticle.mjs +106 -0
- package/dist/lib/chunk-RecordArticle.mjs.map +1 -0
- package/dist/lib/chunk-RelatedArticle.mjs +71 -0
- package/dist/lib/chunk-RelatedArticle.mjs.map +1 -0
- package/dist/lib/chunk-RenamePopover.mjs +94 -0
- package/dist/lib/chunk-RenamePopover.mjs.map +1 -0
- package/dist/lib/chunk-SchemaContainer.mjs +53 -0
- package/dist/lib/chunk-SchemaContainer.mjs.map +1 -0
- package/dist/lib/chunk-SmallPresenceLive.mjs +2 -0
- package/dist/lib/chunk-SpaceHomeArticle.mjs +82 -0
- package/dist/lib/chunk-SpaceHomeArticle.mjs.map +1 -0
- package/dist/lib/chunk-SpaceHomeDashboard.mjs +96 -0
- package/dist/lib/chunk-SpaceHomeDashboard.mjs.map +1 -0
- package/dist/lib/chunk-SpaceHomeRecent.mjs +79 -0
- package/dist/lib/chunk-SpaceHomeRecent.mjs.map +1 -0
- package/dist/lib/chunk-SpacePlugin.mjs +97 -0
- package/dist/lib/chunk-SpacePlugin.mjs.map +1 -0
- package/dist/lib/chunk-SpacePresence.mjs +155 -0
- package/dist/lib/chunk-SpacePresence.mjs.map +1 -0
- package/dist/lib/chunk-SpaceSettings.mjs +63 -0
- package/dist/lib/chunk-SpaceSettings.mjs.map +1 -0
- package/dist/lib/chunk-SpaceSettingsContainer.mjs +278 -0
- package/dist/lib/chunk-SpaceSettingsContainer.mjs.map +1 -0
- package/dist/lib/chunk-SyncStatus.mjs +166 -0
- package/dist/lib/chunk-SyncStatus.mjs.map +1 -0
- package/dist/lib/chunk-TypeArticle.mjs +469 -0
- package/dist/lib/chunk-TypeArticle.mjs.map +1 -0
- package/dist/lib/chunk-ViewEditor.mjs +78 -0
- package/dist/lib/chunk-ViewEditor.mjs.map +1 -0
- package/dist/lib/chunk-add-object.mjs +74 -0
- package/dist/lib/chunk-add-object.mjs.map +1 -0
- package/dist/lib/chunk-add-relation.mjs +16 -0
- package/dist/lib/chunk-add-relation.mjs.map +1 -0
- package/dist/lib/chunk-add-type.mjs +41 -0
- package/dist/lib/chunk-add-type.mjs.map +1 -0
- package/dist/lib/chunk-app-graph-builder.mjs +1056 -0
- package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
- package/dist/lib/chunk-close.mjs +11 -0
- package/dist/lib/chunk-close.mjs.map +1 -0
- package/dist/lib/chunk-collection-path.mjs +65 -0
- package/dist/lib/chunk-collection-path.mjs.map +1 -0
- package/dist/lib/chunk-create-object.mjs +80 -0
- package/dist/lib/chunk-create-object.mjs.map +1 -0
- package/dist/lib/chunk-create.mjs +62 -0
- package/dist/lib/chunk-create.mjs.map +1 -0
- package/dist/lib/chunk-definitions.mjs +466 -0
- package/dist/lib/chunk-definitions.mjs.map +1 -0
- package/dist/lib/chunk-delete-field.mjs +52 -0
- package/dist/lib/chunk-delete-field.mjs.map +1 -0
- package/dist/lib/chunk-delete.mjs +11 -0
- package/dist/lib/chunk-delete.mjs.map +1 -0
- package/dist/lib/chunk-duplicate-object.mjs +11 -0
- package/dist/lib/chunk-duplicate-object.mjs.map +1 -0
- package/dist/lib/chunk-errors.mjs +10 -0
- package/dist/lib/chunk-errors.mjs.map +1 -0
- package/dist/lib/chunk-export-space.mjs +24 -0
- package/dist/lib/chunk-export-space.mjs.map +1 -0
- package/dist/lib/chunk-find-duplicates.mjs +19 -0
- package/dist/lib/chunk-find-duplicates.mjs.map +1 -0
- package/dist/lib/chunk-get-share-link.mjs +29 -0
- package/dist/lib/chunk-get-share-link.mjs.map +1 -0
- package/dist/lib/chunk-helpers.mjs +14 -0
- package/dist/lib/chunk-helpers.mjs.map +1 -0
- package/dist/lib/chunk-identity-created.mjs +26 -0
- package/dist/lib/chunk-identity-created.mjs.map +1 -0
- package/dist/lib/chunk-import-space.mjs +16 -0
- package/dist/lib/chunk-import-space.mjs.map +1 -0
- package/dist/lib/chunk-join.mjs +35 -0
- package/dist/lib/chunk-join.mjs.map +1 -0
- package/dist/lib/chunk-merge-duplicates.mjs +62 -0
- package/dist/lib/chunk-merge-duplicates.mjs.map +1 -0
- package/dist/lib/{neutral/chunk-5ZZS3KMK.mjs → chunk-meta.mjs} +15 -24
- package/dist/lib/chunk-meta.mjs.map +1 -0
- package/dist/lib/chunk-migrate.mjs +45 -0
- package/dist/lib/chunk-migrate.mjs.map +1 -0
- package/dist/lib/chunk-navigation-handler.mjs +63 -0
- package/dist/lib/chunk-navigation-handler.mjs.map +1 -0
- package/dist/lib/chunk-navigation-target-resolver.mjs +79 -0
- package/dist/lib/chunk-navigation-target-resolver.mjs.map +1 -0
- package/dist/lib/chunk-open-create-object.mjs +32 -0
- package/dist/lib/chunk-open-create-object.mjs.map +1 -0
- package/dist/lib/chunk-open-create-space.mjs +16 -0
- package/dist/lib/chunk-open-create-space.mjs.map +1 -0
- package/dist/lib/chunk-open-import-space.mjs +16 -0
- package/dist/lib/chunk-open-import-space.mjs.map +1 -0
- package/dist/lib/chunk-open-members.mjs +15 -0
- package/dist/lib/chunk-open-members.mjs.map +1 -0
- package/dist/lib/chunk-open-settings.mjs +15 -0
- package/dist/lib/chunk-open-settings.mjs.map +1 -0
- package/dist/lib/chunk-open.mjs +11 -0
- package/dist/lib/chunk-open.mjs.map +1 -0
- package/dist/lib/chunk-operation-handler.mjs +13 -0
- package/dist/lib/chunk-operation-handler.mjs.map +1 -0
- package/dist/lib/chunk-react-root.mjs +20 -0
- package/dist/lib/chunk-react-root.mjs.map +1 -0
- package/dist/lib/chunk-react-surface.mjs +384 -0
- package/dist/lib/chunk-react-surface.mjs.map +1 -0
- package/dist/lib/chunk-remove-objects.mjs +83 -0
- package/dist/lib/chunk-remove-objects.mjs.map +1 -0
- package/dist/lib/chunk-rename-object.mjs +18 -0
- package/dist/lib/chunk-rename-object.mjs.map +1 -0
- package/dist/lib/chunk-rename.mjs +18 -0
- package/dist/lib/chunk-rename.mjs.map +1 -0
- package/dist/lib/chunk-repair.mjs +28 -0
- package/dist/lib/chunk-repair.mjs.map +1 -0
- package/dist/lib/chunk-restore-field.mjs +50 -0
- package/dist/lib/chunk-restore-field.mjs.map +1 -0
- package/dist/lib/chunk-restore-objects.mjs +33 -0
- package/dist/lib/chunk-restore-objects.mjs.map +1 -0
- package/dist/lib/chunk-settings.mjs +23 -0
- package/dist/lib/chunk-settings.mjs.map +1 -0
- package/dist/lib/chunk-share.mjs +23 -0
- package/dist/lib/chunk-share.mjs.map +1 -0
- package/dist/lib/chunk-snapshot.mjs +24 -0
- package/dist/lib/chunk-snapshot.mjs.map +1 -0
- package/dist/lib/chunk-spaces-ready.mjs +242 -0
- package/dist/lib/chunk-spaces-ready.mjs.map +1 -0
- package/dist/lib/chunk-state.mjs +48 -0
- package/dist/lib/chunk-state.mjs.map +1 -0
- package/dist/lib/chunk-types.mjs +56 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/chunk-undo-mappings.mjs +40 -0
- package/dist/lib/chunk-undo-mappings.mjs.map +1 -0
- package/dist/lib/chunk-util.mjs +34 -0
- package/dist/lib/chunk-util.mjs.map +1 -0
- package/dist/lib/chunk-wait-for-object.mjs +16 -0
- package/dist/lib/chunk-wait-for-object.mjs.map +1 -0
- package/dist/lib/components.mjs +329 -0
- package/dist/lib/components.mjs.map +1 -0
- package/dist/lib/{neutral/chunk-C2ULK22J.mjs → constants.mjs} +5 -10
- package/dist/lib/constants.mjs.map +1 -0
- package/dist/lib/containers.mjs +31 -0
- package/dist/lib/containers.mjs.map +1 -0
- package/dist/lib/hooks.mjs +185 -0
- package/dist/lib/hooks.mjs.map +1 -0
- package/dist/lib/index.mjs +7 -0
- package/dist/lib/meta.mjs +2 -0
- package/dist/lib/operations.mjs +8 -0
- package/dist/lib/operations.mjs.map +1 -0
- package/dist/lib/plugin.mjs +9 -0
- package/dist/lib/plugin.mjs.map +1 -0
- package/dist/lib/testing.mjs +2 -0
- package/dist/lib/translations.mjs +350 -0
- package/dist/lib/translations.mjs.map +1 -0
- package/dist/lib/types.mjs +60 -0
- package/dist/lib/types.mjs.map +1 -0
- package/dist/types/src/SpacePlugin.workerd.d.ts.map +1 -1
- package/dist/types/src/capabilities/SpaceFormFields.d.ts +10 -0
- package/dist/types/src/capabilities/SpaceFormFields.d.ts.map +1 -0
- package/dist/types/src/capabilities/SpaceSurfaces.d.ts +50 -0
- package/dist/types/src/capabilities/SpaceSurfaces.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +6 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts +7 -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/settings.d.ts +2 -7
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +3 -2
- 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 +5 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +3 -1
- package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-target-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/navigation-target-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair.d.ts +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/try-get-view.d.ts +7 -0
- package/dist/types/src/capabilities/try-get-view.d.ts.map +1 -0
- package/dist/types/src/capabilities/undo-mappings.d.ts +1 -1
- package/dist/types/src/collection-path.d.ts +28 -0
- package/dist/types/src/collection-path.d.ts.map +1 -0
- package/dist/types/src/collection-path.test.d.ts +2 -0
- package/dist/types/src/collection-path.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/export/export.d.ts +23 -0
- package/dist/types/src/commands/space/export/export.d.ts.map +1 -0
- package/dist/types/src/commands/space/export/export.test.d.ts +2 -0
- package/dist/types/src/commands/space/export/export.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/export/index.d.ts +2 -0
- package/dist/types/src/commands/space/export/index.d.ts.map +1 -0
- package/dist/types/src/commands/space/import/import.d.ts +17 -0
- package/dist/types/src/commands/space/import/import.d.ts.map +1 -0
- package/dist/types/src/commands/space/import/import.test.d.ts +2 -0
- package/dist/types/src/commands/space/import/import.test.d.ts.map +1 -0
- package/dist/types/src/commands/space/import/index.d.ts +2 -0
- package/dist/types/src/commands/space/import/index.d.ts.map +1 -0
- package/dist/types/src/commands/space/index.d.ts +8 -1
- package/dist/types/src/commands/space/index.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts +7 -4
- package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.test.d.ts +2 -0
- package/dist/types/src/components/SyncStatus/status.test.d.ts.map +1 -0
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +4 -4
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts +4 -1
- package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +4 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +420 -9
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts +4 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +423 -10
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ImportSpaceDialog/ImportSpaceDialog.d.ts +4 -1
- package/dist/types/src/containers/ImportSpaceDialog/ImportSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts +5 -2
- package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts +4 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +423 -10
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/MembersContainer/MembersContainer.d.ts +4 -1
- package/dist/types/src/containers/MembersContainer/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/containers/MergePreview/MergePreview.d.ts +16 -0
- package/dist/types/src/containers/MergePreview/MergePreview.d.ts.map +1 -0
- package/dist/types/src/containers/MergePreview/index.d.ts +2 -0
- package/dist/types/src/containers/MergePreview/index.d.ts.map +1 -0
- package/dist/types/src/containers/ObjectCardStack/ObjectCardStack.d.ts +3 -2
- package/dist/types/src/containers/ObjectCardStack/ObjectCardStack.d.ts.map +1 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts +4 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.stories.d.ts.map +1 -1
- package/dist/types/src/containers/RelatedArticle/RelatedArticle.d.ts +4 -1
- package/dist/types/src/containers/RelatedArticle/RelatedArticle.d.ts.map +1 -1
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts +4 -4
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts.map +1 -1
- package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts +4 -7
- package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/containers/SchemaContainer/use-query-space-types.d.ts +7 -0
- package/dist/types/src/containers/SchemaContainer/use-query-space-types.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts +4 -11
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.stories.d.ts +14 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeDashboard/SpaceHomeDashboard.d.ts +15 -0
- package/dist/types/src/containers/SpaceHomeDashboard/SpaceHomeDashboard.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeDashboard/SpaceHomeDashboard.stories.d.ts +20 -0
- package/dist/types/src/containers/SpaceHomeDashboard/SpaceHomeDashboard.stories.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeDashboard/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeDashboard/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts +5 -8
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts +7 -4
- package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +419 -9
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettings/SpaceSettings.d.ts +4 -1
- package/dist/types/src/containers/SpaceSettings/SpaceSettings.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettings/SpaceSettings.stories.d.ts +423 -10
- package/dist/types/src/containers/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +419 -9
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.d.ts +7 -2
- package/dist/types/src/containers/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +434 -11
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/TypeArticle/TypeArticle.d.ts +14 -0
- package/dist/types/src/containers/TypeArticle/TypeArticle.d.ts.map +1 -0
- package/dist/types/src/containers/TypeArticle/TypeArticle.stories.d.ts +45 -0
- package/dist/types/src/containers/TypeArticle/TypeArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/TypeArticle/duplicatesGroup.d.ts +19 -0
- package/dist/types/src/containers/TypeArticle/duplicatesGroup.d.ts.map +1 -0
- package/dist/types/src/containers/TypeArticle/index.d.ts +2 -0
- package/dist/types/src/containers/TypeArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/TypeArticle/useDuplicates.d.ts +34 -0
- package/dist/types/src/containers/TypeArticle/useDuplicates.d.ts.map +1 -0
- package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts +4 -1
- package/dist/types/src/containers/ViewEditor/ViewEditor.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/errors.d.ts +30 -0
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useEdgeStatus.d.ts +6 -0
- package/dist/types/src/hooks/useEdgeStatus.d.ts.map +1 -0
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/useStalled.d.ts +13 -0
- package/dist/types/src/hooks/useStalled.d.ts.map +1 -0
- package/dist/types/src/operations/create.d.ts.map +1 -1
- package/dist/types/src/operations/definitions.d.ts +29 -1
- package/dist/types/src/operations/definitions.d.ts.map +1 -1
- package/dist/types/src/operations/find-duplicates.d.ts +5 -0
- package/dist/types/src/operations/find-duplicates.d.ts.map +1 -0
- package/dist/types/src/operations/helpers.d.ts +3 -0
- package/dist/types/src/operations/helpers.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/join.d.ts.map +1 -1
- package/dist/types/src/operations/merge-duplicates.d.ts +5 -0
- package/dist/types/src/operations/merge-duplicates.d.ts.map +1 -0
- package/dist/types/src/operations/open-settings.d.ts.map +1 -1
- package/dist/types/src/operations/remove-objects.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +419 -9
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/type-section-path.d.ts +22 -0
- package/dist/types/src/type-section-path.d.ts.map +1 -0
- package/dist/types/src/type-section-path.test.d.ts +2 -0
- package/dist/types/src/type-section-path.test.d.ts.map +1 -0
- package/dist/types/src/types/capabilities.d.ts +22 -2
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/surface.d.ts +4 -4
- package/dist/types/src/types/surface.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +6 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +87 -72
- package/src/SpacePlugin.ts +6 -6
- package/src/SpacePlugin.workerd.ts +3 -1
- package/src/capabilities/SpaceFormFields.tsx +72 -0
- package/src/capabilities/SpaceSurfaces.tsx +219 -0
- package/src/capabilities/app-graph-builder/extensions/collections.ts +74 -21
- package/src/capabilities/app-graph-builder/extensions/companions.ts +10 -5
- package/src/capabilities/app-graph-builder/extensions/database.ts +64 -57
- package/src/capabilities/app-graph-builder/extensions/settings.ts +23 -13
- package/src/capabilities/app-graph-builder/extensions/shared.ts +3 -2
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +6 -7
- package/src/capabilities/create-object.ts +1 -14
- package/src/capabilities/index.ts +4 -1
- package/src/capabilities/navigation-handler/navigation-handler.ts +27 -7
- package/src/capabilities/navigation-target-resolver.ts +77 -0
- package/src/capabilities/react-surface.ts +274 -0
- package/src/capabilities/spaces-ready.ts +31 -18
- package/src/capabilities/state.ts +3 -1
- package/src/capabilities/try-get-view.ts +24 -0
- package/src/collection-path.test.ts +161 -0
- package/src/collection-path.ts +97 -0
- package/src/commands/space/export/export.test.ts +68 -0
- package/src/commands/space/export/export.ts +118 -0
- package/src/commands/space/export/index.ts +5 -0
- package/src/commands/space/import/import.test.ts +80 -0
- package/src/commands/space/import/import.ts +65 -0
- package/src/commands/space/import/index.ts +5 -0
- package/src/commands/space/index.ts +16 -1
- package/src/components/AwaitingObject/AwaitingObject.tsx +10 -4
- package/src/components/CreateObjectPanel/CreateObjectPanel.tsx +16 -18
- package/src/components/SyncStatus/status.test.ts +49 -0
- package/src/components/SyncStatus/status.ts +25 -12
- package/src/containers/CollectionArticle/CollectionArticle.tsx +5 -3
- package/src/containers/CollectionSection/CollectionSection.tsx +2 -0
- package/src/containers/CreateObjectDialog/CreateObjectDialog.stories.tsx +18 -4
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +13 -17
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +28 -19
- package/src/containers/DefaultProperties/DefaultProperties.tsx +4 -2
- package/src/containers/ImportSpaceDialog/ImportSpaceDialog.tsx +4 -2
- package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +7 -17
- package/src/containers/JoinDialog/JoinDialog.tsx +5 -3
- package/src/containers/MembersContainer/MembersContainer.tsx +2 -0
- package/src/containers/MergePreview/MergePreview.tsx +90 -0
- package/src/containers/MergePreview/index.ts +5 -0
- package/src/containers/ObjectCardStack/ObjectCardStack.tsx +46 -43
- package/src/containers/RecordArticle/RecordArticle.stories.tsx +2 -1
- package/src/containers/RecordArticle/RecordArticle.tsx +8 -4
- package/src/containers/RelatedArticle/RelatedArticle.tsx +7 -3
- package/src/containers/RenamePopover/RenamePopover.tsx +2 -0
- package/src/containers/SchemaContainer/SchemaContainer.tsx +4 -17
- package/src/containers/SchemaContainer/use-query-space-types.ts +28 -0
- package/src/containers/SpaceHomeArticle/SpaceHomeArticle.stories.tsx +116 -0
- package/src/containers/SpaceHomeArticle/SpaceHomeArticle.tsx +6 -5
- package/src/containers/SpaceHomeDashboard/SpaceHomeDashboard.stories.tsx +99 -0
- package/src/containers/SpaceHomeDashboard/SpaceHomeDashboard.tsx +109 -0
- package/src/containers/SpaceHomeDashboard/index.ts +5 -0
- package/src/containers/SpaceHomeRecent/SpaceHomeRecent.tsx +17 -15
- package/src/containers/SpacePresence/SpacePresence.stories.tsx +4 -4
- package/src/containers/SpacePresence/SpacePresence.tsx +37 -36
- package/src/containers/SpaceSettings/SpaceSettings.tsx +3 -1
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +7 -2
- package/src/containers/SyncStatus/SyncStatus.stories.tsx +80 -1
- package/src/containers/SyncStatus/SyncStatus.tsx +36 -46
- package/src/containers/TypeArticle/TypeArticle.stories.tsx +249 -0
- package/src/containers/TypeArticle/TypeArticle.tsx +362 -0
- package/src/containers/TypeArticle/duplicatesGroup.tsx +150 -0
- package/src/containers/TypeArticle/index.ts +5 -0
- package/src/containers/TypeArticle/useDuplicates.ts +119 -0
- package/src/containers/ViewEditor/ViewEditor.tsx +3 -1
- package/src/containers/index.ts +3 -2
- package/src/errors.ts +6 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useEdgeStatus.ts +40 -0
- package/src/hooks/useInputSurfaceLookup.tsx +5 -4
- package/src/hooks/useRelatedObjects.ts +1 -1
- package/src/hooks/useStalled.ts +39 -0
- package/src/operations/add-object.ts +7 -7
- package/src/operations/create.ts +11 -3
- package/src/operations/definitions.ts +54 -1
- package/src/operations/find-duplicates.ts +33 -0
- package/src/operations/get-share-link.ts +1 -1
- package/src/operations/helpers.ts +11 -0
- package/src/operations/index.ts +2 -0
- package/src/operations/join.ts +6 -5
- package/src/operations/merge-duplicates.ts +51 -0
- package/src/operations/open-members.ts +3 -3
- package/src/operations/open-settings.ts +5 -3
- package/src/operations/remove-objects.ts +42 -3
- package/src/translations.ts +52 -11
- package/src/type-section-path.test.ts +48 -0
- package/src/type-section-path.ts +39 -0
- package/src/types/capabilities.ts +26 -2
- package/src/types/surface.ts +4 -8
- package/src/types/types.ts +7 -0
- package/dist/lib/neutral/CollectionArticle-BMH7SZ7Q.mjs +0 -93
- package/dist/lib/neutral/CollectionArticle-BMH7SZ7Q.mjs.map +0 -7
- package/dist/lib/neutral/CollectionSection-BLYTGOKH.mjs +0 -19
- package/dist/lib/neutral/CollectionSection-BLYTGOKH.mjs.map +0 -7
- package/dist/lib/neutral/CreateObjectDialog-5454N3FJ.mjs +0 -221
- package/dist/lib/neutral/CreateObjectDialog-5454N3FJ.mjs.map +0 -7
- package/dist/lib/neutral/CreateSpaceDialog-WWNUTLVK.mjs +0 -61
- package/dist/lib/neutral/CreateSpaceDialog-WWNUTLVK.mjs.map +0 -7
- package/dist/lib/neutral/DefaultProperties-5SAWQC6I.mjs +0 -58
- package/dist/lib/neutral/DefaultProperties-5SAWQC6I.mjs.map +0 -7
- package/dist/lib/neutral/ImportSpaceDialog-CSSRTFAO.mjs +0 -64
- package/dist/lib/neutral/ImportSpaceDialog-CSSRTFAO.mjs.map +0 -7
- package/dist/lib/neutral/InlineSyncStatus-UOUTAPCU.mjs +0 -49
- package/dist/lib/neutral/InlineSyncStatus-UOUTAPCU.mjs.map +0 -7
- package/dist/lib/neutral/JoinDialog-ATNUCNL2.mjs +0 -97
- package/dist/lib/neutral/JoinDialog-ATNUCNL2.mjs.map +0 -7
- package/dist/lib/neutral/MembersContainer-C4ZTP6ZW.mjs +0 -231
- package/dist/lib/neutral/MembersContainer-C4ZTP6ZW.mjs.map +0 -7
- package/dist/lib/neutral/MenuFooter-FWE5LFM4.mjs +0 -33
- package/dist/lib/neutral/MenuFooter-FWE5LFM4.mjs.map +0 -7
- package/dist/lib/neutral/ObjectCardStack-DHVDRNRK.mjs +0 -55
- package/dist/lib/neutral/ObjectCardStack-DHVDRNRK.mjs.map +0 -7
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs +0 -102
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs.map +0 -7
- package/dist/lib/neutral/RelatedArticle-Z777WVDW.mjs +0 -69
- package/dist/lib/neutral/RelatedArticle-Z777WVDW.mjs.map +0 -7
- package/dist/lib/neutral/RenamePopover-AZT2KPOF.mjs +0 -104
- package/dist/lib/neutral/RenamePopover-AZT2KPOF.mjs.map +0 -7
- package/dist/lib/neutral/SchemaContainer-4GJKQBXM.mjs +0 -53
- package/dist/lib/neutral/SchemaContainer-4GJKQBXM.mjs.map +0 -7
- package/dist/lib/neutral/SmallPresenceLive-FW3AMEY5.mjs +0 -8
- package/dist/lib/neutral/SmallPresenceLive-FW3AMEY5.mjs.map +0 -7
- package/dist/lib/neutral/SpaceHomeArticle-Y47TLZ72.mjs +0 -78
- package/dist/lib/neutral/SpaceHomeArticle-Y47TLZ72.mjs.map +0 -7
- package/dist/lib/neutral/SpaceHomeRecent-S57AO3EV.mjs +0 -89
- package/dist/lib/neutral/SpaceHomeRecent-S57AO3EV.mjs.map +0 -7
- package/dist/lib/neutral/SpacePlugin.mjs +0 -10
- package/dist/lib/neutral/SpacePlugin.mjs.map +0 -7
- package/dist/lib/neutral/SpacePlugin.node.mjs +0 -838
- package/dist/lib/neutral/SpacePlugin.node.mjs.map +0 -7
- package/dist/lib/neutral/SpacePlugin.workerd.mjs +0 -34
- package/dist/lib/neutral/SpacePlugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/SpacePresence-T37WH43Y.mjs +0 -11
- package/dist/lib/neutral/SpacePresence-T37WH43Y.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettings-6CZF7GEO.mjs +0 -60
- package/dist/lib/neutral/SpaceSettings-6CZF7GEO.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettingsContainer-72CJWELM.mjs +0 -279
- package/dist/lib/neutral/SpaceSettingsContainer-72CJWELM.mjs.map +0 -7
- package/dist/lib/neutral/SyncStatus-J7CHLO5O.mjs +0 -147
- package/dist/lib/neutral/SyncStatus-J7CHLO5O.mjs.map +0 -7
- package/dist/lib/neutral/TypeCollectionArticle-W76ADS2G.mjs +0 -143
- package/dist/lib/neutral/TypeCollectionArticle-W76ADS2G.mjs.map +0 -7
- package/dist/lib/neutral/ViewEditor-QXRUOKXR.mjs +0 -101
- package/dist/lib/neutral/ViewEditor-QXRUOKXR.mjs.map +0 -7
- package/dist/lib/neutral/add-object-H2N4AOQJ.mjs +0 -77
- package/dist/lib/neutral/add-object-H2N4AOQJ.mjs.map +0 -7
- package/dist/lib/neutral/add-relation-BGTLART5.mjs +0 -26
- package/dist/lib/neutral/add-relation-BGTLART5.mjs.map +0 -7
- package/dist/lib/neutral/add-type-JIDLRANR.mjs +0 -57
- package/dist/lib/neutral/add-type-JIDLRANR.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-7H2KOD4B.mjs +0 -1332
- package/dist/lib/neutral/app-graph-builder-7H2KOD4B.mjs.map +0 -7
- package/dist/lib/neutral/capabilities/index.mjs +0 -46
- package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
- package/dist/lib/neutral/capabilities/node.mjs +0 -15
- package/dist/lib/neutral/capabilities/node.mjs.map +0 -7
- package/dist/lib/neutral/chunk-52ASDNRA.mjs +0 -41
- package/dist/lib/neutral/chunk-52ASDNRA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-5ZZS3KMK.mjs.map +0 -7
- package/dist/lib/neutral/chunk-C2ULK22J.mjs.map +0 -7
- package/dist/lib/neutral/chunk-F5KLUP2P.mjs +0 -115
- package/dist/lib/neutral/chunk-F5KLUP2P.mjs.map +0 -7
- package/dist/lib/neutral/chunk-G2KHP7FX.mjs +0 -8
- package/dist/lib/neutral/chunk-G2KHP7FX.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-LMUG6PEJ.mjs +0 -572
- package/dist/lib/neutral/chunk-LMUG6PEJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-RAAHDTVF.mjs +0 -167
- package/dist/lib/neutral/chunk-RAAHDTVF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-SPWAMXNR.mjs +0 -131
- package/dist/lib/neutral/chunk-SPWAMXNR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-U5WTDOMV.mjs +0 -8
- package/dist/lib/neutral/chunk-U5WTDOMV.mjs.map +0 -7
- package/dist/lib/neutral/chunk-V7JALUM3.mjs +0 -9
- package/dist/lib/neutral/chunk-V7JALUM3.mjs.map +0 -7
- package/dist/lib/neutral/close-5WEQZRNK.mjs +0 -17
- package/dist/lib/neutral/close-5WEQZRNK.mjs.map +0 -7
- package/dist/lib/neutral/components/index.mjs +0 -401
- package/dist/lib/neutral/components/index.mjs.map +0 -7
- package/dist/lib/neutral/constants.mjs +0 -16
- package/dist/lib/neutral/constants.mjs.map +0 -7
- package/dist/lib/neutral/containers/index.mjs +0 -55
- package/dist/lib/neutral/containers/index.mjs.map +0 -7
- package/dist/lib/neutral/create-QZ47FHQU.mjs +0 -75
- package/dist/lib/neutral/create-QZ47FHQU.mjs.map +0 -7
- package/dist/lib/neutral/create-object-ZU6FZW5X.mjs +0 -96
- package/dist/lib/neutral/create-object-ZU6FZW5X.mjs.map +0 -7
- package/dist/lib/neutral/delete-SPCU2VFM.mjs +0 -17
- package/dist/lib/neutral/delete-SPCU2VFM.mjs.map +0 -7
- package/dist/lib/neutral/delete-field-TAKJVEAD.mjs +0 -42
- package/dist/lib/neutral/delete-field-TAKJVEAD.mjs.map +0 -7
- package/dist/lib/neutral/duplicate-object-BUPZOO6S.mjs +0 -17
- package/dist/lib/neutral/duplicate-object-BUPZOO6S.mjs.map +0 -7
- package/dist/lib/neutral/export-space-S5SCAL4M.mjs +0 -34
- package/dist/lib/neutral/export-space-S5SCAL4M.mjs.map +0 -7
- package/dist/lib/neutral/get-share-link-CLM5IQRL.mjs +0 -41
- package/dist/lib/neutral/get-share-link-CLM5IQRL.mjs.map +0 -7
- package/dist/lib/neutral/hooks/index.mjs +0 -133
- package/dist/lib/neutral/hooks/index.mjs.map +0 -7
- package/dist/lib/neutral/identity-created-BEYMLBK4.mjs +0 -32
- package/dist/lib/neutral/identity-created-BEYMLBK4.mjs.map +0 -7
- package/dist/lib/neutral/import-space-LJQK3KT7.mjs +0 -28
- package/dist/lib/neutral/import-space-LJQK3KT7.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -62
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/join-FSODYIOC.mjs +0 -54
- package/dist/lib/neutral/join-FSODYIOC.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/meta.mjs +0 -8
- package/dist/lib/neutral/meta.mjs.map +0 -7
- package/dist/lib/neutral/migrate-WHM6LU7L.mjs +0 -52
- package/dist/lib/neutral/migrate-WHM6LU7L.mjs.map +0 -7
- package/dist/lib/neutral/navigation-handler-ZF7MV2HL.mjs +0 -44
- package/dist/lib/neutral/navigation-handler-ZF7MV2HL.mjs.map +0 -7
- package/dist/lib/neutral/navigation-resolver-KBESOSWU.mjs +0 -82
- package/dist/lib/neutral/navigation-resolver-KBESOSWU.mjs.map +0 -7
- package/dist/lib/neutral/open-JCXTL3SK.mjs +0 -17
- package/dist/lib/neutral/open-JCXTL3SK.mjs.map +0 -7
- package/dist/lib/neutral/open-create-object-WAIAU7TA.mjs +0 -42
- package/dist/lib/neutral/open-create-object-WAIAU7TA.mjs.map +0 -7
- package/dist/lib/neutral/open-create-space-VU47FWPZ.mjs +0 -24
- package/dist/lib/neutral/open-create-space-VU47FWPZ.mjs.map +0 -7
- package/dist/lib/neutral/open-import-space-GUHIEWYB.mjs +0 -24
- package/dist/lib/neutral/open-import-space-GUHIEWYB.mjs.map +0 -7
- package/dist/lib/neutral/open-members-MLLBHKUU.mjs +0 -23
- package/dist/lib/neutral/open-members-MLLBHKUU.mjs.map +0 -7
- package/dist/lib/neutral/open-settings-DTPZF4U4.mjs +0 -23
- package/dist/lib/neutral/open-settings-DTPZF4U4.mjs.map +0 -7
- package/dist/lib/neutral/operation-handler-YPIRQOH2.mjs +0 -13
- package/dist/lib/neutral/operation-handler-YPIRQOH2.mjs.map +0 -7
- package/dist/lib/neutral/operations/index.mjs +0 -13
- package/dist/lib/neutral/operations/index.mjs.map +0 -7
- package/dist/lib/neutral/plugin.mjs +0 -18
- package/dist/lib/neutral/plugin.mjs.map +0 -7
- package/dist/lib/neutral/react-root-YLYRCSAZ.mjs +0 -23
- package/dist/lib/neutral/react-root-YLYRCSAZ.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-LRA7GIFN.mjs +0 -367
- package/dist/lib/neutral/react-surface-LRA7GIFN.mjs.map +0 -7
- package/dist/lib/neutral/remove-objects-WEO66EDS.mjs +0 -55
- package/dist/lib/neutral/remove-objects-WEO66EDS.mjs.map +0 -7
- package/dist/lib/neutral/rename-Q6UNCBIM.mjs +0 -26
- package/dist/lib/neutral/rename-Q6UNCBIM.mjs.map +0 -7
- package/dist/lib/neutral/rename-object-2UCEGU7U.mjs +0 -26
- package/dist/lib/neutral/rename-object-2UCEGU7U.mjs.map +0 -7
- package/dist/lib/neutral/repair-HMH476U3.mjs +0 -32
- package/dist/lib/neutral/repair-HMH476U3.mjs.map +0 -7
- package/dist/lib/neutral/restore-field-6CQAFOXY.mjs +0 -40
- package/dist/lib/neutral/restore-field-6CQAFOXY.mjs.map +0 -7
- package/dist/lib/neutral/restore-objects-3VINLP7C.mjs +0 -39
- package/dist/lib/neutral/restore-objects-3VINLP7C.mjs.map +0 -7
- package/dist/lib/neutral/settings-5IBSYBVU.mjs +0 -28
- package/dist/lib/neutral/settings-5IBSYBVU.mjs.map +0 -7
- package/dist/lib/neutral/share-A4WPILNF.mjs +0 -31
- package/dist/lib/neutral/share-A4WPILNF.mjs.map +0 -7
- package/dist/lib/neutral/snapshot-HBYMAPA7.mjs +0 -30
- package/dist/lib/neutral/snapshot-HBYMAPA7.mjs.map +0 -7
- package/dist/lib/neutral/spaces-ready-GWMSU72V.mjs +0 -281
- package/dist/lib/neutral/spaces-ready-GWMSU72V.mjs.map +0 -7
- package/dist/lib/neutral/state-KMH2NUAL.mjs +0 -55
- package/dist/lib/neutral/state-KMH2NUAL.mjs.map +0 -7
- package/dist/lib/neutral/testing.mjs +0 -8
- package/dist/lib/neutral/testing.mjs.map +0 -7
- package/dist/lib/neutral/translations.mjs +0 -315
- package/dist/lib/neutral/translations.mjs.map +0 -7
- package/dist/lib/neutral/types/index.mjs +0 -40
- package/dist/lib/neutral/types/index.mjs.map +0 -7
- package/dist/lib/neutral/undo-mappings-P43EAUGI.mjs +0 -68
- package/dist/lib/neutral/undo-mappings-P43EAUGI.mjs.map +0 -7
- package/dist/lib/neutral/wait-for-object-U6P2NNWY.mjs +0 -23
- package/dist/lib/neutral/wait-for-object-U6P2NNWY.mjs.map +0 -7
- package/dist/types/src/capabilities/navigation-resolver.d.ts +0 -5
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +0 -1
- package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts +0 -6
- package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts.map +0 -1
- package/dist/types/src/containers/MenuFooter/index.d.ts +0 -2
- package/dist/types/src/containers/MenuFooter/index.d.ts.map +0 -1
- package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.d.ts +0 -16
- package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.d.ts.map +0 -1
- package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.d.ts +0 -21
- package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.d.ts.map +0 -1
- package/dist/types/src/containers/TypeCollectionArticle/index.d.ts +0 -2
- package/dist/types/src/containers/TypeCollectionArticle/index.d.ts.map +0 -1
- package/src/capabilities/navigation-resolver.ts +0 -94
- package/src/capabilities/react-surface.tsx +0 -395
- package/src/containers/MenuFooter/MenuFooter.tsx +0 -33
- package/src/containers/MenuFooter/index.ts +0 -5
- package/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.tsx +0 -116
- package/src/containers/TypeCollectionArticle/TypeCollectionArticle.tsx +0 -162
- package/src/containers/TypeCollectionArticle/index.ts +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpacePlugin.node.mjs","names":[],"sources":["../../src/commands/database/util.ts","../../src/commands/database/add.ts","../../src/commands/database/query/query.ts","../../src/commands/database/remove.ts","../../src/commands/database/stats.ts","../../src/commands/database/index.ts","../../src/commands/queue/util.ts","../../src/commands/queue/query.ts","../../src/commands/queue/index.ts","../../src/commands/space/close/close.ts","../../src/commands/space/create/create.ts","../../src/commands/space/export/export.ts","../../src/commands/space/import/import.ts","../../src/commands/space/info/info.ts","../../src/commands/space/join/util.ts","../../src/commands/space/join/join.ts","../../src/commands/space/list/list.ts","../../src/commands/space/members/util.ts","../../src/commands/space/members/members.ts","../../src/commands/space/open/open.ts","../../src/commands/space/schema/list/util.ts","../../src/commands/space/schema/list/list.ts","../../src/commands/space/schema/index.ts","../../src/commands/space/share/share.ts","../../src/commands/space/sync/sync.ts","../../src/commands/space/index.ts","../../src/SpacePlugin.node.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\nimport { Entity } from '@dxos/echo';\n\n/**\n * Pretty prints an object with ANSI colors.\n */\nexport const printObject = (obj: Entity.Unknown) => {\n const typename = Entity.getTypename(obj) ?? '<unknown>';\n\n // TODO(wittjosiah): Obj.getType and thus Obj.getLabel are coming back undefined for some reason.\n return FormBuilder.make({ title: Entity.getLabel(obj) ?? typename }).pipe(\n FormBuilder.set('id', obj.id),\n FormBuilder.set('typename', typename),\n FormBuilder.build,\n );\n};\n\n/**\n * Pretty prints object stats with ANSI colors.\n */\nexport const printStats = (typename: string, count: number) =>\n FormBuilder.make({ title: typename }).pipe(FormBuilder.set('count', count), FormBuilder.build);\n\n/**\n * Pretty prints object removal result with ANSI colors.\n */\nexport const printObjectRemoved = (count: number) =>\n FormBuilder.make({ title: 'Objects removed' }).pipe(FormBuilder.set('count', count), FormBuilder.build);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport type * as Terminal from '@effect/platform/Terminal';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { type Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppAnnotation } from '@dxos/app-toolkit';\nimport { CommandConfig, Common, type SpaceNotFoundError, flushAndSync, print, spaceLayer } from '@dxos/cli-util';\nimport { type ClientService } from '@dxos/client';\nimport { SpaceProperties } from '@dxos/client/echo';\nimport type { Operation } from '@dxos/compute';\nimport { Annotation, Collection, Database, type Err, Filter, Obj, Query, Scope, Type } from '@dxos/echo';\nimport { HiddenAnnotation, getTypeAnnotation } from '@dxos/echo/Annotation';\nimport { Kind as EntityKind } from '@dxos/echo/Entity';\nimport { type SpaceId } from '@dxos/keys';\n\nimport { SpaceCapabilities } from '#types';\n\nimport { printObject } from './util';\n\n// NOTE: Explicit annotation required: d.ts emit cannot portably name the inferred @dxos/compute types (TS2883).\nexport const add: Command.Command<\n 'add',\n ClientService | CommandConfig | Operation.Service | Plugin.Service | Capability.Service | Terminal.Terminal,\n Err.EntityNotFoundError | Error | SpaceNotFoundError,\n { readonly spaceId: Option.Option<SpaceId>; readonly typename: Option.Option<string> }\n> = Command.make(\n 'add',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n typename: Options.text('typename').pipe(Options.withDescription('The typename to create.'), Options.optional),\n },\n ({ typename }) =>\n Effect.gen(function* () {\n const { json } = yield* CommandConfig;\n const manager = yield* Plugin.Service;\n const { db } = yield* Database.Service;\n\n yield* manager.activate(AppActivationEvents.SetupSchema);\n\n const resolve = (typename: string) => {\n const entry = manager.capabilities\n .getAll(SpaceCapabilities.CreateObjectEntry)\n .find(({ id }) => id === typename);\n return entry ?? undefined;\n };\n\n const [properties] = yield* Database.query(Filter.type(SpaceProperties)).run;\n const rootCollectionRef = Annotation.get(properties, AppAnnotation.RootCollectionAnnotation).pipe(\n Option.getOrUndefined,\n );\n const collection = rootCollectionRef ? yield* Database.load<Collection.Collection>(rootCollectionRef) : undefined;\n\n const selectedTypename = yield* Option.match(typename, {\n onNone: () => selectTypename(resolve),\n onSome: (t) => Effect.succeed(t),\n });\n const metadata = resolve(selectedTypename);\n if (!metadata) {\n return yield* Effect.fail(new Error(`Unknown typename: ${selectedTypename}`));\n }\n\n const result = yield* metadata.createObject({}, { db, target: collection ?? db });\n const object = result.object;\n if (!Obj.isObject(object)) {\n return yield* Effect.fail(new Error(`Invalid object: ${object}`));\n }\n\n if (json) {\n yield* Console.log(JSON.stringify(object, null, 2));\n } else {\n yield* Console.log(print(printObject(object)));\n }\n\n yield* flushAndSync({ indexes: true });\n }),\n).pipe(\n Command.withDescription('Add an object to a space.'),\n Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),\n);\n\n/**\n * Prompts for typename selection if not provided.\n */\nconst selectTypename = Effect.fn(function* (\n resolve: (typename: string) => SpaceCapabilities.CreateObjectEntry | undefined,\n) {\n const { db } = yield* Database.Service;\n const allTypes = yield* Database.query(Query.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry()))\n .run;\n const types = allTypes\n .filter((schema) => !HiddenAnnotation.get(Type.getSchema(schema)).pipe(Option.getOrElse(() => false)))\n .filter((schema) => getTypeAnnotation(Type.getSchema(schema))?.kind !== EntityKind.Relation)\n .filter((schema) => !!resolve(Type.getTypename(schema)));\n\n const choices = types.map((schema) => ({\n // TODO(wittjosiah): Translations.\n title: Type.getTypename(schema),\n value: Type.getTypename(schema),\n description: Type.getTypename(schema),\n }));\n\n const selected = yield* Prompt.select({\n message: 'Select a type:',\n choices,\n });\n\n return selected;\n});\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, printList, spaceLayer } from '@dxos/cli-util';\nimport { Database, Filter } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\n\nimport { printObject } from '../util';\n\nexport const handler = ({ typename }: { typename: Option.Option<string> }) =>\n Effect.gen(function* () {\n const { json } = yield* CommandConfig;\n const filter = Option.match(typename, {\n onNone: () => Filter.everything(),\n onSome: (typename) => Filter.type(DXN.make(typename)),\n });\n const objects = yield* Database.query(filter).run;\n\n if (json) {\n yield* Console.log(JSON.stringify(objects, null, 2));\n } else {\n // TODO(wittjosiah): Interactive table of results.\n const formatted = objects.map(printObject);\n yield* Console.log(printList(formatted));\n }\n });\n\nexport const query = Command.make(\n 'query',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n typename: Options.text('typename').pipe(Options.optional, Options.withDescription('The typename to query.')),\n },\n handler,\n).pipe(\n Command.withDescription('Query objects.'),\n Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),\n);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, print, spaceLayer } from '@dxos/cli-util';\nimport { Database, Filter, Query } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\n\nimport { printObjectRemoved } from './util';\n\nexport const remove = Command.make(\n 'remove',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n typename: Options.text('typename').pipe(Options.withDescription('The typename to query.'), Options.optional),\n id: Options.text('id').pipe(Options.withDescription('The object ID.'), Options.optional),\n },\n ({ typename, id }) =>\n Effect.gen(function* () {\n const { json } = yield* CommandConfig;\n if (Option.isSome(id) && Option.isSome(typename)) {\n throw new Error('Cannot specify both typename and id');\n }\n let query: Query.Any;\n if (Option.isSome(id)) {\n query = Query.select(Filter.id(id.value));\n } else if (Option.isSome(typename)) {\n query = Query.select(Filter.type(DXN.make(typename.value)));\n } else {\n throw new Error('Must specify typename or id');\n }\n const objects = yield* Database.query(query).run;\n for (const object of objects) {\n yield* Database.remove(object);\n }\n\n if (json) {\n yield* Console.log(JSON.stringify({ removed: objects.length }, null, 2));\n } else {\n yield* Console.log(print(printObjectRemoved(objects.length)));\n }\n }),\n).pipe(\n Command.withDescription('Remove an object from a space.'),\n Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),\n);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Array from 'effect/Array';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Record from 'effect/Record';\n\nimport { CommandConfig, Common, printList, spaceLayer } from '@dxos/cli-util';\nimport { Database, Filter, Obj, Query } from '@dxos/echo';\n\nimport { printStats } from './util';\n\nexport const stats = Command.make(\n 'stats',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n },\n () =>\n Effect.gen(function* () {\n const { json } = yield* CommandConfig;\n const objects = yield* Database.query(Query.select(Filter.everything())).run;\n const stats = Function.pipe(\n objects,\n Array.groupBy((obj) => Obj.getTypename(obj) ?? '<empty>'),\n Record.map((objs) => objs.length),\n );\n\n if (json) {\n yield* Console.log(JSON.stringify(stats, null, 2));\n } else {\n const formatted = Record.toEntries(stats).map(([typename, count]) => printStats(typename, count));\n yield* Console.log(printList(formatted));\n }\n }),\n).pipe(\n Command.withDescription('Query objects.'),\n Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),\n);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { add } from './add';\nimport { query } from './query';\nimport { remove } from './remove';\nimport { stats } from './stats';\n\n// TODO(wittjosiah): Alias to `db`.\nexport const database: Command.Command<any, any, any, any> = Command.make('database').pipe(\n Command.withDescription('Database access.'),\n Command.withSubcommands([add, query, remove, stats]),\n);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\nimport { Entity } from '@dxos/echo';\n\n/**\n * Pretty prints a queue object with ANSI colors.\n */\nexport const printQueueObject = (obj: Entity.Any) => {\n const typename = Entity.getTypename(obj) ?? '<unknown>';\n\n return FormBuilder.make({ title: typename }).pipe(\n FormBuilder.set('id', obj.id),\n FormBuilder.set('typename', typename),\n FormBuilder.build,\n );\n};\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, printList } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { Entity, Filter, Query, Scope } from '@dxos/echo';\nimport { EID } from '@dxos/keys';\n\nimport { printQueueObject } from './util';\n\nexport const query = Command.make(\n 'query',\n {\n dxn: Options.text('dxn').pipe(Options.withDescription('DXN of the queue.')),\n },\n Effect.fnUntraced(function* ({ dxn }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const echoUri = EID.tryParse(dxn);\n if (!echoUri) {\n yield* Console.error(`Not a valid feed identifier: ${dxn}`);\n return;\n }\n const spaceId = EID.getSpaceId(echoUri);\n if (!spaceId) {\n yield* Console.error(`Could not determine space from: ${dxn}`);\n return;\n }\n const space = client.spaces.get(spaceId);\n if (!space) {\n yield* Console.error(`Space not found: ${spaceId}`);\n return;\n }\n const objects = yield* Effect.promise(() =>\n space.db.query(Query.select(Filter.everything()).from(Scope.feed(echoUri))).run(),\n );\n\n if (json) {\n yield* Console.log(JSON.stringify(objects, null, 2));\n } else {\n // TODO(wittjosiah): Interactive table of results.\n const formatted = (objects as Entity.Any[]).map(printQueueObject);\n yield* Console.log(printList(formatted));\n }\n }),\n).pipe(Command.withDescription('Query objects in a queue.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { query } from './query';\n\nexport const queue = Command.make('queue').pipe(\n Command.withDescription('Manage queues.'),\n Command.withSubcommands([query]),\n);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, Common, getSpace, waitForSync } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { type Key } from '@dxos/echo';\n\nexport const handler = ({ spaceId }: { spaceId: Key.SpaceId }) =>\n Effect.gen(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n const space = yield* getSpace(spaceId);\n\n // Flush and sync before closing\n yield* Effect.tryPromise(() => space.db.flush());\n yield* waitForSync(space);\n\n yield* Effect.tryPromise(() => space.close());\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true, spaceId }, null, 2));\n } else {\n yield* Console.log(`Space ${spaceId} closed successfully.`);\n }\n });\n\nexport const close = Command.make(\n 'close',\n {\n spaceId: Common.spaceId.pipe(Options.withDescription('Space ID to close.')),\n },\n handler,\n).pipe(Command.withDescription('Close a space.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print, waitForSync } from '@dxos/cli-util';\nimport { FormBuilder } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { Obj } from '@dxos/echo';\n\nexport const handler = Effect.fn(function* ({ name }: { name: Option.Option<string> }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n const space = yield* Effect.tryPromise(() => client.spaces.create());\n yield* Effect.tryPromise(() => space.waitUntilReady());\n\n if (Option.isSome(name)) {\n Obj.update(space.properties, (obj) => {\n obj.name = Option.getOrUndefined(name);\n });\n }\n\n // Output first, then flush and sync\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n key: space.key.toHex(),\n ...(space.properties.name ? { name: space.properties.name } : {}),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Created Space' }).pipe(\n FormBuilder.set('key', space.key.truncate()),\n FormBuilder.set('name', space.properties.name ?? '<none>'),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n\n // Flush and sync before completion\n yield* Effect.tryPromise(() => space.db.flush());\n yield* waitForSync(space);\n});\n\nexport const create = Command.make(\n 'create',\n {\n name: Options.text('name').pipe(Options.withDescription('The name of the space.'), Options.optional),\n },\n handler,\n).pipe(Command.withDescription('Create a new space.'));\n","//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\n\nimport {\n CommandConfig,\n Common,\n FormBuilder,\n formatBytes,\n getSpace,\n print,\n spaceIdWithDefault,\n withTimeout,\n} from '@dxos/cli-util';\nimport { type Key } from '@dxos/echo';\nimport { SpaceArchive } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { SpaceNotReadyError } from '../../../errors';\n\nconst SPACE_READY_TIMEOUT = Duration.seconds(30);\n\n// TODO(wittjosiah): Upstream as SpaceArchive.Formats/SpaceArchive.Format, replacing the proto enum.\nexport const Formats = ['binary', 'json'] as const;\n\nexport type Format = (typeof Formats)[number];\n\nexport type ExportArgs = {\n spaceId: Option.Option<Key.SpaceId>;\n output: Option.Option<string>;\n format: Format;\n};\n\n/** Exports a space in the given archive format and writes it to disk. */\nexport const handler = Effect.fn(function* ({ spaceId, output, format }: ExportArgs) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n\n const resolvedSpaceId = yield* spaceIdWithDefault(spaceId);\n const space = yield* getSpace(resolvedSpaceId);\n\n // Export reads the epoch root, and a closed space never becomes ready — so cap the wait.\n yield* Effect.tryPromise(() => space.waitUntilReady()).pipe(\n Effect.timeoutFail({\n duration: SPACE_READY_TIMEOUT,\n onTimeout: () => new SpaceNotReadyError({ context: { spaceId: resolvedSpaceId } }),\n }),\n );\n\n const archive = yield* Effect.tryPromise(() =>\n space.internal.export({\n format: Match.value(format).pipe(\n Match.when('binary', () => SpaceArchive.Format.BINARY),\n Match.when('json', () => SpaceArchive.Format.JSON),\n Match.exhaustive,\n ),\n }),\n );\n const outputPath = yield* resolveOutputPath(output, archive.filename);\n yield* fs.makeDirectory(path.dirname(outputPath), { recursive: true });\n yield* fs.writeFile(outputPath, archive.contents);\n\n if (json) {\n yield* Console.log(\n JSON.stringify({ spaceId: resolvedSpaceId, format, path: outputPath, size: archive.contents.length }, null, 2),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Exported Space' }).pipe(\n FormBuilder.set('spaceId', resolvedSpaceId),\n FormBuilder.set('format', format),\n FormBuilder.set('path', outputPath),\n FormBuilder.set('size', formatBytes(archive.contents.length)),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n});\n\nexport const exportSpace = Command.make(\n 'export',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n format: Options.choice('format', Formats).pipe(\n Options.withDescription(\n 'Archive format: binary is a direct dump of the underlying storage and includes document history; json contains current object state only.',\n ),\n Options.withDefault('binary' as const),\n ),\n output: Options.text('output').pipe(\n Options.withAlias('o'),\n Options.withDescription('Output file, or a directory to write the generated filename into.'),\n Options.optional,\n ),\n },\n (args) => handler(args).pipe(withTimeout),\n).pipe(Command.withDescription('Export a space archive to disk.'));\n\nconst resolveOutputPath = Effect.fn(function* (output: Option.Option<string>, filename: string) {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n if (Option.isNone(output)) {\n return path.resolve(filename);\n }\n\n // An existing directory target keeps the generated space-scoped, timestamped filename.\n const info = yield* fs.stat(output.value).pipe(Effect.option);\n const isDirectory = Option.isSome(info) && info.value.type === 'Directory';\n return path.resolve(isDirectory ? path.join(output.value, filename) : output.value);\n});\n","//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, FormBuilder, formatBytes, print, withTimeout } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { type SpaceArchive } from '@dxos/protocols/proto/dxos/client/services';\n\nexport type ImportArgs = {\n file: string;\n tags: ReadonlyArray<string>;\n};\n\n/** Reads an archive of either format from disk and creates a new space from it. */\nexport const handler = Effect.fn(function* ({ file, tags }: ImportArgs) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n\n const contents = yield* fs.readFile(file);\n // Format is left unset so the host detects it from the extension, falling back to sniffing contents.\n const archive: SpaceArchive = { filename: path.basename(file), contents };\n const space = yield* Effect.tryPromise(() =>\n client.spaces.import(archive, tags.length > 0 ? { tags: [...tags] } : undefined),\n );\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n { spaceId: space.id, name: space.properties.name, tags: space.tags, size: contents.length },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Imported Space' }).pipe(\n FormBuilder.set('spaceId', space.id),\n FormBuilder.set('name', space.properties.name ?? '<none>'),\n FormBuilder.set('tags', space.tags.length > 0 ? space.tags.join(', ') : '<none>'),\n FormBuilder.set('size', formatBytes(contents.length)),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n});\n\nexport const importSpace = Command.make(\n 'import',\n {\n file: Args.file({ name: 'file' }).pipe(Args.withDescription('Archive to import, in either binary or json format.')),\n tags: Options.text('tag').pipe(\n Options.withDescription('Immutable tag to set on the new space. Repeat to set several.'),\n Options.repeated,\n ),\n },\n (args) => handler(args).pipe(withTimeout),\n).pipe(Command.withDescription('Import a space archive as a new space.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, formatSpace, getSpace, print, printSpace, spaceIdWithDefault } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { type Key } from '@dxos/echo';\n\nexport const handler = Effect.fn(function* ({\n spaceId,\n wait,\n}: {\n spaceId: Option.Option<string>;\n wait: Option.Option<number>;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n const resolvedSpaceId = yield* spaceIdWithDefault(spaceId as Option.Option<Key.SpaceId>);\n const space = yield* getSpace(resolvedSpaceId);\n\n const waitSeconds = Option.getOrElse(wait, () => 0);\n const formatted = yield* formatSpace(space, { waitSeconds });\n\n if (json) {\n yield* Console.log(JSON.stringify(formatted, null, 2));\n } else {\n yield* Console.log(print(printSpace(formatted)));\n }\n});\n\nexport const info = Command.make(\n 'info',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n wait: Options.integer('wait').pipe(\n Options.withDescription(\n 'Wait up to this many seconds for the space to reach SPACE_READY. Default 0 — read whatever state is available immediately.',\n ),\n Options.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('Show space info.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Queue from 'effect/Queue';\n\nimport { type AuthenticatingInvitationObservable, Invitation } from '@dxos/client/invitations';\nimport { EffectEx } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { AlreadyJoinedError } from '@dxos/protocols';\n\ntype AcceptInvitationProps = {\n observable: AuthenticatingInvitationObservable;\n callbacks?: {\n onConnecting?: (invitation: Invitation) => Effect.Effect<void>;\n onReadyForAuth?: (invitation: Invitation) => Effect.Effect<string | void, never, never>;\n onSuccess?: (invitation: Invitation) => Effect.Effect<void>;\n };\n};\n\n/**\n * Accept an invitation and handle authentication flow.\n * Ported from cli-base to Effect-based approach.\n */\nexport const acceptInvitation = ({ observable, callbacks }: AcceptInvitationProps): Effect.Effect<Invitation, Error> =>\n Effect.gen(function* () {\n const doneQueue = yield* Queue.unbounded<Invitation>();\n\n const runCallback = (effect: Effect.Effect<void> | undefined) => {\n if (effect) {\n EffectEx.runAndForwardErrors(effect).catch(() => {\n // Ignore callback errors\n });\n }\n };\n\n const subscription = observable.subscribe(\n (invitation) => {\n switch (invitation.state) {\n case Invitation.State.CONNECTING: {\n runCallback(callbacks?.onConnecting?.(invitation));\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (invitation.authMethod === Invitation.AuthMethod.SHARED_SECRET) {\n const callbackEffect = callbacks?.onReadyForAuth?.(invitation) ?? Effect.succeed(undefined);\n Effect.gen(function* () {\n const callbackResult = yield* callbackEffect;\n const code = invitation.authCode ?? callbackResult;\n invariant(code, 'No code provided');\n yield* Effect.tryPromise(() => observable.authenticate(code));\n })\n .pipe(EffectEx.runAndForwardErrors)\n .catch(() => {\n // Error handling\n });\n }\n break;\n }\n\n case Invitation.State.SUCCESS: {\n runCallback(callbacks?.onSuccess?.(invitation));\n EffectEx.runAndForwardErrors(Queue.offer(doneQueue, invitation)).catch(() => {});\n break;\n }\n }\n },\n (err) => {\n if (err instanceof AlreadyJoinedError) {\n EffectEx.runAndForwardErrors(Queue.offer(doneQueue, observable.get())).catch(() => {});\n return;\n }\n throw err;\n },\n );\n\n const invitation = yield* Queue.take(doneQueue);\n subscription.unsubscribe();\n return invitation;\n });\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as Console from 'effect/Console';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print, waitForSync } from '@dxos/cli-util';\nimport { FormBuilder } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { acceptInvitation } from './util';\n\nexport const handler = Effect.fn(function* ({\n invitationCode,\n authCode,\n}: {\n invitationCode: string;\n authCode: Option.Option<string>;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n let encoded = invitationCode;\n if (encoded.startsWith('http') || encoded.startsWith('socket')) {\n const searchProps = new URL(encoded).searchParams;\n encoded = searchProps.get('spaceInvitationCode') ?? encoded;\n }\n\n const invitation = yield* acceptInvitation({\n observable: client.spaces.join(encoded),\n callbacks: {\n onReadyForAuth: (invitation) => {\n if (Option.isSome(authCode)) {\n return Effect.succeed(Option.getOrUndefined(authCode) ?? undefined) as Effect.Effect<\n string | void,\n never,\n never\n >;\n }\n return Prompt.text({ message: 'Enter the authentication code' })\n .pipe(Prompt.run)\n .pipe(Effect.mapError(() => undefined as never))\n .pipe(Effect.catchAll(() => Effect.succeed(undefined))) as Effect.Effect<string | void, never, never>;\n },\n },\n });\n\n // Wait for space to be available with retry logic\n const spaceKey = invitation.spaceKey;\n if (!spaceKey) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'No space key in invitation' }, null, 2));\n } else {\n yield* Console.log('No space key in invitation.');\n }\n return;\n }\n\n let space = client.spaces.get(spaceKey);\n if (!space) {\n // Retry up to 5 times with increasing delays\n const maxRetries = 5;\n const retryDelays = [0.5, 1, 1.5, 2, 2.5].map((s) => Duration.seconds(s));\n for (let i = 0; i < maxRetries; i++) {\n yield* Effect.sleep(retryDelays[i]);\n space = client.spaces.get(spaceKey);\n if (space) {\n break;\n }\n }\n }\n\n if (!space) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Space not found after joining' }, null, 2));\n } else {\n yield* Console.log('Space not found after joining.');\n }\n return;\n }\n\n // Flush and sync after joining\n yield* Effect.tryPromise(() => space.db.flush());\n yield* waitForSync(space);\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n spaceId: space.id,\n state: space.state.get(),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Joined Space' }).pipe(\n FormBuilder.set('spaceId', space.id),\n FormBuilder.set('key', space.key.truncate()),\n FormBuilder.set('name', space.properties.name ?? '<none>'),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n});\n\nexport const join = Command.make(\n 'join',\n {\n invitationCode: Args.text({ name: 'invitationCode' }).pipe(Args.withDescription('The invitation code.')),\n authCode: Options.text('authCode').pipe(Options.withDescription('The authentication code.'), Options.optional),\n },\n handler,\n).pipe(Command.withDescription('Join a space via invitation.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, formatSpace, printSpace } from '@dxos/cli-util';\nimport { printList } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\n// TODO(burdon): Move handler inline and test separate functions.\nexport const handler = Effect.fn(function* ({ wait }: { wait: Option.Option<number> }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const spaces = client.spaces.get();\n const waitSeconds = Option.getOrElse(wait, () => 0);\n const formattedSpaces = yield* Effect.all(spaces.map((space) => formatSpace(space, { waitSeconds })));\n\n if (json) {\n yield* Console.log(JSON.stringify(formattedSpaces, null, 2));\n } else {\n const formatted = formattedSpaces.map(printSpace);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make(\n 'list',\n {\n wait: Options.integer('wait').pipe(\n Options.withDescription(\n 'Wait up to this many seconds for each space to reach SPACE_READY before reading. Default 0 — print whatever state is available immediately so a stuck space cannot hang the command.',\n ),\n Options.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('List all spaces available on this device.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\nimport { SpaceMember } from '@dxos/client/echo';\n\nconst maybeTruncateKey = (key: { toHex(): string; truncate(): string }, truncate = false) =>\n truncate ? key.truncate() : key.toHex();\n\nexport const mapMembers = (members: SpaceMember[], truncateKeys = false) => {\n return members.map((member) => ({\n key: maybeTruncateKey(member.identity.identityKey, truncateKeys),\n name: member.identity.profile?.displayName,\n presence: member.presence === SpaceMember.PresenceState.ONLINE ? 'Online' : 'Offline',\n }));\n};\n\nexport const printMember = (member: SpaceMember) =>\n FormBuilder.make({ title: member.identity.profile?.displayName ?? member.identity.identityKey.truncate() }).pipe(\n FormBuilder.set('identityKey', member.identity.identityKey.truncate()),\n FormBuilder.set('displayName', member.identity.profile?.displayName ?? '<none>'),\n FormBuilder.set('presence', member.presence === SpaceMember.PresenceState.ONLINE ? 'Online' : 'Offline'),\n FormBuilder.build,\n );\n\nexport const printMembers = (members: SpaceMember[]) => {\n return members.map(printMember);\n};\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport type * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, getSpace, printList, spaceIdWithDefault } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { type Key } from '@dxos/echo';\n\nimport { mapMembers, printMembers } from './util';\n\nexport const handler = Effect.fn(function* ({ spaceId }: { spaceId: Option.Option<string> }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n const resolvedSpaceId = yield* spaceIdWithDefault(spaceId as Option.Option<Key.SpaceId>);\n const space = yield* getSpace(resolvedSpaceId);\n\n const members = space.members.get();\n\n if (json) {\n yield* Console.log(JSON.stringify(mapMembers(members), null, 2));\n } else {\n const formatted = printMembers(members);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const members = Command.make(\n 'members',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n },\n handler,\n).pipe(Command.withDescription('List space members.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, Common, getSpace, waitForSync } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { type Key } from '@dxos/echo';\n\nexport const handler = ({ spaceId }: { spaceId: Key.SpaceId }) =>\n Effect.gen(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n const space = yield* getSpace(spaceId);\n yield* Effect.tryPromise(() => space.open());\n\n // Flush and sync after opening\n yield* Effect.tryPromise(() => space.db.flush());\n yield* waitForSync(space);\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true, spaceId }, null, 2));\n } else {\n yield* Console.log(`Space ${spaceId} opened successfully.`);\n }\n });\n\nexport const open = Command.make(\n 'open',\n {\n spaceId: Common.spaceId.pipe(Options.withDescription('Space ID to open.')),\n },\n handler,\n).pipe(Command.withDescription('Open a space.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\n\ntype SchemaEntry = {\n id?: string;\n typename: string;\n version: string;\n};\n\nexport const mapSchemas = (schemas: SchemaEntry[]) => {\n return schemas.map((schema) => ({\n id: schema.id,\n typename: schema.typename,\n version: schema.version,\n }));\n};\n\nexport const printSchema = (schema: SchemaEntry) =>\n FormBuilder.make({ title: schema.typename }).pipe(\n FormBuilder.set('id', schema.id ?? '<none>'),\n FormBuilder.set('typename', schema.typename),\n FormBuilder.set('version', schema.version),\n FormBuilder.build,\n );\n\nexport const printSchemas = (schemas: SchemaEntry[]) => {\n return schemas.map(printSchema);\n};\n\nexport const createTypenameFilter = (typenameFilter?: string) => {\n if (!typenameFilter) {\n return () => true;\n }\n\n return (schema: SchemaEntry) => schema.typename.toLowerCase().includes(typenameFilter.toLowerCase());\n};\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, getSpace, printList, spaceIdWithDefault } from '@dxos/cli-util';\nimport { type Key, Type } from '@dxos/echo';\nimport { getTypeAnnotation } from '@dxos/echo/Annotation';\n\nimport { createTypenameFilter, mapSchemas, printSchemas } from './util';\n\nexport const handler = Effect.fn(function* ({\n spaceId,\n typename,\n}: {\n spaceId: Option.Option<string>;\n typename: Option.Option<string>;\n}) {\n const { json } = yield* CommandConfig;\n\n const resolvedSpaceId = yield* spaceIdWithDefault(spaceId as Option.Option<Key.SpaceId>);\n const space = yield* getSpace(resolvedSpaceId);\n\n const types = space.db.graph.registry.list().filter(Type.isType);\n\n const schemas = types\n .map((schema) => {\n const schemaAnnotation = getTypeAnnotation(Type.getSchema(schema));\n return {\n id: Type.getURI(schema).toString(),\n typename: schemaAnnotation?.typename ?? Type.getTypename(schema) ?? '',\n version: schemaAnnotation?.version ?? Type.getVersion(schema) ?? '',\n };\n })\n .filter(createTypenameFilter(Option.getOrUndefined(typename)));\n\n if (json) {\n yield* Console.log(JSON.stringify(mapSchemas(schemas), null, 2));\n } else {\n const formatted = printSchemas(schemas);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make(\n 'list',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n typename: Options.text('typename').pipe(Options.withDescription('Filter schemas by typename.'), Options.optional),\n },\n handler,\n).pipe(Command.withDescription('List space schemas.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { list } from './list';\n\nexport const schema = Command.make('schema').pipe(\n Command.withDescription('Manage space schemas.'),\n Command.withSubcommands([list]),\n);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport type * as Option from 'effect/Option';\n\nimport {\n CommandConfig,\n Common,\n copyToClipboard,\n getSpace,\n openBrowser,\n print,\n spaceIdWithDefault,\n} from '@dxos/cli-util';\nimport { FormBuilder } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { Invitation, InvitationEncoder, hostInvitation } from '@dxos/client/invitations';\nimport { type Key } from '@dxos/echo';\n\nexport const handler = Effect.fn(function* ({\n spaceId,\n multiple,\n open,\n host,\n}: {\n spaceId: Option.Option<string>;\n multiple: boolean;\n open: boolean;\n host: string;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n const resolvedSpaceId = yield* spaceIdWithDefault(spaceId as Option.Option<Key.SpaceId>);\n const space = yield* getSpace(resolvedSpaceId);\n\n // Always use persistent and delegated (auth required) due to P2P limitations\n const observable = space.share({\n authMethod: Invitation.AuthMethod.SHARED_SECRET,\n persistent: true,\n multiUse: multiple,\n });\n\n const invitation = yield* hostInvitation({\n observable,\n callbacks: {\n onConnecting: (invitation) =>\n Effect.gen(function* () {\n const invitationCode = InvitationEncoder.encode(invitation);\n const authCode = invitation.authCode!;\n\n // Copy auth code to clipboard\n yield* copyToClipboard(authCode).pipe(Effect.catchAll(() => Effect.void));\n\n if (!json) {\n yield* Console.log(`\\nSecret: ${authCode} (copied to clipboard)\\n`);\n }\n\n if (open) {\n const url = new URL(host);\n url.searchParams.append('spaceInvitationCode', invitationCode);\n yield* openBrowser(url.toString()).pipe(Effect.catchAll(() => Effect.void));\n } else if (!json) {\n yield* Console.log(`\\nInvitation: ${invitationCode}\\n`);\n }\n }),\n },\n waitForSuccess: true,\n });\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n invitationCode: InvitationEncoder.encode(invitation),\n authCode: invitation.authCode,\n state: Invitation.State[invitation.state],\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Space Invitation' }).pipe(\n FormBuilder.set('invitationCode', InvitationEncoder.encode(invitation)),\n FormBuilder.set('authCode', invitation.authCode ?? '<none>'),\n FormBuilder.set('state', Invitation.State[invitation.state]),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n});\n\nexport const share = Command.make(\n 'share',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n multiple: Options.boolean('multiple', { ifPresent: true }).pipe(\n Options.withDescription('Create a multi-use invitation.'),\n ),\n open: Options.boolean('open', { ifPresent: true }).pipe(Options.withDescription('Open browser with invitation.')),\n host: Options.text('host').pipe(\n Options.withDescription('Application Host URL.'),\n Options.withDefault('https://composer.space'),\n ),\n },\n handler,\n).pipe(Command.withDescription('Create space invitation.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Schedule from 'effect/Schedule';\n\nimport { Common, getSpace, spaceIdWithDefault, waitForSync, withTimeout } from '@dxos/cli-util';\n\nexport const sync = Command.make(\n 'sync',\n {\n spaceId: Common.spaceId.pipe(Options.optional),\n spaceTimeout: Options.integer('spaceTimeout').pipe(\n Options.withDescription('The timeout to wait for the space to be available in milliseconds.'),\n Options.withDefault(5000),\n ),\n },\n ({ spaceId, spaceTimeout }) =>\n Effect.gen(function* () {\n // If space is not available locally, wait for it to sync.\n const resolvedSpaceId = yield* spaceIdWithDefault(spaceId);\n const space = yield* getSpace(resolvedSpaceId).pipe(\n Effect.retry(Schedule.fixed('100 millis')),\n Effect.timeout(Duration.millis(spaceTimeout)),\n );\n\n yield* waitForSync(space);\n }).pipe(withTimeout),\n).pipe(Command.withDescription('Wait for a space to be fully synchronized with EDGE.'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { close } from './close';\nimport { create } from './create';\nimport { exportSpace } from './export';\nimport { importSpace } from './import';\nimport { info } from './info';\nimport { join } from './join';\nimport { list } from './list';\nimport { members } from './members';\nimport { open } from './open';\nimport { schema } from './schema';\nimport { share } from './share';\nimport { sync } from './sync';\n\nexport const space = Command.make('space').pipe(\n Command.withDescription('Manage ECHO spaces.'),\n Command.withSubcommands([\n close,\n create,\n exportSpace,\n importSpace,\n info,\n join,\n list,\n members,\n open,\n schema,\n share,\n sync,\n ]),\n);\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Tag } from '@dxos/echo';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { DataTypes } from '@dxos/schema';\nimport {\n AnchoredTo,\n Employer,\n Event,\n HasConnection,\n HasRelationship,\n HasSubject,\n Organization,\n Person,\n Pipeline,\n Task,\n} from '@dxos/types';\n\nimport { CreateObject, IdentityCreated, OperationHandler, UndoMappings } from '#capabilities';\nimport { meta } from '#meta';\nimport { SpaceEvents, type SpacePluginOptions } from '#types';\n\nimport { database, queue, space } from './commands';\n\nexport const SpacePlugin = Plugin.define<SpacePluginOptions>(meta).pipe(\n // TODO(wittjosiah): Could some of these commands make use of operations?\n AppPlugin.addCommandModule({\n commands: [database, queue, space],\n }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({\n schema: [\n ...DataTypes,\n AnchoredTo.AnchoredTo,\n Employer.Employer,\n Event.Event,\n HasConnection.HasConnection,\n HasRelationship.HasRelationship,\n HasSubject.HasSubject,\n Organization.Organization,\n Person.Person,\n Pipeline.Pipeline,\n Tag.Tag,\n Task.Task,\n ],\n }),\n Plugin.addModule(\n ({\n shareableLinkOrigin = 'http://localhost:5173',\n invitationPath = '/',\n invitationProp = 'spaceInvitationCode',\n }) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationPath || '/', shareableLinkOrigin);\n baseUrl.searchParams.set(invitationProp, invitationCode);\n return baseUrl.toString();\n };\n\n return {\n id: Capability.getModuleTag(UndoMappings),\n activatesOn: ActivationEvents.SetupProcessManager,\n activate: () => UndoMappings({ createInvitationUrl, observability: false }),\n };\n },\n ),\n Plugin.addModule({\n activatesOn: ClientEvents.IdentityCreated,\n firesAfterActivation: [SpaceEvents.PersonalSpaceReady],\n activate: IdentityCreated,\n }),\n Plugin.make,\n);\n\nexport default SpacePlugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,IAAa,eAAe,QAAwB;CAClD,MAAM,WAAW,OAAO,YAAY,GAAG,KAAK;CAG5C,OAAO,YAAY,KAAK,EAAE,OAAO,OAAO,SAAS,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KACnE,YAAY,IAAI,MAAM,IAAI,EAAE,GAC5B,YAAY,IAAI,YAAY,QAAQ,GACpC,YAAY,KACd;AACF;;;;AAKA,IAAa,cAAc,UAAkB,UAC3C,YAAY,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,SAAS,KAAK,GAAG,YAAY,KAAK;;;;AAK/F,IAAa,sBAAsB,UACjC,YAAY,KAAK,EAAE,OAAO,kBAAkB,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,SAAS,KAAK,GAAG,YAAY,KAAK;;;ACHxG,IAAa,MAKT,QAAQ,KACV,OACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,UAAU,QAAQ,KAAK,UAAU,CAAC,CAAC,KAAK,QAAQ,gBAAgB,yBAAyB,GAAG,QAAQ,QAAQ;AAC9G,IACC,EAAE,eACD,OAAO,IAAI,aAAa;CACtB,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,UAAU,OAAO,OAAO;CAC9B,MAAM,EAAE,OAAO,OAAO,SAAS;CAE/B,OAAO,QAAQ,SAAS,oBAAoB,WAAW;CAEvD,MAAM,WAAW,aAAqB;EAIpC,OAHc,QAAQ,aACnB,OAAO,kBAAkB,iBAAiB,CAAA,CAC1C,MAAM,EAAE,SAAS,OAAO,QACpB,KAAS,KAAA;CAClB;CAEA,MAAM,CAAC,cAAc,OAAO,SAAS,MAAM,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC;CACzE,MAAM,oBAAoB,WAAW,IAAI,YAAY,cAAc,wBAAwB,CAAC,CAAC,KAC3F,OAAO,cACT;CACA,MAAM,aAAa,oBAAoB,OAAO,SAAS,KAA4B,iBAAiB,IAAI,KAAA;CAExG,MAAM,mBAAmB,OAAO,OAAO,MAAM,UAAU;EACrD,cAAc,eAAe,OAAO;EACpC,SAAS,MAAM,OAAO,QAAQ,CAAC;CACjC,CAAC;CACD,MAAM,WAAW,QAAQ,gBAAgB;CACzC,IAAI,CAAC,UACH,OAAO,OAAO,OAAO,qBAAK,IAAI,MAAM,qBAAqB,kBAAkB,CAAC;CAI9E,MAAM,UAAS,OADO,SAAS,aAAa,CAAC,GAAG;EAAE;EAAI,QAAQ,cAAc;CAAG,CAAC,EAAA,CAC1D;CACtB,IAAI,CAAC,IAAI,SAAS,MAAM,GACtB,OAAO,OAAO,OAAO,qBAAK,IAAI,MAAM,mBAAmB,QAAQ,CAAC;CAGlE,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;MAElD,OAAO,QAAQ,IAAI,MAAM,YAAY,MAAM,CAAC,CAAC;CAG/C,OAAO,aAAa,EAAE,SAAS,KAAK,CAAC;AACvC,CAAC,CACL,CAAC,CAAC,KACA,QAAQ,gBAAgB,2BAA2B,GACnD,QAAQ,SAAS,EAAE,cAAc,WAAW,SAAS,IAAI,CAAC,CAC5D;;;;AAKA,IAAM,iBAAiB,OAAO,GAAG,WAC/B,SACA;CACA,MAAM,EAAE,OAAO,OAAO,SAAS;CAQ/B,MAAM,WALQ,OAFU,SAAS,MAAM,MAAM,OAAO,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,CAAA,CAC9G,IAAA,CAEA,QAAQ,WAAW,CAAC,iBAAiB,IAAI,KAAK,UAAU,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,gBAAgB,KAAK,CAAC,CAAC,CAAA,CACpG,QAAQ,WAAW,kBAAkB,KAAK,UAAU,MAAM,CAAC,CAAC,EAAE,SAAS,KAAW,QAAQ,CAAA,CAC1F,QAAQ,WAAW,CAAC,CAAC,QAAQ,KAAK,YAAY,MAAM,CAAC,CAExC,CAAA,CAAM,KAAK,YAAY;EAErC,OAAO,KAAK,YAAY,MAAM;EAC9B,OAAO,KAAK,YAAY,MAAM;EAC9B,aAAa,KAAK,YAAY,MAAM;CACtC,EAAE;CAOF,OAAO,OALiB,OAAO,OAAO;EACpC,SAAS;EACT;CACF,CAAC;AAGH,CAAC;;;ACnGD,IAAa,cAAW,EAAE,eACxB,OAAO,IAAI,aAAa;CACtB,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,SAAS,OAAO,MAAM,UAAU;EACpC,cAAc,OAAO,WAAW;EAChC,SAAS,aAAa,OAAO,KAAK,MAAI,KAAK,QAAQ,CAAC;CACtD,CAAC;CACD,MAAM,UAAU,OAAO,SAAS,MAAM,MAAM,CAAC,CAAC;CAE9C,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;MAC9C;EAEL,MAAM,YAAY,QAAQ,IAAI,WAAW;EACzC,OAAO,QAAQ,IAAI,UAAU,SAAS,CAAC;CACzC;AACF,CAAC;AAEH,IAAa,UAAQ,QAAQ,KAC3B,SACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,UAAU,QAAQ,KAAK,UAAU,CAAC,CAAC,KAAK,QAAQ,UAAU,QAAQ,gBAAgB,wBAAwB,CAAC;AAC7G,GACA,UACF,CAAC,CAAC,KACA,QAAQ,gBAAgB,gBAAgB,GACxC,QAAQ,SAAS,EAAE,cAAc,WAAW,SAAS,IAAI,CAAC,CAC5D;;;AC5BA,IAAa,SAAS,QAAQ,KAC5B,UACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,UAAU,QAAQ,KAAK,UAAU,CAAC,CAAC,KAAK,QAAQ,gBAAgB,wBAAwB,GAAG,QAAQ,QAAQ;CAC3G,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,KAAK,QAAQ,gBAAgB,gBAAgB,GAAG,QAAQ,QAAQ;AACzF,IACC,EAAE,UAAU,SACX,OAAO,IAAI,aAAa;CACtB,MAAM,EAAE,SAAS,OAAO;CACxB,IAAI,OAAO,OAAO,EAAE,KAAK,OAAO,OAAO,QAAQ,GAC7C,MAAM,IAAI,MAAM,qCAAqC;CAEvD,IAAI;CACJ,IAAI,OAAO,OAAO,EAAE,GAClB,QAAQ,MAAM,OAAO,OAAO,GAAG,GAAG,KAAK,CAAC;MACnC,IAAI,OAAO,OAAO,QAAQ,GAC/B,QAAQ,MAAM,OAAO,OAAO,KAAK,MAAI,KAAK,SAAS,KAAK,CAAC,CAAC;MAE1D,MAAM,IAAI,MAAM,6BAA6B;CAE/C,MAAM,UAAU,OAAO,SAAS,MAAM,KAAK,CAAC,CAAC;CAC7C,KAAK,MAAM,UAAU,SACnB,OAAO,SAAS,OAAO,MAAM;CAG/B,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,EAAE,SAAS,QAAQ,OAAO,GAAG,MAAM,CAAC,CAAC;MAEvE,OAAO,QAAQ,IAAI,MAAM,mBAAmB,QAAQ,MAAM,CAAC,CAAC;AAEhE,CAAC,CACL,CAAC,CAAC,KACA,QAAQ,gBAAgB,gCAAgC,GACxD,QAAQ,SAAS,EAAE,cAAc,WAAW,SAAS,IAAI,CAAC,CAC5D;;;AClCA,IAAa,QAAQ,QAAQ,KAC3B,SACA,EACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ,EAC/C,SAEE,OAAO,IAAI,aAAa;CACtB,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,UAAU,OAAO,SAAS,MAAM,MAAM,OAAO,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;CACzE,MAAM,QAAQ,SAAS,KACrB,SACA,MAAM,SAAS,QAAQ,IAAI,YAAY,GAAG,KAAK,SAAS,GACxD,OAAO,KAAK,SAAS,KAAK,MAAM,CAClC;CAEA,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;MAC5C;EACL,MAAM,YAAY,OAAO,UAAU,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,WAAW,WAAW,UAAU,KAAK,CAAC;EAChG,OAAO,QAAQ,IAAI,UAAU,SAAS,CAAC;CACzC;AACF,CAAC,CACL,CAAC,CAAC,KACA,QAAQ,gBAAgB,gBAAgB,GACxC,QAAQ,SAAS,EAAE,cAAc,WAAW,SAAS,IAAI,CAAC,CAC5D;;;AC9BA,IAAa,WAAgD,QAAQ,KAAK,UAAU,CAAC,CAAC,KACpF,QAAQ,gBAAgB,kBAAkB,GAC1C,QAAQ,gBAAgB;CAAC;CAAK;CAAO;CAAQ;AAAK,CAAC,CACrD;;;;;;ACLA,IAAa,oBAAoB,QAAoB;CACnD,MAAM,WAAW,OAAO,YAAY,GAAG,KAAK;CAE5C,OAAO,YAAY,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,KAC3C,YAAY,IAAI,MAAM,IAAI,EAAE,GAC5B,YAAY,IAAI,YAAY,QAAQ,GACpC,YAAY,KACd;AACF;;;ACFA,IAAa,QAAQ,QAAQ,KAC3B,SACA,EACE,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,KAAK,QAAQ,gBAAgB,mBAAmB,CAAC,EAC5E,GACA,OAAO,WAAW,WAAW,EAAE,OAAO;CACpC,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,SAAS,OAAO;CACtB,MAAM,UAAU,IAAI,SAAS,GAAG;CAChC,IAAI,CAAC,SAAS;EACZ,OAAO,QAAQ,MAAM,gCAAgC,KAAK;EAC1D;CACF;CACA,MAAM,UAAU,IAAI,WAAW,OAAO;CACtC,IAAI,CAAC,SAAS;EACZ,OAAO,QAAQ,MAAM,mCAAmC,KAAK;EAC7D;CACF;CACA,MAAM,QAAQ,OAAO,OAAO,IAAI,OAAO;CACvC,IAAI,CAAC,OAAO;EACV,OAAO,QAAQ,MAAM,oBAAoB,SAAS;EAClD;CACF;CACA,MAAM,UAAU,OAAO,OAAO,cAC5B,MAAM,GAAG,MAAM,MAAM,OAAO,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAClF;CAEA,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;MAC9C;EAEL,MAAM,YAAa,QAAyB,IAAI,gBAAgB;EAChE,OAAO,QAAQ,IAAI,UAAU,SAAS,CAAC;CACzC;AACF,CAAC,CACH,CAAC,CAAC,KAAK,QAAQ,gBAAgB,2BAA2B,CAAC;;;AC3C3D,IAAa,QAAQ,QAAQ,KAAK,OAAO,CAAC,CAAC,KACzC,QAAQ,gBAAgB,gBAAgB,GACxC,QAAQ,gBAAgB,CAAC,KAAK,CAAC,CACjC;;;ACEA,IAAa,cAAW,EAAE,cACxB,OAAO,IAAI,aAAa;CACtB,MAAM,EAAE,SAAS,OAAO;CACT,OAAO;CAEtB,MAAM,QAAQ,OAAO,WAAS,OAAO;CAGrC,OAAO,OAAO,iBAAiB,MAAM,GAAG,MAAM,CAAC;CAC/C,OAAO,YAAY,KAAK;CAExB,OAAO,OAAO,iBAAiB,MAAM,MAAM,CAAC;CAE5C,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU;EAAE,SAAS;EAAM;CAAQ,GAAG,MAAM,CAAC,CAAC;MAEtE,OAAO,QAAQ,IAAI,SAAS,QAAQ,sBAAsB;AAE9D,CAAC;AAEH,IAAa,QAAQ,QAAQ,KAC3B,SACA,EACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,gBAAgB,oBAAoB,CAAC,EAC5E,GACA,UACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,gBAAgB,CAAC;;;ACvBhD,IAAa,YAAU,OAAO,GAAG,WAAW,EAAE,QAAyC;CACrF,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,SAAS,OAAO;CAEtB,MAAM,QAAQ,OAAO,OAAO,iBAAiB,OAAO,OAAO,OAAO,CAAC;CACnE,OAAO,OAAO,iBAAiB,MAAM,eAAe,CAAC;CAErD,IAAI,OAAO,OAAO,IAAI,GACpB,IAAI,OAAO,MAAM,aAAa,QAAQ;EACpC,IAAI,OAAO,OAAO,eAAe,IAAI;CACvC,CAAC;CAIH,IAAI,MACF,OAAO,QAAQ,IACb,KAAK,UACH;EACE,KAAK,MAAM,IAAI,MAAM;EACrB,GAAI,MAAM,WAAW,OAAO,EAAE,MAAM,MAAM,WAAW,KAAK,IAAI,CAAC;CACjE,GACA,MACA,CACF,CACF;MACK;EACL,MAAM,UAAU,YAAY,KAAK,EAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAC3D,YAAY,IAAI,OAAO,MAAM,IAAI,SAAS,CAAC,GAC3C,YAAY,IAAI,QAAQ,MAAM,WAAW,QAAQ,QAAQ,CAC3D;EACA,OAAO,QAAQ,IAAI,MAAM,YAAY,MAAM,OAAO,CAAC,CAAC;CACtD;CAGA,OAAO,OAAO,iBAAiB,MAAM,GAAG,MAAM,CAAC;CAC/C,OAAO,YAAY,KAAK;AAC1B,CAAC;AAED,IAAa,SAAS,QAAQ,KAC5B,UACA,EACE,MAAM,QAAQ,KAAK,MAAM,CAAC,CAAC,KAAK,QAAQ,gBAAgB,wBAAwB,GAAG,QAAQ,QAAQ,EACrG,GACA,SACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,qBAAqB,CAAC;;;AC/BrD,IAAM,sBAAsB,SAAS,QAAQ,EAAE;AAG/C,IAAa,UAAU,CAAC,UAAU,MAAM;;AAWxC,IAAa,YAAU,OAAO,GAAG,WAAW,EAAE,SAAS,QAAQ,UAAsB;CACnF,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,KAAK,OAAO,WAAW;CAC7B,MAAM,OAAO,OAAO,KAAK;CAEzB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO;CACzD,MAAM,QAAQ,OAAO,WAAS,eAAe;CAG7C,OAAO,OAAO,iBAAiB,MAAM,eAAe,CAAC,CAAC,CAAC,KACrD,OAAO,YAAY;EACjB,UAAU;EACV,iBAAiB,IAAI,mBAAmB,EAAE,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnF,CAAC,CACH;CAEA,MAAM,UAAU,OAAO,OAAO,iBAC5B,MAAM,SAAS,OAAO,EACpB,QAAQ,MAAM,MAAM,MAAM,CAAC,CAAC,KAC1B,MAAM,KAAK,gBAAgB,aAAa,OAAO,MAAM,GACrD,MAAM,KAAK,cAAc,aAAa,OAAO,IAAI,GACjD,MAAM,UACR,EACF,CAAC,CACH;CACA,MAAM,aAAa,OAAO,kBAAkB,QAAQ,QAAQ,QAAQ;CACpE,OAAO,GAAG,cAAc,KAAK,QAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;CACrE,OAAO,GAAG,UAAU,YAAY,QAAQ,QAAQ;CAEhD,IAAI,MACF,OAAO,QAAQ,IACb,KAAK,UAAU;EAAE,SAAS;EAAiB;EAAQ,MAAM;EAAY,MAAM,QAAQ,SAAS;CAAO,GAAG,MAAM,CAAC,CAC/G;MACK;EACL,MAAM,UAAU,YAAY,KAAK,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAC5D,YAAY,IAAI,WAAW,eAAe,GAC1C,YAAY,IAAI,UAAU,MAAM,GAChC,YAAY,IAAI,QAAQ,UAAU,GAClC,YAAY,IAAI,QAAQ,YAAY,QAAQ,SAAS,MAAM,CAAC,CAC9D;EACA,OAAO,QAAQ,IAAI,MAAM,YAAY,MAAM,OAAO,CAAC,CAAC;CACtD;AACF,CAAC;AAED,IAAa,cAAc,QAAQ,KACjC,UACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,QAAQ,QAAQ,OAAO,UAAU,OAAO,CAAC,CAAC,KACxC,QAAQ,gBACN,2IACF,GACA,QAAQ,YAAY,QAAiB,CACvC;CACA,QAAQ,QAAQ,KAAK,QAAQ,CAAC,CAAC,KAC7B,QAAQ,UAAU,GAAG,GACrB,QAAQ,gBAAgB,mEAAmE,GAC3F,QAAQ,QACV;AACF,IACC,SAAS,UAAQ,IAAI,CAAC,CAAC,KAAK,WAAW,CAC1C,CAAC,CAAC,KAAK,QAAQ,gBAAgB,iCAAiC,CAAC;AAEjE,IAAM,oBAAoB,OAAO,GAAG,WAAW,QAA+B,UAAkB;CAC9F,MAAM,KAAK,OAAO,WAAW;CAC7B,MAAM,OAAO,OAAO,KAAK;CACzB,IAAI,OAAO,OAAO,MAAM,GACtB,OAAO,KAAK,QAAQ,QAAQ;CAI9B,MAAM,OAAO,OAAO,GAAG,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,MAAM;CAC5D,MAAM,cAAc,OAAO,OAAO,IAAI,KAAK,KAAK,MAAM,SAAS;CAC/D,OAAO,KAAK,QAAQ,cAAc,KAAK,KAAK,OAAO,OAAO,QAAQ,IAAI,OAAO,KAAK;AACpF,CAAC;;;;AC/FD,IAAa,YAAU,OAAO,GAAG,WAAW,EAAE,MAAM,QAAoB;CACtE,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,SAAS,OAAO;CACtB,MAAM,KAAK,OAAO,WAAW;CAC7B,MAAM,OAAO,OAAO,KAAK;CAEzB,MAAM,WAAW,OAAO,GAAG,SAAS,IAAI;CAExC,MAAM,UAAwB;EAAE,UAAU,KAAK,SAAS,IAAI;EAAG;CAAS;CACxE,MAAM,QAAQ,OAAO,OAAO,iBAC1B,OAAO,OAAO,OAAO,SAAS,KAAK,SAAS,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,KAAA,CAAS,CACjF;CAEA,IAAI,MACF,OAAO,QAAQ,IACb,KAAK,UACH;EAAE,SAAS,MAAM;EAAI,MAAM,MAAM,WAAW;EAAM,MAAM,MAAM;EAAM,MAAM,SAAS;CAAO,GAC1F,MACA,CACF,CACF;MACK;EACL,MAAM,UAAU,YAAY,KAAK,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAC5D,YAAY,IAAI,WAAW,MAAM,EAAE,GACnC,YAAY,IAAI,QAAQ,MAAM,WAAW,QAAQ,QAAQ,GACzD,YAAY,IAAI,QAAQ,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,IAAI,QAAQ,GAChF,YAAY,IAAI,QAAQ,YAAY,SAAS,MAAM,CAAC,CACtD;EACA,OAAO,QAAQ,IAAI,MAAM,YAAY,MAAM,OAAO,CAAC,CAAC;CACtD;AACF,CAAC;AAED,IAAa,cAAc,QAAQ,KACjC,UACA;CACE,MAAM,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,gBAAgB,qDAAqD,CAAC;CAClH,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAC,KACxB,QAAQ,gBAAgB,+DAA+D,GACvF,QAAQ,QACV;AACF,IACC,SAAS,UAAQ,IAAI,CAAC,CAAC,KAAK,WAAW,CAC1C,CAAC,CAAC,KAAK,QAAQ,gBAAgB,wCAAwC,CAAC;;;AClDxE,IAAa,YAAU,OAAO,GAAG,WAAW,EAC1C,SACA,QAIC;CACD,MAAM,EAAE,SAAS,OAAO;CACT,OAAO;CAMtB,MAAM,YAAY,OAAO,YAAY,OAHhB,WAAS,OADC,mBAAmB,OAAqC,CAC1C,GAGD,EAAE,aAD1B,OAAO,UAAU,YAAY,CACH,EAAY,CAAC;CAE3D,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,WAAW,MAAM,CAAC,CAAC;MAErD,OAAO,QAAQ,IAAI,MAAM,WAAW,SAAS,CAAC,CAAC;AAEnD,CAAC;AAED,IAAa,OAAO,QAAQ,KAC1B,QACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,MAAM,QAAQ,QAAQ,MAAM,CAAC,CAAC,KAC5B,QAAQ,gBACN,4HACF,GACA,QAAQ,QACV;AACF,GACA,SACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,kBAAkB,CAAC;;;;;;;;ACxBlD,IAAa,oBAAoB,EAAE,YAAY,gBAC7C,OAAO,IAAI,aAAa;CACtB,MAAM,YAAY,OAAO,MAAM,UAAsB;CAErD,MAAM,eAAe,WAA4C;EAC/D,IAAI,QACF,SAAS,oBAAoB,MAAM,CAAC,CAAC,YAAY,CAEjD,CAAC;CAEL;CAEA,MAAM,eAAe,WAAW,WAC7B,eAAe;EACd,QAAQ,WAAW,OAAnB;GACE,KAAK,WAAW,MAAM;IACpB,YAAY,WAAW,eAAe,UAAU,CAAC;IACjD;GAGF,KAAK,WAAW,MAAM;IACpB,IAAI,WAAW,eAAe,WAAW,WAAW,eAAe;KACjE,MAAM,iBAAiB,WAAW,iBAAiB,UAAU,KAAK,OAAO,QAAQ,KAAA,CAAS;KAC1F,OAAO,IAAI,aAAa;MACtB,MAAM,iBAAiB,OAAO;MAC9B,MAAM,OAAO,WAAW,YAAY;MACpC,UAAU,MAAM,oBAAiB;OAAA,YAAA;OAAA,GAAA;OAAA,GAAA;OAAA,GAAA;OAAA,GAAA,CAAA,QAAA,oBAAA;MAAA,CAAC;MAClC,OAAO,OAAO,iBAAiB,WAAW,aAAa,IAAI,CAAC;KAC9D,CAAC,CAAA,CACE,KAAK,SAAS,mBAAmB,CAAA,CACjC,YAAY,CAEb,CAAC;IACL;IACA;GAGF,KAAK,WAAW,MAAM;IACpB,YAAY,WAAW,YAAY,UAAU,CAAC;IAC9C,SAAS,oBAAoB,MAAM,MAAM,WAAW,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC/E;EAEJ;CACF,IACC,QAAQ;EACP,IAAI,eAAe,oBAAoB;GACrC,SAAS,oBAAoB,MAAM,MAAM,WAAW,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;GACrF;EACF;EACA,MAAM;CACR,CACF;CAEA,MAAM,aAAa,OAAO,MAAM,KAAK,SAAS;CAC9C,aAAa,YAAY;CACzB,OAAO;AACT,CAAC;;;AC7DH,IAAa,YAAU,OAAO,GAAG,WAAW,EAC1C,gBACA,YAIC;CACD,MAAM,EAAE,SAAS,OAAO;CACxB,MAAM,SAAS,OAAO;CAEtB,IAAI,UAAU;CACd,IAAI,QAAQ,WAAW,MAAM,KAAK,QAAQ,WAAW,QAAQ,GAE3D,UADoB,IAAI,IAAI,OAAO,CAAC,CAAC,aACf,IAAI,qBAAqB,KAAK;CAuBtD,MAAM,YAAW,OApBS,iBAAiB;EACzC,YAAY,OAAO,OAAO,KAAK,OAAO;EACtC,WAAW,EACT,iBAAiB,eAAe;GAC9B,IAAI,OAAO,OAAO,QAAQ,GACxB,OAAO,OAAO,QAAQ,OAAO,eAAe,QAAQ,KAAK,KAAA,CAAS;GAMpE,OAAO,OAAO,KAAK,EAAE,SAAS,gCAAgC,CAAC,CAAA,CAC5D,KAAK,OAAO,GAAG,CAAA,CACf,KAAK,OAAO,eAAe,KAAA,CAAkB,CAAC,CAAA,CAC9C,KAAK,OAAO,eAAe,OAAO,QAAQ,KAAA,CAAS,CAAC,CAAC;EAC1D,EACF;CACF,CAAC,EAAA,CAG2B;CAC5B,IAAI,CAAC,UAAU;EACb,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,EAAE,OAAO,6BAA6B,GAAG,MAAM,CAAC,CAAC;OAEnF,OAAO,QAAQ,IAAI,6BAA6B;EAElD;CACF;CAEA,IAAI,QAAQ,OAAO,OAAO,IAAI,QAAQ;CACtC,IAAI,CAAC,OAAO;EAEV,MAAM,aAAa;EACnB,MAAM,cAAc;GAAC;GAAK;GAAG;GAAK;GAAG;EAAG,CAAC,CAAC,KAAK,MAAM,SAAS,QAAQ,CAAC,CAAC;EACxE,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,KAAK;GACnC,OAAO,OAAO,MAAM,YAAY,EAAE;GAClC,QAAQ,OAAO,OAAO,IAAI,QAAQ;GAClC,IAAI,OACF;EAEJ;CACF;CAEA,IAAI,CAAC,OAAO;EACV,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,EAAE,OAAO,gCAAgC,GAAG,MAAM,CAAC,CAAC;OAEtF,OAAO,QAAQ,IAAI,gCAAgC;EAErD;CACF;CAGA,OAAO,OAAO,iBAAiB,MAAM,GAAG,MAAM,CAAC;CAC/C,OAAO,YAAY,KAAK;CAExB,IAAI,MACF,OAAO,QAAQ,IACb,KAAK,UACH;EACE,SAAS,MAAM;EACf,OAAO,MAAM,MAAM,IAAI;CACzB,GACA,MACA,CACF,CACF;MACK;EACL,MAAM,UAAU,YAAY,KAAK,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,KAC1D,YAAY,IAAI,WAAW,MAAM,EAAE,GACnC,YAAY,IAAI,OAAO,MAAM,IAAI,SAAS,CAAC,GAC3C,YAAY,IAAI,QAAQ,MAAM,WAAW,QAAQ,QAAQ,CAC3D;EACA,OAAO,QAAQ,IAAI,MAAM,YAAY,MAAM,OAAO,CAAC,CAAC;CACtD;AACF,CAAC;AAED,IAAa,OAAO,QAAQ,KAC1B,QACA;CACE,gBAAgB,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAC,CAAC,CAAC,KAAK,KAAK,gBAAgB,sBAAsB,CAAC;CACvG,UAAU,QAAQ,KAAK,UAAU,CAAC,CAAC,KAAK,QAAQ,gBAAgB,0BAA0B,GAAG,QAAQ,QAAQ;AAC/G,GACA,SACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,8BAA8B,CAAC;;;AC1G9D,IAAa,YAAU,OAAO,GAAG,WAAW,EAAE,QAAyC;CACrF,MAAM,EAAE,SAAS,OAAO;CAExB,MAAM,UAAS,OADO,cAAA,CACA,OAAO,IAAI;CACjC,MAAM,cAAc,OAAO,UAAU,YAAY,CAAC;CAClD,MAAM,kBAAkB,OAAO,OAAO,IAAI,OAAO,KAAK,UAAU,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;CAEpG,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC;MACtD;EACL,MAAM,YAAY,gBAAgB,IAAI,UAAU;EAChD,OAAO,QAAQ,IAAI,UAAU,SAAS,CAAC;CACzC;AACF,CAAC;AAED,IAAa,SAAO,QAAQ,KAC1B,QACA,EACE,MAAM,QAAQ,QAAQ,MAAM,CAAC,CAAC,KAC5B,QAAQ,gBACN,sLACF,GACA,QAAQ,QACV,EACF,GACA,SACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,2CAA2C,CAAC;;;AClC3E,IAAM,oBAAoB,KAA8C,WAAW,UACjF,WAAW,IAAI,SAAS,IAAI,IAAI,MAAM;AAExC,IAAa,cAAc,SAAwB,eAAe,UAAU;CAC1E,OAAO,QAAQ,KAAK,YAAY;EAC9B,KAAK,iBAAiB,OAAO,SAAS,aAAa,YAAY;EAC/D,MAAM,OAAO,SAAS,SAAS;EAC/B,UAAU,OAAO,aAAa,YAAY,cAAc,SAAS,WAAW;CAC9E,EAAE;AACJ;AAEA,IAAa,eAAe,WAC1B,YAAY,KAAK,EAAE,OAAO,OAAO,SAAS,SAAS,eAAe,OAAO,SAAS,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,KAC1G,YAAY,IAAI,eAAe,OAAO,SAAS,YAAY,SAAS,CAAC,GACrE,YAAY,IAAI,eAAe,OAAO,SAAS,SAAS,eAAe,QAAQ,GAC/E,YAAY,IAAI,YAAY,OAAO,aAAa,YAAY,cAAc,SAAS,WAAW,SAAS,GACvG,YAAY,KACd;AAEF,IAAa,gBAAgB,YAA2B;CACtD,OAAO,QAAQ,IAAI,WAAW;AAChC;;;ACZA,IAAa,YAAU,OAAO,GAAG,WAAW,EAAE,WAA+C;CAC3F,MAAM,EAAE,SAAS,OAAO;CACT,OAAO;CAKtB,MAAM,WAAU,OAFK,WAAS,OADC,mBAAmB,OAAqC,CAC1C,EAAA,CAEvB,QAAQ,IAAI;CAElC,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,WAAW,OAAO,GAAG,MAAM,CAAC,CAAC;MAC1D;EACL,MAAM,YAAY,aAAa,OAAO;EACtC,OAAO,QAAQ,IAAI,UAAU,SAAS,CAAC;CACzC;AACF,CAAC;AAED,IAAa,UAAU,QAAQ,KAC7B,WACA,EACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ,EAC/C,GACA,SACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,qBAAqB,CAAC;;;AC1BrD,IAAa,aAAW,EAAE,cACxB,OAAO,IAAI,aAAa;CACtB,MAAM,EAAE,SAAS,OAAO;CACT,OAAO;CAEtB,MAAM,QAAQ,OAAO,WAAS,OAAO;CACrC,OAAO,OAAO,iBAAiB,MAAM,KAAK,CAAC;CAG3C,OAAO,OAAO,iBAAiB,MAAM,GAAG,MAAM,CAAC;CAC/C,OAAO,YAAY,KAAK;CAExB,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU;EAAE,SAAS;EAAM;CAAQ,GAAG,MAAM,CAAC,CAAC;MAEtE,OAAO,QAAQ,IAAI,SAAS,QAAQ,sBAAsB;AAE9D,CAAC;AAEH,IAAa,OAAO,QAAQ,KAC1B,QACA,EACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,gBAAgB,mBAAmB,CAAC,EAC3E,GACA,SACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,eAAe,CAAC;;;AC1B/C,IAAa,cAAc,YAA2B;CACpD,OAAO,QAAQ,KAAK,YAAY;EAC9B,IAAI,OAAO;EACX,UAAU,OAAO;EACjB,SAAS,OAAO;CAClB,EAAE;AACJ;AAEA,IAAa,eAAe,WAC1B,YAAY,KAAK,EAAE,OAAO,OAAO,SAAS,CAAC,CAAC,CAAC,KAC3C,YAAY,IAAI,MAAM,OAAO,MAAM,QAAQ,GAC3C,YAAY,IAAI,YAAY,OAAO,QAAQ,GAC3C,YAAY,IAAI,WAAW,OAAO,OAAO,GACzC,YAAY,KACd;AAEF,IAAa,gBAAgB,YAA2B;CACtD,OAAO,QAAQ,IAAI,WAAW;AAChC;AAEA,IAAa,wBAAwB,mBAA4B;CAC/D,IAAI,CAAC,gBACH,aAAa;CAGf,QAAQ,WAAwB,OAAO,SAAS,YAAY,CAAC,CAAC,SAAS,eAAe,YAAY,CAAC;AACrG;;;ACtBA,IAAa,YAAU,OAAO,GAAG,WAAW,EAC1C,SACA,YAIC;CACD,MAAM,EAAE,SAAS,OAAO;CAOxB,MAAM,WAFQ,OAFO,WAAS,OADC,mBAAmB,OAAqC,CAC1C,EAAA,CAEzB,GAAG,MAAM,SAAS,KAAK,CAAC,CAAC,OAAO,KAAK,MAEzC,CAAA,CACb,KAAK,WAAW;EACf,MAAM,mBAAmB,kBAAkB,KAAK,UAAU,MAAM,CAAC;EACjE,OAAO;GACL,IAAI,KAAK,OAAO,MAAM,CAAC,CAAC,SAAS;GACjC,UAAU,kBAAkB,YAAY,KAAK,YAAY,MAAM,KAAK;GACpE,SAAS,kBAAkB,WAAW,KAAK,WAAW,MAAM,KAAK;EACnE;CACF,CAAC,CAAA,CACA,OAAO,qBAAqB,OAAO,eAAe,QAAQ,CAAC,CAAC;CAE/D,IAAI,MACF,OAAO,QAAQ,IAAI,KAAK,UAAU,WAAW,OAAO,GAAG,MAAM,CAAC,CAAC;MAC1D;EACL,MAAM,YAAY,aAAa,OAAO;EACtC,OAAO,QAAQ,IAAI,UAAU,SAAS,CAAC;CACzC;AACF,CAAC;AAED,IAAa,OAAO,QAAQ,KAC1B,QACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,UAAU,QAAQ,KAAK,UAAU,CAAC,CAAC,KAAK,QAAQ,gBAAgB,6BAA6B,GAAG,QAAQ,QAAQ;AAClH,GACA,SACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,qBAAqB,CAAC;;;AChDrD,IAAa,SAAS,QAAQ,KAAK,QAAQ,CAAC,CAAC,KAC3C,QAAQ,gBAAgB,uBAAuB,GAC/C,QAAQ,gBAAgB,CAAC,IAAI,CAAC,CAChC;;;ACaA,IAAa,UAAU,OAAO,GAAG,WAAW,EAC1C,SACA,UACA,MACA,QAMC;CACD,MAAM,EAAE,SAAS,OAAO;CACT,OAAO;CAYtB,MAAM,aAAa,OAAO,eAAe;EACvC,aAPiB,OAHE,WAAS,OADC,mBAAmB,OAAqC,CAC1C,EAAA,CAGpB,MAAM;GAC7B,YAAY,WAAW,WAAW;GAClC,YAAY;GACZ,UAAU;EACZ,CAGE;EACA,WAAW,EACT,eAAe,eACb,OAAO,IAAI,aAAa;GACtB,MAAM,iBAAiB,kBAAkB,OAAO,UAAU;GAC1D,MAAM,WAAW,WAAW;GAG5B,OAAO,gBAAgB,QAAQ,CAAC,CAAC,KAAK,OAAO,eAAe,OAAO,IAAI,CAAC;GAExE,IAAI,CAAC,MACH,OAAO,QAAQ,IAAI,aAAa,SAAS,yBAAyB;GAGpE,IAAI,MAAM;IACR,MAAM,MAAM,IAAI,IAAI,IAAI;IACxB,IAAI,aAAa,OAAO,uBAAuB,cAAc;IAC7D,OAAO,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,eAAe,OAAO,IAAI,CAAC;GAC5E,OAAO,IAAI,CAAC,MACV,OAAO,QAAQ,IAAI,iBAAiB,eAAe,GAAG;EAE1D,CAAC,EACL;EACA,gBAAgB;CAClB,CAAC;CAED,IAAI,MACF,OAAO,QAAQ,IACb,KAAK,UACH;EACE,gBAAgB,kBAAkB,OAAO,UAAU;EACnD,UAAU,WAAW;EACrB,OAAO,WAAW,MAAM,WAAW;CACrC,GACA,MACA,CACF,CACF;MACK;EACL,MAAM,UAAU,YAAY,KAAK,EAAE,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAC9D,YAAY,IAAI,kBAAkB,kBAAkB,OAAO,UAAU,CAAC,GACtE,YAAY,IAAI,YAAY,WAAW,YAAY,QAAQ,GAC3D,YAAY,IAAI,SAAS,WAAW,MAAM,WAAW,MAAM,CAC7D;EACA,OAAO,QAAQ,IAAI,MAAM,YAAY,MAAM,OAAO,CAAC,CAAC;CACtD;AACF,CAAC;AAED,IAAa,QAAQ,QAAQ,KAC3B,SACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,UAAU,QAAQ,QAAQ,YAAY,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,KACzD,QAAQ,gBAAgB,gCAAgC,CAC1D;CACA,MAAM,QAAQ,QAAQ,QAAQ,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,gBAAgB,+BAA+B,CAAC;CAChH,MAAM,QAAQ,KAAK,MAAM,CAAC,CAAC,KACzB,QAAQ,gBAAgB,uBAAuB,GAC/C,QAAQ,YAAY,wBAAwB,CAC9C;AACF,GACA,OACF,CAAC,CAAC,KAAK,QAAQ,gBAAgB,0BAA0B,CAAC;;;ACnG1D,IAAa,OAAO,QAAQ,KAC1B,QACA;CACE,SAAS,OAAO,QAAQ,KAAK,QAAQ,QAAQ;CAC7C,cAAc,QAAQ,QAAQ,cAAc,CAAC,CAAC,KAC5C,QAAQ,gBAAgB,oEAAoE,GAC5F,QAAQ,YAAY,GAAI,CAC1B;AACF,IACC,EAAE,SAAS,mBACV,OAAO,IAAI,aAAa;CAQtB,OAAO,YAAY,OALE,WAAS,OADC,mBAAmB,OAAO,CACZ,CAAC,CAAC,KAC7C,OAAO,MAAM,SAAS,MAAM,YAAY,CAAC,GACzC,OAAO,QAAQ,SAAS,OAAO,YAAY,CAAC,CAC9C,CAEwB;AAC1B,CAAC,CAAC,CAAC,KAAK,WAAW,CACvB,CAAC,CAAC,KAAK,QAAQ,gBAAgB,sDAAsD,CAAC;;;ACbtF,IAAa,QAAQ,QAAQ,KAAK,OAAO,CAAC,CAAC,KACzC,QAAQ,gBAAgB,qBAAqB,GAC7C,QAAQ,gBAAgB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC,CACH;;;ACPA,IAAa,cAAc,OAAO,OAA2B,IAAI,CAAC,CAAC,KAEjE,UAAU,iBAAiB,EACzB,UAAU;CAAC;CAAU;CAAO;AAAK,EACnC,CAAC,GACD,UAAU,sBAAsB,EAAE,UAAU,aAAa,CAAC,GAC1D,UAAU,0BAA0B,EAAE,UAAU,iBAAiB,CAAC,GAClE,UAAU,gBAAgB,EACxB,QAAQ;CACN,GAAG;CACH,WAAW;CACX,SAAS;CACT,MAAM;CACN,cAAc;CACd,gBAAgB;CAChB,WAAW;CACX,aAAa;CACb,OAAO;CACP,SAAS;CACT,IAAI;CACJ,KAAK;AACP,EACF,CAAC,GACD,OAAO,WACJ,EACC,sBAAsB,yBACtB,iBAAiB,KACjB,iBAAiB,4BACb;CACJ,MAAM,uBAAuB,mBAA2B;EACtD,MAAM,UAAU,IAAI,IAAI,kBAAkB,KAAK,mBAAmB;EAClE,QAAQ,aAAa,IAAI,gBAAgB,cAAc;EACvD,OAAO,QAAQ,SAAS;CAC1B;CAEA,OAAO;EACL,IAAI,WAAW,aAAa,YAAY;EACxC,aAAa,iBAAiB;EAC9B,gBAAgB,aAAa;GAAE;GAAqB,eAAe;EAAM,CAAC;CAC5E;AACF,CACF,GACA,OAAO,UAAU;CACf,aAAa,aAAa;CAC1B,sBAAsB,CAAC,YAAY,kBAAkB;CACrD,UAAU;AACZ,CAAC,GACD,OAAO,IACT"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { t as operation_handler_default } from "./chunk-operation-handler.mjs";
|
|
2
|
+
import { Plugin } from "@dxos/app-framework";
|
|
3
|
+
import { meta } from "#meta";
|
|
4
|
+
import { AppPlugin } from "@dxos/app-toolkit";
|
|
5
|
+
import { Tag } from "@dxos/echo";
|
|
6
|
+
import { DataTypes } from "@dxos/schema";
|
|
7
|
+
import { AnchoredTo, Employer, Event, HasConnection, HasRelationship, HasSubject, Organization, Person, Pipeline, Task } from "@dxos/types";
|
|
8
|
+
//#region src/SpacePlugin.workerd.ts
|
|
9
|
+
var SpacePlugin = Plugin.define(meta).pipe(AppPlugin.addOperationHandlerModule({ activate: operation_handler_default }), AppPlugin.addSchemaModule({ schema: [
|
|
10
|
+
...DataTypes,
|
|
11
|
+
AnchoredTo.AnchoredTo,
|
|
12
|
+
Employer.Employer,
|
|
13
|
+
Event.Event,
|
|
14
|
+
HasConnection.HasConnection,
|
|
15
|
+
HasRelationship.HasRelationship,
|
|
16
|
+
HasSubject.HasSubject,
|
|
17
|
+
Organization.Organization,
|
|
18
|
+
Person.Person,
|
|
19
|
+
Pipeline.Pipeline,
|
|
20
|
+
Tag.Tag,
|
|
21
|
+
Task.Task
|
|
22
|
+
] }), Plugin.make);
|
|
23
|
+
//#endregion
|
|
24
|
+
export { SpacePlugin, SpacePlugin as default };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=SpacePlugin.workerd.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpacePlugin.workerd.mjs","names":[],"sources":["../../src/SpacePlugin.workerd.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Tag } from '@dxos/echo';\nimport { DataTypes } from '@dxos/schema';\nimport {\n AnchoredTo,\n Employer,\n Event,\n HasConnection,\n HasRelationship,\n HasSubject,\n Organization,\n Person,\n Pipeline,\n Task,\n} from '@dxos/types';\n\nimport { meta } from '#meta';\n\n// Direct module import: the `#capabilities` barrel pulls the React surface into worker bundles.\nimport OperationHandler from './capabilities/operation-handler';\n\nexport const SpacePlugin = Plugin.define(meta).pipe(\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({\n schema: [\n ...DataTypes,\n AnchoredTo.AnchoredTo,\n Employer.Employer,\n Event.Event,\n HasConnection.HasConnection,\n HasRelationship.HasRelationship,\n HasSubject.HasSubject,\n Organization.Organization,\n Person.Person,\n Pipeline.Pipeline,\n Tag.Tag,\n Task.Task,\n ],\n }),\n Plugin.make,\n);\n\nexport default SpacePlugin;\n"],"mappings":";;;;;;;;AA0BA,IAAa,cAAc,OAAO,OAAO,IAAI,CAAC,CAAC,KAC7C,UAAU,0BAA0B,EAAE,UAAU,0BAAiB,CAAC,GAClE,UAAU,gBAAgB,EACxB,QAAQ;CACN,GAAG;CACH,WAAW;CACX,SAAS;CACT,MAAM;CACN,cAAc;CACd,gBAAgB;CAChB,WAAW;CACX,aAAa;CACb,OAAO;CACP,SAAS;CACT,IAAI;CACJ,KAAK;AACP,EACF,CAAC,GACD,OAAO,IACT"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Capability } from "@dxos/app-framework";
|
|
2
|
+
//#region src/capabilities/node.ts
|
|
3
|
+
var CreateObject = Capability.lazy("CreateObject", () => import("../chunk-create-object.mjs"));
|
|
4
|
+
var IdentityCreated = Capability.lazy("IdentityCreated", () => import("../chunk-identity-created.mjs"));
|
|
5
|
+
var OperationHandler = Capability.lazy("OperationHandler", () => import("../chunk-operation-handler.mjs").then((n) => n.n));
|
|
6
|
+
var UndoMappings = Capability.lazy("UndoMappings", () => import("../chunk-undo-mappings.mjs"));
|
|
7
|
+
//#endregion
|
|
8
|
+
export { CreateObject, IdentityCreated, OperationHandler, UndoMappings };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=node.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.mjs","names":[],"sources":["../../../src/capabilities/node.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const IdentityCreated = Capability.lazy('IdentityCreated', () => import('./identity-created'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const UndoMappings = Capability.lazy('UndoMappings', () => import('./undo-mappings'));\n"],"mappings":";;AAOA,IAAa,eAAe,WAAW,KAAK,sBAAsB,OAAO,6BAAkB;AAC3F,IAAa,kBAAkB,WAAW,KAAK,yBAAyB,OAAO,gCAAqB;AACpG,IAAa,mBAAmB,WAAW,KACzC,0BACM,OAAO,iCACf,CAAA,MAAA,MAAA,EAAA,CAAA,CAAA;AACA,IAAa,eAAe,WAAW,KAAK,sBAAsB,OAAO,6BAAkB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { r as makeCreateObjectEntryForDatabaseType } from "./chunk-util.mjs";
|
|
2
|
+
import { Capability } from "@dxos/app-framework";
|
|
3
|
+
//#region src/capabilities/app-graph-builder/index.ts
|
|
4
|
+
var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./chunk-app-graph-builder.mjs"));
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region src/capabilities/navigation-handler/index.ts
|
|
7
|
+
var NavigationHandler = Capability.lazy("NavigationHandler", () => import("./chunk-navigation-handler.mjs"));
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/capabilities/index.ts
|
|
10
|
+
var CreateObject = Capability.lazy("CreateObject", () => import("./chunk-create-object.mjs"));
|
|
11
|
+
var IdentityCreated = Capability.lazy("IdentityCreated", () => import("./chunk-identity-created.mjs"));
|
|
12
|
+
var NavigationTargetResolver = Capability.lazy("NavigationTargetResolver", () => import("./chunk-navigation-target-resolver.mjs"));
|
|
13
|
+
var OperationHandler = Capability.lazy("OperationHandler", () => import("./chunk-operation-handler.mjs").then((n) => n.n));
|
|
14
|
+
var ReactRoot = Capability.lazy("ReactRoot", () => import("./chunk-react-root.mjs"));
|
|
15
|
+
var ReactSurface = Capability.lazy("ReactSurface", () => import("./chunk-react-surface.mjs"));
|
|
16
|
+
var Repair = Capability.lazy("Repair", () => import("./chunk-repair.mjs"));
|
|
17
|
+
var SpaceSettings = Capability.lazy("SpaceSettings", () => import("./chunk-settings.mjs"));
|
|
18
|
+
var SpacesReady = Capability.lazy("SpacesReady", () => import("./chunk-spaces-ready.mjs"));
|
|
19
|
+
var SpaceState = Capability.lazy("SpaceState", () => import("./chunk-state.mjs"));
|
|
20
|
+
var UndoMappings = Capability.lazy("UndoMappings", () => import("./chunk-undo-mappings.mjs"));
|
|
21
|
+
//#endregion
|
|
22
|
+
export { AppGraphBuilder, CreateObject, IdentityCreated, NavigationHandler, NavigationTargetResolver, OperationHandler, ReactRoot, ReactSurface, Repair, SpaceSettings, SpaceState, SpacesReady, UndoMappings, makeCreateObjectEntryForDatabaseType };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=capabilities.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.mjs","names":[],"sources":["../../src/capabilities/app-graph-builder/index.ts","../../src/capabilities/navigation-handler/index.ts","../../src/capabilities/index.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport type { NavigationHandlerOptions } from './navigation-handler';\n\nexport const NavigationHandler = Capability.lazy('NavigationHandler', () => import('./navigation-handler'));\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './app-graph-builder';\nexport { makeCreateObjectEntryForDatabaseType } from '../util';\n\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const IdentityCreated = Capability.lazy('IdentityCreated', () => import('./identity-created'));\nexport { NavigationHandler } from './navigation-handler';\nexport type { NavigationHandlerOptions } from './navigation-handler';\nexport const NavigationTargetResolver = Capability.lazy(\n 'NavigationTargetResolver',\n () => import('./navigation-target-resolver'),\n);\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactRoot = Capability.lazy('ReactRoot', () => import('./react-root'));\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const Repair = Capability.lazy('Repair', () => import('./repair'));\nexport const SpaceSettings = Capability.lazy('SpaceSettings', () => import('./settings'));\nexport const SpacesReady = Capability.lazy('SpacesReady', () => import('./spaces-ready'));\nexport const SpaceState = Capability.lazy('SpaceState', () => import('./state'));\nexport const UndoMappings = Capability.lazy('UndoMappings', () => import('./undo-mappings'));\n"],"mappings":";;;AAMA,IAAa,kBAAkB,WAAW,KAAK,yBAAyB,OAAO,gCAAsB;;;ACErG,IAAa,oBAAoB,WAAW,KAAK,2BAA2B,OAAO,iCAAuB;;;ACE1G,IAAa,eAAe,WAAW,KAAK,sBAAsB,OAAO,4BAAkB;AAC3F,IAAa,kBAAkB,WAAW,KAAK,yBAAyB,OAAO,+BAAqB;AAGpG,IAAa,2BAA2B,WAAW,KACjD,kCACM,OAAO,yCACf;AACA,IAAa,mBAAmB,WAAW,KACzC,0BACM,OAAO,gCACf,CAAA,MAAA,MAAA,EAAA,CAAA,CAAA;AACA,IAAa,YAAY,WAAW,KAAK,mBAAmB,OAAO,yBAAe;AAClF,IAAa,eAAe,WAAW,KAAK,sBAAsB,OAAO,4BAAkB;AAC3F,IAAa,SAAS,WAAW,KAAK,gBAAgB,OAAO,qBAAW;AACxE,IAAa,gBAAgB,WAAW,KAAK,uBAAuB,OAAO,uBAAa;AACxF,IAAa,cAAc,WAAW,KAAK,qBAAqB,OAAO,2BAAiB;AACxF,IAAa,aAAa,WAAW,KAAK,oBAAoB,OAAO,oBAAU;AAC/E,IAAa,eAAe,WAAW,KAAK,sBAAsB,OAAO,4BAAkB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { meta } from "#meta";
|
|
2
|
+
import { GraphPath, LayoutOperation } from "@dxos/app-toolkit";
|
|
3
|
+
import { Obj } from "@dxos/echo";
|
|
4
|
+
import { useCallback, useMemo } from "react";
|
|
5
|
+
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
6
|
+
import { Card, Icon, ScrollArea, toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
7
|
+
import { getStyles } from "@dxos/ui-theme";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { SearchPanel, useSearchListResults } from "@dxos/react-ui-search";
|
|
10
|
+
import { Mosaic } from "@dxos/react-ui-mosaic";
|
|
11
|
+
//#region src/containers/CollectionArticle/CollectionArticle.tsx
|
|
12
|
+
/**
|
|
13
|
+
* Article view for collections.
|
|
14
|
+
*/
|
|
15
|
+
var CollectionArticle = ({ subject, attendableId }) => {
|
|
16
|
+
const { t } = useTranslation(meta.profile.key);
|
|
17
|
+
const { items, handleSearch } = useCollectionItems(subject, attendableId);
|
|
18
|
+
return /* @__PURE__ */ jsx(SearchPanel, {
|
|
19
|
+
onSearch: handleSearch,
|
|
20
|
+
children: /* @__PURE__ */ jsx(Mosaic.Container, {
|
|
21
|
+
asChild: true,
|
|
22
|
+
children: /* @__PURE__ */ jsx(ScrollArea.Root, {
|
|
23
|
+
centered: true,
|
|
24
|
+
padding: true,
|
|
25
|
+
thin: true,
|
|
26
|
+
children: /* @__PURE__ */ jsx(ScrollArea.Viewport, { children: /* @__PURE__ */ jsx(Mosaic.Stack, {
|
|
27
|
+
classNames: "gap-1",
|
|
28
|
+
draggable: false,
|
|
29
|
+
items,
|
|
30
|
+
getId: (item) => item.id,
|
|
31
|
+
Tile: ObjectTile
|
|
32
|
+
}) })
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var ObjectTile = ({ data: item }) => {
|
|
38
|
+
const { t } = useTranslation(meta.profile.key);
|
|
39
|
+
const { invokePromise } = useOperationInvoker();
|
|
40
|
+
const typename = Obj.getTypename(item.object) ?? "";
|
|
41
|
+
const label = Obj.getLabel(item.object) ?? toLocalizedString(["object-name.placeholder", {
|
|
42
|
+
ns: typename,
|
|
43
|
+
defaultValue: item.id
|
|
44
|
+
}], t);
|
|
45
|
+
const styles = item.iconHue ? getStyles(item.iconHue) : void 0;
|
|
46
|
+
const handleClick = useCallback(() => void invokePromise(LayoutOperation.Open, { subject: [item.targetPath] }), [invokePromise, item.targetPath]);
|
|
47
|
+
return /* @__PURE__ */ jsx(Card.Root, {
|
|
48
|
+
fullWidth: true,
|
|
49
|
+
role: "button",
|
|
50
|
+
classNames: "cursor-pointer",
|
|
51
|
+
onClick: handleClick,
|
|
52
|
+
children: /* @__PURE__ */ jsxs(Card.Header, { children: [
|
|
53
|
+
/* @__PURE__ */ jsx(Card.Block, { children: /* @__PURE__ */ jsx(Icon, {
|
|
54
|
+
icon: item.icon,
|
|
55
|
+
classNames: styles?.fg
|
|
56
|
+
}) }),
|
|
57
|
+
/* @__PURE__ */ jsx(Card.Title, { children: label }),
|
|
58
|
+
/* @__PURE__ */ jsx(Card.Menu, {})
|
|
59
|
+
] })
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Combined hook to get collection items with search/filter support.
|
|
64
|
+
*/
|
|
65
|
+
var useCollectionItems = (collection, attendableId) => {
|
|
66
|
+
const objects = useMemo(() => (collection.objects ?? []).map((ref) => ref.target).filter((obj) => Obj.isObject(obj)), [collection.objects]);
|
|
67
|
+
const { results, handleSearch } = useSearchListResults({
|
|
68
|
+
items: useMemo(() => objects.map((obj) => {
|
|
69
|
+
const iconAnnotation = Obj.getIcon(obj);
|
|
70
|
+
const targetPath = attendableId ? GraphPath.getCollectionObjectPath(attendableId, obj.id) : GraphPath.getObjectPathFromObject(obj);
|
|
71
|
+
return {
|
|
72
|
+
id: Obj.getURI(obj),
|
|
73
|
+
object: obj,
|
|
74
|
+
targetPath,
|
|
75
|
+
icon: iconAnnotation?.icon ?? "ph--circle-dashed--regular",
|
|
76
|
+
iconHue: iconAnnotation?.hue
|
|
77
|
+
};
|
|
78
|
+
}), [objects, attendableId]),
|
|
79
|
+
extract: (item) => Obj.getLabel(item.object) ?? item.id
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
items: results,
|
|
83
|
+
handleSearch
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
CollectionArticle.displayName = "CollectionArticle";
|
|
87
|
+
//#endregion
|
|
88
|
+
export { CollectionArticle as default };
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=chunk-CollectionArticle.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-CollectionArticle.mjs","names":[],"sources":["../../src/containers/CollectionArticle/CollectionArticle.tsx"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { GraphPath, LayoutOperation } from '@dxos/app-toolkit';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Collection, Obj } from '@dxos/echo';\nimport { ScrollArea, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Card, Icon } from '@dxos/react-ui';\nimport { Mosaic, type MosaicStackTileComponent } from '@dxos/react-ui-mosaic';\nimport { SearchPanel, useSearchListResults } from '@dxos/react-ui-search';\nimport { getStyles } from '@dxos/ui-theme';\n\nimport { meta } from '#meta';\n\n/**\n * Article view for collections.\n */\nexport const CollectionArticle = ({ subject, attendableId }: AppSurface.ObjectArticleProps<Collection.Collection>) => {\n const { t } = useTranslation(meta.profile.key);\n const { items, handleSearch } = useCollectionItems(subject, attendableId);\n\n return (\n <SearchPanel onSearch={handleSearch}>\n <Mosaic.Container asChild>\n <ScrollArea.Root centered padding thin>\n <ScrollArea.Viewport>\n <Mosaic.Stack\n classNames='gap-1'\n draggable={false}\n items={items}\n getId={(item) => item.id}\n Tile={ObjectTile}\n />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Mosaic.Container>\n </SearchPanel>\n );\n};\n\ntype ObjectItem = {\n id: string;\n object: Obj.Unknown;\n targetPath: string;\n icon: string;\n iconHue?: string;\n};\n\nconst ObjectTile: MosaicStackTileComponent<ObjectItem> = ({ data: item }) => {\n const { t } = useTranslation(meta.profile.key);\n const { invokePromise } = useOperationInvoker();\n\n const typename = Obj.getTypename(item.object) ?? '';\n const label =\n Obj.getLabel(item.object) ??\n toLocalizedString(['object-name.placeholder', { ns: typename, defaultValue: item.id }], t);\n const styles = item.iconHue ? getStyles(item.iconHue) : undefined;\n\n const handleClick = useCallback(\n () => void invokePromise(LayoutOperation.Open, { subject: [item.targetPath] }),\n [invokePromise, item.targetPath],\n );\n\n return (\n <Card.Root fullWidth role='button' classNames='cursor-pointer' onClick={handleClick}>\n <Card.Header>\n <Card.Block>\n <Icon icon={item.icon} classNames={styles?.fg} />\n </Card.Block>\n <Card.Title>{label}</Card.Title>\n <Card.Menu />\n </Card.Header>\n </Card.Root>\n );\n};\n\n/**\n * Combined hook to get collection items with search/filter support.\n */\nconst useCollectionItems = (collection: Collection.Collection, attendableId?: string) => {\n const objects = useMemo(\n () => (collection.objects ?? []).map((ref) => ref.target).filter((obj): obj is Obj.Unknown => Obj.isObject(obj)),\n [collection.objects],\n );\n\n const items = useMemo(\n () =>\n objects.map((obj) => {\n const iconAnnotation = Obj.getIcon(obj);\n const targetPath = attendableId\n ? GraphPath.getCollectionObjectPath(attendableId, obj.id)\n : GraphPath.getObjectPathFromObject(obj);\n\n return {\n id: Obj.getURI(obj),\n object: obj,\n targetPath,\n icon: iconAnnotation?.icon ?? 'ph--circle-dashed--regular',\n iconHue: iconAnnotation?.hue,\n } satisfies ObjectItem;\n }),\n [objects, attendableId],\n );\n\n const { results, handleSearch } = useSearchListResults({\n items,\n extract: (item) => Obj.getLabel(item.object) ?? item.id,\n });\n\n return { items: results, handleSearch };\n};\n\nCollectionArticle.displayName = 'CollectionArticle';\n"],"mappings":";;;;;;;;;;;;;;AAqBA,IAAa,qBAAqB,EAAE,SAAS,mBAAyE;CACpH,MAAM,EAAE,MAAM,eAAe,KAAK,QAAQ,GAAG;CAC7C,MAAM,EAAE,OAAO,iBAAiB,mBAAmB,SAAS,YAAY;CAExE,OACE,oBAAC,aAAD;EAAa,UAAU;YACrB,oBAAC,OAAO,WAAR;GAAkB,SAAA;aAChB,oBAAC,WAAW,MAAZ;IAAiB,UAAA;IAAS,SAAA;IAAQ,MAAA;cAChC,oBAAC,WAAW,UAAZ,EAAA,UACE,oBAAC,OAAO,OAAR;KACE,YAAW;KACX,WAAW;KACJ;KACP,QAAQ,SAAS,KAAK;KACtB,MAAM;IACP,CAAA,EACkB,CAAA;GACN,CAAA;EACD,CAAA;CACP,CAAA;AAEjB;AAUA,IAAM,cAAoD,EAAE,MAAM,WAAW;CAC3E,MAAM,EAAE,MAAM,eAAe,KAAK,QAAQ,GAAG;CAC7C,MAAM,EAAE,kBAAkB,oBAAoB;CAE9C,MAAM,WAAW,IAAI,YAAY,KAAK,MAAM,KAAK;CACjD,MAAM,QACJ,IAAI,SAAS,KAAK,MAAM,KACxB,kBAAkB,CAAC,2BAA2B;EAAE,IAAI;EAAU,cAAc,KAAK;CAAG,CAAC,GAAG,CAAC;CAC3F,MAAM,SAAS,KAAK,UAAU,UAAU,KAAK,OAAO,IAAI,KAAA;CAExD,MAAM,cAAc,kBACZ,KAAK,cAAc,gBAAgB,MAAM,EAAE,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC,GAC7E,CAAC,eAAe,KAAK,UAAU,CACjC;CAEA,OACE,oBAAC,KAAK,MAAN;EAAW,WAAA;EAAU,MAAK;EAAS,YAAW;EAAiB,SAAS;YACtE,qBAAC,KAAK,QAAN,EAAA,UAAA;GACE,oBAAC,KAAK,OAAN,EAAA,UACE,oBAAC,MAAD;IAAM,MAAM,KAAK;IAAM,YAAY,QAAQ;GAAK,CAAA,EACtC,CAAA;GACZ,oBAAC,KAAK,OAAN,EAAA,UAAa,MAAkB,CAAA;GAC/B,oBAAC,KAAK,MAAN,CAAY,CAAA;EACD,EAAA,CAAA;CACJ,CAAA;AAEf;;;;AAKA,IAAM,sBAAsB,YAAmC,iBAA0B;CACvF,MAAM,UAAU,eACP,WAAW,WAAW,CAAC,EAAA,CAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,QAAQ,QAA4B,IAAI,SAAS,GAAG,CAAC,GAC/G,CAAC,WAAW,OAAO,CACrB;CAqBA,MAAM,EAAE,SAAS,iBAAiB,qBAAqB;EACrD,OApBY,cAEV,QAAQ,KAAK,QAAQ;GACnB,MAAM,iBAAiB,IAAI,QAAQ,GAAG;GACtC,MAAM,aAAa,eACf,UAAU,wBAAwB,cAAc,IAAI,EAAE,IACtD,UAAU,wBAAwB,GAAG;GAEzC,OAAO;IACL,IAAI,IAAI,OAAO,GAAG;IAClB,QAAQ;IACR;IACA,MAAM,gBAAgB,QAAQ;IAC9B,SAAS,gBAAgB;GAC3B;EACF,CAAC,GACH,CAAC,SAAS,YAAY,CAItB;EACA,UAAU,SAAS,IAAI,SAAS,KAAK,MAAM,KAAK,KAAK;CACvD,CAAC;CAED,OAAO;EAAE,OAAO;EAAS;CAAa;AACxC;AAEA,kBAAkB,cAAc"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { meta } from "#meta";
|
|
2
|
+
import "react";
|
|
3
|
+
import { useTranslation } from "@dxos/react-ui";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/containers/CollectionSection/CollectionSection.tsx
|
|
6
|
+
var CollectionSection = ({ role, subject }) => {
|
|
7
|
+
const { t } = useTranslation(meta.profile.key);
|
|
8
|
+
return /* @__PURE__ */ jsx("div", {
|
|
9
|
+
role,
|
|
10
|
+
className: "min-h-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center",
|
|
11
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
12
|
+
className: "truncate",
|
|
13
|
+
children: subject.name ?? t("unnamed-collection.label")
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
CollectionSection.displayName = "CollectionSection";
|
|
18
|
+
//#endregion
|
|
19
|
+
export { CollectionSection as default };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=chunk-CollectionSection.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-CollectionSection.mjs","names":[],"sources":["../../src/containers/CollectionSection/CollectionSection.tsx"],"sourcesContent":["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Collection } from '@dxos/echo';\nimport { useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\nexport type CollectionSectionProps = AppSurface.ObjectSectionProps<Collection.Collection>;\n\nexport const CollectionSection = ({ role, subject }: CollectionSectionProps) => {\n const { t } = useTranslation(meta.profile.key);\n\n // TODO(wittjosiah): Better placeholder.\n return (\n <div role={role} className='min-h-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center'>\n <span className='truncate'>{subject.name ?? t('unnamed-collection.label')}</span>\n </div>\n );\n};\n\nCollectionSection.displayName = 'CollectionSection';\n"],"mappings":";;;;;AAcA,IAAa,qBAAqB,EAAE,MAAM,cAAsC;CAC9E,MAAM,EAAE,MAAM,eAAe,KAAK,QAAQ,GAAG;CAG7C,OACE,oBAAC,OAAD;EAAW;EAAM,WAAU;YACzB,oBAAC,QAAD;GAAM,WAAU;aAAY,QAAQ,QAAQ,EAAE,0BAA0B;EAAQ,CAAA;CAC7E,CAAA;AAET;AAEA,kBAAkB,cAAc"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { n as getSpaceDisplayName } from "./chunk-util.mjs";
|
|
2
|
+
import { Capability } from "@dxos/app-framework";
|
|
3
|
+
import { meta } from "#meta";
|
|
4
|
+
import { AppSpace, LayoutOperation, TypeOptions } from "@dxos/app-toolkit";
|
|
5
|
+
import * as Effect from "effect/Effect";
|
|
6
|
+
import { Operation } from "@dxos/compute";
|
|
7
|
+
import { Annotation, Collection, Database, Obj, Type } from "@dxos/echo";
|
|
8
|
+
import { CollectionItemAnnotation, ViewAnnotation } from "@dxos/schema";
|
|
9
|
+
import { makeCreateObjectEntryForDatabaseType } from "#capabilities";
|
|
10
|
+
import { SpaceCapabilities } from "#types";
|
|
11
|
+
import * as Option from "effect/Option";
|
|
12
|
+
import { EffectEx } from "@dxos/effect";
|
|
13
|
+
import { invariant } from "@dxos/invariant";
|
|
14
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
15
|
+
import { useOperationInvoker, usePluginManager } from "@dxos/app-framework/ui";
|
|
16
|
+
import { PluginRegistryButton } from "@dxos/app-toolkit/ui";
|
|
17
|
+
import { useQuery } from "@dxos/echo-react";
|
|
18
|
+
import { useClient } from "@dxos/react-client";
|
|
19
|
+
import { useSpaces } from "@dxos/react-client/echo";
|
|
20
|
+
import { Dialog, toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
import { CreateObjectPanel } from "#components";
|
|
23
|
+
import { useAtomValue } from "@effect-atom/atom-react";
|
|
24
|
+
//#region src/containers/CreateObjectDialog/CreateObjectDialog.tsx
|
|
25
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/containers/CreateObjectDialog/CreateObjectDialog.tsx";
|
|
26
|
+
`${meta.profile.key}`;
|
|
27
|
+
var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, views, initialFormValues, onCreateObject, shouldNavigate: _shouldNavigate, targetNodeId }) => {
|
|
28
|
+
const { t } = useTranslation(meta.profile.key);
|
|
29
|
+
const manager = usePluginManager();
|
|
30
|
+
const operationInvoker = useOperationInvoker();
|
|
31
|
+
const { invoke } = operationInvoker;
|
|
32
|
+
const [target, setTarget] = useState(initialTarget);
|
|
33
|
+
const [typename, setTypename] = useState(initialTypename);
|
|
34
|
+
const client = useClient();
|
|
35
|
+
const spaces = useSpaces();
|
|
36
|
+
const closeRef = useRef(null);
|
|
37
|
+
const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
|
|
38
|
+
const allTypes = useQuery(db, TypeOptions.allTypesQuery);
|
|
39
|
+
const space = useMemo(() => spaces.find((s) => s.db === db), [spaces, db]);
|
|
40
|
+
const spaceLabel = useMemo(() => space && toLocalizedString(getSpaceDisplayName(space, { personal: space.id === AppSpace.getPersonalSpace(client)?.id }), t), [
|
|
41
|
+
space,
|
|
42
|
+
client,
|
|
43
|
+
t
|
|
44
|
+
]);
|
|
45
|
+
const typeByTypename = useMemo(() => {
|
|
46
|
+
const map = /* @__PURE__ */ new Map();
|
|
47
|
+
for (const type of allTypes) map.set(Type.getTypename(type), type);
|
|
48
|
+
return map;
|
|
49
|
+
}, [allTypes]);
|
|
50
|
+
const entriesByModule = useAtomValue(manager.capabilities.atomByModule(SpaceCapabilities.CreateObjectEntry));
|
|
51
|
+
const { capabilityEntries, pluginNameByEntryId } = useMemo(() => {
|
|
52
|
+
const entries = [];
|
|
53
|
+
const pluginByEntryId = /* @__PURE__ */ new Map();
|
|
54
|
+
const plugins = manager.getPlugins();
|
|
55
|
+
for (const [moduleId, contributions] of Object.entries(entriesByModule)) {
|
|
56
|
+
const owningPlugin = plugins.find((plugin) => plugin.modules.some((module) => module.id === moduleId));
|
|
57
|
+
for (const entry of contributions) {
|
|
58
|
+
entries.push(entry);
|
|
59
|
+
if (owningPlugin) pluginByEntryId.set(entry.id, owningPlugin.meta.profile.name);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
capabilityEntries: entries,
|
|
64
|
+
pluginNameByEntryId: pluginByEntryId
|
|
65
|
+
};
|
|
66
|
+
}, [entriesByModule, manager]);
|
|
67
|
+
const createObjectEntries = useMemo(() => {
|
|
68
|
+
const registeredIds = new Set(capabilityEntries.map((e) => e.id));
|
|
69
|
+
const dbEntries = allTypes.filter((type) => Type.isObject(type) && Type.getDatabase(type) != null).filter((type) => !registeredIds.has(Type.getTypename(type))).map((type) => makeCreateObjectEntryForDatabaseType(type));
|
|
70
|
+
return [...capabilityEntries, ...dbEntries];
|
|
71
|
+
}, [capabilityEntries, allTypes]);
|
|
72
|
+
const resolve = useCallback((id) => createObjectEntries.find((entry) => entry.id === id), [createObjectEntries]);
|
|
73
|
+
const showTypeSelector = !(typename && resolve(typename));
|
|
74
|
+
const viewTypenames = useMemo(() => {
|
|
75
|
+
const set = /* @__PURE__ */ new Set();
|
|
76
|
+
for (const [name, type] of typeByTypename) if (ViewAnnotation.has(type)) set.add(name);
|
|
77
|
+
return set;
|
|
78
|
+
}, [typeByTypename]);
|
|
79
|
+
const collectionItemTypenames = useMemo(() => {
|
|
80
|
+
const set = /* @__PURE__ */ new Set();
|
|
81
|
+
const collectionTypename = Type.getTypename(Collection.Collection);
|
|
82
|
+
for (const [name, type] of typeByTypename) if (name === collectionTypename || CollectionItemAnnotation.get(Type.getSchema(type)).pipe(Option.getOrElse(() => false))) set.add(name);
|
|
83
|
+
return set;
|
|
84
|
+
}, [typeByTypename]);
|
|
85
|
+
const collectionTarget = Collection.isCollection(target);
|
|
86
|
+
const options = useMemo(() => createObjectEntries.filter((entry) => views === true ? viewTypenames.has(entry.id) : collectionTarget ? collectionItemTypenames.has(entry.id) : true).map((entry) => {
|
|
87
|
+
const type = typeByTypename.get(entry.id);
|
|
88
|
+
const schema = type && Type.getSchema(type);
|
|
89
|
+
const iconAnnotation = schema ? Annotation.IconAnnotation.get(schema).pipe(Option.getOrUndefined) : void 0;
|
|
90
|
+
const isDatabase = type ? Type.getDatabase(type) != null : false;
|
|
91
|
+
return {
|
|
92
|
+
id: entry.id,
|
|
93
|
+
label: (isDatabase && type ? Type.getLabel(type) : void 0) ?? t("typename.label", {
|
|
94
|
+
ns: entry.id,
|
|
95
|
+
defaultValue: entry.id
|
|
96
|
+
}),
|
|
97
|
+
icon: iconAnnotation?.icon,
|
|
98
|
+
iconHue: iconAnnotation?.hue,
|
|
99
|
+
plugin: pluginNameByEntryId.get(entry.id),
|
|
100
|
+
description: isDatabase ? spaceLabel : void 0
|
|
101
|
+
};
|
|
102
|
+
}), [
|
|
103
|
+
createObjectEntries,
|
|
104
|
+
views,
|
|
105
|
+
viewTypenames,
|
|
106
|
+
collectionTarget,
|
|
107
|
+
collectionItemTypenames,
|
|
108
|
+
typeByTypename,
|
|
109
|
+
t,
|
|
110
|
+
pluginNameByEntryId,
|
|
111
|
+
spaceLabel
|
|
112
|
+
]);
|
|
113
|
+
const handleCreateObject = useCallback(({ metadata, data = {} }) => Effect.gen(function* () {
|
|
114
|
+
if (!target) return;
|
|
115
|
+
closeRef.current?.click();
|
|
116
|
+
const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
|
|
117
|
+
invariant(db, "Missing database", {
|
|
118
|
+
"~LogMeta": "~LogMeta",
|
|
119
|
+
F: __dxlog_file,
|
|
120
|
+
L: 199,
|
|
121
|
+
S: this,
|
|
122
|
+
A: ["db", "'Missing database'"]
|
|
123
|
+
});
|
|
124
|
+
const result = yield* metadata.createObject(data, {
|
|
125
|
+
db,
|
|
126
|
+
target,
|
|
127
|
+
targetNodeId
|
|
128
|
+
});
|
|
129
|
+
const shouldNavigate = _shouldNavigate ?? (() => true);
|
|
130
|
+
if (result.subject.length > 0 && shouldNavigate(result.object)) {
|
|
131
|
+
yield* invoke(LayoutOperation.Open, {
|
|
132
|
+
subject: [...result.subject],
|
|
133
|
+
navigation: "immediate"
|
|
134
|
+
});
|
|
135
|
+
yield* invoke(LayoutOperation.Expose, { subject: result.subject[0] });
|
|
136
|
+
}
|
|
137
|
+
onCreateObject?.(result.object);
|
|
138
|
+
}).pipe(Effect.provideService(Capability.Service, manager.capabilities), Effect.provideService(Operation.Service, operationInvoker), EffectEx.runAndForwardErrors), [
|
|
139
|
+
target,
|
|
140
|
+
_shouldNavigate,
|
|
141
|
+
onCreateObject,
|
|
142
|
+
manager.capabilities,
|
|
143
|
+
invoke
|
|
144
|
+
]);
|
|
145
|
+
return /* @__PURE__ */ jsxs(Dialog.Content, { children: [
|
|
146
|
+
/* @__PURE__ */ jsxs(Dialog.Header, { children: [/* @__PURE__ */ jsx(Dialog.Title, { children: t("create-object-dialog.title", { object: t("typename.label", {
|
|
147
|
+
ns: typename,
|
|
148
|
+
defaultValue: views ? "View" : "Object"
|
|
149
|
+
}) }) }), /* @__PURE__ */ jsx(Dialog.Close, {
|
|
150
|
+
asChild: true,
|
|
151
|
+
children: /* @__PURE__ */ jsx(Dialog.ActionIconButton, {
|
|
152
|
+
action: "close",
|
|
153
|
+
ref: closeRef
|
|
154
|
+
})
|
|
155
|
+
})] }),
|
|
156
|
+
/* @__PURE__ */ jsx(Dialog.Body, { children: /* @__PURE__ */ jsx(CreateObjectPanel, {
|
|
157
|
+
options,
|
|
158
|
+
spaces,
|
|
159
|
+
target,
|
|
160
|
+
typename,
|
|
161
|
+
initialFormValues,
|
|
162
|
+
defaultSpaceId: AppSpace.getPersonalSpace(client)?.id ?? client.spaces.get()[0]?.id,
|
|
163
|
+
resolve,
|
|
164
|
+
onCreateObject: handleCreateObject,
|
|
165
|
+
onTargetChange: setTarget,
|
|
166
|
+
onTypenameChange: setTypename
|
|
167
|
+
}) }),
|
|
168
|
+
showTypeSelector && /* @__PURE__ */ jsx(Dialog.ActionBar, { children: /* @__PURE__ */ jsx(Dialog.Close, {
|
|
169
|
+
asChild: true,
|
|
170
|
+
children: /* @__PURE__ */ jsx(PluginRegistryButton, {})
|
|
171
|
+
}) })
|
|
172
|
+
] });
|
|
173
|
+
};
|
|
174
|
+
CreateObjectDialog.displayName = "CreateObjectDialog";
|
|
175
|
+
//#endregion
|
|
176
|
+
export { CreateObjectDialog, CreateObjectDialog as default };
|
|
177
|
+
|
|
178
|
+
//# sourceMappingURL=chunk-CreateObjectDialog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-CreateObjectDialog.mjs","names":[],"sources":["../../src/containers/CreateObjectDialog/CreateObjectDialog.tsx"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Capability } from '@dxos/app-framework';\nimport { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';\nimport { AppSpace, LayoutOperation, TypeOptions } from '@dxos/app-toolkit';\nimport { PluginRegistryButton } from '@dxos/app-toolkit/ui';\nimport { Operation } from '@dxos/compute';\nimport { Annotation, Collection, Database, Obj, Type } from '@dxos/echo';\nimport { useQuery } from '@dxos/echo-react';\nimport { EffectEx } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { useSpaces } from '@dxos/react-client/echo';\nimport { Dialog, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { CollectionItemAnnotation, ViewAnnotation } from '@dxos/schema';\n\nimport { makeCreateObjectEntryForDatabaseType } from '#capabilities';\nimport { type CreateObjectOption, CreateObjectPanel, type CreateObjectPanelProps } from '#components';\nimport { meta } from '#meta';\nimport { SpaceCapabilities } from '#types';\n\nimport { getSpaceDisplayName } from '../../util';\n\nexport const CREATE_OBJECT_DIALOG = `${meta.profile.key}.CreateObjectDialog`;\n\nexport type CreateObjectDialogProps = Pick<CreateObjectPanelProps, 'target' | 'typename' | 'initialFormValues'> & {\n views?: boolean;\n onCreateObject?: (object: Obj.Unknown) => void;\n shouldNavigate?: (object: Obj.Unknown) => boolean;\n targetNodeId?: string;\n};\n\nexport const CreateObjectDialog = ({\n target: initialTarget,\n typename: initialTypename,\n views,\n initialFormValues,\n onCreateObject,\n shouldNavigate: _shouldNavigate,\n targetNodeId,\n}: CreateObjectDialogProps) => {\n const { t } = useTranslation(meta.profile.key);\n const manager = usePluginManager();\n const operationInvoker = useOperationInvoker();\n const { invoke } = operationInvoker;\n const [target, setTarget] = useState<Database.Database | Collection.Collection | undefined>(initialTarget);\n const [typename, setTypename] = useState<string | undefined>(initialTypename);\n const client = useClient();\n const spaces = useSpaces();\n const closeRef = useRef<HTMLButtonElement | null>(null);\n\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n const allTypes = useQuery(db, TypeOptions.allTypesQuery);\n const space = useMemo(() => spaces.find((s) => s.db === db), [spaces, db]);\n const spaceLabel = useMemo(\n () =>\n space &&\n toLocalizedString(\n getSpaceDisplayName(space, { personal: space.id === AppSpace.getPersonalSpace(client)?.id }),\n t,\n ),\n [space, client, t],\n );\n\n // Index all types by typename for label/icon lookups.\n const typeByTypename = useMemo(() => {\n const map = new Map<string, Type.AnyEntity>();\n for (const type of allTypes) {\n map.set(Type.getTypename(type), type);\n }\n return map;\n }, [allTypes]);\n\n const entriesByModule = useAtomValue(manager.capabilities.atomByModule(SpaceCapabilities.CreateObjectEntry));\n\n const { capabilityEntries, pluginNameByEntryId } = useMemo(() => {\n const entries: SpaceCapabilities.CreateObjectEntry[] = [];\n const pluginByEntryId = new Map<string, string>();\n const plugins = manager.getPlugins();\n for (const [moduleId, contributions] of Object.entries(entriesByModule)) {\n const owningPlugin = plugins.find((plugin) => plugin.modules.some((module) => module.id === moduleId));\n for (const entry of contributions) {\n entries.push(entry);\n if (owningPlugin) {\n pluginByEntryId.set(entry.id, owningPlugin.meta.profile.name);\n }\n }\n }\n return { capabilityEntries: entries, pluginNameByEntryId: pluginByEntryId };\n }, [entriesByModule, manager]);\n\n // Synthesize entries for database-persisted object schemas that have no registered capability.\n const createObjectEntries = useMemo(() => {\n const registeredIds = new Set(capabilityEntries.map((e) => e.id));\n // allTypesQuery returns meta-schema entities which may be any entity kind at runtime,\n // but the query's TypeScript type is conservatively AnyType[]; widen to enable kind narrowing below.\n const dbEntries = (allTypes as Type.AnyEntity[])\n .filter((type): type is Type.AnyObj => Type.isObject(type) && Type.getDatabase(type) != null)\n .filter((type) => !registeredIds.has(Type.getTypename(type)))\n .map((type) => makeCreateObjectEntryForDatabaseType(type));\n return [...capabilityEntries, ...dbEntries];\n }, [capabilityEntries, allTypes]);\n\n const resolve = useCallback<NonNullable<CreateObjectPanelProps['resolve']>>(\n (id) => createObjectEntries.find((entry) => entry.id === id),\n [createObjectEntries],\n );\n\n // The type selector is shown while no type has been resolved; the registry button is only relevant then.\n const showTypeSelector = !(typename && resolve(typename));\n\n const viewTypenames = useMemo(() => {\n const set = new Set<string>();\n for (const [name, type] of typeByTypename) {\n if (ViewAnnotation.has(type)) {\n set.add(name);\n }\n }\n return set;\n }, [typeByTypename]);\n\n // Types eligible to live inside a collection: collections themselves, plus types carrying\n // CollectionItemAnnotation. Used to filter the create dialog when targeting a collection.\n const collectionItemTypenames = useMemo(() => {\n const set = new Set<string>();\n const collectionTypename = Type.getTypename(Collection.Collection);\n for (const [name, type] of typeByTypename) {\n if (\n name === collectionTypename ||\n CollectionItemAnnotation.get(Type.getSchema(type)).pipe(Option.getOrElse(() => false))\n ) {\n set.add(name);\n }\n }\n return set;\n }, [typeByTypename]);\n\n // When creating into a collection, offer only collection-eligible types (mirrors the `views` filter).\n const collectionTarget = Collection.isCollection(target);\n\n const options = useMemo<CreateObjectOption[]>(\n () =>\n createObjectEntries\n .filter((entry) =>\n views === true\n ? viewTypenames.has(entry.id)\n : collectionTarget\n ? collectionItemTypenames.has(entry.id)\n : true,\n )\n .map((entry) => {\n const type = typeByTypename.get(entry.id);\n const schema = type && Type.getSchema(type);\n const iconAnnotation = schema ? Annotation.IconAnnotation.get(schema).pipe(Option.getOrUndefined) : undefined;\n const isDatabase = type ? Type.getDatabase(type) != null : false;\n return {\n id: entry.id,\n label:\n (isDatabase && type ? Type.getLabel(type) : undefined) ??\n t('typename.label', { ns: entry.id, defaultValue: entry.id }),\n icon: iconAnnotation?.icon,\n iconHue: iconAnnotation?.hue,\n plugin: pluginNameByEntryId.get(entry.id),\n description: isDatabase ? spaceLabel : undefined,\n };\n }),\n [\n createObjectEntries,\n views,\n viewTypenames,\n collectionTarget,\n collectionItemTypenames,\n typeByTypename,\n t,\n pluginNameByEntryId,\n spaceLabel,\n ],\n );\n\n const handleCreateObject = useCallback<NonNullable<CreateObjectPanelProps['onCreateObject']>>(\n ({ metadata, data = {} }) =>\n Effect.gen(function* () {\n if (!target) {\n // TODO(wittjosiah): UI feedback.\n return;\n }\n\n // NOTE: Must close before navigating or attention won't follow object.\n closeRef.current?.click();\n\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n invariant(db, 'Missing database');\n const result = yield* metadata.createObject(data, { db, target, targetNodeId });\n const shouldNavigate = _shouldNavigate ?? (() => true);\n if (result.subject.length > 0 && shouldNavigate(result.object)) {\n yield* invoke(LayoutOperation.Open, {\n subject: [...result.subject],\n navigation: 'immediate',\n });\n yield* invoke(LayoutOperation.Expose, {\n subject: result.subject[0],\n });\n }\n\n onCreateObject?.(result.object);\n }).pipe(\n Effect.provideService(Capability.Service, manager.capabilities),\n Effect.provideService(Operation.Service, operationInvoker),\n EffectEx.runAndForwardErrors,\n ),\n [target, _shouldNavigate, onCreateObject, manager.capabilities, invoke],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>\n {t('create-object-dialog.title', {\n object: t('typename.label', { ns: typename, defaultValue: views ? 'View' : 'Object' }),\n })}\n </Dialog.Title>\n <Dialog.Close asChild>\n <Dialog.ActionIconButton action='close' ref={closeRef} />\n </Dialog.Close>\n </Dialog.Header>\n <Dialog.Body>\n <CreateObjectPanel\n options={options}\n spaces={spaces}\n target={target}\n typename={typename}\n initialFormValues={initialFormValues}\n defaultSpaceId={AppSpace.getPersonalSpace(client)?.id ?? client.spaces.get()[0]?.id}\n resolve={resolve}\n onCreateObject={handleCreateObject}\n onTargetChange={setTarget}\n onTypenameChange={setTypename}\n />\n </Dialog.Body>\n {showTypeSelector && (\n <Dialog.ActionBar>\n <Dialog.Close asChild>\n <PluginRegistryButton />\n </Dialog.Close>\n </Dialog.ActionBar>\n )}\n </Dialog.Content>\n );\n};\n\nCreateObjectDialog.displayName = 'CreateObjectDialog';\n"],"mappings":"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"}
|