@dxos/plugin-debug 0.8.4-main.ae835ea → 0.8.4-main.bcb3aa67d6
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/index.mjs +101 -100
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/DebugPlugin.d.ts +7 -1
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +12 -5
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context.d.ts +4 -2
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +7 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +8 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +79 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings/index.d.ts +3 -0
- package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
- package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
- package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts +2 -5
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +4 -10
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts +3 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DebugObjectPanel}/DebugObjectPanel.d.ts +2 -2
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts +3 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +3 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +3 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts +3 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +3 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +15 -0
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts +3 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
- package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
- package/dist/types/src/containers/Wireframe/index.d.ts +3 -0
- package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +9 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +60 -58
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +6 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +67 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +83 -70
- package/src/DebugPlugin.tsx +31 -33
- package/src/capabilities/app-graph-builder.ts +363 -388
- package/src/capabilities/index.ts +5 -5
- package/src/capabilities/react-context.tsx +16 -7
- package/src/capabilities/react-surface.tsx +360 -337
- package/src/capabilities/settings.ts +24 -12
- package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
- package/src/components/DebugSettings/DebugSettings.tsx +228 -0
- package/src/components/DebugSettings/index.ts +7 -0
- package/src/components/SchemaTable/index.ts +5 -0
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +21 -23
- package/src/components/SpaceGenerator/index.ts +2 -3
- package/src/components/SpaceGenerator/presets.ts +243 -121
- package/src/components/index.ts +4 -8
- package/src/containers/DebugGraph/DebugGraph.tsx +13 -0
- package/src/containers/DebugGraph/index.ts +7 -0
- package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +47 -0
- package/src/containers/DebugObjectPanel/index.ts +7 -0
- package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +55 -0
- package/src/containers/DebugSpaceObjectsPanel/index.ts +7 -0
- package/src/{components → containers/DebugStatus}/DebugStatus.tsx +41 -17
- package/src/containers/DebugStatus/index.ts +7 -0
- package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
- package/src/containers/DevtoolsOverviewContainer/index.ts +7 -0
- package/src/containers/SpaceGenerator/SpaceGenerator.tsx +130 -0
- package/src/containers/SpaceGenerator/index.ts +7 -0
- package/src/{components → containers/Wireframe}/Wireframe.tsx +6 -7
- package/src/containers/Wireframe/index.ts +7 -0
- package/src/containers/index.ts +13 -0
- package/src/meta.ts +3 -3
- package/src/translations.ts +66 -58
- package/src/types/Settings.ts +15 -0
- package/src/{types.ts → types/index.ts} +12 -10
- package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
- package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
- package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
- package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
- package/dist/lib/browser/SpaceGenerator-7Q7CX64P.mjs +0 -1159
- package/dist/lib/browser/SpaceGenerator-7Q7CX64P.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-RXWTHLEW.mjs +0 -588
- package/dist/lib/browser/app-graph-builder-RXWTHLEW.mjs.map +0 -7
- package/dist/lib/browser/chunk-SRV2AIGJ.mjs +0 -68
- package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-WZFZ4ESO.mjs +0 -20
- package/dist/lib/browser/chunk-WZFZ4ESO.mjs.map +0 -7
- package/dist/lib/browser/react-context-P2YDWEWI.mjs +0 -16
- package/dist/lib/browser/react-context-P2YDWEWI.mjs.map +0 -7
- package/dist/lib/browser/react-surface-4XGZUT3Z.mjs +0 -772
- package/dist/lib/browser/react-surface-4XGZUT3Z.mjs.map +0 -7
- package/dist/lib/browser/settings-SQXR3OAH.mjs +0 -22
- package/dist/lib/browser/settings-SQXR3OAH.mjs.map +0 -7
- package/dist/types/src/components/Container.d.ts +0 -5
- package/dist/types/src/components/Container.d.ts.map +0 -1
- package/dist/types/src/components/DebugGraph.d.ts +0 -8
- package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
- package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
- package/dist/types/src/components/DebugSettings.d.ts +0 -6
- package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
- package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
- package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
- package/dist/types/src/components/Wireframe.d.ts.map +0 -1
- package/dist/types/src/types.d.ts +0 -63
- package/dist/types/src/types.d.ts.map +0 -1
- package/src/components/Container.tsx +0 -15
- package/src/components/DebugGraph.tsx +0 -14
- package/src/components/DebugObjectPanel.tsx +0 -33
- package/src/components/DebugSettings.tsx +0 -159
- package/src/components/DevtoolsOverviewContainer.tsx +0 -20
- package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
- package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
- /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
- /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
- /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/DebugObjectPanel.tsx", "../../../src/components/DebugSettings.tsx", "../../../src/components/DebugStatus.tsx", "../../../src/components/Wireframe.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n LayoutAction,\n type PluginContext,\n chain,\n contributes,\n createIntent,\n createSurface,\n useCapability,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport {\n AutomergePanel,\n ConfigPanel,\n CredentialsPanel,\n DeviceListPanel,\n DiagnosticsPanel,\n EdgeDashboardPanel,\n FeedsPanel,\n IdentityPanel,\n InvocationTraceContainer,\n KeyringPanel,\n LoggingPanel,\n MembersPanel,\n MetadataPanel,\n NetworkPanel,\n ObjectsPanel,\n QueuesPanel,\n SchemaPanel,\n SignalPanel,\n SpaceInfoPanel,\n SpaceListPanel,\n StoragePanel,\n SwarmPanel,\n TestingPanel,\n TracingPanel,\n WorkflowPanel,\n} from '@dxos/devtools';\nimport { Obj } from '@dxos/echo';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Graph } from '@dxos/plugin-graph';\nimport { ScriptAction } from '@dxos/plugin-script/types';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, SpaceState, isSpace, parseId } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport {\n DebugGraph,\n DebugObjectPanel,\n DebugSettings,\n DebugStatus,\n DevtoolsOverviewContainer,\n SpaceGenerator,\n Wireframe,\n} from '../components';\nimport { meta } from '../meta';\nimport { type DebugSettingsProps, Devtools } from '../types';\n\ntype SpaceDebug = {\n type: string;\n space: Space;\n};\n\ntype GraphDebug = {\n graph: Graph;\n root: string;\n};\n\nconst isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${meta.id}/space` && isSpace(data.space);\nconst isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph && typeof data?.root === 'string';\n\n// TODO(wittjosiah): Factor out?\nconst useCurrentSpace = () => {\n const layout = useCapability(Capabilities.Layout);\n const client = useCapability(ClientCapabilities.Client);\n const { spaceId } = parseId(layout.workspace);\n const space = spaceId ? client.spaces.get(spaceId) : undefined;\n return space;\n};\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<DebugSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <DebugSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/space`,\n role: 'article',\n filter: (data): data is { subject: SpaceDebug } => isSpaceDebug(data.subject),\n component: ({ data }) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleCreateObject = useCallback(\n (objects: Obj.Any[]) => {\n if (!isSpace(data.subject.space)) {\n return;\n }\n\n const collection =\n data.subject.space.state.get() === SpaceState.SPACE_READY &&\n data.subject.space.properties[DataType.Collection.typename]?.target;\n if (!Obj.instanceOf(DataType.Collection, collection)) {\n return;\n }\n\n objects.forEach((object) => {\n void dispatch(createIntent(SpaceAction.AddObject, { target: collection, object }));\n });\n },\n [data.subject.space],\n );\n\n return (\n <StackItem.Content>\n <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />\n </StackItem.Content>\n );\n },\n }),\n createSurface({\n id: `${meta.id}/app-graph`,\n role: 'article',\n filter: (data): data is { subject: GraphDebug } => isGraphDebug(data.subject),\n component: ({ data }) => <DebugGraph graph={data.subject.graph} root={data.subject.root} />,\n }),\n createSurface({\n id: `${meta.id}/wireframe`,\n role: ['article', 'section'],\n position: 'hoist',\n filter: (data): data is { subject: Obj.Any } => {\n const settings = context.getCapability(Capabilities.SettingsStore).getStore<DebugSettingsProps>(meta.id)!.value;\n return Obj.isObject(data.subject) && !!settings.wireframe;\n },\n component: ({ data, role }) => (\n <Wireframe label={`${role}:${name}`} object={data.subject} classNames='row-span-2 overflow-hidden' />\n ),\n }),\n createSurface({\n id: `${meta.id}/object-debug`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Any } => data.subject === 'debug' && Obj.isObject(data.companionTo),\n component: ({ data }) => <DebugObjectPanel object={data.companionTo} />,\n }),\n createSurface({\n id: `${meta.id}/devtools-overview`,\n role: 'deck-companion--devtools',\n component: () => <DevtoolsOverviewContainer />,\n }),\n createSurface({\n id: `${meta.id}/status`,\n role: 'status',\n component: () => <DebugStatus />,\n }),\n\n //\n // Devtools\n //\n\n createSurface({\n id: `${meta.id}/client/config`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Config,\n component: () => <ConfigPanel vaultSelector={false} />,\n }),\n createSurface({\n id: `${meta.id}/client/storage`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Storage,\n component: () => <StoragePanel />,\n }),\n createSurface({\n id: `${meta.id}/client/logs`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Logs,\n component: () => <LoggingPanel />,\n }),\n createSurface({\n id: `${meta.id}/client/diagnostics`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Diagnostics,\n component: () => <DiagnosticsPanel />,\n }),\n createSurface({\n id: `${meta.id}/client/tracing`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Tracing,\n component: () => <TracingPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/identity`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Identity,\n component: () => <IdentityPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/devices`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Devices,\n component: () => <DeviceListPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/keyring`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Keyring,\n component: () => <KeyringPanel />,\n }),\n createSurface({\n id: `${meta.id}/halo/credentials`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Credentials,\n component: () => {\n const space = useCurrentSpace();\n return <CredentialsPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/spaces`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Spaces,\n component: () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const handleSelect = useCallback(\n () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [Devtools.Echo.Space] })),\n [dispatch],\n );\n return <SpaceListPanel onSelect={handleSelect} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/space`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Space,\n component: () => {\n const space = useCurrentSpace();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const handleSelect = useCallback(\n () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [Devtools.Echo.Feeds] })),\n [dispatch],\n );\n return <SpaceInfoPanel space={space} onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/feeds`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Feeds,\n component: () => {\n const space = useCurrentSpace();\n return <FeedsPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/objects`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Objects,\n component: () => {\n const space = useCurrentSpace();\n return <ObjectsPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/schema`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Schema,\n component: () => {\n const space = useCurrentSpace();\n return <SchemaPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/automerge`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Automerge,\n component: () => {\n const space = useCurrentSpace();\n return <AutomergePanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/queues`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Queues,\n component: () => <QueuesPanel />,\n }),\n createSurface({\n id: `${meta.id}/echo/members`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Members,\n component: () => {\n const space = useCurrentSpace();\n return <MembersPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/echo/metadata`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Metadata,\n component: () => <MetadataPanel />,\n }),\n createSurface({\n id: `${meta.id}/mesh/signal`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Signal,\n component: () => <SignalPanel />,\n }),\n createSurface({\n id: `${meta.id}/mesh/swarm`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Swarm,\n component: () => <SwarmPanel />,\n }),\n createSurface({\n id: `${meta.id}/mesh/network`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Network,\n component: () => {\n const space = useCurrentSpace();\n return <NetworkPanel space={space} />;\n },\n }),\n // TODO(wittjosiah): Remove?\n // createSurface({\n // id: `${meta.id}/agent/dashboard`,\n // role: 'article',\n // filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,\n // component: () => <DashboardPanel />,\n // }),\n createSurface({\n id: `${meta.id}/edge/dashboard`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Dashboard,\n component: () => <EdgeDashboardPanel />,\n }),\n createSurface({\n id: `${meta.id}/edge/workflows`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Workflows,\n component: () => {\n const space = useCurrentSpace();\n return <WorkflowPanel space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/edge/traces`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Traces,\n component: () => {\n const space = useCurrentSpace();\n return <InvocationTraceContainer space={space} detailAxis='block' />;\n },\n }),\n createSurface({\n id: `${meta.id}/edge/testing`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Testing,\n component: () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const onSpaceCreate = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n await space.db.flush();\n },\n [dispatch],\n );\n const onScriptPluginOpen = useCallback(\n async (space: Space) => {\n await space.waitUntilReady();\n const result = await dispatch(\n Function.pipe(\n createIntent(ScriptAction.CreateScript, { space }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n log.info('script created', { result });\n await dispatch(\n createIntent(LayoutAction.Open, { part: 'main', subject: [`${space.id}:${result.data?.object.id}`] }),\n );\n },\n [dispatch],\n );\n return <TestingPanel onSpaceCreate={onSpaceCreate} onScriptPluginOpen={onScriptPluginOpen} />;\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const DebugGraph = lazy(() => import('./DebugGraph'));\nexport const DevtoolsOverviewContainer = lazy(() => import('./DevtoolsOverviewContainer'));\nexport const SpaceGenerator = lazy(() => import('./SpaceGenerator'));\n\nexport * from './DebugObjectPanel';\nexport * from './DebugSettings';\nexport * from './DebugStatus';\nexport * from './Wireframe';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Obj } from '@dxos/echo';\nimport { Clipboard, Input, Toolbar } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: Obj.Any;\n};\n\n// TODO(burdon): Get schema and traverse references.\nexport const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {\n const dxn = `dxn:echo:@:${object.id}`;\n\n return (\n <Clipboard.Provider>\n <StackItem.Content toolbar>\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput disabled value={dxn} />\n <Clipboard.IconButton value={dxn} />\n </Input.Root>\n </Toolbar.Root>\n <Json data={object} />\n </StackItem.Content>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { type ConfigProto, SaveConfig, Storage, defs } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Button, Icon, Input, Select, Toast, useFileDownload, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\nimport { setDeep } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { type DebugSettingsProps } from '../types';\n\ntype Toast = {\n title: string;\n description?: string;\n};\n\nconst StorageAdapters = {\n opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,\n idb: defs.Runtime.Client.Storage.StorageDriver.IDB,\n} as const;\n\nexport const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) => {\n const { t } = useTranslation(meta.id);\n const [toast, setToast] = useState<Toast>();\n const client = useClient();\n const download = useFileDownload();\n // TODO(mykola): Get updates from other places that change Config.\n const [storageConfig, setStorageConfig] = useState<ConfigProto>({});\n const [upload] = useCapabilities(Capabilities.FileUploader);\n\n useEffect(() => {\n void Storage().then((config) => setStorageConfig(config));\n }, []);\n\n const handleToast = (toast: Toast) => {\n setToast(toast);\n const t = setTimeout(() => setToast(undefined), 5_000);\n return () => clearTimeout(t);\n };\n\n const handleDownload = async () => {\n const data = await client.diagnostics();\n const file = new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (upload) {\n const info = await upload(client.spaces.default, new File([file], fileName));\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n\n // TODO(nf): move to IpfsPlugin?\n const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;\n void navigator.clipboard.writeText(url);\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n log.info('diagnostics', { url });\n }\n };\n\n const handleRepair = async () => {\n try {\n const info = await client.repair();\n setStorageConfig(await Storage());\n handleToast({ title: t('settings repair success'), description: JSON.stringify(info, undefined, 2) });\n } catch (err: any) {\n handleToast({ title: t('settings repair failed'), description: err.message });\n }\n };\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n <ControlItemInput title={t('settings wireframe')}>\n <Input.Switch\n checked={settings.wireframe}\n onCheckedChange={(checked) => (settings.wireframe = !!checked)}\n />\n </ControlItemInput>\n <ControlItemInput title={t('settings download diagnostics')}>\n <Button onClick={handleDownload}>\n <Icon icon='ph--download-simple--regular' size={5} />\n </Button>\n </ControlItemInput>\n <ControlItemInput title={t('settings repair')}>\n <Button onClick={handleRepair}>\n <Icon icon='ph--first-aid-kit--regular' size={5} />\n </Button>\n </ControlItemInput>\n\n {/* TODO(burdon): Move to layout? */}\n {toast && (\n <Toast.Root>\n <Toast.Body>\n <Toast.Title>\n <Icon icon='ph--gift--duotone' size={5} classNames='inline mr-1' />\n <span>{toast.title}</span>\n </Toast.Title>\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Toast.Body>\n </Toast.Root>\n )}\n\n <ControlItemInput title={t('settings choose storage adaptor')}>\n <Select.Root\n value={\n Object.entries(StorageAdapters).find(\n ([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,\n )?.[0]\n }\n onValueChange={(value) => {\n if (confirm(t('settings storage adapter changed alert'))) {\n updateConfig(\n storageConfig,\n setStorageConfig,\n ['runtime', 'client', 'storage', 'dataStore'],\n StorageAdapters[value as keyof typeof StorageAdapters],\n );\n }\n }}\n >\n <Select.TriggerButton placeholder={t('settings data store label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Object.keys(StorageAdapters).map((key) => (\n <Select.Option key={key} value={key}>\n {t(`settings storage adaptor ${key} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n\nconst updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {\n const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));\n setDeep(storageConfigCopy, path, value);\n setConfig(storageConfigCopy);\n queueMicrotask(async () => {\n await SaveConfig(storageConfigCopy);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { TimeoutError } from '@dxos/async';\nimport { useActiveSpace } from '@dxos/plugin-space';\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Icon } from '@dxos/react-ui';\n\nconst styles = {\n success: 'text-sky-300 dark:text-green-700',\n warning: 'text-orange-300 dark:text-orange-600',\n error: 'text-red-300 dark:text-red-600',\n};\n\n// TODO(burdon): Move out of debug plugin.\n// TODO(burdon): Make pluggable (move indicators to relevant plugins).\n// TODO(burdon): Vault heartbeat indicator (global scope)?\n\n/**\n * Ensure light doesn't flicker immediately after start.\n */\n// TODO(burdon): Move to @dxos/async (debounce?)\nconst _timer = (cb: (err?: Error) => void, options?: { min?: number; max?: number }) => {\n const min = options?.min ?? 500;\n let start: number;\n let pending: NodeJS.Timeout;\n let timeout: NodeJS.Timeout;\n return {\n start: () => {\n start = Date.now();\n clearTimeout(pending);\n if (options?.max) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n cb(new TimeoutError(options.max));\n }, options.max);\n }\n },\n stop: () => {\n clearTimeout(timeout);\n const delta = Date.now() - start;\n if (delta < min) {\n pending = setTimeout(() => {\n cb();\n }, min - delta);\n }\n },\n };\n};\n\n/**\n * Global error handler.\n */\n// TODO(burdon): Integrate with Sentry?\nconst ErrorIndicator = () => {\n const [, forceUpdate] = useState({});\n const errorRef = useRef<Error>(null);\n useEffect(() => {\n const errorListener = (event: any) => {\n const error: Error = event.error ?? event.reason;\n if (errorRef.current !== error) {\n errorRef.current = error;\n forceUpdate({});\n }\n };\n\n // TODO(burdon): Register globally?\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/error_event\n window.addEventListener('error', errorListener);\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event\n window.addEventListener('unhandledrejection', errorListener);\n\n return () => {\n window.removeEventListener('error', errorListener);\n window.removeEventListener('unhandledrejection', errorListener);\n };\n }, []);\n\n const handleReset = () => {\n errorRef.current = null;\n forceUpdate({});\n };\n\n if (errorRef.current) {\n return (\n <StatusBar.Button title={errorRef.current.message} onClick={handleReset}>\n <Icon icon='ph--warning-circle--duotone' size={4} classNames={styles.error} />\n </StatusBar.Button>\n );\n } else {\n return (\n <StatusBar.Item title='No errors.'>\n <Icon icon='ph--check--regular' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Swarm connection handler.\n */\nconst SwarmIndicator = () => {\n const [state, setState] = useState(0);\n const { swarm } = useNetworkStatus();\n useEffect(() => {\n setState(swarm === ConnectionState.ONLINE ? 0 : 1);\n }, [swarm]);\n\n if (state === 0) {\n return (\n <StatusBar.Item title='Connected to swarm.'>\n <Icon icon='ph--lightning--regular' size={4} />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item title='Disconnected from swarm.'>\n <Icon icon='ph--lightning-slash--regular' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Data saving indicator.\n */\n// TODO(burdon): Merge with SaveStatus.\nconst SavingIndicator = () => {\n const [state, _setState] = useState(0);\n const _space = useActiveSpace();\n // TODO(dmaretskyi): Fix this when we have save status for automerge.\n // useEffect(() => {\n // if (!space) {\n // return;\n // }\n // const { start, stop } = timer(() => setState(0), { min: 250 });\n // return space.db.pendingBatch.on(({ duration, error }) => {\n // if (error) {\n // setState(2);\n // stop();\n // } else if (duration === undefined) {\n // setState(1);\n // start();\n // } else {\n // stop();\n // }\n // });\n // }, [space]);\n\n switch (state) {\n case 2:\n return (\n <StatusBar.Item title='Edit not saved.'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n case 1:\n return (\n <StatusBar.Item title='Saving...'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.success} />\n </StatusBar.Item>\n );\n case 0:\n default:\n return (\n <StatusBar.Item title='Modified indicator.'>\n <Icon icon='ph--circle--duotone' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\nconst indicators = [SavingIndicator, SwarmIndicator, ErrorIndicator];\n\nexport const DebugStatus = () => {\n return (\n <>\n {indicators.map((Indicator) => (\n <Indicator key={Indicator.name} />\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { type Obj } from '@dxos/echo';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttentionAttributes } from '@dxos/react-ui-attention';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/react-ui-theme';\n\n// TODO(burdon): Create generic container with wireframe mode.\nexport type WireframeProps = ThemedClassName<{\n label?: string;\n object: Obj.Any;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attentionAttrs = useAttentionAttributes(fullyQualifiedId(object));\n const { width, height, ref } = useResizeDetector();\n\n return (\n <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attentionAttrs}>\n <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>\n <div className='flex justify-between'>\n <div>{label}</div>\n <div>{`[${width}x${height}]`}</div>\n </div>\n {object && (\n <SyntaxHighlighter language='json' classNames='text-xs opacity-75 rounded'>\n {JSON.stringify(object, undefined, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n <svg width={width} height={height} className='bg-transparent *:text-subdued'>\n <rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />\n <line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />\n <line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />\n </svg>\n </div>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Function", "React", "useCallback", "Capabilities", "LayoutAction", "chain", "contributes", "createIntent", "createSurface", "useCapability", "useIntentDispatcher", "AutomergePanel", "ConfigPanel", "CredentialsPanel", "DeviceListPanel", "DiagnosticsPanel", "EdgeDashboardPanel", "FeedsPanel", "IdentityPanel", "InvocationTraceContainer", "KeyringPanel", "LoggingPanel", "MembersPanel", "MetadataPanel", "NetworkPanel", "ObjectsPanel", "QueuesPanel", "SchemaPanel", "SignalPanel", "SpaceInfoPanel", "SpaceListPanel", "StoragePanel", "SwarmPanel", "TestingPanel", "TracingPanel", "WorkflowPanel", "Obj", "SettingsStore", "log", "ClientCapabilities", "Graph", "ScriptAction", "SpaceAction", "SpaceState", "isSpace", "parseId", "StackItem", "DataType", "lazy", "React", "Clipboard", "Input", "Toolbar", "StackItem", "Json", "DebugObjectPanel", "object", "dxn", "id", "Clipboard", "Provider", "StackItem", "Content", "toolbar", "Toolbar", "Root", "Input", "TextInput", "disabled", "value", "IconButton", "Json", "data", "React", "useEffect", "useState", "Capabilities", "useCapabilities", "SaveConfig", "Storage", "defs", "log", "useClient", "Button", "Icon", "Input", "Select", "Toast", "useFileDownload", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "setDeep", "StorageAdapters", "opfs", "defs", "Runtime", "Client", "Storage", "StorageDriver", "WEBFS", "idb", "IDB", "DebugSettings", "settings", "t", "useTranslation", "meta", "id", "toast", "setToast", "useState", "client", "useClient", "download", "useFileDownload", "storageConfig", "setStorageConfig", "upload", "useCapabilities", "Capabilities", "FileUploader", "useEffect", "then", "config", "handleToast", "setTimeout", "undefined", "clearTimeout", "handleDownload", "data", "diagnostics", "file", "Blob", "JSON", "stringify", "type", "fileName", "Date", "toISOString", "replace", "info", "spaces", "default", "File", "log", "error", "title", "description", "url", "values", "runtime", "services", "ipfs", "gateway", "cid", "navigator", "clipboard", "writeText", "handleRepair", "repair", "err", "message", "React", "ControlPage", "ControlSection", "ns", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "wireframe", "onCheckedChange", "Button", "onClick", "Icon", "icon", "size", "Toast", "Root", "Body", "Title", "classNames", "span", "Description", "Select", "value", "Object", "entries", "find", "name", "storage", "dataStore", "onValueChange", "confirm", "updateConfig", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "keys", "map", "key", "Option", "Arrow", "setConfig", "path", "storageConfigCopy", "parse", "setDeep", "queueMicrotask", "SaveConfig", "React", "useEffect", "useRef", "useState", "TimeoutError", "useActiveSpace", "StatusBar", "ConnectionState", "useNetworkStatus", "Icon", "styles", "success", "warning", "error", "ErrorIndicator", "forceUpdate", "useState", "errorRef", "useRef", "useEffect", "errorListener", "event", "error", "reason", "current", "window", "addEventListener", "removeEventListener", "handleReset", "React", "StatusBar", "Button", "title", "message", "onClick", "Icon", "icon", "size", "classNames", "styles", "Item", "SwarmIndicator", "state", "setState", "swarm", "useNetworkStatus", "ConnectionState", "ONLINE", "warning", "SavingIndicator", "_setState", "_space", "useActiveSpace", "success", "indicators", "DebugStatus", "map", "Indicator", "key", "name", "React", "useResizeDetector", "fullyQualifiedId", "useAttentionAttributes", "SyntaxHighlighter", "mx", "Wireframe", "classNames", "label", "object", "attentionAttrs", "useAttentionAttributes", "fullyQualifiedId", "width", "height", "ref", "useResizeDetector", "React", "div", "className", "mx", "SyntaxHighlighter", "language", "JSON", "stringify", "undefined", "svg", "rect", "x", "y", "strokeWidth", "fill", "line", "x1", "y1", "x2", "y2", "DebugGraph", "lazy", "DevtoolsOverviewContainer", "SpaceGenerator", "isSpaceDebug", "data", "type", "meta", "id", "isSpace", "space", "isGraphDebug", "graph", "Graph", "root", "useCurrentSpace", "layout", "useCapability", "Capabilities", "Layout", "client", "ClientCapabilities", "Client", "spaceId", "parseId", "workspace", "spaces", "get", "undefined", "context", "contributes", "ReactSurface", "createSurface", "role", "filter", "subject", "SettingsStore", "prefix", "component", "React", "DebugSettings", "settings", "value", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleCreateObject", "useCallback", "objects", "collection", "state", "SpaceState", "SPACE_READY", "properties", "DataType", "Collection", "typename", "target", "Obj", "instanceOf", "forEach", "object", "createIntent", "SpaceAction", "AddObject", "StackItem", "Content", "SpaceGenerator", "onCreateObjects", "DebugGraph", "position", "getCapability", "getStore", "isObject", "wireframe", "Wireframe", "label", "name", "classNames", "companionTo", "DebugObjectPanel", "DevtoolsOverviewContainer", "DebugStatus", "Devtools", "Config", "ConfigPanel", "vaultSelector", "Storage", "StoragePanel", "Logs", "LoggingPanel", "Diagnostics", "DiagnosticsPanel", "Tracing", "TracingPanel", "Halo", "Identity", "IdentityPanel", "Devices", "DeviceListPanel", "Keyring", "KeyringPanel", "Credentials", "CredentialsPanel", "Echo", "Spaces", "handleSelect", "LayoutAction", "Open", "part", "Space", "SpaceListPanel", "onSelect", "Feeds", "SpaceInfoPanel", "onSelectFeed", "onSelectPipeline", "FeedsPanel", "Objects", "ObjectsPanel", "Schema", "SchemaPanel", "Automerge", "AutomergePanel", "Queues", "QueuesPanel", "Members", "MembersPanel", "Metadata", "MetadataPanel", "Mesh", "Signal", "SignalPanel", "Swarm", "SwarmPanel", "Network", "NetworkPanel", "Edge", "Dashboard", "EdgeDashboardPanel", "Workflows", "WorkflowPanel", "Traces", "InvocationTraceContainer", "detailAxis", "Testing", "onSpaceCreate", "waitUntilReady", "Migrate", "db", "flush", "onScriptPluginOpen", "result", "pipe", "ScriptAction", "CreateScript", "chain", "log", "info", "TestingPanel"]
|
|
7
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DebugSettingsSchema
|
|
3
|
-
} from "./chunk-SRV2AIGJ.mjs";
|
|
4
|
-
import {
|
|
5
|
-
meta
|
|
6
|
-
} from "./chunk-WZFZ4ESO.mjs";
|
|
7
|
-
|
|
8
|
-
// src/capabilities/settings.ts
|
|
9
|
-
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
10
|
-
import { live } from "@dxos/live-object";
|
|
11
|
-
var settings_default = (() => {
|
|
12
|
-
const settings = live({});
|
|
13
|
-
return contributes(Capabilities.Settings, {
|
|
14
|
-
prefix: meta.id,
|
|
15
|
-
schema: DebugSettingsSchema,
|
|
16
|
-
value: settings
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
export {
|
|
20
|
-
settings_default as default
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=settings-SQXR3OAH.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/settings.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { meta } from '../meta';\nimport { type DebugSettingsProps, DebugSettingsSchema } from '../types';\n\nexport default () => {\n const settings = live<DebugSettingsProps>({});\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: DebugSettingsSchema,\n value: settings,\n });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,oBAAe,MAAA;AACb,QAAMC,WAAWC,KAAyB,CAAC,CAAA;AAE3C,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOV;EACT,CAAA;AACF;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "live", "settings", "live", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "DebugSettingsSchema", "value"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../src/components/Container.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,eAAO,MAAM,SAAS,GAAI,uBAAuB,iBAAiB,CAAC;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,CAAC,sBAOzF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DebugGraph.d.ts","sourceRoot":"","sources":["../../../../src/components/DebugGraph.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAEzD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DebugObjectPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/DebugObjectPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAKtC,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;CACjB,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,YAAY,qBAAqB,sBAgBjE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DebugSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/DebugSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAYnD,eAAO,MAAM,aAAa,GAAI,cAAc;IAAE,QAAQ,EAAE,kBAAkB,CAAA;CAAE,sBA0H3E,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DebugStatus.d.ts","sourceRoot":"","sources":["../../../../src/components/DebugStatus.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgL3D,eAAO,MAAM,WAAW,yBAQvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevtoolsOverviewContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/DevtoolsOverviewContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,yBAAyB,yBAQrC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/SpaceGenerator/SchemaTable.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,oCAAyC,gBAAgB,sBAmBpF,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type Obj } from '@dxos/echo';
|
|
3
|
-
import { type Space } from '@dxos/react-client/echo';
|
|
4
|
-
export type SpaceGeneratorProps = {
|
|
5
|
-
space: Space;
|
|
6
|
-
onCreateObjects?: (objects: Obj.Any[]) => void;
|
|
7
|
-
};
|
|
8
|
-
export declare const SpaceGenerator: ({ space, onCreateObjects }: SpaceGeneratorProps) => React.JSX.Element;
|
|
9
|
-
//# sourceMappingURL=SpaceGenerator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpaceGenerator.d.ts","sourceRoot":"","sources":["../../../../../src/components/SpaceGenerator/SpaceGenerator.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D,OAAO,EAAU,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAK9C,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,yBAAyB,CAAC;AAUlE,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,4BAA4B,mBAAmB,sBA6F7E,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
declare const meta: {
|
|
4
|
-
title: string;
|
|
5
|
-
component: any;
|
|
6
|
-
render: (args: unknown) => React.JSX.Element;
|
|
7
|
-
decorators: import("@storybook/react").Decorator[];
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: string;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
export default meta;
|
|
13
|
-
type Story = StoryObj<typeof meta>;
|
|
14
|
-
export declare const Default: Story;
|
|
15
|
-
//# sourceMappingURL=SpaceGenerator.stories.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpaceGenerator.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SpaceGenerator/SpaceGenerator.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAoB1B,QAAA,MAAM,IAAI;;eAEqB,GAAG;;;;;;CAkBG,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Wireframe.d.ts","sourceRoot":"","sources":["../../../../src/components/Wireframe.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;CACjB,CAAC,CAAC;AAGH,eAAO,MAAM,SAAS,GAAI,+BAA+B,cAAc,sBAwBtE,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import * as Schema from 'effect/Schema';
|
|
2
|
-
import { type Context } from 'react';
|
|
3
|
-
import type { TimerCallback, TimerOptions } from '@dxos/async';
|
|
4
|
-
export type DebugContextType = {
|
|
5
|
-
running: boolean;
|
|
6
|
-
start: (cb: TimerCallback, options: TimerOptions) => void;
|
|
7
|
-
stop: () => void;
|
|
8
|
-
};
|
|
9
|
-
export declare const DebugContext: Context<DebugContextType>;
|
|
10
|
-
export declare const DebugSettingsSchema: Schema.mutable<Schema.Struct<{
|
|
11
|
-
wireframe: Schema.optional<typeof Schema.Boolean>;
|
|
12
|
-
}>>;
|
|
13
|
-
export interface DebugSettingsProps extends Schema.Schema.Type<typeof DebugSettingsSchema> {
|
|
14
|
-
}
|
|
15
|
-
export declare namespace Devtools {
|
|
16
|
-
const id = "dxos.org.plugin.debug.devtools";
|
|
17
|
-
namespace Client {
|
|
18
|
-
const id = "dxos.org.plugin.debug.devtools.client";
|
|
19
|
-
const Config = "dxos.org.plugin.debug.devtools.client.config";
|
|
20
|
-
const Storage = "dxos.org.plugin.debug.devtools.client.storage";
|
|
21
|
-
const Logs = "dxos.org.plugin.debug.devtools.client.logs";
|
|
22
|
-
const Diagnostics = "dxos.org.plugin.debug.devtools.client.diagnostics";
|
|
23
|
-
const Tracing = "dxos.org.plugin.debug.devtools.client.tracing";
|
|
24
|
-
}
|
|
25
|
-
namespace Halo {
|
|
26
|
-
const id = "dxos.org.plugin.debug.devtools.halo";
|
|
27
|
-
const Identity = "dxos.org.plugin.debug.devtools.halo.identity";
|
|
28
|
-
const Devices = "dxos.org.plugin.debug.devtools.halo.devices";
|
|
29
|
-
const Keyring = "dxos.org.plugin.debug.devtools.halo.keyring";
|
|
30
|
-
const Credentials = "dxos.org.plugin.debug.devtools.halo.credentials";
|
|
31
|
-
}
|
|
32
|
-
namespace Echo {
|
|
33
|
-
const id = "dxos.org.plugin.debug.devtools.echo";
|
|
34
|
-
const Spaces = "dxos.org.plugin.debug.devtools.echo.spaces";
|
|
35
|
-
const Space = "dxos.org.plugin.debug.devtools.echo.space";
|
|
36
|
-
const Feeds = "dxos.org.plugin.debug.devtools.echo.feeds";
|
|
37
|
-
const Objects = "dxos.org.plugin.debug.devtools.echo.objects";
|
|
38
|
-
const Schema = "dxos.org.plugin.debug.devtools.echo.schema";
|
|
39
|
-
const Automerge = "dxos.org.plugin.debug.devtools.echo.automerge";
|
|
40
|
-
const Queues = "dxos.org.plugin.debug.devtools.echo.queues";
|
|
41
|
-
const Members = "dxos.org.plugin.debug.devtools.echo.members";
|
|
42
|
-
const Metadata = "dxos.org.plugin.debug.devtools.echo.metadata";
|
|
43
|
-
}
|
|
44
|
-
namespace Mesh {
|
|
45
|
-
const id = "dxos.org.plugin.debug.devtools.mesh";
|
|
46
|
-
const Signal = "dxos.org.plugin.debug.devtools.mesh.signal";
|
|
47
|
-
const Swarm = "dxos.org.plugin.debug.devtools.mesh.swarm";
|
|
48
|
-
const Network = "dxos.org.plugin.debug.devtools.mesh.network";
|
|
49
|
-
}
|
|
50
|
-
namespace Agent {
|
|
51
|
-
const id = "dxos.org.plugin.debug.devtools.agent";
|
|
52
|
-
const Dashboard = "dxos.org.plugin.debug.devtools.agent.dashboard";
|
|
53
|
-
const Search = "dxos.org.plugin.debug.devtools.agent.search";
|
|
54
|
-
}
|
|
55
|
-
namespace Edge {
|
|
56
|
-
const id = "dxos.org.plugin.debug.devtools.edge";
|
|
57
|
-
const Dashboard = "dxos.org.plugin.debug.devtools.edge.dashboard";
|
|
58
|
-
const Workflows = "dxos.org.plugin.debug.devtools.edge.workflows";
|
|
59
|
-
const Traces = "dxos.org.plugin.debug.devtools.edge.traces";
|
|
60
|
-
const Testing = "dxos.org.plugin.debug.devtools.edge.testing";
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1D,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAIjD,CAAC;AAEH,eAAO,MAAM,mBAAmB;;GAI/B,CAAC;AAEF,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAE7F,yBAAiB,QAAQ,CAAC;IAEjB,MAAM,EAAE,mCAAmC,CAAC;IAEnD,UAAiB,MAAM,CAAC;QACf,MAAM,EAAE,0CAA0B,CAAC;QACnC,MAAM,MAAM,iDAAiC,CAAC;QAC9C,MAAM,OAAO,kDAAkC,CAAC;QAChD,MAAM,IAAI,+CAA+B,CAAC;QAC1C,MAAM,WAAW,sDAAsC,CAAC;QACxD,MAAM,OAAO,kDAAkC,CAAC;KACxD;IAED,UAAiB,IAAI,CAAC;QACb,MAAM,EAAE,wCAAwB,CAAC;QACjC,MAAM,QAAQ,iDAAiC,CAAC;QAChD,MAAM,OAAO,gDAAgC,CAAC;QAC9C,MAAM,OAAO,gDAAgC,CAAC;QAC9C,MAAM,WAAW,oDAAoC,CAAC;KAC9D;IAED,UAAiB,IAAI,CAAC;QACb,MAAM,EAAE,wCAAwB,CAAC;QACjC,MAAM,MAAM,+CAA+B,CAAC;QAC5C,MAAM,KAAK,8CAA8B,CAAC;QAC1C,MAAM,KAAK,8CAA8B,CAAC;QAC1C,MAAM,OAAO,gDAAgC,CAAC;QAC9C,MAAM,MAAM,+CAA+B,CAAC;QAC5C,MAAM,SAAS,kDAAkC,CAAC;QAClD,MAAM,MAAM,+CAA+B,CAAC;QAC5C,MAAM,OAAO,gDAAgC,CAAC;QAC9C,MAAM,QAAQ,iDAAiC,CAAC;KACxD;IAED,UAAiB,IAAI,CAAC;QACb,MAAM,EAAE,wCAAwB,CAAC;QACjC,MAAM,MAAM,+CAA+B,CAAC;QAC5C,MAAM,KAAK,8CAA8B,CAAC;QAC1C,MAAM,OAAO,gDAAgC,CAAC;KACtD;IAED,UAAiB,KAAK,CAAC;QACd,MAAM,EAAE,yCAAyB,CAAC;QAClC,MAAM,SAAS,mDAAmC,CAAC;QACnD,MAAM,MAAM,gDAAgC,CAAC;KACrD;IAED,UAAiB,IAAI,CAAC;QACb,MAAM,EAAE,wCAAwB,CAAC;QACjC,MAAM,SAAS,kDAAkC,CAAC;QAClD,MAAM,SAAS,kDAAkC,CAAC;QAClD,MAAM,MAAM,+CAA+B,CAAC;QAC5C,MAAM,OAAO,gDAAgC,CAAC;KACtD;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { type PropsWithChildren, type ReactNode } from 'react';
|
|
6
|
-
|
|
7
|
-
// TODO(burdon): Convert to grid.
|
|
8
|
-
export const Container = ({ toolbar, children }: PropsWithChildren<{ toolbar: ReactNode }>) => {
|
|
9
|
-
return (
|
|
10
|
-
<div role='none' className='flex flex-col grow overflow-hidden divide-y divide-separator'>
|
|
11
|
-
{toolbar}
|
|
12
|
-
<div className='flex flex-col grow overflow-auto'>{children}</div>
|
|
13
|
-
</div>
|
|
14
|
-
);
|
|
15
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { type FC } from 'react';
|
|
6
|
-
|
|
7
|
-
import { Tree } from '@dxos/devtools';
|
|
8
|
-
import { type Graph } from '@dxos/plugin-graph';
|
|
9
|
-
|
|
10
|
-
export const DebugGraph: FC<{ graph: Graph; root: string }> = ({ graph, root }) => {
|
|
11
|
-
return <Tree data={graph.toJSON(root)} />;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export default DebugGraph;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React from 'react';
|
|
6
|
-
|
|
7
|
-
import { type Obj } from '@dxos/echo';
|
|
8
|
-
import { Clipboard, Input, Toolbar } from '@dxos/react-ui';
|
|
9
|
-
import { StackItem } from '@dxos/react-ui-stack';
|
|
10
|
-
import { Json } from '@dxos/react-ui-syntax-highlighter';
|
|
11
|
-
|
|
12
|
-
export type DebugObjectPanelProps = {
|
|
13
|
-
object: Obj.Any;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
// TODO(burdon): Get schema and traverse references.
|
|
17
|
-
export const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {
|
|
18
|
-
const dxn = `dxn:echo:@:${object.id}`;
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
<Clipboard.Provider>
|
|
22
|
-
<StackItem.Content toolbar>
|
|
23
|
-
<Toolbar.Root>
|
|
24
|
-
<Input.Root>
|
|
25
|
-
<Input.TextInput disabled value={dxn} />
|
|
26
|
-
<Clipboard.IconButton value={dxn} />
|
|
27
|
-
</Input.Root>
|
|
28
|
-
</Toolbar.Root>
|
|
29
|
-
<Json data={object} />
|
|
30
|
-
</StackItem.Content>
|
|
31
|
-
</Clipboard.Provider>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { useEffect, useState } from 'react';
|
|
6
|
-
|
|
7
|
-
import { Capabilities, useCapabilities } from '@dxos/app-framework';
|
|
8
|
-
import { type ConfigProto, SaveConfig, Storage, defs } from '@dxos/config';
|
|
9
|
-
import { log } from '@dxos/log';
|
|
10
|
-
import { useClient } from '@dxos/react-client';
|
|
11
|
-
import { Button, Icon, Input, Select, Toast, useFileDownload, useTranslation } from '@dxos/react-ui';
|
|
12
|
-
import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';
|
|
13
|
-
import { setDeep } from '@dxos/util';
|
|
14
|
-
|
|
15
|
-
import { meta } from '../meta';
|
|
16
|
-
import { type DebugSettingsProps } from '../types';
|
|
17
|
-
|
|
18
|
-
type Toast = {
|
|
19
|
-
title: string;
|
|
20
|
-
description?: string;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const StorageAdapters = {
|
|
24
|
-
opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,
|
|
25
|
-
idb: defs.Runtime.Client.Storage.StorageDriver.IDB,
|
|
26
|
-
} as const;
|
|
27
|
-
|
|
28
|
-
export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) => {
|
|
29
|
-
const { t } = useTranslation(meta.id);
|
|
30
|
-
const [toast, setToast] = useState<Toast>();
|
|
31
|
-
const client = useClient();
|
|
32
|
-
const download = useFileDownload();
|
|
33
|
-
// TODO(mykola): Get updates from other places that change Config.
|
|
34
|
-
const [storageConfig, setStorageConfig] = useState<ConfigProto>({});
|
|
35
|
-
const [upload] = useCapabilities(Capabilities.FileUploader);
|
|
36
|
-
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
void Storage().then((config) => setStorageConfig(config));
|
|
39
|
-
}, []);
|
|
40
|
-
|
|
41
|
-
const handleToast = (toast: Toast) => {
|
|
42
|
-
setToast(toast);
|
|
43
|
-
const t = setTimeout(() => setToast(undefined), 5_000);
|
|
44
|
-
return () => clearTimeout(t);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const handleDownload = async () => {
|
|
48
|
-
const data = await client.diagnostics();
|
|
49
|
-
const file = new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' });
|
|
50
|
-
const fileName = `composer-${new Date().toISOString().replace(/\W/g, '-')}.json`;
|
|
51
|
-
download(file, fileName);
|
|
52
|
-
|
|
53
|
-
if (upload) {
|
|
54
|
-
const info = await upload(client.spaces.default, new File([file], fileName));
|
|
55
|
-
if (!info) {
|
|
56
|
-
log.error('diagnostics failed to upload to IPFS');
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });
|
|
60
|
-
|
|
61
|
-
// TODO(nf): move to IpfsPlugin?
|
|
62
|
-
const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;
|
|
63
|
-
void navigator.clipboard.writeText(url);
|
|
64
|
-
handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });
|
|
65
|
-
log.info('diagnostics', { url });
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
const handleRepair = async () => {
|
|
70
|
-
try {
|
|
71
|
-
const info = await client.repair();
|
|
72
|
-
setStorageConfig(await Storage());
|
|
73
|
-
handleToast({ title: t('settings repair success'), description: JSON.stringify(info, undefined, 2) });
|
|
74
|
-
} catch (err: any) {
|
|
75
|
-
handleToast({ title: t('settings repair failed'), description: err.message });
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
return (
|
|
80
|
-
<ControlPage>
|
|
81
|
-
<ControlSection title={t('settings title', { ns: meta.id })}>
|
|
82
|
-
<ControlGroup>
|
|
83
|
-
<ControlItemInput title={t('settings wireframe')}>
|
|
84
|
-
<Input.Switch
|
|
85
|
-
checked={settings.wireframe}
|
|
86
|
-
onCheckedChange={(checked) => (settings.wireframe = !!checked)}
|
|
87
|
-
/>
|
|
88
|
-
</ControlItemInput>
|
|
89
|
-
<ControlItemInput title={t('settings download diagnostics')}>
|
|
90
|
-
<Button onClick={handleDownload}>
|
|
91
|
-
<Icon icon='ph--download-simple--regular' size={5} />
|
|
92
|
-
</Button>
|
|
93
|
-
</ControlItemInput>
|
|
94
|
-
<ControlItemInput title={t('settings repair')}>
|
|
95
|
-
<Button onClick={handleRepair}>
|
|
96
|
-
<Icon icon='ph--first-aid-kit--regular' size={5} />
|
|
97
|
-
</Button>
|
|
98
|
-
</ControlItemInput>
|
|
99
|
-
|
|
100
|
-
{/* TODO(burdon): Move to layout? */}
|
|
101
|
-
{toast && (
|
|
102
|
-
<Toast.Root>
|
|
103
|
-
<Toast.Body>
|
|
104
|
-
<Toast.Title>
|
|
105
|
-
<Icon icon='ph--gift--duotone' size={5} classNames='inline mr-1' />
|
|
106
|
-
<span>{toast.title}</span>
|
|
107
|
-
</Toast.Title>
|
|
108
|
-
{toast.description && <Toast.Description>{toast.description}</Toast.Description>}
|
|
109
|
-
</Toast.Body>
|
|
110
|
-
</Toast.Root>
|
|
111
|
-
)}
|
|
112
|
-
|
|
113
|
-
<ControlItemInput title={t('settings choose storage adaptor')}>
|
|
114
|
-
<Select.Root
|
|
115
|
-
value={
|
|
116
|
-
Object.entries(StorageAdapters).find(
|
|
117
|
-
([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,
|
|
118
|
-
)?.[0]
|
|
119
|
-
}
|
|
120
|
-
onValueChange={(value) => {
|
|
121
|
-
if (confirm(t('settings storage adapter changed alert'))) {
|
|
122
|
-
updateConfig(
|
|
123
|
-
storageConfig,
|
|
124
|
-
setStorageConfig,
|
|
125
|
-
['runtime', 'client', 'storage', 'dataStore'],
|
|
126
|
-
StorageAdapters[value as keyof typeof StorageAdapters],
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
}}
|
|
130
|
-
>
|
|
131
|
-
<Select.TriggerButton placeholder={t('settings data store label')} />
|
|
132
|
-
<Select.Portal>
|
|
133
|
-
<Select.Content>
|
|
134
|
-
<Select.Viewport>
|
|
135
|
-
{Object.keys(StorageAdapters).map((key) => (
|
|
136
|
-
<Select.Option key={key} value={key}>
|
|
137
|
-
{t(`settings storage adaptor ${key} label`)}
|
|
138
|
-
</Select.Option>
|
|
139
|
-
))}
|
|
140
|
-
</Select.Viewport>
|
|
141
|
-
<Select.Arrow />
|
|
142
|
-
</Select.Content>
|
|
143
|
-
</Select.Portal>
|
|
144
|
-
</Select.Root>
|
|
145
|
-
</ControlItemInput>
|
|
146
|
-
</ControlGroup>
|
|
147
|
-
</ControlSection>
|
|
148
|
-
</ControlPage>
|
|
149
|
-
);
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
const updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {
|
|
153
|
-
const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));
|
|
154
|
-
setDeep(storageConfigCopy, path, value);
|
|
155
|
-
setConfig(storageConfigCopy);
|
|
156
|
-
queueMicrotask(async () => {
|
|
157
|
-
await SaveConfig(storageConfigCopy);
|
|
158
|
-
});
|
|
159
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React from 'react';
|
|
6
|
-
|
|
7
|
-
import { Surface } from '@dxos/app-framework';
|
|
8
|
-
import { StatsPanel, useStats } from '@dxos/devtools';
|
|
9
|
-
|
|
10
|
-
export const DevtoolsOverviewContainer = () => {
|
|
11
|
-
const [stats, refreshStats] = useStats();
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<StatsPanel stats={stats} onRefresh={refreshStats}>
|
|
15
|
-
<Surface role='devtools-overview' />
|
|
16
|
-
</StatsPanel>
|
|
17
|
-
);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export default DevtoolsOverviewContainer;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
import { IntentPlugin } from '@dxos/app-framework';
|
|
9
|
-
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
|
-
import { ClientPlugin } from '@dxos/plugin-client';
|
|
11
|
-
import { useSpaces } from '@dxos/react-client/echo';
|
|
12
|
-
import { withTheme } from '@dxos/react-ui/testing';
|
|
13
|
-
import { render } from '@dxos/storybook-utils';
|
|
14
|
-
|
|
15
|
-
import { SpaceGenerator } from './SpaceGenerator';
|
|
16
|
-
|
|
17
|
-
const DefaultStory = () => {
|
|
18
|
-
const [space] = useSpaces();
|
|
19
|
-
if (!space) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return <SpaceGenerator space={space} />;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const meta = {
|
|
27
|
-
title: 'plugins/plugin-debug/SpaceGenerator',
|
|
28
|
-
component: SpaceGenerator as any,
|
|
29
|
-
render: render(DefaultStory),
|
|
30
|
-
decorators: [
|
|
31
|
-
withTheme,
|
|
32
|
-
withPluginManager({
|
|
33
|
-
plugins: [
|
|
34
|
-
ClientPlugin({
|
|
35
|
-
onClientInitialized: async ({ client }) => {
|
|
36
|
-
await client.halo.createIdentity();
|
|
37
|
-
},
|
|
38
|
-
}),
|
|
39
|
-
IntentPlugin(),
|
|
40
|
-
],
|
|
41
|
-
}),
|
|
42
|
-
],
|
|
43
|
-
parameters: {
|
|
44
|
-
layout: 'fullscreen',
|
|
45
|
-
},
|
|
46
|
-
} satisfies Meta<typeof DefaultStory>;
|
|
47
|
-
|
|
48
|
-
export default meta;
|
|
49
|
-
|
|
50
|
-
type Story = StoryObj<typeof meta>;
|
|
51
|
-
|
|
52
|
-
export const Default: Story = {};
|