@dxos/plugin-debug 0.8.4-main.28f8d3d → 0.8.4-main.406dc2a
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/{SpaceGenerator-XJJAOTIT.mjs → SpaceGenerator-VMWHGAJZ.mjs} +210 -31
- package/dist/lib/browser/SpaceGenerator-VMWHGAJZ.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-PXPZIIGY.mjs → app-graph-builder-I4IHBKKN.mjs} +73 -82
- package/dist/lib/browser/app-graph-builder-I4IHBKKN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-AJA6RYN3.mjs → chunk-SRV2AIGJ.mjs} +2 -2
- package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5XPIRNQS.mjs → chunk-SVCKCXCL.mjs} +2 -4
- package/dist/lib/browser/chunk-SVCKCXCL.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +13 -12
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-context-NVAGLAJD.mjs → react-context-QLZE7VSQ.mjs} +6 -6
- package/dist/lib/browser/react-context-QLZE7VSQ.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-UNFNQFWK.mjs → react-surface-GFORPA3A.mjs} +75 -71
- package/dist/lib/browser/react-surface-GFORPA3A.mjs.map +7 -0
- package/dist/lib/browser/{settings-LSSWLM5I.mjs → settings-EBVICEEW.mjs} +5 -5
- package/dist/lib/browser/{settings-LSSWLM5I.mjs.map → settings-EBVICEEW.mjs.map} +1 -1
- package/dist/types/src/DebugPlugin.d.ts +1 -1
- package/dist/types/src/DebugPlugin.d.ts.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/DebugObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +1 -1
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +13 -4
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts +4 -1
- 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/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +1 -1
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +65 -63
- package/src/DebugPlugin.tsx +5 -6
- package/src/capabilities/app-graph-builder.ts +61 -87
- package/src/capabilities/react-context.tsx +2 -2
- package/src/capabilities/react-surface.tsx +46 -44
- package/src/components/DebugGraph.tsx +14 -0
- package/src/components/DebugObjectPanel.tsx +2 -4
- package/src/components/DebugSettings.tsx +72 -64
- package/src/components/DebugStatus.tsx +2 -2
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +8 -8
- package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +10 -10
- package/src/components/SpaceGenerator/SpaceGenerator.tsx +1 -1
- package/src/components/SpaceGenerator/draw-util.ts +2 -2
- package/src/components/SpaceGenerator/presets.ts +172 -11
- package/src/components/Wireframe.tsx +2 -1
- package/src/components/index.ts +1 -1
- package/src/meta.ts +1 -3
- package/src/translations.ts +2 -0
- package/src/types.ts +1 -1
- package/dist/lib/browser/DebugApp-F4UFVW4Y.mjs +0 -228
- package/dist/lib/browser/DebugApp-F4UFVW4Y.mjs.map +0 -7
- package/dist/lib/browser/SpaceGenerator-XJJAOTIT.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-PXPZIIGY.mjs.map +0 -7
- package/dist/lib/browser/chunk-5XPIRNQS.mjs.map +0 -7
- package/dist/lib/browser/chunk-AJA6RYN3.mjs.map +0 -7
- package/dist/lib/browser/react-context-NVAGLAJD.mjs.map +0 -7
- package/dist/lib/browser/react-surface-UNFNQFWK.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 -85
- package/src/components/DebugApp/Tree.tsx +0 -103
- package/src/components/DebugApp/index.ts +0 -7
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Devtools
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SRV2AIGJ.mjs";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./chunk-
|
|
5
|
+
meta
|
|
6
|
+
} from "./chunk-SVCKCXCL.mjs";
|
|
7
7
|
|
|
8
8
|
// src/capabilities/react-surface.tsx
|
|
9
|
-
import
|
|
9
|
+
import * as Function from "effect/Function";
|
|
10
10
|
import React5, { useCallback } from "react";
|
|
11
11
|
import { Capabilities as Capabilities2, LayoutAction, chain, contributes, createIntent, createSurface, useCapability, useIntentDispatcher } from "@dxos/app-framework";
|
|
12
12
|
import { 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 } from "@dxos/devtools";
|
|
@@ -29,7 +29,7 @@ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
|
29
29
|
import React from "react";
|
|
30
30
|
import { Clipboard, Input, Toolbar } from "@dxos/react-ui";
|
|
31
31
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
32
|
-
import {
|
|
32
|
+
import { Json } from "@dxos/react-ui-syntax-highlighter";
|
|
33
33
|
var DebugObjectPanel = ({ object }) => {
|
|
34
34
|
var _effect = _useSignals();
|
|
35
35
|
try {
|
|
@@ -41,10 +41,9 @@ var DebugObjectPanel = ({ object }) => {
|
|
|
41
41
|
value: dxn
|
|
42
42
|
}), /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
|
|
43
43
|
value: dxn
|
|
44
|
-
}))), /* @__PURE__ */ React.createElement(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}, JSON.stringify(object, null, 2))));
|
|
44
|
+
}))), /* @__PURE__ */ React.createElement(Json, {
|
|
45
|
+
data: object
|
|
46
|
+
})));
|
|
48
47
|
} finally {
|
|
49
48
|
_effect.f();
|
|
50
49
|
}
|
|
@@ -58,7 +57,7 @@ import { SaveConfig, Storage, defs } from "@dxos/config";
|
|
|
58
57
|
import { log } from "@dxos/log";
|
|
59
58
|
import { useClient } from "@dxos/react-client";
|
|
60
59
|
import { Button, Icon, Input as Input2, Select, Toast, useFileDownload, useTranslation } from "@dxos/react-ui";
|
|
61
|
-
import {
|
|
60
|
+
import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
62
61
|
import { setDeep } from "@dxos/util";
|
|
63
62
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/components/DebugSettings.tsx";
|
|
64
63
|
var StorageAdapters = {
|
|
@@ -68,7 +67,7 @@ var StorageAdapters = {
|
|
|
68
67
|
var DebugSettings = ({ settings }) => {
|
|
69
68
|
var _effect = _useSignals2();
|
|
70
69
|
try {
|
|
71
|
-
const { t } = useTranslation(
|
|
70
|
+
const { t } = useTranslation(meta.id);
|
|
72
71
|
const [toast, setToast] = useState();
|
|
73
72
|
const client = useClient();
|
|
74
73
|
const download = useFileDownload();
|
|
@@ -139,20 +138,24 @@ var DebugSettings = ({ settings }) => {
|
|
|
139
138
|
});
|
|
140
139
|
}
|
|
141
140
|
};
|
|
142
|
-
return /* @__PURE__ */ React2.createElement(
|
|
143
|
-
|
|
141
|
+
return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
|
|
142
|
+
title: t("settings title", {
|
|
143
|
+
ns: meta.id
|
|
144
|
+
})
|
|
145
|
+
}, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
|
|
146
|
+
title: t("settings wireframe")
|
|
144
147
|
}, /* @__PURE__ */ React2.createElement(Input2.Switch, {
|
|
145
148
|
checked: settings.wireframe,
|
|
146
149
|
onCheckedChange: (checked) => settings.wireframe = !!checked
|
|
147
|
-
})), /* @__PURE__ */ React2.createElement(
|
|
148
|
-
|
|
150
|
+
})), /* @__PURE__ */ React2.createElement(ControlItemInput, {
|
|
151
|
+
title: t("settings download diagnostics")
|
|
149
152
|
}, /* @__PURE__ */ React2.createElement(Button, {
|
|
150
153
|
onClick: handleDownload
|
|
151
154
|
}, /* @__PURE__ */ React2.createElement(Icon, {
|
|
152
155
|
icon: "ph--download-simple--regular",
|
|
153
156
|
size: 5
|
|
154
|
-
}))), /* @__PURE__ */ React2.createElement(
|
|
155
|
-
|
|
157
|
+
}))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
|
|
158
|
+
title: t("settings repair")
|
|
156
159
|
}, /* @__PURE__ */ React2.createElement(Button, {
|
|
157
160
|
onClick: handleRepair
|
|
158
161
|
}, /* @__PURE__ */ React2.createElement(Icon, {
|
|
@@ -162,8 +165,8 @@ var DebugSettings = ({ settings }) => {
|
|
|
162
165
|
icon: "ph--gift--duotone",
|
|
163
166
|
size: 5,
|
|
164
167
|
classNames: "inline mr-1"
|
|
165
|
-
}), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(
|
|
166
|
-
|
|
168
|
+
}), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
|
|
169
|
+
title: t("settings choose storage adaptor")
|
|
167
170
|
}, /* @__PURE__ */ React2.createElement(Select.Root, {
|
|
168
171
|
value: Object.entries(StorageAdapters).find(([name2, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore)?.[0],
|
|
169
172
|
onValueChange: (value) => {
|
|
@@ -181,7 +184,7 @@ var DebugSettings = ({ settings }) => {
|
|
|
181
184
|
}), /* @__PURE__ */ React2.createElement(Select.Portal, null, /* @__PURE__ */ React2.createElement(Select.Content, null, /* @__PURE__ */ React2.createElement(Select.Viewport, null, Object.keys(StorageAdapters).map((key) => /* @__PURE__ */ React2.createElement(Select.Option, {
|
|
182
185
|
key,
|
|
183
186
|
value: key
|
|
184
|
-
}, t(`settings storage adaptor ${key} label`)))))))));
|
|
187
|
+
}, t(`settings storage adaptor ${key} label`)))), /* @__PURE__ */ React2.createElement(Select.Arrow, null))))))));
|
|
185
188
|
} finally {
|
|
186
189
|
_effect.f();
|
|
187
190
|
}
|
|
@@ -213,7 +216,7 @@ var ErrorIndicator = () => {
|
|
|
213
216
|
var _effect = _useSignals3();
|
|
214
217
|
try {
|
|
215
218
|
const [, forceUpdate] = useState2({});
|
|
216
|
-
const errorRef = useRef();
|
|
219
|
+
const errorRef = useRef(null);
|
|
217
220
|
useEffect2(() => {
|
|
218
221
|
const errorListener = (event) => {
|
|
219
222
|
const error = event.error ?? event.reason;
|
|
@@ -230,7 +233,7 @@ var ErrorIndicator = () => {
|
|
|
230
233
|
};
|
|
231
234
|
}, []);
|
|
232
235
|
const handleReset = () => {
|
|
233
|
-
errorRef.current =
|
|
236
|
+
errorRef.current = null;
|
|
234
237
|
forceUpdate({});
|
|
235
238
|
};
|
|
236
239
|
if (errorRef.current) {
|
|
@@ -341,7 +344,7 @@ import React4 from "react";
|
|
|
341
344
|
import { useResizeDetector } from "react-resize-detector";
|
|
342
345
|
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
343
346
|
import { useAttentionAttributes } from "@dxos/react-ui-attention";
|
|
344
|
-
import { SyntaxHighlighter
|
|
347
|
+
import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
|
|
345
348
|
import { mx } from "@dxos/react-ui-theme";
|
|
346
349
|
var Wireframe = ({ classNames, label, object }) => {
|
|
347
350
|
var _effect = _useSignals4();
|
|
@@ -356,9 +359,9 @@ var Wireframe = ({ classNames, label, object }) => {
|
|
|
356
359
|
className: "absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono"
|
|
357
360
|
}, /* @__PURE__ */ React4.createElement("div", {
|
|
358
361
|
className: "flex justify-between"
|
|
359
|
-
}, /* @__PURE__ */ React4.createElement("div", null, label), /* @__PURE__ */ React4.createElement("div", null, `[${width}x${height}]`)), object && /* @__PURE__ */ React4.createElement(
|
|
362
|
+
}, /* @__PURE__ */ React4.createElement("div", null, label), /* @__PURE__ */ React4.createElement("div", null, `[${width}x${height}]`)), object && /* @__PURE__ */ React4.createElement(SyntaxHighlighter, {
|
|
360
363
|
language: "json",
|
|
361
|
-
classNames: "
|
|
364
|
+
classNames: "text-xs opacity-75 rounded"
|
|
362
365
|
}, JSON.stringify(object, void 0, 2))), /* @__PURE__ */ React4.createElement("svg", {
|
|
363
366
|
width,
|
|
364
367
|
height,
|
|
@@ -389,14 +392,14 @@ var Wireframe = ({ classNames, label, object }) => {
|
|
|
389
392
|
};
|
|
390
393
|
|
|
391
394
|
// src/components/index.ts
|
|
392
|
-
var
|
|
395
|
+
var DebugGraph = lazy(() => import("./DebugGraph-EDOH6R2G.mjs"));
|
|
393
396
|
var DevtoolsOverviewContainer = lazy(() => import("./DevtoolsOverviewContainer-EPD6EWT5.mjs"));
|
|
394
|
-
var SpaceGenerator = lazy(() => import("./SpaceGenerator-
|
|
397
|
+
var SpaceGenerator = lazy(() => import("./SpaceGenerator-VMWHGAJZ.mjs"));
|
|
395
398
|
|
|
396
399
|
// src/capabilities/react-surface.tsx
|
|
397
400
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/capabilities/react-surface.tsx";
|
|
398
|
-
var isSpaceDebug = (data) => data?.type === `${
|
|
399
|
-
var isGraphDebug = (data) => data?.graph instanceof Graph;
|
|
401
|
+
var isSpaceDebug = (data) => data?.type === `${meta.id}/space` && isSpace(data.space);
|
|
402
|
+
var isGraphDebug = (data) => data?.graph instanceof Graph && typeof data?.root === "string";
|
|
400
403
|
var useCurrentSpace = () => {
|
|
401
404
|
const layout = useCapability(Capabilities2.Layout);
|
|
402
405
|
const client = useCapability(ClientCapabilities.Client);
|
|
@@ -404,17 +407,17 @@ var useCurrentSpace = () => {
|
|
|
404
407
|
const space = spaceId ? client.spaces.get(spaceId) : void 0;
|
|
405
408
|
return space;
|
|
406
409
|
};
|
|
407
|
-
var react_surface_default = (context) => contributes(Capabilities2.ReactSurface, [
|
|
410
|
+
var react_surface_default = ((context) => contributes(Capabilities2.ReactSurface, [
|
|
408
411
|
createSurface({
|
|
409
|
-
id: `${
|
|
412
|
+
id: `${meta.id}/plugin-settings`,
|
|
410
413
|
role: "article",
|
|
411
|
-
filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix ===
|
|
414
|
+
filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
|
|
412
415
|
component: ({ data: { subject } }) => /* @__PURE__ */ React5.createElement(DebugSettings, {
|
|
413
416
|
settings: subject.value
|
|
414
417
|
})
|
|
415
418
|
}),
|
|
416
419
|
createSurface({
|
|
417
|
-
id: `${
|
|
420
|
+
id: `${meta.id}/space`,
|
|
418
421
|
role: "article",
|
|
419
422
|
filter: (data) => isSpaceDebug(data.subject),
|
|
420
423
|
component: ({ data }) => {
|
|
@@ -443,22 +446,23 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
443
446
|
}
|
|
444
447
|
}),
|
|
445
448
|
createSurface({
|
|
446
|
-
id: `${
|
|
449
|
+
id: `${meta.id}/app-graph`,
|
|
447
450
|
role: "article",
|
|
448
451
|
filter: (data) => isGraphDebug(data.subject),
|
|
449
|
-
component: ({ data }) => /* @__PURE__ */ React5.createElement(
|
|
450
|
-
graph: data.subject.graph
|
|
452
|
+
component: ({ data }) => /* @__PURE__ */ React5.createElement(DebugGraph, {
|
|
453
|
+
graph: data.subject.graph,
|
|
454
|
+
root: data.subject.root
|
|
451
455
|
})
|
|
452
456
|
}),
|
|
453
457
|
createSurface({
|
|
454
|
-
id: `${
|
|
458
|
+
id: `${meta.id}/wireframe`,
|
|
455
459
|
role: [
|
|
456
460
|
"article",
|
|
457
461
|
"section"
|
|
458
462
|
],
|
|
459
463
|
position: "hoist",
|
|
460
464
|
filter: (data) => {
|
|
461
|
-
const settings = context.getCapability(Capabilities2.SettingsStore).getStore(
|
|
465
|
+
const settings = context.getCapability(Capabilities2.SettingsStore).getStore(meta.id).value;
|
|
462
466
|
return Obj.isObject(data.subject) && !!settings.wireframe;
|
|
463
467
|
},
|
|
464
468
|
component: ({ data, role }) => /* @__PURE__ */ React5.createElement(Wireframe, {
|
|
@@ -468,7 +472,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
468
472
|
})
|
|
469
473
|
}),
|
|
470
474
|
createSurface({
|
|
471
|
-
id: `${
|
|
475
|
+
id: `${meta.id}/object-debug`,
|
|
472
476
|
role: "article",
|
|
473
477
|
filter: (data) => data.subject === "debug" && Obj.isObject(data.companionTo),
|
|
474
478
|
component: ({ data }) => /* @__PURE__ */ React5.createElement(DebugObjectPanel, {
|
|
@@ -476,12 +480,12 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
476
480
|
})
|
|
477
481
|
}),
|
|
478
482
|
createSurface({
|
|
479
|
-
id: `${
|
|
483
|
+
id: `${meta.id}/devtools-overview`,
|
|
480
484
|
role: "deck-companion--devtools",
|
|
481
485
|
component: () => /* @__PURE__ */ React5.createElement(DevtoolsOverviewContainer, null)
|
|
482
486
|
}),
|
|
483
487
|
createSurface({
|
|
484
|
-
id: `${
|
|
488
|
+
id: `${meta.id}/status`,
|
|
485
489
|
role: "status",
|
|
486
490
|
component: () => /* @__PURE__ */ React5.createElement(DebugStatus, null)
|
|
487
491
|
}),
|
|
@@ -489,7 +493,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
489
493
|
// Devtools
|
|
490
494
|
//
|
|
491
495
|
createSurface({
|
|
492
|
-
id: `${
|
|
496
|
+
id: `${meta.id}/client/config`,
|
|
493
497
|
role: "article",
|
|
494
498
|
filter: (data) => data.subject === Devtools.Client.Config,
|
|
495
499
|
component: () => /* @__PURE__ */ React5.createElement(ConfigPanel, {
|
|
@@ -497,49 +501,49 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
497
501
|
})
|
|
498
502
|
}),
|
|
499
503
|
createSurface({
|
|
500
|
-
id: `${
|
|
504
|
+
id: `${meta.id}/client/storage`,
|
|
501
505
|
role: "article",
|
|
502
506
|
filter: (data) => data.subject === Devtools.Client.Storage,
|
|
503
507
|
component: () => /* @__PURE__ */ React5.createElement(StoragePanel, null)
|
|
504
508
|
}),
|
|
505
509
|
createSurface({
|
|
506
|
-
id: `${
|
|
510
|
+
id: `${meta.id}/client/logs`,
|
|
507
511
|
role: "article",
|
|
508
512
|
filter: (data) => data.subject === Devtools.Client.Logs,
|
|
509
513
|
component: () => /* @__PURE__ */ React5.createElement(LoggingPanel, null)
|
|
510
514
|
}),
|
|
511
515
|
createSurface({
|
|
512
|
-
id: `${
|
|
516
|
+
id: `${meta.id}/client/diagnostics`,
|
|
513
517
|
role: "article",
|
|
514
518
|
filter: (data) => data.subject === Devtools.Client.Diagnostics,
|
|
515
519
|
component: () => /* @__PURE__ */ React5.createElement(DiagnosticsPanel, null)
|
|
516
520
|
}),
|
|
517
521
|
createSurface({
|
|
518
|
-
id: `${
|
|
522
|
+
id: `${meta.id}/client/tracing`,
|
|
519
523
|
role: "article",
|
|
520
524
|
filter: (data) => data.subject === Devtools.Client.Tracing,
|
|
521
525
|
component: () => /* @__PURE__ */ React5.createElement(TracingPanel, null)
|
|
522
526
|
}),
|
|
523
527
|
createSurface({
|
|
524
|
-
id: `${
|
|
528
|
+
id: `${meta.id}/halo/identity`,
|
|
525
529
|
role: "article",
|
|
526
530
|
filter: (data) => data.subject === Devtools.Halo.Identity,
|
|
527
531
|
component: () => /* @__PURE__ */ React5.createElement(IdentityPanel, null)
|
|
528
532
|
}),
|
|
529
533
|
createSurface({
|
|
530
|
-
id: `${
|
|
534
|
+
id: `${meta.id}/halo/devices`,
|
|
531
535
|
role: "article",
|
|
532
536
|
filter: (data) => data.subject === Devtools.Halo.Devices,
|
|
533
537
|
component: () => /* @__PURE__ */ React5.createElement(DeviceListPanel, null)
|
|
534
538
|
}),
|
|
535
539
|
createSurface({
|
|
536
|
-
id: `${
|
|
540
|
+
id: `${meta.id}/halo/keyring`,
|
|
537
541
|
role: "article",
|
|
538
542
|
filter: (data) => data.subject === Devtools.Halo.Keyring,
|
|
539
543
|
component: () => /* @__PURE__ */ React5.createElement(KeyringPanel, null)
|
|
540
544
|
}),
|
|
541
545
|
createSurface({
|
|
542
|
-
id: `${
|
|
546
|
+
id: `${meta.id}/halo/credentials`,
|
|
543
547
|
role: "article",
|
|
544
548
|
filter: (data) => data.subject === Devtools.Halo.Credentials,
|
|
545
549
|
component: () => {
|
|
@@ -550,7 +554,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
550
554
|
}
|
|
551
555
|
}),
|
|
552
556
|
createSurface({
|
|
553
|
-
id: `${
|
|
557
|
+
id: `${meta.id}/echo/spaces`,
|
|
554
558
|
role: "article",
|
|
555
559
|
filter: (data) => data.subject === Devtools.Echo.Spaces,
|
|
556
560
|
component: () => {
|
|
@@ -569,7 +573,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
569
573
|
}
|
|
570
574
|
}),
|
|
571
575
|
createSurface({
|
|
572
|
-
id: `${
|
|
576
|
+
id: `${meta.id}/echo/space`,
|
|
573
577
|
role: "article",
|
|
574
578
|
filter: (data) => data.subject === Devtools.Echo.Space,
|
|
575
579
|
component: () => {
|
|
@@ -591,7 +595,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
591
595
|
}
|
|
592
596
|
}),
|
|
593
597
|
createSurface({
|
|
594
|
-
id: `${
|
|
598
|
+
id: `${meta.id}/echo/feeds`,
|
|
595
599
|
role: "article",
|
|
596
600
|
filter: (data) => data.subject === Devtools.Echo.Feeds,
|
|
597
601
|
component: () => {
|
|
@@ -602,7 +606,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
602
606
|
}
|
|
603
607
|
}),
|
|
604
608
|
createSurface({
|
|
605
|
-
id: `${
|
|
609
|
+
id: `${meta.id}/echo/objects`,
|
|
606
610
|
role: "article",
|
|
607
611
|
filter: (data) => data.subject === Devtools.Echo.Objects,
|
|
608
612
|
component: () => {
|
|
@@ -613,7 +617,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
613
617
|
}
|
|
614
618
|
}),
|
|
615
619
|
createSurface({
|
|
616
|
-
id: `${
|
|
620
|
+
id: `${meta.id}/echo/schema`,
|
|
617
621
|
role: "article",
|
|
618
622
|
filter: (data) => data.subject === Devtools.Echo.Schema,
|
|
619
623
|
component: () => {
|
|
@@ -624,7 +628,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
624
628
|
}
|
|
625
629
|
}),
|
|
626
630
|
createSurface({
|
|
627
|
-
id: `${
|
|
631
|
+
id: `${meta.id}/echo/automerge`,
|
|
628
632
|
role: "article",
|
|
629
633
|
filter: (data) => data.subject === Devtools.Echo.Automerge,
|
|
630
634
|
component: () => {
|
|
@@ -635,13 +639,13 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
635
639
|
}
|
|
636
640
|
}),
|
|
637
641
|
createSurface({
|
|
638
|
-
id: `${
|
|
642
|
+
id: `${meta.id}/echo/queues`,
|
|
639
643
|
role: "article",
|
|
640
644
|
filter: (data) => data.subject === Devtools.Echo.Queues,
|
|
641
645
|
component: () => /* @__PURE__ */ React5.createElement(QueuesPanel, null)
|
|
642
646
|
}),
|
|
643
647
|
createSurface({
|
|
644
|
-
id: `${
|
|
648
|
+
id: `${meta.id}/echo/members`,
|
|
645
649
|
role: "article",
|
|
646
650
|
filter: (data) => data.subject === Devtools.Echo.Members,
|
|
647
651
|
component: () => {
|
|
@@ -652,25 +656,25 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
652
656
|
}
|
|
653
657
|
}),
|
|
654
658
|
createSurface({
|
|
655
|
-
id: `${
|
|
659
|
+
id: `${meta.id}/echo/metadata`,
|
|
656
660
|
role: "article",
|
|
657
661
|
filter: (data) => data.subject === Devtools.Echo.Metadata,
|
|
658
662
|
component: () => /* @__PURE__ */ React5.createElement(MetadataPanel, null)
|
|
659
663
|
}),
|
|
660
664
|
createSurface({
|
|
661
|
-
id: `${
|
|
665
|
+
id: `${meta.id}/mesh/signal`,
|
|
662
666
|
role: "article",
|
|
663
667
|
filter: (data) => data.subject === Devtools.Mesh.Signal,
|
|
664
668
|
component: () => /* @__PURE__ */ React5.createElement(SignalPanel, null)
|
|
665
669
|
}),
|
|
666
670
|
createSurface({
|
|
667
|
-
id: `${
|
|
671
|
+
id: `${meta.id}/mesh/swarm`,
|
|
668
672
|
role: "article",
|
|
669
673
|
filter: (data) => data.subject === Devtools.Mesh.Swarm,
|
|
670
674
|
component: () => /* @__PURE__ */ React5.createElement(SwarmPanel, null)
|
|
671
675
|
}),
|
|
672
676
|
createSurface({
|
|
673
|
-
id: `${
|
|
677
|
+
id: `${meta.id}/mesh/network`,
|
|
674
678
|
role: "article",
|
|
675
679
|
filter: (data) => data.subject === Devtools.Mesh.Network,
|
|
676
680
|
component: () => {
|
|
@@ -682,19 +686,19 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
682
686
|
}),
|
|
683
687
|
// TODO(wittjosiah): Remove?
|
|
684
688
|
// createSurface({
|
|
685
|
-
// id: `${
|
|
689
|
+
// id: `${meta.id}/agent/dashboard`,
|
|
686
690
|
// role: 'article',
|
|
687
691
|
// filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,
|
|
688
692
|
// component: () => <DashboardPanel />,
|
|
689
693
|
// }),
|
|
690
694
|
createSurface({
|
|
691
|
-
id: `${
|
|
695
|
+
id: `${meta.id}/edge/dashboard`,
|
|
692
696
|
role: "article",
|
|
693
697
|
filter: (data) => data.subject === Devtools.Edge.Dashboard,
|
|
694
698
|
component: () => /* @__PURE__ */ React5.createElement(EdgeDashboardPanel, null)
|
|
695
699
|
}),
|
|
696
700
|
createSurface({
|
|
697
|
-
id: `${
|
|
701
|
+
id: `${meta.id}/edge/workflows`,
|
|
698
702
|
role: "article",
|
|
699
703
|
filter: (data) => data.subject === Devtools.Edge.Workflows,
|
|
700
704
|
component: () => {
|
|
@@ -705,7 +709,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
705
709
|
}
|
|
706
710
|
}),
|
|
707
711
|
createSurface({
|
|
708
|
-
id: `${
|
|
712
|
+
id: `${meta.id}/edge/traces`,
|
|
709
713
|
role: "article",
|
|
710
714
|
filter: (data) => data.subject === Devtools.Edge.Traces,
|
|
711
715
|
component: () => {
|
|
@@ -717,7 +721,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
717
721
|
}
|
|
718
722
|
}),
|
|
719
723
|
createSurface({
|
|
720
|
-
id: `${
|
|
724
|
+
id: `${meta.id}/edge/testing`,
|
|
721
725
|
role: "article",
|
|
722
726
|
filter: (data) => data.subject === Devtools.Edge.Testing,
|
|
723
727
|
component: () => {
|
|
@@ -733,7 +737,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
733
737
|
]);
|
|
734
738
|
const onScriptPluginOpen = useCallback(async (space) => {
|
|
735
739
|
await space.waitUntilReady();
|
|
736
|
-
const result = await dispatch(pipe(createIntent(ScriptAction.
|
|
740
|
+
const result = await dispatch(Function.pipe(createIntent(ScriptAction.CreateScript, {
|
|
737
741
|
space
|
|
738
742
|
}), chain(SpaceAction.AddObject, {
|
|
739
743
|
target: space
|
|
@@ -742,7 +746,7 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
742
746
|
result
|
|
743
747
|
}, {
|
|
744
748
|
F: __dxlog_file2,
|
|
745
|
-
L:
|
|
749
|
+
L: 389,
|
|
746
750
|
S: void 0,
|
|
747
751
|
C: (f, a) => f(...a)
|
|
748
752
|
});
|
|
@@ -761,8 +765,8 @@ var react_surface_default = (context) => contributes(Capabilities2.ReactSurface,
|
|
|
761
765
|
});
|
|
762
766
|
}
|
|
763
767
|
})
|
|
764
|
-
]);
|
|
768
|
+
]));
|
|
765
769
|
export {
|
|
766
770
|
react_surface_default as default
|
|
767
771
|
};
|
|
768
|
-
//# sourceMappingURL=react-surface-
|
|
772
|
+
//# sourceMappingURL=react-surface-GFORPA3A.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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(new File([file], fileName), client.spaces.default);\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", "File", "spaces", "default", "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 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DebugSettingsSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SRV2AIGJ.mjs";
|
|
4
4
|
import {
|
|
5
5
|
meta
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SVCKCXCL.mjs";
|
|
7
7
|
|
|
8
8
|
// src/capabilities/settings.ts
|
|
9
9
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
10
10
|
import { live } from "@dxos/live-object";
|
|
11
|
-
var settings_default = () => {
|
|
11
|
+
var settings_default = (() => {
|
|
12
12
|
const settings = live({});
|
|
13
13
|
return contributes(Capabilities.Settings, {
|
|
14
14
|
prefix: meta.id,
|
|
15
15
|
schema: DebugSettingsSchema,
|
|
16
16
|
value: settings
|
|
17
17
|
});
|
|
18
|
-
};
|
|
18
|
+
});
|
|
19
19
|
export {
|
|
20
20
|
settings_default as default
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=settings-
|
|
22
|
+
//# sourceMappingURL=settings-EBVICEEW.mjs.map
|