@dxos/plugin-debug 0.8.3 → 0.8.4-main.1da679c
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/DebugGraph-EDOH6R2G.mjs +20 -0
- package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +7 -0
- package/dist/lib/browser/{DevtoolsOverviewContainer-IIIWO77Q.mjs → DevtoolsOverviewContainer-EPD6EWT5.mjs} +2 -2
- package/dist/lib/browser/{SpaceGenerator-VB6IB2LL.mjs → SpaceGenerator-SB2YRVRT.mjs} +376 -494
- package/dist/lib/browser/SpaceGenerator-SB2YRVRT.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-6HHJMKVU.mjs → app-graph-builder-7ODCSP7R.mjs} +27 -37
- package/dist/lib/browser/app-graph-builder-7ODCSP7R.mjs.map +7 -0
- package/dist/lib/browser/{chunk-47JOZTT2.mjs → chunk-5XPIRNQS.mjs} +2 -2
- package/dist/lib/browser/{chunk-KS3YBEL7.mjs → chunk-AJA6RYN3.mjs} +2 -2
- package/dist/lib/browser/index.mjs +17 -14
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-context-ZQRD2WG2.mjs → react-context-Y537DXK5.mjs} +5 -5
- package/dist/lib/browser/{react-context-ZQRD2WG2.mjs.map → react-context-Y537DXK5.mjs.map} +1 -1
- package/dist/lib/browser/{react-surface-UI6OK73H.mjs → react-surface-OP75RFNI.mjs} +45 -40
- package/dist/lib/browser/react-surface-OP75RFNI.mjs.map +7 -0
- package/dist/lib/browser/{settings-SXQWSIM4.mjs → settings-XAUQOU7I.mjs} +6 -6
- package/dist/lib/browser/{settings-SXQWSIM4.mjs.map → settings-XAUQOU7I.mjs.map} +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +5 -5
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/components/DebugGraph.d.ts +8 -0
- package/dist/types/src/components/DebugGraph.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +3 -1
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +1 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +13 -3
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts +5 -5
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/components/Wireframe.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +62 -60
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +61 -59
- package/src/DebugPlugin.tsx +2 -2
- package/src/capabilities/app-graph-builder.ts +13 -40
- package/src/capabilities/react-surface.tsx +9 -8
- package/src/components/DebugGraph.tsx +14 -0
- package/src/components/DebugObjectPanel.tsx +1 -1
- package/src/components/DebugSettings.tsx +72 -64
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +32 -26
- package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +8 -6
- package/src/components/SpaceGenerator/SpaceGenerator.tsx +15 -72
- package/src/components/SpaceGenerator/draw-util.ts +3 -3
- package/src/components/SpaceGenerator/presets.ts +346 -221
- package/src/components/Wireframe.tsx +2 -1
- package/src/components/index.ts +1 -1
- package/src/translations.ts +8 -4
- package/dist/lib/browser/DebugApp-WSEJPCKY.mjs +0 -225
- package/dist/lib/browser/DebugApp-WSEJPCKY.mjs.map +0 -7
- package/dist/lib/browser/SpaceGenerator-VB6IB2LL.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-6HHJMKVU.mjs.map +0 -7
- package/dist/lib/browser/react-surface-UI6OK73H.mjs.map +0 -7
- package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
- package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
- package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/index.d.ts +0 -3
- package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
- package/src/components/DebugApp/DebugApp.tsx +0 -77
- package/src/components/DebugApp/Tree.tsx +0 -103
- package/src/components/DebugApp/index.ts +0 -7
- /package/dist/lib/browser/{DevtoolsOverviewContainer-IIIWO77Q.mjs.map → DevtoolsOverviewContainer-EPD6EWT5.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-47JOZTT2.mjs.map → chunk-5XPIRNQS.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-KS3YBEL7.mjs.map → chunk-AJA6RYN3.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-debug",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.4-main.1da679c",
|
|
4
4
|
"description": "DXOS Surface plugin for testing.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"type": "module",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
+
"source": "./src/index.ts",
|
|
13
14
|
"types": "./dist/types/src/index.d.ts",
|
|
14
15
|
"browser": "./dist/lib/browser/index.mjs"
|
|
15
16
|
}
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
"dependencies": {
|
|
26
27
|
"@antv/graphlib": "^2.0.4",
|
|
27
28
|
"@antv/layout": "^1.2.13",
|
|
28
|
-
"@automerge/automerge": "3.
|
|
29
|
+
"@automerge/automerge": "3.1.1",
|
|
29
30
|
"@preact-signals/safe-react": "^0.9.0",
|
|
30
31
|
"@preact/signals-core": "^1.9.0",
|
|
31
32
|
"@tldraw/tldraw": "^3.0.0",
|
|
@@ -33,75 +34,76 @@
|
|
|
33
34
|
"react-json-tree": "^0.18.0",
|
|
34
35
|
"react-resize-detector": "^11.0.1",
|
|
35
36
|
"workerize-loader": "^2.0.2",
|
|
36
|
-
"@dxos/app-framework": "0.8.
|
|
37
|
-
"@dxos/
|
|
38
|
-
"@dxos/
|
|
39
|
-
"@dxos/
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/echo
|
|
47
|
-
"@dxos/echo-
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/keys": "0.8.
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/plugin-
|
|
56
|
-
"@dxos/plugin-
|
|
57
|
-
"@dxos/plugin-
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/plugin-
|
|
60
|
-
"@dxos/plugin-
|
|
61
|
-
"@dxos/plugin-script": "0.8.
|
|
62
|
-
"@dxos/plugin-
|
|
63
|
-
"@dxos/plugin-
|
|
64
|
-
"@dxos/
|
|
65
|
-
"@dxos/plugin-
|
|
66
|
-
"@dxos/
|
|
67
|
-
"@dxos/
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/react-
|
|
72
|
-
"@dxos/react-ui-
|
|
73
|
-
"@dxos/react-
|
|
74
|
-
"@dxos/react-ui-
|
|
75
|
-
"@dxos/react-ui-
|
|
76
|
-
"@dxos/react-ui-
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/
|
|
79
|
-
"@dxos/
|
|
37
|
+
"@dxos/app-framework": "0.8.4-main.1da679c",
|
|
38
|
+
"@dxos/assistant-testing": "0.8.4-main.1da679c",
|
|
39
|
+
"@dxos/client-services": "0.8.4-main.1da679c",
|
|
40
|
+
"@dxos/blueprints": "0.8.4-main.1da679c",
|
|
41
|
+
"@dxos/compute": "0.8.4-main.1da679c",
|
|
42
|
+
"@dxos/config": "0.8.4-main.1da679c",
|
|
43
|
+
"@dxos/conductor": "0.8.4-main.1da679c",
|
|
44
|
+
"@dxos/context": "0.8.4-main.1da679c",
|
|
45
|
+
"@dxos/async": "0.8.4-main.1da679c",
|
|
46
|
+
"@dxos/devtools": "0.8.4-main.1da679c",
|
|
47
|
+
"@dxos/echo": "0.8.4-main.1da679c",
|
|
48
|
+
"@dxos/echo-generator": "0.8.4-main.1da679c",
|
|
49
|
+
"@dxos/echo-schema": "0.8.4-main.1da679c",
|
|
50
|
+
"@dxos/echo-pipeline": "0.8.4-main.1da679c",
|
|
51
|
+
"@dxos/functions": "0.8.4-main.1da679c",
|
|
52
|
+
"@dxos/invariant": "0.8.4-main.1da679c",
|
|
53
|
+
"@dxos/keys": "0.8.4-main.1da679c",
|
|
54
|
+
"@dxos/live-object": "0.8.4-main.1da679c",
|
|
55
|
+
"@dxos/log": "0.8.4-main.1da679c",
|
|
56
|
+
"@dxos/plugin-client": "0.8.4-main.1da679c",
|
|
57
|
+
"@dxos/plugin-deck": "0.8.4-main.1da679c",
|
|
58
|
+
"@dxos/plugin-inbox": "0.8.4-main.1da679c",
|
|
59
|
+
"@dxos/local-storage": "0.8.4-main.1da679c",
|
|
60
|
+
"@dxos/plugin-graph": "0.8.4-main.1da679c",
|
|
61
|
+
"@dxos/plugin-meeting": "0.8.4-main.1da679c",
|
|
62
|
+
"@dxos/plugin-script": "0.8.4-main.1da679c",
|
|
63
|
+
"@dxos/plugin-markdown": "0.8.4-main.1da679c",
|
|
64
|
+
"@dxos/plugin-sheet": "0.8.4-main.1da679c",
|
|
65
|
+
"@dxos/plugin-sketch": "0.8.4-main.1da679c",
|
|
66
|
+
"@dxos/plugin-space": "0.8.4-main.1da679c",
|
|
67
|
+
"@dxos/plugin-status-bar": "0.8.4-main.1da679c",
|
|
68
|
+
"@dxos/plugin-table": "0.8.4-main.1da679c",
|
|
69
|
+
"@dxos/plugin-theme": "0.8.4-main.1da679c",
|
|
70
|
+
"@dxos/random": "0.8.4-main.1da679c",
|
|
71
|
+
"@dxos/protocols": "0.8.4-main.1da679c",
|
|
72
|
+
"@dxos/react-hooks": "0.8.4-main.1da679c",
|
|
73
|
+
"@dxos/react-ui-attention": "0.8.4-main.1da679c",
|
|
74
|
+
"@dxos/react-client": "0.8.4-main.1da679c",
|
|
75
|
+
"@dxos/react-ui-canvas-compute": "0.8.4-main.1da679c",
|
|
76
|
+
"@dxos/react-ui-canvas-editor": "0.8.4-main.1da679c",
|
|
77
|
+
"@dxos/react-ui-form": "0.8.4-main.1da679c",
|
|
78
|
+
"@dxos/react-ui-kanban": "0.8.4-main.1da679c",
|
|
79
|
+
"@dxos/react-ui-stack": "0.8.4-main.1da679c",
|
|
80
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.4-main.1da679c",
|
|
81
|
+
"@dxos/react-ui-table": "0.8.4-main.1da679c",
|
|
82
|
+
"@dxos/util": "0.8.4-main.1da679c",
|
|
83
|
+
"@dxos/schema": "0.8.4-main.1da679c"
|
|
80
84
|
},
|
|
81
85
|
"devDependencies": {
|
|
82
|
-
"@effect-rx/rx-react": "
|
|
83
|
-
"@effect/platform": "0.
|
|
84
|
-
"@phosphor-icons/react": "^2.1.5",
|
|
86
|
+
"@effect-rx/rx-react": "0.38.0",
|
|
87
|
+
"@effect/platform": "0.90.2",
|
|
85
88
|
"@types/react": "~18.2.0",
|
|
86
89
|
"@types/react-dom": "~18.2.0",
|
|
87
|
-
"effect": "3.
|
|
90
|
+
"effect": "3.17.7",
|
|
88
91
|
"react": "~18.2.0",
|
|
89
92
|
"react-dom": "~18.2.0",
|
|
90
|
-
"vite": "
|
|
91
|
-
"@dxos/react-ui": "0.8.
|
|
92
|
-
"@dxos/
|
|
93
|
-
"@dxos/
|
|
93
|
+
"vite": "7.1.1",
|
|
94
|
+
"@dxos/react-ui": "0.8.4-main.1da679c",
|
|
95
|
+
"@dxos/storybook-utils": "0.8.4-main.1da679c",
|
|
96
|
+
"@dxos/react-ui-theme": "0.8.4-main.1da679c"
|
|
94
97
|
},
|
|
95
98
|
"peerDependencies": {
|
|
96
99
|
"@effect-rx/rx-react": "^0.34.1",
|
|
97
|
-
"@effect/platform": "0.80.12",
|
|
98
|
-
"@phosphor-icons/react": "^2.1.5",
|
|
100
|
+
"@effect/platform": "^0.80.12",
|
|
99
101
|
"effect": "^3.13.3",
|
|
100
102
|
"react": "~18.2.0",
|
|
101
103
|
"react-dom": "~18.2.0",
|
|
102
|
-
"@dxos/
|
|
103
|
-
"@dxos/react-ui": "0.8.
|
|
104
|
-
"@dxos/
|
|
104
|
+
"@dxos/random": "0.8.4-main.1da679c",
|
|
105
|
+
"@dxos/react-ui": "0.8.4-main.1da679c",
|
|
106
|
+
"@dxos/react-ui-theme": "0.8.4-main.1da679c"
|
|
105
107
|
},
|
|
106
108
|
"publishConfig": {
|
|
107
109
|
"access": "public"
|
package/src/DebugPlugin.tsx
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities, contributes, defineModule, definePlugin
|
|
5
|
+
import { Capabilities, Events, contributes, defineModule, definePlugin } from '@dxos/app-framework';
|
|
6
6
|
import { type Client } from '@dxos/react-client';
|
|
7
7
|
|
|
8
8
|
import { AppGraphBuilder, DebugSettings, ReactContext, ReactSurface } from './capabilities';
|
|
9
9
|
import { meta } from './meta';
|
|
10
|
-
import translations from './translations';
|
|
10
|
+
import { translations } from './translations';
|
|
11
11
|
|
|
12
12
|
// TODO(wittjosiah): Rename to DevtoolsPlugin?
|
|
13
13
|
export const DebugPlugin = () => {
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
import { Rx } from '@effect-rx/rx-react';
|
|
6
6
|
import { Option, pipe } from 'effect';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';
|
|
9
9
|
import { Obj } from '@dxos/echo';
|
|
10
10
|
import { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
11
|
+
import { ROOT_ID, createExtension, rxFromSignal } from '@dxos/plugin-graph';
|
|
12
|
+
import { SPACE_PLUGIN, getActiveSpace } from '@dxos/plugin-space';
|
|
13
13
|
|
|
14
14
|
import { DEBUG_PLUGIN } from '../meta';
|
|
15
15
|
import { Devtools } from '../types';
|
|
@@ -30,6 +30,7 @@ export default (context: PluginContext) =>
|
|
|
30
30
|
),
|
|
31
31
|
Option.map((node) => {
|
|
32
32
|
const space = get(rxFromSignal(() => getActiveSpace(context)));
|
|
33
|
+
const [graph] = get(context.capabilities(Capabilities.AppGraph));
|
|
33
34
|
|
|
34
35
|
return [
|
|
35
36
|
{
|
|
@@ -56,6 +57,15 @@ export default (context: PluginContext) =>
|
|
|
56
57
|
},
|
|
57
58
|
]
|
|
58
59
|
: []),
|
|
60
|
+
{
|
|
61
|
+
id: `app-graph-${node.id}`,
|
|
62
|
+
type: 'dxos.org/plugin/debug/app-graph',
|
|
63
|
+
data: { graph: graph?.graph, root: space ? space.id : ROOT_ID },
|
|
64
|
+
properties: {
|
|
65
|
+
label: ['debug app graph label', { ns: DEBUG_PLUGIN }],
|
|
66
|
+
icon: 'ph--graph--regular',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
59
69
|
{
|
|
60
70
|
id: `${Devtools.Client.id}-${node.id}`,
|
|
61
71
|
data: null,
|
|
@@ -366,43 +376,6 @@ export default (context: PluginContext) =>
|
|
|
366
376
|
),
|
|
367
377
|
}),
|
|
368
378
|
|
|
369
|
-
// Debug node.
|
|
370
|
-
createExtension({
|
|
371
|
-
id: 'dxos.org/plugin/debug/debug',
|
|
372
|
-
connector: (node) =>
|
|
373
|
-
Rx.make((get) =>
|
|
374
|
-
pipe(
|
|
375
|
-
get(node),
|
|
376
|
-
Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
|
|
377
|
-
Option.flatMap(() => {
|
|
378
|
-
const [graph] = get(context.capabilities(Capabilities.AppGraph));
|
|
379
|
-
return graph ? Option.some(graph) : Option.none();
|
|
380
|
-
}),
|
|
381
|
-
Option.flatMap((graph) => {
|
|
382
|
-
// TODO(wittjosiah): Plank is currently blank. Remove?
|
|
383
|
-
// const settings = context
|
|
384
|
-
// .requestCapabilities(Capabilities.SettingsStore)[0]
|
|
385
|
-
// ?.getStore<DebugSettingsProps>(DEBUG_PLUGIN)?.value;
|
|
386
|
-
// return !!settings?.debug && node.id === 'root';
|
|
387
|
-
return Option.none();
|
|
388
|
-
}),
|
|
389
|
-
Option.map((graph) => [
|
|
390
|
-
{
|
|
391
|
-
id: 'dxos.org/plugin/debug/debug',
|
|
392
|
-
type: 'dxos.org/plugin/debug/debug',
|
|
393
|
-
data: { graph },
|
|
394
|
-
properties: {
|
|
395
|
-
label: ['debug label', { ns: DEBUG_PLUGIN }],
|
|
396
|
-
disposition: 'navigation',
|
|
397
|
-
icon: 'ph--bug--regular',
|
|
398
|
-
},
|
|
399
|
-
},
|
|
400
|
-
]),
|
|
401
|
-
Option.getOrElse(() => []),
|
|
402
|
-
),
|
|
403
|
-
),
|
|
404
|
-
}),
|
|
405
|
-
|
|
406
379
|
// Debug object companion.
|
|
407
380
|
createExtension({
|
|
408
381
|
id: `${DEBUG_PLUGIN}/debug-object`,
|
|
@@ -7,14 +7,14 @@ import React, { useCallback } from 'react';
|
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
Capabilities,
|
|
10
|
+
LayoutAction,
|
|
11
|
+
type PluginContext,
|
|
10
12
|
chain,
|
|
11
13
|
contributes,
|
|
12
14
|
createIntent,
|
|
13
15
|
createSurface,
|
|
14
|
-
LayoutAction,
|
|
15
16
|
useCapability,
|
|
16
17
|
useIntentDispatcher,
|
|
17
|
-
type PluginContext,
|
|
18
18
|
} from '@dxos/app-framework';
|
|
19
19
|
import {
|
|
20
20
|
AutomergePanel,
|
|
@@ -43,19 +43,19 @@ import {
|
|
|
43
43
|
TracingPanel,
|
|
44
44
|
WorkflowPanel,
|
|
45
45
|
} from '@dxos/devtools';
|
|
46
|
-
import { Obj
|
|
46
|
+
import { Obj } from '@dxos/echo';
|
|
47
47
|
import { SettingsStore } from '@dxos/local-storage';
|
|
48
48
|
import { log } from '@dxos/log';
|
|
49
49
|
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
50
50
|
import { Graph } from '@dxos/plugin-graph';
|
|
51
51
|
import { ScriptAction } from '@dxos/plugin-script/types';
|
|
52
52
|
import { SpaceAction } from '@dxos/plugin-space/types';
|
|
53
|
-
import { SpaceState, isSpace,
|
|
53
|
+
import { type Space, SpaceState, isSpace, parseId } from '@dxos/react-client/echo';
|
|
54
54
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
55
55
|
import { DataType } from '@dxos/schema';
|
|
56
56
|
|
|
57
57
|
import {
|
|
58
|
-
|
|
58
|
+
DebugGraph,
|
|
59
59
|
DebugObjectPanel,
|
|
60
60
|
DebugSettings,
|
|
61
61
|
DebugStatus,
|
|
@@ -73,10 +73,11 @@ type SpaceDebug = {
|
|
|
73
73
|
|
|
74
74
|
type GraphDebug = {
|
|
75
75
|
graph: Graph;
|
|
76
|
+
root: string;
|
|
76
77
|
};
|
|
77
78
|
|
|
78
79
|
const isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${DEBUG_PLUGIN}/space` && isSpace(data.space);
|
|
79
|
-
const isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph;
|
|
80
|
+
const isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph && typeof data?.root === 'string';
|
|
80
81
|
|
|
81
82
|
// TODO(wittjosiah): Factor out?
|
|
82
83
|
const useCurrentSpace = () => {
|
|
@@ -111,7 +112,7 @@ export default (context: PluginContext) =>
|
|
|
111
112
|
|
|
112
113
|
const collection =
|
|
113
114
|
data.subject.space.state.get() === SpaceState.SPACE_READY &&
|
|
114
|
-
data.subject.space.properties[
|
|
115
|
+
data.subject.space.properties[DataType.Collection.typename]?.target;
|
|
115
116
|
if (!Obj.instanceOf(DataType.Collection, collection)) {
|
|
116
117
|
return;
|
|
117
118
|
}
|
|
@@ -134,7 +135,7 @@ export default (context: PluginContext) =>
|
|
|
134
135
|
id: `${DEBUG_PLUGIN}/graph`,
|
|
135
136
|
role: 'article',
|
|
136
137
|
filter: (data): data is { subject: GraphDebug } => isGraphDebug(data.subject),
|
|
137
|
-
component: ({ data }) => <
|
|
138
|
+
component: ({ data }) => <DebugGraph graph={data.subject.graph} root={data.subject.root} />,
|
|
138
139
|
}),
|
|
139
140
|
createSurface({
|
|
140
141
|
id: `${DEBUG_PLUGIN}/wireframe`,
|
|
@@ -0,0 +1,14 @@
|
|
|
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;
|
|
@@ -26,7 +26,7 @@ export const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {
|
|
|
26
26
|
<Clipboard.IconButton value={dxn} />
|
|
27
27
|
</Input.Root>
|
|
28
28
|
</Toolbar.Root>
|
|
29
|
-
<SyntaxHighlighter classNames='
|
|
29
|
+
<SyntaxHighlighter language='json' classNames='text-xs'>
|
|
30
30
|
{JSON.stringify(object, null, 2)}
|
|
31
31
|
</SyntaxHighlighter>
|
|
32
32
|
</StackItem.Content>
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
import React, { useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
import { Capabilities, useCapabilities } from '@dxos/app-framework';
|
|
8
|
-
import { type ConfigProto,
|
|
8
|
+
import { type ConfigProto, SaveConfig, Storage, defs } from '@dxos/config';
|
|
9
9
|
import { log } from '@dxos/log';
|
|
10
10
|
import { useClient } from '@dxos/react-client';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
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
13
|
import { setDeep } from '@dxos/util';
|
|
14
14
|
|
|
15
15
|
import { DEBUG_PLUGIN } from '../meta';
|
|
@@ -77,67 +77,75 @@ export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) =>
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
return (
|
|
80
|
-
<
|
|
81
|
-
<
|
|
82
|
-
<
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
80
|
+
<ControlPage>
|
|
81
|
+
<ControlSection title={t('settings title', { ns: DEBUG_PLUGIN })}>
|
|
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>
|
|
141
149
|
);
|
|
142
150
|
};
|
|
143
151
|
|
|
@@ -2,58 +2,64 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { type PromiseIntentDispatcher, createIntent } from '@dxos/app-framework';
|
|
5
6
|
import { addressToA1Notation } from '@dxos/compute';
|
|
6
7
|
import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';
|
|
7
|
-
import { DXN, Filter, Key, Obj, Ref } from '@dxos/echo';
|
|
8
|
+
import { DXN, Filter, Key, Obj, Ref, Type } from '@dxos/echo';
|
|
8
9
|
import { type TypedObject } from '@dxos/echo-schema';
|
|
9
|
-
import {
|
|
10
|
+
import { Markdown } from '@dxos/plugin-markdown/types';
|
|
10
11
|
import { createSheet } from '@dxos/plugin-sheet/types';
|
|
11
|
-
import {
|
|
12
|
+
import { type CellValue, SheetType } from '@dxos/plugin-sheet/types';
|
|
12
13
|
import { CanvasType, DiagramType } from '@dxos/plugin-sketch/types';
|
|
14
|
+
import { SpaceAction } from '@dxos/plugin-space/types';
|
|
13
15
|
import { faker } from '@dxos/random';
|
|
16
|
+
import { type Client } from '@dxos/react-client';
|
|
14
17
|
import { type Space } from '@dxos/react-client/echo';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { createAsyncGenerator, type ValueGenerator } from '@dxos/schema/testing';
|
|
18
|
+
import { DataType, typenameFromQuery } from '@dxos/schema';
|
|
19
|
+
import { type ValueGenerator, createAsyncGenerator } from '@dxos/schema/testing';
|
|
18
20
|
import { range } from '@dxos/util';
|
|
19
21
|
|
|
20
22
|
const generator: ValueGenerator = faker as any;
|
|
21
23
|
|
|
24
|
+
const findViewByTypename = async (views: DataType.View[], typename: string) => {
|
|
25
|
+
return views.find((view) => typenameFromQuery(view.query) === typename);
|
|
26
|
+
};
|
|
27
|
+
|
|
22
28
|
export type ObjectGenerator<T extends Obj.Any> = (space: Space, n: number, cb?: (objects: T[]) => void) => Promise<T[]>;
|
|
23
29
|
|
|
24
|
-
export const createGenerator = <T extends Obj.Any>(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// Create objects.
|
|
32
|
-
const generate = createAsyncGenerator(generator, schema.snapshot, { db: space.db });
|
|
33
|
-
const objects = await generate.createObjects(n);
|
|
30
|
+
export const createGenerator = <T extends Obj.Any>(
|
|
31
|
+
client: Client,
|
|
32
|
+
dispatch: PromiseIntentDispatcher,
|
|
33
|
+
schema: TypedObject<T>,
|
|
34
|
+
): ObjectGenerator<T> => {
|
|
35
|
+
return async (space: Space, n: number): Promise<T[]> => {
|
|
36
|
+
const typename = schema.typename;
|
|
34
37
|
|
|
35
38
|
// Find or create table and view.
|
|
36
|
-
const { objects:
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
const { objects: views } = await space.db.query(Filter.type(DataType.View)).run();
|
|
40
|
+
const view = await findViewByTypename(views, typename);
|
|
41
|
+
const staticSchema = client?.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename);
|
|
42
|
+
if (!view && !staticSchema) {
|
|
43
|
+
await dispatch(createIntent(SpaceAction.AddSchema, { space, schema }));
|
|
44
|
+
} else if (!view && staticSchema) {
|
|
45
|
+
await dispatch(createIntent(SpaceAction.UseStaticSchema, { space, typename }));
|
|
42
46
|
}
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
// Create objects.
|
|
49
|
+
const generate = createAsyncGenerator(generator, schema, { db: space.db });
|
|
50
|
+
return generate.createObjects(n);
|
|
45
51
|
};
|
|
46
52
|
};
|
|
47
53
|
|
|
48
54
|
export const staticGenerators = new Map<string, ObjectGenerator<any>>([
|
|
49
55
|
[
|
|
50
|
-
|
|
56
|
+
Markdown.Document.typename,
|
|
51
57
|
async (space, n, cb) => {
|
|
52
58
|
const objects = range(n).map(() => {
|
|
53
59
|
return space.db.add(
|
|
54
|
-
|
|
60
|
+
Markdown.makeDocument({
|
|
55
61
|
name: faker.commerce.productName(),
|
|
56
|
-
content:
|
|
62
|
+
content: faker.lorem.sentences(5),
|
|
57
63
|
}),
|
|
58
64
|
);
|
|
59
65
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
-
import { type Meta } from '@storybook/react';
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
8
8
|
import React from 'react';
|
|
9
9
|
|
|
10
10
|
import { IntentPlugin } from '@dxos/app-framework';
|
|
@@ -24,15 +24,15 @@ const DefaultStory = () => {
|
|
|
24
24
|
return <SpaceGenerator space={space} />;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
const meta
|
|
27
|
+
const meta = {
|
|
28
28
|
title: 'plugins/plugin-debug/SpaceGenerator',
|
|
29
|
-
component: SpaceGenerator,
|
|
29
|
+
component: SpaceGenerator as any,
|
|
30
30
|
render: render(DefaultStory),
|
|
31
31
|
decorators: [
|
|
32
32
|
withPluginManager({
|
|
33
33
|
plugins: [
|
|
34
34
|
ClientPlugin({
|
|
35
|
-
onClientInitialized: async (
|
|
35
|
+
onClientInitialized: async ({ client }) => {
|
|
36
36
|
await client.halo.createIdentity();
|
|
37
37
|
},
|
|
38
38
|
}),
|
|
@@ -45,8 +45,10 @@ const meta: Meta = {
|
|
|
45
45
|
parameters: {
|
|
46
46
|
layout: 'fullscreen',
|
|
47
47
|
},
|
|
48
|
-
}
|
|
48
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
49
49
|
|
|
50
50
|
export default meta;
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
type Story = StoryObj<typeof meta>;
|
|
53
|
+
|
|
54
|
+
export const Default: Story = {};
|