@dxos/plugin-space 0.8.1-staging.391c573 → 0.8.1-staging.5be625a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{app-graph-builder-MGK5HWPZ.mjs → app-graph-builder-VHO33TWC.mjs} +5 -5
- package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs → app-graph-serializer-F3ASSBHI.mjs} +7 -7
- package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs.map → app-graph-serializer-F3ASSBHI.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-23RVI5FZ.mjs → chunk-3UOTYBKX.mjs} +9 -8
- package/dist/lib/browser/{chunk-23RVI5FZ.mjs.map → chunk-3UOTYBKX.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-OWVFWTX4.mjs → chunk-4CTAR2NQ.mjs} +20 -21
- package/dist/lib/browser/chunk-4CTAR2NQ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ULA2UQJ4.mjs → chunk-HSC56GUH.mjs} +6 -62
- package/dist/lib/browser/chunk-HSC56GUH.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NU7WDVGN.mjs → chunk-O7LODPTY.mjs} +2 -2
- package/dist/lib/browser/{chunk-PQXZCNAU.mjs → chunk-PTKYMZWO.mjs} +1 -1
- package/dist/lib/browser/chunk-PTKYMZWO.mjs.map +7 -0
- package/dist/lib/browser/{chunk-UDWHTKB5.mjs → chunk-RZ7IWZW3.mjs} +6 -8
- package/dist/lib/browser/chunk-RZ7IWZW3.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-FYGS6TBH.mjs → identity-created-YSJQAFUZ.mjs} +3 -3
- package/dist/lib/browser/index.mjs +6 -12
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-7PY5WDYC.mjs → intent-resolver-OQ243G6B.mjs} +11 -9
- package/dist/lib/browser/{intent-resolver-7PY5WDYC.mjs.map → intent-resolver-OQ243G6B.mjs.map} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-EP4XP4IK.mjs → react-root-5CIQKAFC.mjs} +6 -6
- package/dist/lib/browser/{react-surface-VNNI5POA.mjs → react-surface-SEBYKQD5.mjs} +9 -8
- package/dist/lib/browser/react-surface-SEBYKQD5.mjs.map +7 -0
- package/dist/lib/browser/{schema-5W3DSY2E.mjs → schema-UOCBWGA4.mjs} +3 -3
- package/dist/lib/browser/{settings-PHPCXX33.mjs → settings-C4ZEZTJF.mjs} +3 -3
- package/dist/lib/browser/{spaces-ready-K47RR7N2.mjs → spaces-ready-EWHXCOBW.mjs} +5 -5
- package/dist/lib/browser/{state-INJ63O57.mjs → state-BUM7SQUV.mjs} +3 -3
- package/dist/lib/browser/types/index.mjs +2 -10
- package/dist/lib/node/{app-graph-builder-ZIUBXRPA.cjs → app-graph-builder-DFCMCAMT.cjs} +45 -45
- package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs → app-graph-serializer-7O35O6SV.cjs} +21 -21
- package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs.map → app-graph-serializer-7O35O6SV.cjs.map} +2 -2
- package/dist/lib/node/{chunk-WZR6OAN3.cjs → chunk-6P2DB4QQ.cjs} +4 -4
- package/dist/lib/node/{chunk-WZR6OAN3.cjs.map → chunk-6P2DB4QQ.cjs.map} +2 -2
- package/dist/lib/node/{chunk-U6DYXAR3.cjs → chunk-FOYDT2Z3.cjs} +11 -13
- package/dist/lib/node/chunk-FOYDT2Z3.cjs.map +7 -0
- package/dist/lib/node/{chunk-YZKNRFHU.cjs → chunk-GRM6AGWI.cjs} +10 -10
- package/dist/lib/node/{chunk-OVGKWJOC.cjs → chunk-K3HRT4CT.cjs} +60 -59
- package/dist/lib/node/{chunk-OVGKWJOC.cjs.map → chunk-K3HRT4CT.cjs.map} +3 -3
- package/dist/lib/node/{chunk-53J7HLYX.cjs → chunk-LRW6ZBDX.cjs} +78 -78
- package/dist/lib/node/chunk-LRW6ZBDX.cjs.map +7 -0
- package/dist/lib/node/{chunk-WAJKBO3J.cjs → chunk-MFVXBJQJ.cjs} +11 -71
- package/dist/lib/node/chunk-MFVXBJQJ.cjs.map +7 -0
- package/dist/lib/node/{identity-created-AXI64BLE.cjs → identity-created-YNPY3SHI.cjs} +7 -7
- package/dist/lib/node/index.cjs +93 -99
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-QEIKJ5FR.cjs → intent-resolver-G5CNUJCN.cjs} +71 -69
- package/dist/lib/node/{intent-resolver-QEIKJ5FR.cjs.map → intent-resolver-G5CNUJCN.cjs.map} +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-OW5NTN2U.cjs → react-root-GUOHMGWR.cjs} +12 -12
- package/dist/lib/node/{react-surface-JTIQUBHB.cjs → react-surface-NDV3KMWF.cjs} +62 -61
- package/dist/lib/node/react-surface-NDV3KMWF.cjs.map +7 -0
- package/dist/lib/node/{schema-YN7WVFRX.cjs → schema-EERAOETL.cjs} +7 -7
- package/dist/lib/node/{settings-5QYFWNH7.cjs → settings-JS6D6VHU.cjs} +8 -8
- package/dist/lib/node/{spaces-ready-FQNAKR7G.cjs → spaces-ready-WNOF2MAQ.cjs} +14 -14
- package/dist/lib/node/{state-57UE3DYE.cjs → state-AIETH3DE.cjs} +8 -8
- package/dist/lib/node/types/index.cjs +13 -21
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/{app-graph-builder-TERVM2SL.mjs → app-graph-builder-3VUKZI7U.mjs} +5 -5
- package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs → app-graph-serializer-PM4PTZK6.mjs} +7 -7
- package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs.map → app-graph-serializer-PM4PTZK6.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-FDVNOFE3.mjs → chunk-5YP3LY6A.mjs} +20 -21
- package/dist/lib/node-esm/chunk-5YP3LY6A.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PGH5L7MV.mjs → chunk-A4XT5SLD.mjs} +9 -8
- package/dist/lib/node-esm/{chunk-PGH5L7MV.mjs.map → chunk-A4XT5SLD.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-6RSVVEPS.mjs → chunk-AJ4IZAKT.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-TRNZQEEN.mjs → chunk-B6QDEMFR.mjs} +6 -62
- package/dist/lib/node-esm/chunk-B6QDEMFR.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs → chunk-MSWEFAPD.mjs} +1 -1
- package/dist/lib/node-esm/chunk-MSWEFAPD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2TQ2AJEZ.mjs → chunk-YA6FCGDI.mjs} +6 -8
- package/dist/lib/node-esm/chunk-YA6FCGDI.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs → identity-created-SEMQDDNJ.mjs} +3 -3
- package/dist/lib/node-esm/index.mjs +6 -12
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-7EYVRN3R.mjs → intent-resolver-YMFEX5XN.mjs} +11 -9
- package/dist/lib/node-esm/{intent-resolver-7EYVRN3R.mjs.map → intent-resolver-YMFEX5XN.mjs.map} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-RCKGZSZB.mjs → react-root-ROENLKSY.mjs} +6 -6
- package/dist/lib/node-esm/{react-surface-WKKBE5V4.mjs → react-surface-OLDKADHX.mjs} +9 -8
- package/dist/lib/node-esm/react-surface-OLDKADHX.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-LOR2EVGY.mjs → schema-LOOOBN6J.mjs} +3 -3
- package/dist/lib/node-esm/{settings-H6MXTEQM.mjs → settings-B2AS4EGA.mjs} +3 -3
- package/dist/lib/node-esm/{spaces-ready-HKAQG5SA.mjs → spaces-ready-2SKD2XCY.mjs} +5 -5
- package/dist/lib/node-esm/{state-VYA6OFHD.mjs → state-DWUAP6MH.mjs} +3 -3
- package/dist/lib/node-esm/types/index.mjs +2 -10
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -5
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +5 -12
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +90 -197
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +2 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +42 -42
- package/src/SpacePlugin.tsx +0 -1
- package/src/capabilities/app-graph-serializer.ts +2 -2
- package/src/capabilities/intent-resolver.ts +3 -1
- package/src/capabilities/react-surface.tsx +3 -2
- package/src/components/BaseObjectSettings.tsx +3 -1
- package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -6
- package/src/components/PopoverRenameObject.tsx +1 -1
- package/src/meta.ts +2 -2
- package/src/translations.ts +2 -4
- package/src/types/thread.ts +2 -56
- package/src/types/types.ts +3 -0
- package/src/util.tsx +1 -2
- package/dist/lib/browser/chunk-OWVFWTX4.mjs.map +0 -7
- package/dist/lib/browser/chunk-PQXZCNAU.mjs.map +0 -7
- package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +0 -7
- package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +0 -7
- package/dist/lib/browser/react-surface-VNNI5POA.mjs.map +0 -7
- package/dist/lib/node/chunk-53J7HLYX.cjs.map +0 -7
- package/dist/lib/node/chunk-U6DYXAR3.cjs.map +0 -7
- package/dist/lib/node/chunk-WAJKBO3J.cjs.map +0 -7
- package/dist/lib/node/react-surface-JTIQUBHB.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FDVNOFE3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ICCM4YRJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-WKKBE5V4.mjs.map +0 -7
- /package/dist/lib/browser/{app-graph-builder-MGK5HWPZ.mjs.map → app-graph-builder-VHO33TWC.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-NU7WDVGN.mjs.map → chunk-O7LODPTY.mjs.map} +0 -0
- /package/dist/lib/browser/{identity-created-FYGS6TBH.mjs.map → identity-created-YSJQAFUZ.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-EP4XP4IK.mjs.map → react-root-5CIQKAFC.mjs.map} +0 -0
- /package/dist/lib/browser/{schema-5W3DSY2E.mjs.map → schema-UOCBWGA4.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-PHPCXX33.mjs.map → settings-C4ZEZTJF.mjs.map} +0 -0
- /package/dist/lib/browser/{spaces-ready-K47RR7N2.mjs.map → spaces-ready-EWHXCOBW.mjs.map} +0 -0
- /package/dist/lib/browser/{state-INJ63O57.mjs.map → state-BUM7SQUV.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-builder-ZIUBXRPA.cjs.map → app-graph-builder-DFCMCAMT.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-YZKNRFHU.cjs.map → chunk-GRM6AGWI.cjs.map} +0 -0
- /package/dist/lib/node/{identity-created-AXI64BLE.cjs.map → identity-created-YNPY3SHI.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-OW5NTN2U.cjs.map → react-root-GUOHMGWR.cjs.map} +0 -0
- /package/dist/lib/node/{schema-YN7WVFRX.cjs.map → schema-EERAOETL.cjs.map} +0 -0
- /package/dist/lib/node/{settings-5QYFWNH7.cjs.map → settings-JS6D6VHU.cjs.map} +0 -0
- /package/dist/lib/node/{spaces-ready-FQNAKR7G.cjs.map → spaces-ready-WNOF2MAQ.cjs.map} +0 -0
- /package/dist/lib/node/{state-57UE3DYE.cjs.map → state-AIETH3DE.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-builder-TERVM2SL.mjs.map → app-graph-builder-3VUKZI7U.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-6RSVVEPS.mjs.map → chunk-AJ4IZAKT.mjs.map} +0 -0
- /package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs.map → identity-created-SEMQDDNJ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-RCKGZSZB.mjs.map → react-root-ROENLKSY.mjs.map} +0 -0
- /package/dist/lib/node-esm/{schema-LOR2EVGY.mjs.map → schema-LOOOBN6J.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-H6MXTEQM.mjs.map → settings-B2AS4EGA.mjs.map} +0 -0
- /package/dist/lib/node-esm/{spaces-ready-HKAQG5SA.mjs.map → spaces-ready-2SKD2XCY.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-VYA6OFHD.mjs.map → state-DWUAP6MH.mjs.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, type PromiseIntentDispatcher, LayoutAction } from '@dxos/app-framework';\nimport { EXPANDO_TYPENAME, getObjectAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSchema, isReactiveObject, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n cleanup,\n getGraph,\n memoize,\n type ActionData,\n type Graph,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n Filter,\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n isSpace,\n SpaceState,\n type Echo,\n type FilterSource,\n type Query,\n type QueryOptions,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const SPACE_TYPE = 'dxos.org/type/Space';\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst EMPTY_ARRAY: never[] = [];\n\n/**\n *\n * @param spaceOrEcho\n * @param filter\n * @param options\n * @returns\n */\nexport const memoizeQuery = <T extends ReactiveEchoObject<any>>(\n spaceOrEcho?: Space | Echo,\n filter?: FilterSource<T>,\n options?: QueryOptions,\n): T[] => {\n const key = JSON.stringify({\n space: isSpace(spaceOrEcho) ? spaceOrEcho.id : undefined,\n filter: Filter.from(filter).toProto(),\n });\n\n const query = memoize(\n () =>\n isSpace(spaceOrEcho)\n ? spaceOrEcho.db.query(filter, options)\n : (spaceOrEcho?.query(filter, options) as Query<T> | undefined),\n key,\n );\n const unsubscribe = memoize(() => query?.subscribe(), key);\n cleanup(() => unsubscribe?.());\n\n return query?.objects ?? EMPTY_ARRAY;\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n navigable,\n collection,\n space,\n resolve,\n}: {\n navigable: boolean;\n collection: CollectionType;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n disabled: !navigable,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(isEchoObject).map(makeRef);\n },\n onTransferStart: (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(child.data));\n } else {\n collection.objects.push(makeRef(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<ReactiveEchoObject<any>>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(newObject));\n } else {\n collection.objects.push(makeRef(newObject));\n }\n },\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[CollectionType.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && collection instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection, space, resolve, navigable })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n },\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'toolbar',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Share._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n return;\n }\n await dispatch(createIntent(SpaceAction.Share, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n disabled: locked,\n disposition: 'toolbar',\n iconOnly: false,\n variant: 'default',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: locked ? getId(SpaceAction.Unlock._tag) : getId(SpaceAction.Lock._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n await dispatch(createIntent(SpaceAction.Unlock, { space }));\n } else {\n await dispatch(createIntent(SpaceAction.Lock, { space }));\n }\n },\n properties: {\n label: [locked ? 'unlock space label' : 'lock space label', { ns: SPACE_PLUGIN }],\n icon: locked ? 'ph--lock-simple-open--regular' : 'ph--lock-simple--regular',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n {\n id: getId(SpaceAction.OpenSettings._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n );\n }\n\n // TODO(wittjosiah): Consider moving close space into the space settings dialog.\n if (state !== SpaceState.SPACE_INACTIVE && !hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Close._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Close, { space }));\n },\n properties: {\n label: ['close space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--x--regular',\n disabled: personal,\n },\n });\n }\n\n if (state === SpaceState.SPACE_INACTIVE) {\n actions.push({\n id: getId(SpaceAction.Open._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Open, { space }));\n },\n properties: {\n label: ['open space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--clock-counter-clockwise--regular',\n disposition: 'toolbar',\n },\n });\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: ReactiveEchoObject<any>;\n space: Space;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\n const partials =\n object instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection: object, space, resolve, navigable })\n : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n ...partials,\n label: metadata.label?.(object) ||\n object.name ||\n metadata.placeholder || ['unnamed object label', { ns: SPACE_PLUGIN }],\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n },\n };\n};\n\nexport const constructObjectActions = ({\n node,\n dispatch,\n navigable = false,\n}: {\n node: Node<ReactiveEchoObject<any>>;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const object = node.data;\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n const actions: NodeArg<ActionData>[] = [\n ...(object instanceof CollectionType\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'toolbar',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params.caller }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--pencil-simple-line--regular',\n // TODO(wittjosiah): Doesn't work.\n // keyBinding: 'shift+F6',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const graph = getGraph(node);\n const collection = graph\n .nodes(node, { relation: 'inbound' })\n .find(({ data }) => data instanceof CollectionType)?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable || !(object instanceof CollectionType)\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated\n */\nexport const getActiveSpace = (graph: Graph, active?: string) => {\n if (!active) {\n return;\n }\n\n const node = graph.findNode(active);\n if (!node || !isReactiveObject(node.data)) {\n return;\n }\n\n return getSpace(node.data);\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: ReactiveEchoObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<ReactiveEchoObject<any>[]> => {\n const type = getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: ReactiveEchoObject<any>[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Expando> => {\n const schema = getSchema(object);\n const typename = schema ? getObjectAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getObjectAnnotation", "getTypename", "invariant", "getSchema", "isReactiveObject", "makeRef", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "cleanup", "getGraph", "memoize", "Filter", "fullyQualifiedId", "getSpace", "isEchoObject", "isSpace", "SpaceState", "SPACES", "SPACE_PLUGIN", "SPACE_TYPE", "COMPOSER_SPACE_LOCK", "SHARED", "EMPTY_ARRAY", "memoizeQuery", "spaceOrEcho", "filter", "options", "key", "JSON", "stringify", "space", "isSpace", "id", "undefined", "Filter", "from", "toProto", "query", "memoize", "db", "unsubscribe", "subscribe", "cleanup", "objects", "getSpaceDisplayName", "personal", "namesCache", "state", "get", "SpaceState", "SPACE_READY", "properties", "name", "length", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "disabled", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "cacheable", "label", "description", "hue", "icon", "testId", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "disposition", "running", "locked", "OpenCreateObject", "ACTION_TYPE", "Share", "iconOnly", "variant", "keyBinding", "macos", "windows", "Unlock", "Lock", "Rename", "params", "caller", "OpenSettings", "SPACE_INACTIVE", "Close", "Open", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, type PromiseIntentDispatcher, LayoutAction } from '@dxos/app-framework';\nimport { EXPANDO_TYPENAME, getObjectAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSchema, isReactiveObject, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n cleanup,\n getGraph,\n memoize,\n type ActionData,\n type Graph,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n Filter,\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n isSpace,\n SpaceState,\n type Echo,\n type FilterSource,\n type Query,\n type QueryOptions,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const SPACE_TYPE = 'dxos.org/type/Space';\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst EMPTY_ARRAY: never[] = [];\n\n/**\n *\n * @param spaceOrEcho\n * @param filter\n * @param options\n * @returns\n */\nexport const memoizeQuery = <T extends ReactiveEchoObject<any>>(\n spaceOrEcho?: Space | Echo,\n filter?: FilterSource<T>,\n options?: QueryOptions,\n): T[] => {\n const key = JSON.stringify({\n space: isSpace(spaceOrEcho) ? spaceOrEcho.id : undefined,\n filter: Filter.from(filter).toProto(),\n });\n\n const query = memoize(\n () =>\n isSpace(spaceOrEcho)\n ? spaceOrEcho.db.query(filter, options)\n : (spaceOrEcho?.query(filter, options) as Query<T> | undefined),\n key,\n );\n const unsubscribe = memoize(() => query?.subscribe(), key);\n cleanup(() => unsubscribe?.());\n\n return query?.objects ?? EMPTY_ARRAY;\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n navigable,\n collection,\n space,\n resolve,\n}: {\n navigable: boolean;\n collection: CollectionType;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n disabled: !navigable,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(isEchoObject).map(makeRef);\n },\n onTransferStart: (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(child.data));\n } else {\n collection.objects.push(makeRef(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<ReactiveEchoObject<any>>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(newObject));\n } else {\n collection.objects.push(makeRef(newObject));\n }\n },\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[CollectionType.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && collection instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection, space, resolve, navigable })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n },\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'toolbar',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Share._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n return;\n }\n await dispatch(createIntent(SpaceAction.Share, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n disabled: locked,\n disposition: 'toolbar',\n iconOnly: false,\n variant: 'default',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: locked ? getId(SpaceAction.Unlock._tag) : getId(SpaceAction.Lock._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n await dispatch(createIntent(SpaceAction.Unlock, { space }));\n } else {\n await dispatch(createIntent(SpaceAction.Lock, { space }));\n }\n },\n properties: {\n label: [locked ? 'unlock space label' : 'lock space label', { ns: SPACE_PLUGIN }],\n icon: locked ? 'ph--lock-simple-open--regular' : 'ph--lock-simple--regular',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n {\n id: getId(SpaceAction.OpenSettings._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n );\n }\n\n // TODO(wittjosiah): Consider moving close space into the space settings dialog.\n if (state !== SpaceState.SPACE_INACTIVE && !hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Close._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Close, { space }));\n },\n properties: {\n label: ['close space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--x--regular',\n disabled: personal,\n },\n });\n }\n\n if (state === SpaceState.SPACE_INACTIVE) {\n actions.push({\n id: getId(SpaceAction.Open._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Open, { space }));\n },\n properties: {\n label: ['open space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--clock-counter-clockwise--regular',\n disposition: 'toolbar',\n },\n });\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: ReactiveEchoObject<any>;\n space: Space;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\n const partials =\n object instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection: object, space, resolve, navigable })\n : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n ...partials,\n label: metadata.label?.(object) ||\n object.name || ['object name placeholder', { ns: type, default: 'New object' }],\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n },\n };\n};\n\nexport const constructObjectActions = ({\n node,\n dispatch,\n navigable = false,\n}: {\n node: Node<ReactiveEchoObject<any>>;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const object = node.data;\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n const actions: NodeArg<ActionData>[] = [\n ...(object instanceof CollectionType\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'toolbar',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params.caller }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--pencil-simple-line--regular',\n // TODO(wittjosiah): Doesn't work.\n // keyBinding: 'shift+F6',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const graph = getGraph(node);\n const collection = graph\n .nodes(node, { relation: 'inbound' })\n .find(({ data }) => data instanceof CollectionType)?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable || !(object instanceof CollectionType)\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated\n */\nexport const getActiveSpace = (graph: Graph, active?: string) => {\n if (!active) {\n return;\n }\n\n const node = graph.findNode(active);\n if (!node || !isReactiveObject(node.data)) {\n return;\n }\n\n return getSpace(node.data);\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: ReactiveEchoObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<ReactiveEchoObject<any>[]> => {\n const type = getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: ReactiveEchoObject<any>[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Expando> => {\n const schema = getSchema(object);\n const typename = schema ? getObjectAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getObjectAnnotation", "getTypename", "invariant", "getSchema", "isReactiveObject", "makeRef", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "cleanup", "getGraph", "memoize", "Filter", "fullyQualifiedId", "getSpace", "isEchoObject", "isSpace", "SpaceState", "SPACES", "SPACE_PLUGIN", "SPACE_TYPE", "COMPOSER_SPACE_LOCK", "SHARED", "EMPTY_ARRAY", "memoizeQuery", "spaceOrEcho", "filter", "options", "key", "JSON", "stringify", "space", "isSpace", "id", "undefined", "Filter", "from", "toProto", "query", "memoize", "db", "unsubscribe", "subscribe", "cleanup", "objects", "getSpaceDisplayName", "personal", "namesCache", "state", "get", "SpaceState", "SPACE_READY", "properties", "name", "length", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "disabled", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "cacheable", "label", "description", "hue", "icon", "testId", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "disposition", "running", "locked", "OpenCreateObject", "ACTION_TYPE", "Share", "iconOnly", "variant", "keyBinding", "macos", "windows", "Unlock", "Lock", "Rename", "params", "caller", "OpenSettings", "SPACE_INACTIVE", "Close", "Open", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "default", "persistenceClass", "persistenceKey", "constructObjectActions", "node", "getSpace", "invariant", "RenameObject", "RemoveObjects", "graph", "getGraph", "nodes", "relation", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "LayoutAction", "Expose", "part", "subject", "getActiveSpace", "active", "findNode", "isReactiveObject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getObjectAnnotation", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
SPACE_PLUGIN
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MSWEFAPD.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-space/src/capabilities/capabilities.ts
|
|
7
7
|
import { defineCapability } from "@dxos/app-framework";
|
|
@@ -21,4 +21,4 @@ export {
|
|
|
21
21
|
SpaceCapabilities,
|
|
22
22
|
ThreadCapabilities
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-AJ4IZAKT.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
SPACE_PLUGIN
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MSWEFAPD.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-space/src/types/collection.ts
|
|
7
7
|
import { Expando, Ref, S, TypedObject } from "@dxos/echo-schema";
|
|
@@ -25,60 +25,7 @@ var CollectionType = class extends TypedObject({
|
|
|
25
25
|
|
|
26
26
|
// packages/plugins/plugin-space/src/types/thread.ts
|
|
27
27
|
import { Expando as Expando2, Ref as Ref2, S as S2, TypedObject as TypedObject2 } from "@dxos/echo-schema";
|
|
28
|
-
|
|
29
|
-
typename: "dxos.org/type/Contact",
|
|
30
|
-
version: "0.1.0"
|
|
31
|
-
})({
|
|
32
|
-
name: S2.optional(S2.String),
|
|
33
|
-
identifiers: S2.mutable(S2.Array(S2.Struct({
|
|
34
|
-
type: S2.String,
|
|
35
|
-
value: S2.String
|
|
36
|
-
})))
|
|
37
|
-
}) {
|
|
38
|
-
};
|
|
39
|
-
var ActorSchema = S2.mutable(S2.Struct({
|
|
40
|
-
contact: S2.optional(Ref2(ContactType)),
|
|
41
|
-
// TODO(wittjosiah): Should the below fields just be the contact schema?
|
|
42
|
-
// i.e. it should either be a reference to an existing contact or an inline contact schema.
|
|
43
|
-
identityKey: S2.optional(S2.String),
|
|
44
|
-
// TODO(burdon): Generalize to handle/identifier?
|
|
45
|
-
email: S2.optional(S2.String),
|
|
46
|
-
name: S2.optional(S2.String)
|
|
47
|
-
}));
|
|
48
|
-
var MessageState;
|
|
49
|
-
(function(MessageState2) {
|
|
50
|
-
MessageState2[MessageState2["NONE"] = 0] = "NONE";
|
|
51
|
-
MessageState2[MessageState2["ARCHIVED"] = 1] = "ARCHIVED";
|
|
52
|
-
MessageState2[MessageState2["DELETED"] = 2] = "DELETED";
|
|
53
|
-
MessageState2[MessageState2["SPAM"] = 3] = "SPAM";
|
|
54
|
-
})(MessageState || (MessageState = {}));
|
|
55
|
-
var MessageType = class extends TypedObject2({
|
|
56
|
-
typename: "dxos.org/type/Message",
|
|
57
|
-
version: "0.1.0"
|
|
58
|
-
})({
|
|
59
|
-
/** ISO date string when the message was sent. */
|
|
60
|
-
timestamp: S2.String,
|
|
61
|
-
/** Message state. */
|
|
62
|
-
state: S2.optional(S2.Enums(MessageState)),
|
|
63
|
-
/** Identity of the message sender. */
|
|
64
|
-
sender: ActorSchema,
|
|
65
|
-
/** Text content of the message. */
|
|
66
|
-
text: S2.String,
|
|
67
|
-
/** Non-text content sent with a message (e.g., files, polls, etc.) */
|
|
68
|
-
parts: S2.optional(S2.mutable(S2.Array(Ref2(Expando2)))),
|
|
69
|
-
/** Custom properties for specific message types (e.g. email subject or cc fields). */
|
|
70
|
-
properties: S2.optional(S2.mutable(S2.Record({
|
|
71
|
-
key: S2.String,
|
|
72
|
-
value: S2.Any
|
|
73
|
-
}))),
|
|
74
|
-
// TODO(wittjosiah): Add read status:
|
|
75
|
-
// - Read receipts need to be per space member.
|
|
76
|
-
// - Read receipts don't need to be added to schema until they being implemented.
|
|
77
|
-
/** Context of the application when message was created. */
|
|
78
|
-
// TODO(burdon): Evolve "attention object" to be current UX state? E.g., of Deck?
|
|
79
|
-
context: S2.optional(Ref2(Expando2))
|
|
80
|
-
}) {
|
|
81
|
-
};
|
|
28
|
+
import { MessageType } from "@dxos/schema";
|
|
82
29
|
var ThreadStatus = S2.Union(S2.Literal("staged"), S2.Literal("active"), S2.Literal("resolved"));
|
|
83
30
|
var ThreadType = class extends TypedObject2({
|
|
84
31
|
typename: "dxos.org/type/Thread",
|
|
@@ -96,7 +43,7 @@ var ChannelType = class extends TypedObject2({
|
|
|
96
43
|
version: "0.1.0"
|
|
97
44
|
})({
|
|
98
45
|
name: S2.optional(S2.String),
|
|
99
|
-
|
|
46
|
+
queue: Ref2(Expando2)
|
|
100
47
|
}) {
|
|
101
48
|
};
|
|
102
49
|
|
|
@@ -238,7 +185,8 @@ var SpaceAction;
|
|
|
238
185
|
class AddObject extends S3.TaggedClass()(`${SPACE_ACTION}/add-object`, {
|
|
239
186
|
input: S3.Struct({
|
|
240
187
|
object: ReactiveObjectSchema,
|
|
241
|
-
target: S3.Union(SpaceSchema, CollectionType)
|
|
188
|
+
target: S3.Union(SpaceSchema, CollectionType),
|
|
189
|
+
hidden: S3.optional(S3.Boolean)
|
|
242
190
|
}),
|
|
243
191
|
output: S3.Struct({
|
|
244
192
|
id: S3.String,
|
|
@@ -308,10 +256,6 @@ var CollectionAction;
|
|
|
308
256
|
|
|
309
257
|
export {
|
|
310
258
|
CollectionType,
|
|
311
|
-
ContactType,
|
|
312
|
-
ActorSchema,
|
|
313
|
-
MessageState,
|
|
314
|
-
MessageType,
|
|
315
259
|
ThreadStatus,
|
|
316
260
|
ThreadType,
|
|
317
261
|
ChannelType,
|
|
@@ -323,4 +267,4 @@ export {
|
|
|
323
267
|
SpaceAction,
|
|
324
268
|
CollectionAction
|
|
325
269
|
};
|
|
326
|
-
//# sourceMappingURL=chunk-
|
|
270
|
+
//# sourceMappingURL=chunk-B6QDEMFR.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/collection.ts", "../../../src/types/thread.ts", "../../../src/types/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Expando, Ref, S, TypedObject } from '@dxos/echo-schema';\n\nexport class CollectionType extends TypedObject({ typename: 'dxos.org/type/Collection', version: '0.1.0' })({\n name: S.optional(S.String),\n objects: S.mutable(S.Array(Ref(Expando))),\n // Key is schema typename and value is reference to a view object of the associated schema.\n // Having collection reference the views rather than vice versa ensures that the state converges to a single view per key (i.e. type).\n // This also leaves open a future where this key could be changed to allow for multiple stack views per section.\n // TODO(wittjosiah): Any way to make this more type safe?\n // TODO(wittjosiah): Should the views be separate objects or just be schemas for view data in this record?\n views: S.mutable(S.Record({ key: S.String, value: Ref(Expando) })),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Expando, Ref, S, TypedObject } from '@dxos/echo-schema';\nimport { MessageType } from '@dxos/schema';\n\n// TODO(wittjosiah): These types were placed here rather than in @dxos/plugin-thread\n// in order to avoid a circular dependency between threads and other objects that use threads.\n\nexport const ThreadStatus = S.Union(S.Literal('staged'), S.Literal('active'), S.Literal('resolved'));\n\nexport class ThreadType extends TypedObject({ typename: 'dxos.org/type/Thread', version: '0.1.0' })({\n name: S.optional(S.String),\n /** AM cursor-range: 'from:to'. */\n anchor: S.optional(S.String),\n status: S.optional(ThreadStatus),\n messages: S.mutable(S.Array(Ref(MessageType))),\n}) {}\n\nexport class ChannelType extends TypedObject({ typename: 'dxos.org/type/Channel', version: '0.1.0' })({\n name: S.optional(S.String),\n queue: Ref(Expando),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type AnyIntentChain } from '@dxos/app-framework';\nimport { AST, S, type Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';\nimport { type PublicKey } from '@dxos/react-client';\n// TODO(wittjosiah): This pulls in full client.\nimport { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { type ComplexMap } from '@dxos/util';\n\nimport { CollectionType } from './collection';\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const SPACE_DIRECTORY_HANDLE = 'dxos.org/plugin/space/directory';\n\nexport type ObjectViewerProps = {\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type ObjectId = string;\n\nexport type PluginState = {\n /**\n * Which objects are currently being viewed by which peers.\n */\n viewersByObject: Record<ObjectId, ComplexMap<PublicKey, ObjectViewerProps>>;\n\n /**\n * Which peers are currently viewing which objects.\n */\n viewersByIdentity: ComplexMap<PublicKey, Set<ObjectId>>;\n\n /**\n * Object that was linked to directly but not found and is being awaited.\n */\n awaiting: string | undefined;\n\n /**\n * Cached space names, used when spaces are closed or loading.\n */\n spaceNames: Record<string, string>;\n\n /**\n * Which spaces have an SDK migration running currently.\n */\n // TODO(wittjosiah): Factor out to sdk. Migration running should probably be a space state.\n sdkMigrationRunning: Record<string, boolean>;\n\n /**\n * Whether or not the user can navigate to collections in the graph.\n * Determined by whether or not there is an available plugin that can render a collection.\n */\n navigableCollections: boolean;\n\n /**\n * Tracks whether setting edge replication as default has been run on spaces.\n */\n // TODO(wittjosiah): Systematic way to handle migrations of state outside of spaces.\n enabledEdgeReplication: boolean;\n};\n\nexport const SpaceSettingsSchema = S.mutable(\n S.Struct({\n /**\n * Show closed spaces.\n */\n showHidden: S.Boolean,\n }),\n);\n\nexport type SpaceSettingsProps = S.Schema.Type<typeof SpaceSettingsSchema>;\n\n// TODO(wittjosiah): Reconcile with graph export serializers.\n\nexport type SerializerMap = Record<string, TypedObjectSerializer>;\n\nexport interface TypedObjectSerializer<T extends Expando = Expando> {\n serialize(params: { object: T }): Promise<string>;\n\n /**\n * @param params.content\n * @param params.space Space to use for deserializing schema references.\n * @param params.newId Generate new ID for deserialized object.\n */\n deserialize(params: { content: string; space: Space; newId?: boolean }): Promise<T>;\n}\n\nexport const SpaceForm = S.Struct({\n name: S.optional(S.String.annotations({ [AST.TitleAnnotationId]: 'Name' })),\n // TODO(wittjosiah): Make optional with default value.\n edgeReplication: S.Boolean.annotations({ [AST.TitleAnnotationId]: 'Enable EDGE Replication' }),\n});\n\nexport type ObjectForm<T extends BaseObject = BaseObject> = {\n // TODO(dmaretskyi): Change to S.Schema.AnyNoContext\n objectSchema: TypedObject;\n formSchema?: S.Schema<T, any>;\n hidden?: boolean;\n getIntent: (props: T, options: { space: Space }) => AnyIntentChain;\n};\n\nexport const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;\n\nexport const SPACE_ACTION = `${SPACE_PLUGIN}/action`;\n\nexport namespace SpaceAction {\n export class OpenCreateSpace extends S.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {\n input: S.Void,\n output: S.Void,\n }) {}\n\n export class Create extends S.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {\n input: SpaceForm,\n output: S.Struct({\n id: S.String,\n subject: S.Array(S.String),\n space: SpaceSchema,\n }),\n }) {}\n\n export class Join extends S.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {\n input: S.Struct({\n invitationCode: S.optional(S.String),\n onDone: S.optional(S.Any),\n }),\n output: S.Void,\n }) {}\n\n export class Share extends S.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Lock extends S.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Unlock extends S.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Rename extends S.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {\n input: S.Struct({\n space: SpaceSchema,\n caller: S.optional(S.String),\n }),\n output: S.Void,\n }) {}\n\n export class AddSpace extends S.TaggedClass<AddSpace>()(`${SPACE_ACTION}/add-space`, {\n input: S.Void,\n output: S.Void,\n }) {}\n\n export class AddSpaceMenuGroup extends S.TaggedClass<AddSpaceMenuGroup>()(`${SPACE_ACTION}/add-space-menu-group`, {\n input: S.Void,\n output: S.Void,\n }) {}\n\n export class OpenSettings extends S.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Open extends S.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Close extends S.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Migrate extends S.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {\n input: S.Struct({\n space: SpaceSchema,\n version: S.optional(S.String),\n }),\n output: S.Boolean,\n }) {}\n\n export class OpenCreateObject extends S.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {\n input: S.Struct({\n target: S.Union(SpaceSchema, CollectionType),\n navigable: S.optional(S.Boolean),\n }),\n output: S.Void,\n }) {}\n\n export class AddObject extends S.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {\n input: S.Struct({\n object: ReactiveObjectSchema,\n target: S.Union(SpaceSchema, CollectionType),\n hidden: S.optional(S.Boolean),\n }),\n output: S.Struct({\n id: S.String,\n subject: S.Array(S.String),\n object: EchoObjectSchema,\n }),\n }) {}\n\n export const DeletionData = S.Struct({\n objects: S.Array(EchoObjectSchema),\n parentCollection: CollectionType,\n indices: S.Array(S.Number),\n nestedObjectsList: S.Array(S.Array(EchoObjectSchema)),\n wasActive: S.Array(S.String),\n });\n\n export type DeletionData = S.Schema.Type<typeof DeletionData>;\n\n export class RemoveObjects extends S.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {\n input: S.Struct({\n objects: S.Array(EchoObjectSchema),\n target: S.optional(CollectionType),\n deletionData: S.optional(DeletionData),\n }),\n output: S.Void,\n }) {}\n\n export class RenameObject extends S.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {\n input: S.Struct({\n object: EchoObjectSchema,\n caller: S.optional(S.String),\n }),\n output: S.Void,\n }) {}\n\n export class DuplicateObject extends S.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {\n input: S.Struct({\n object: EchoObjectSchema,\n target: S.Union(SpaceSchema, CollectionType),\n }),\n output: S.Void,\n }) {}\n\n export class WaitForObject extends S.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {\n input: S.Struct({\n id: S.optional(S.String),\n }),\n output: S.Void,\n }) {}\n}\n\nexport namespace CollectionAction {\n export class Create extends S.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: CollectionType,\n }),\n }) {}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Expando", "Ref", "S", "TypedObject", "CollectionType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "objects", "mutable", "Array", "Ref", "Expando", "views", "Record", "key", "value", "Expando", "Ref", "S", "TypedObject", "MessageType", "ThreadStatus", "S", "Union", "Literal", "ThreadType", "TypedObject", "typename", "version", "name", "optional", "String", "anchor", "status", "messages", "mutable", "Array", "Ref", "MessageType", "ChannelType", "queue", "Expando", "AST", "S", "EchoObjectSchema", "ReactiveObjectSchema", "SpaceSchema", "SPACE_DIRECTORY_HANDLE", "SpaceSettingsSchema", "S", "mutable", "Struct", "showHidden", "Boolean", "SpaceForm", "name", "optional", "String", "annotations", "AST", "TitleAnnotationId", "edgeReplication", "defineObjectForm", "form", "SPACE_ACTION", "SPACE_PLUGIN", "SpaceAction", "OpenCreateSpace", "TaggedClass", "input", "Void", "output", "Create", "id", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "Share", "Lock", "Unlock", "Rename", "caller", "AddSpace", "AddSpaceMenuGroup", "OpenSettings", "Open", "Close", "Migrate", "version", "OpenCreateObject", "target", "Union", "CollectionType", "navigable", "AddObject", "object", "ReactiveObjectSchema", "hidden", "EchoObjectSchema", "DeletionData", "objects", "parentCollection", "indices", "Number", "nestedObjectsList", "wasActive", "RemoveObjects", "deletionData", "RenameObject", "DuplicateObject", "WaitForObject", "CollectionAction"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const SPACE_PLUGIN = 'dxos.org/plugin/space';\n\nexport const meta: PluginMeta = {\n id: SPACE_PLUGIN,\n name: 'Spaces',\n icon: 'ph--planet--regular',\n};\n"],
|
|
5
|
+
"mappings": ";;;AAMO,IAAMA,eAAe;AAErB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,MAAM;AACR;",
|
|
6
|
+
"names": ["SPACE_PLUGIN", "meta", "id", "name", "icon"]
|
|
7
|
+
}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
CollectionType
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-B6QDEMFR.mjs";
|
|
5
5
|
import {
|
|
6
6
|
SPACE_PLUGIN
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MSWEFAPD.mjs";
|
|
8
8
|
|
|
9
9
|
// packages/plugins/plugin-space/src/translations.ts
|
|
10
10
|
var translations_default = [
|
|
11
11
|
{
|
|
12
12
|
"en-US": {
|
|
13
13
|
[CollectionType.typename]: {
|
|
14
|
-
"typename label": "Collection"
|
|
14
|
+
"typename label": "Collection",
|
|
15
|
+
"object name placeholder": "New collection"
|
|
15
16
|
},
|
|
16
17
|
[SPACE_PLUGIN]: {
|
|
17
18
|
"plugin name": "Spaces",
|
|
@@ -41,7 +42,7 @@ var translations_default = [
|
|
|
41
42
|
"confirm restore title": "Overwrite files in this space?",
|
|
42
43
|
"confirm restore body": "Restoring from a backup will overwrite the contents of any documents that match.",
|
|
43
44
|
"upload file message": "Drag file here or click to browse",
|
|
44
|
-
"object
|
|
45
|
+
"object placeholder": "Type a title here\u2026",
|
|
45
46
|
"personal space label": "Personal Space",
|
|
46
47
|
"spaces label": "Spaces",
|
|
47
48
|
"show hidden spaces label": "Show closed spaces",
|
|
@@ -64,9 +65,6 @@ var translations_default = [
|
|
|
64
65
|
"object not found description": "The requested object has not been found yet. Ensure there are enough peers online in the space with an updated copy.",
|
|
65
66
|
"missing object message": "Object not available.",
|
|
66
67
|
"missing object description": "The requested object has not been found yet. Ensure there are enough peers online in the space with an updated copy.",
|
|
67
|
-
"create collection label": "Create collection",
|
|
68
|
-
"unnamed object label": "New object",
|
|
69
|
-
"unnamed collection label": "New collection",
|
|
70
68
|
"create object in space label": "Add to space",
|
|
71
69
|
"create object in collection label": "Add to collection",
|
|
72
70
|
"share space label": "Share",
|
|
@@ -134,4 +132,4 @@ var translations_default = [
|
|
|
134
132
|
export {
|
|
135
133
|
translations_default
|
|
136
134
|
};
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
135
|
+
//# sourceMappingURL=chunk-YA6FCGDI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType } from './types';\n\nexport default [\n {\n 'en-US': {\n [CollectionType.typename]: {\n 'typename label': 'Collection',\n 'object name placeholder': 'New collection',\n },\n [SPACE_PLUGIN]: {\n 'plugin name': 'Spaces',\n 'first run message': 'Nothing selected.',\n 'add space label': 'Create or join a space',\n 'create space label': 'Create space',\n 'join space label': 'Join space',\n 'empty space message': 'No documents',\n 'empty tree message': 'No spaces',\n 'unnamed space label': 'New space',\n 'closed space label': 'Closed',\n 'loading space label': 'Loading space…',\n 'lock space label': 'Lock space',\n 'unlock space label': 'Unlock space',\n 'rename space label': 'Rename space',\n 'active space label': 'Active space:',\n 'space name label': 'Space name',\n 'object name label': 'Object name',\n 'close space label': 'Close space',\n 'open space label': 'Open space',\n 'export data label': 'Export data',\n 'import data label': 'Import data',\n 'migrate space label': 'Migrate space',\n 'share space': 'Share space',\n 'save space to disk label': 'Save to disk',\n 'load space from disk label': 'Load from disk',\n 'confirm restore title': 'Overwrite files in this space?',\n 'confirm restore body': 'Restoring from a backup will overwrite the contents of any documents that match.',\n 'upload file message': 'Drag file here or click to browse',\n 'object placeholder': 'Type a title here…',\n 'personal space label': 'Personal Space',\n 'spaces label': 'Spaces',\n 'show hidden spaces label': 'Show closed spaces',\n 'save files to directory label': 'Save files to disk',\n 'select path label': 'Select path',\n 'rename collection label': 'Rename collection',\n 'rename object label': 'Rename item',\n 'duplicate object label': 'Duplicate item',\n 'delete collection label': 'Delete collection',\n 'delete object label': 'Delete item',\n 'collection deleted label': 'Collection deleted',\n 'object deleted label': 'Item deleted',\n 'objects deleted label': 'Items deleted',\n 'go to object label': 'Open item',\n 'found object label': 'Ready.',\n 'found object description': 'The requested object is now available.',\n 'waiting for object label': 'Loading…',\n 'waiting for object description': 'The requested object is still being synchronized.',\n 'object not found label': 'Nothing found.',\n 'object not found description':\n 'The requested object has not been found yet. Ensure there are enough peers online in the space with an updated copy.',\n 'missing object message': 'Object not available.',\n 'missing object description':\n 'The requested object has not been found yet. Ensure there are enough peers online in the space with an updated copy.',\n 'create object in space label': 'Add to space',\n 'create object in collection label': 'Add to collection',\n 'share space label': 'Share',\n 'space members label': 'Space members',\n 'active space members heading': 'Online ({{count}})',\n 'inactive space members heading': 'Offline ({{count}})',\n 'presence label_zero': 'No other viewers',\n 'presence label_one': '1 other viewer',\n 'presence label_other': '{{count}} other viewers',\n 'persisted locally label': 'Changes saved locally.',\n 'persisted locally message': 'All changes have been saved to disk on this device.',\n 'persistence pending label': 'Saving…',\n 'persistence error label': 'Error saving changes.',\n 'more actions label': 'More actions',\n 'invitations heading': 'Invitations',\n 'keyshortcuts label': 'Keyboard shortcuts',\n 'menu footer label': 'Details',\n 'location label': 'Located in',\n 'space limit label': 'Space Limit Reached',\n 'space limit description':\n 'This space has reached the maximum number of objects for the beta. This limit includes deleted objects currently, but those can be permanently removed with the cleanup action.',\n 'space limit close label': 'Close',\n 'remove deleted objects label': 'Cleanup',\n 'remove deleted objects alt': 'Permanently remove deleted objects to free up space.',\n 'copy link label': 'Copy link',\n 'default on space create label': 'On space create',\n 'sync status title': 'Sync status',\n 'dismiss label': 'Dismiss',\n 'join success label': 'Successfully joined space',\n 'name label': 'Name',\n 'name placeholder': 'Name',\n 'unnamed object settings label': 'Settings',\n 'edge replication label': 'Enable EDGE Replication',\n 'saving locally label': 'Writing to disk',\n 'downloading label': 'Replicating from peers',\n 'uploading label': 'Replicating to peers',\n 'offline persisted label': 'Saved to disk (offline)',\n 'remote synced label': 'Synced with peers',\n 'open settings panel label': 'Show Settings',\n 'settings panel label': 'Settings',\n 'open space settings label': 'Space Settings',\n 'members tab label': 'Members',\n 'settings tab label': 'Settings',\n 'syncing label': 'Space syncing',\n 'show all label': 'Show all',\n 'no sync status label': 'No space with missing objects.',\n 'create space dialog title': 'Create Space',\n 'create object dialog title': 'Create Object',\n 'space input placeholder': 'Select space',\n 'schema input placeholder': 'Select object type',\n 'creating object type label': 'Type',\n 'creating in space label': 'Location',\n 'creating in collection label': 'In Collection',\n 'clear input label': 'Clear',\n 'expose object label': 'Expose in navtree',\n 'advanced settings label': 'Advanced',\n 'foreign keys': 'Foreign Keys',\n 'add key': 'Add Key',\n 'icon label': 'Icon',\n 'hue label': 'Color',\n },\n },\n },\n];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAOA,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACA,eAAeC,QAAQ,GAAG;QACzB,kBAAkB;QAClB,2BAA2B;MAC7B;MACA,CAACC,YAAAA,GAAe;QACd,eAAe;QACf,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB;QACtB,oBAAoB;QACpB,uBAAuB;QACvB,sBAAsB;QACtB,uBAAuB;QACvB,sBAAsB;QACtB,uBAAuB;QACvB,oBAAoB;QACpB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;QACtB,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,eAAe;QACf,4BAA4B;QAC5B,8BAA8B;QAC9B,yBAAyB;QACzB,wBAAwB;QACxB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,gBAAgB;QAChB,4BAA4B;QAC5B,iCAAiC;QACjC,qBAAqB;QACrB,2BAA2B;QAC3B,uBAAuB;QACvB,0BAA0B;QAC1B,2BAA2B;QAC3B,uBAAuB;QACvB,4BAA4B;QAC5B,wBAAwB;QACxB,yBAAyB;QACzB,sBAAsB;QACtB,sBAAsB;QACtB,4BAA4B;QAC5B,4BAA4B;QAC5B,kCAAkC;QAClC,0BAA0B;QAC1B,gCACE;QACF,0BAA0B;QAC1B,8BACE;QACF,gCAAgC;QAChC,qCAAqC;QACrC,qBAAqB;QACrB,uBAAuB;QACvB,gCAAgC;QAChC,kCAAkC;QAClC,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,6BAA6B;QAC7B,6BAA6B;QAC7B,2BAA2B;QAC3B,sBAAsB;QACtB,uBAAuB;QACvB,sBAAsB;QACtB,qBAAqB;QACrB,kBAAkB;QAClB,qBAAqB;QACrB,2BACE;QACF,2BAA2B;QAC3B,gCAAgC;QAChC,8BAA8B;QAC9B,mBAAmB;QACnB,iCAAiC;QACjC,qBAAqB;QACrB,iBAAiB;QACjB,sBAAsB;QACtB,cAAc;QACd,oBAAoB;QACpB,iCAAiC;QACjC,0BAA0B;QAC1B,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;QACnB,2BAA2B;QAC3B,uBAAuB;QACvB,6BAA6B;QAC7B,wBAAwB;QACxB,6BAA6B;QAC7B,qBAAqB;QACrB,sBAAsB;QACtB,iBAAiB;QACjB,kBAAkB;QAClB,wBAAwB;QACxB,6BAA6B;QAC7B,8BAA8B;QAC9B,2BAA2B;QAC3B,4BAA4B;QAC5B,8BAA8B;QAC9B,2BAA2B;QAC3B,gCAAgC;QAChC,qBAAqB;QACrB,uBAAuB;QACvB,2BAA2B;QAC3B,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,aAAa;MACf;IACF;EACF;;",
|
|
6
|
+
"names": ["CollectionType", "typename", "SPACE_PLUGIN"]
|
|
7
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
CollectionType
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-B6QDEMFR.mjs";
|
|
5
|
+
import "./chunk-MSWEFAPD.mjs";
|
|
6
6
|
|
|
7
7
|
// packages/plugins/plugin-space/src/capabilities/identity-created.ts
|
|
8
8
|
import { contributes, Capabilities } from "@dxos/app-framework";
|
|
@@ -26,4 +26,4 @@ var identity_created_default = async (context) => {
|
|
|
26
26
|
export {
|
|
27
27
|
identity_created_default as default
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=identity-created-
|
|
29
|
+
//# sourceMappingURL=identity-created-SEMQDDNJ.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
translations_default
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YA6FCGDI.mjs";
|
|
5
5
|
import {
|
|
6
6
|
AdvancedObjectSettings,
|
|
7
7
|
AppGraphBuilder,
|
|
@@ -47,11 +47,11 @@ import {
|
|
|
47
47
|
SyncStatusDetail,
|
|
48
48
|
SyncStatusIndicator,
|
|
49
49
|
Tools
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-5YP3LY6A.mjs";
|
|
51
51
|
import {
|
|
52
52
|
SpaceCapabilities,
|
|
53
53
|
ThreadCapabilities
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-AJ4IZAKT.mjs";
|
|
55
55
|
import {
|
|
56
56
|
COMPOSER_SPACE_LOCK,
|
|
57
57
|
SHARED,
|
|
@@ -66,16 +66,16 @@ import {
|
|
|
66
66
|
getNestedObjects,
|
|
67
67
|
getSpaceDisplayName,
|
|
68
68
|
memoizeQuery
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-A4XT5SLD.mjs";
|
|
70
70
|
import {
|
|
71
71
|
CollectionAction,
|
|
72
72
|
CollectionType,
|
|
73
73
|
defineObjectForm
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-B6QDEMFR.mjs";
|
|
75
75
|
import {
|
|
76
76
|
SPACE_PLUGIN,
|
|
77
77
|
meta
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-MSWEFAPD.mjs";
|
|
79
79
|
|
|
80
80
|
// packages/plugins/plugin-space/src/events.ts
|
|
81
81
|
import { defineEvent } from "@dxos/app-framework";
|
|
@@ -136,12 +136,6 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
|
|
|
136
136
|
activate: () => contributes(Capabilities.Metadata, {
|
|
137
137
|
id: CollectionType.typename,
|
|
138
138
|
metadata: {
|
|
139
|
-
placeholder: [
|
|
140
|
-
"unnamed collection label",
|
|
141
|
-
{
|
|
142
|
-
ns: SPACE_PLUGIN
|
|
143
|
-
}
|
|
144
|
-
],
|
|
145
139
|
icon: "ph--cards-three--regular",
|
|
146
140
|
// TODO(wittjosiah): Move out of metadata.
|
|
147
141
|
loadReferences: async (collection) => await RefArray.loadAll([
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/events.ts", "../../../src/SpacePlugin.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent } from '@dxos/app-framework';\n\nimport { SPACE_PLUGIN } from './meta';\n\nexport namespace SpaceEvents {\n export const SetupSettingsPanel = defineEvent(`${SPACE_PLUGIN}/event/setup-settings-panel`);\n export const StateReady = defineEvent(`${SPACE_PLUGIN}/event/state-ready`);\n export const DefaultSpaceReady = defineEvent(`${SPACE_PLUGIN}/event/default-space-ready`);\n}\n\n// TODO(wittjosiah): Factor out.\nexport namespace ThreadEvents {\n export const SetupThread = defineEvent(`${SPACE_PLUGIN}/event/setup-thread`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n allOf,\n Capabilities,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n Events,\n oneOf,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { RefArray } from '@dxos/live-object';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';\nimport { isEchoObject, getSpace } from '@dxos/react-client/echo';\nimport { osTranslations } from '@dxos/shell/react';\n\nimport {\n AppGraphBuilder,\n AppGraphSerializer,\n IdentityCreated,\n IntentResolver,\n ReactRoot,\n ReactSurface,\n Schema,\n Tools,\n SpaceCapabilities,\n SpaceSettings,\n SpacesReady,\n SpaceState,\n} from './capabilities';\nimport { SpaceEvents } from './events';\nimport { meta, SPACE_PLUGIN } from './meta';\nimport translations from './translations';\nimport { CollectionAction, CollectionType, defineObjectForm } from './types';\n\nexport type SpacePluginOptions = {\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationParam?: string;\n\n /**\n * Whether to send observability events.\n */\n observability?: boolean;\n};\n\nexport const SpacePlugin = ({\n invitationUrl = window.location.origin,\n invitationParam = 'spaceInvitationCode',\n observability = true,\n}: SpacePluginOptions = {}) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationUrl);\n baseUrl.searchParams.set(invitationParam, invitationCode);\n return baseUrl.toString();\n };\n\n return definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: oneOf(Events.SetupSettings, Events.SetupAppGraph),\n activatesAfter: [SpaceEvents.StateReady],\n activate: SpaceState,\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: SpaceSettings,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, osTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: CollectionType.typename,\n metadata: {\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,mBAAmB;;UAIXC,cAAAA;eACFC,qBAAqBC,YAAY,GAAGC,YAAAA,6BAAyC;eAC7EC,aAAaF,YAAY,GAAGC,YAAAA,oBAAgC;eAC5DE,oBAAoBH,YAAY,GAAGC,YAAAA,4BAAwC;AAC1F,GAJiBH,gBAAAA,cAAAA,CAAAA,EAAAA;;UAOAM,eAAAA;gBACFC,cAAcL,YAAY,GAAGC,YAAAA,qBAAiC;AAC7E,GAFiBG,iBAAAA,eAAAA,CAAAA,EAAAA;;;ACXjB,SACEE,OACAC,cACAC,aACAC,cACAC,cACAC,cACAC,QACAC,aACK;AACP,SAASC,SAAS;AAClB,SAASC,gBAAgB;AACzB,SAASC,uBAAuB;AAChC,SAASC,oBAAoB;AAC7B,SAASC,kBAAkBC,kBAAkB;AAC7C,SAASC,cAAcC,gBAAgB;AACvC,SAASC,sBAAsB;AAsCxB,IAAMC,cAAc,CAAC,EAC1BC,gBAAgBC,OAAOC,SAASC,QAChCC,kBAAkB,uBAClBC,gBAAgB,KAAI,IACE,CAAC,MAAC;AACxB,QAAMC,sBAAsB,CAACC,mBAAAA;AAC3B,UAAMC,UAAU,IAAIC,IAAIT,aAAAA;AACxBQ,YAAQE,aAAaC,IAAIP,iBAAiBG,cAAAA;AAC1C,WAAOC,QAAQI,SAAQ;EACzB;AAEA,SAAOC,aAAaC,MAAM;IACxBC,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;;;;MAIdC,aAAaC,MAAMC,OAAOC,eAAeD,OAAOE,aAAa;MAC7DC,gBAAgB;QAACC,YAAYC;;MAC7BC,UAAUC;IACZ,CAAA;IACAX,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaE,OAAOC;MACpBK,UAAUE;IACZ,CAAA;IACAZ,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaE,OAAOS;MACpBH,UAAU,MAAMI,YAAYC,aAAaC,cAAc;WAAIC;QAAcC;OAAe;IAC1F,CAAA;IACAlB,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaE,OAAOe;MACpBT,UAAU,MACRI,YAAYC,aAAaK,UAAU;QACjCnB,IAAIoB,eAAeC;QACnBC,UAAU;UACRC,
|
|
6
|
-
"names": ["defineEvent", "SpaceEvents", "SetupSettingsPanel", "defineEvent", "SPACE_PLUGIN", "StateReady", "DefaultSpaceReady", "ThreadEvents", "SetupThread", "allOf", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "oneOf", "S", "RefArray", "AttentionEvents", "ClientEvents", "DeckCapabilities", "DeckEvents", "isEchoObject", "getSpace", "osTranslations", "SpacePlugin", "invitationUrl", "window", "location", "origin", "invitationParam", "observability", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "definePlugin", "meta", "defineModule", "id", "activatesOn", "oneOf", "Events", "SetupSettings", "SetupAppGraph", "activatesAfter", "SpaceEvents", "StateReady", "activate", "SpaceState", "SpaceSettings", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "osTranslations", "SetupMetadata", "Metadata", "CollectionType", "typename", "metadata", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent } from '@dxos/app-framework';\n\nimport { SPACE_PLUGIN } from './meta';\n\nexport namespace SpaceEvents {\n export const SetupSettingsPanel = defineEvent(`${SPACE_PLUGIN}/event/setup-settings-panel`);\n export const StateReady = defineEvent(`${SPACE_PLUGIN}/event/state-ready`);\n export const DefaultSpaceReady = defineEvent(`${SPACE_PLUGIN}/event/default-space-ready`);\n}\n\n// TODO(wittjosiah): Factor out.\nexport namespace ThreadEvents {\n export const SetupThread = defineEvent(`${SPACE_PLUGIN}/event/setup-thread`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n allOf,\n Capabilities,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n Events,\n oneOf,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { RefArray } from '@dxos/live-object';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';\nimport { isEchoObject, getSpace } from '@dxos/react-client/echo';\nimport { osTranslations } from '@dxos/shell/react';\n\nimport {\n AppGraphBuilder,\n AppGraphSerializer,\n IdentityCreated,\n IntentResolver,\n ReactRoot,\n ReactSurface,\n Schema,\n Tools,\n SpaceCapabilities,\n SpaceSettings,\n SpacesReady,\n SpaceState,\n} from './capabilities';\nimport { SpaceEvents } from './events';\nimport { meta, SPACE_PLUGIN } from './meta';\nimport translations from './translations';\nimport { CollectionAction, CollectionType, defineObjectForm } from './types';\n\nexport type SpacePluginOptions = {\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationParam?: string;\n\n /**\n * Whether to send observability events.\n */\n observability?: boolean;\n};\n\nexport const SpacePlugin = ({\n invitationUrl = window.location.origin,\n invitationParam = 'spaceInvitationCode',\n observability = true,\n}: SpacePluginOptions = {}) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationUrl);\n baseUrl.searchParams.set(invitationParam, invitationCode);\n return baseUrl.toString();\n };\n\n return definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: oneOf(Events.SetupSettings, Events.SetupAppGraph),\n activatesAfter: [SpaceEvents.StateReady],\n activate: SpaceState,\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: SpaceSettings,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, osTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: CollectionType.typename,\n metadata: {\n icon: 'ph--cards-three--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (collection: CollectionType) =>\n await RefArray.loadAll([...collection.objects, ...Object.values(collection.views)]),\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: CollectionType,\n formSchema: S.Struct({ name: S.optional(S.String) }),\n getIntent: (props) => createIntent(CollectionAction.Create, props),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/complementary-panel`,\n activatesOn: DeckEvents.SetupComplementaryPanels,\n activate: () =>\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'settings',\n label: ['settings panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n filter: (node) => isEchoObject(node.data) && !!getSpace(node.data),\n }),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [ClientEvents.SetupSchema],\n activate: Schema,\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the settings dialog is loaded when surfaces activation is more granular.\n activatesBefore: [SpaceEvents.SetupSettingsPanel],\n activate: () => ReactSurface({ createInvitationUrl }),\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: (context) => IntentResolver({ createInvitationUrl, context, observability }),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n // TODO(wittjosiah): This could probably be deferred.\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/identity-created`,\n activatesOn: ClientEvents.IdentityCreated,\n activatesAfter: [SpaceEvents.DefaultSpaceReady],\n activate: IdentityCreated,\n }),\n defineModule({\n id: `${meta.id}/module/spaces-ready`,\n activatesOn: allOf(\n Events.DispatcherReady,\n Events.LayoutReady,\n Events.AppGraphReady,\n AttentionEvents.AttentionReady,\n SpaceEvents.StateReady,\n ClientEvents.SpacesReady,\n ),\n activate: SpacesReady,\n }),\n defineModule({\n id: `${meta.id}/module/tools`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: Tools,\n }),\n ]);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["defineEvent", "SpaceEvents", "SetupSettingsPanel", "defineEvent", "SPACE_PLUGIN", "StateReady", "DefaultSpaceReady", "ThreadEvents", "SetupThread", "allOf", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "oneOf", "S", "RefArray", "AttentionEvents", "ClientEvents", "DeckCapabilities", "DeckEvents", "isEchoObject", "getSpace", "osTranslations", "SpacePlugin", "invitationUrl", "window", "location", "origin", "invitationParam", "observability", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "definePlugin", "meta", "defineModule", "id", "activatesOn", "oneOf", "Events", "SetupSettings", "SetupAppGraph", "activatesAfter", "SpaceEvents", "StateReady", "activate", "SpaceState", "SpaceSettings", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "osTranslations", "SetupMetadata", "Metadata", "CollectionType", "typename", "metadata", "icon", "loadReferences", "collection", "RefArray", "loadAll", "objects", "Object", "values", "views", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "S", "Struct", "name", "optional", "String", "getIntent", "props", "createIntent", "CollectionAction", "Create", "DeckEvents", "SetupComplementaryPanels", "DeckCapabilities", "ComplementaryPanel", "label", "ns", "SPACE_PLUGIN", "position", "filter", "node", "isEchoObject", "data", "getSpace", "ClientReady", "activatesBefore", "Schema", "Startup", "ReactRoot", "SetupReactSurface", "SetupSettingsPanel", "ReactSurface", "SetupIntentResolver", "context", "IntentResolver", "AppGraphBuilder", "AppGraphReady", "AppGraphSerializer", "IdentityCreated", "DefaultSpaceReady", "allOf", "DispatcherReady", "LayoutReady", "AttentionEvents", "AttentionReady", "SpacesReady", "SetupArtifactDefinition", "Tools"]
|
|
7
7
|
}
|