@dxos/plugin-debug 0.8.3-staging.0fa589b → 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/
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/plugin-
|
|
56
|
-
"@dxos/plugin-
|
|
57
|
-
"@dxos/plugin-
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/plugin-graph": "0.8.
|
|
60
|
-
"@dxos/plugin-
|
|
61
|
-
"@dxos/plugin-
|
|
62
|
-
"@dxos/plugin-
|
|
63
|
-
"@dxos/plugin-
|
|
64
|
-
"@dxos/plugin-
|
|
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/react-ui-
|
|
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/
|
|
92
|
-
"@dxos/
|
|
93
|
-
"@dxos/react-ui": "0.8.
|
|
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
|
|
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
|
});
|