@dxos/plugin-debug 0.9.1-staging.ee54ba693a → 0.11.0
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/PLUGIN.mdl +12 -325
- package/README.md +4 -14
- package/dist/lib/DebugPlugin.mjs +29 -0
- package/dist/lib/DebugPlugin.mjs.map +1 -0
- package/dist/lib/DebugPlugin.node.mjs +10 -0
- package/dist/lib/DebugPlugin.node.mjs.map +1 -0
- package/dist/lib/DebugPlugin.workerd.mjs +8 -0
- package/dist/lib/DebugPlugin.workerd.mjs.map +1 -0
- package/dist/lib/capabilities.mjs +11 -0
- package/dist/lib/capabilities.mjs.map +1 -0
- package/dist/lib/chunk-DebugObjectPanel.mjs +58 -0
- package/dist/lib/chunk-DebugObjectPanel.mjs.map +1 -0
- package/dist/lib/chunk-DebugSettings.mjs +237 -0
- package/dist/lib/chunk-DebugSettings.mjs.map +1 -0
- package/dist/lib/chunk-DebugSpaceObjectsPanel.mjs +39 -0
- package/dist/lib/chunk-DebugSpaceObjectsPanel.mjs.map +1 -0
- package/dist/lib/chunk-DebugStatus.mjs +117 -0
- package/dist/lib/chunk-DebugStatus.mjs.map +1 -0
- package/dist/lib/chunk-LogStatus.mjs +44 -0
- package/dist/lib/chunk-LogStatus.mjs.map +1 -0
- package/dist/lib/chunk-SpaceGenerator.mjs +208 -0
- package/dist/lib/chunk-SpaceGenerator.mjs.map +1 -0
- package/dist/lib/chunk-StatsPanel.mjs +58 -0
- package/dist/lib/chunk-StatsPanel.mjs.map +1 -0
- package/dist/lib/chunk-Wireframe.mjs +60 -0
- package/dist/lib/chunk-Wireframe.mjs.map +1 -0
- package/dist/lib/chunk-app-graph-builder.mjs +76 -0
- package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
- package/dist/lib/chunk-log-recording.mjs +17 -0
- package/dist/lib/chunk-log-recording.mjs.map +1 -0
- package/dist/lib/chunk-meta.mjs +36 -0
- package/dist/lib/chunk-meta.mjs.map +1 -0
- package/dist/lib/chunk-react-surface.mjs +193 -0
- package/dist/lib/chunk-react-surface.mjs.map +1 -0
- package/dist/lib/chunk-settings.mjs +23 -0
- package/dist/lib/chunk-settings.mjs.map +1 -0
- package/dist/lib/chunk-stats-panel.mjs +56 -0
- package/dist/lib/chunk-stats-panel.mjs.map +1 -0
- package/dist/lib/chunk-types.mjs +60 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/components.mjs +763 -0
- package/dist/lib/components.mjs.map +1 -0
- package/dist/lib/containers.mjs +14 -0
- package/dist/lib/containers.mjs.map +1 -0
- package/dist/lib/index.mjs +3 -0
- package/dist/lib/meta.mjs +2 -0
- package/dist/lib/plugin.mjs +8 -0
- package/dist/lib/plugin.mjs.map +1 -0
- package/dist/lib/translations.mjs +38 -0
- package/dist/lib/translations.mjs.map +1 -0
- package/dist/lib/types.mjs +2 -0
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/DebugSurfaces.d.ts +25 -0
- package/dist/types/src/capabilities/DebugSurfaces.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts +4 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/log-recording.d.ts +10 -0
- package/dist/types/src/capabilities/log-recording.d.ts.map +1 -0
- 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/capabilities/stats-panel.d.ts +16 -0
- package/dist/types/src/capabilities/stats-panel.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts +4 -3
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +4 -1
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -1
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +4 -1
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -1
- package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts +30 -58
- package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts.map +1 -1
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +4 -1
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -1
- package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts +4 -1
- package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -1
- package/dist/types/src/containers/LogStatus/LogStatus.d.ts +6 -0
- package/dist/types/src/containers/LogStatus/LogStatus.d.ts.map +1 -0
- package/dist/types/src/containers/LogStatus/index.d.ts +2 -0
- package/dist/types/src/containers/LogStatus/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +1 -1
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
- package/dist/types/src/containers/StatsPanel/StatsPanel.d.ts +6 -0
- package/dist/types/src/containers/StatsPanel/StatsPanel.d.ts.map +1 -0
- package/dist/types/src/containers/StatsPanel/index.d.ts +2 -0
- package/dist/types/src/containers/StatsPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/Wireframe/Wireframe.d.ts +4 -1
- package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +4 -6
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +26 -57
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/DebugNodes.d.ts +7 -0
- package/dist/types/src/types/DebugNodes.d.ts.map +1 -0
- package/dist/types/src/types/DebugSurface.d.ts +8 -0
- package/dist/types/src/types/DebugSurface.d.ts.map +1 -0
- package/dist/types/src/types/debug.d.ts +3 -1
- package/dist/types/src/types/debug.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +2 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +8 -13
- package/package.json +61 -63
- package/src/DebugPlugin.node.ts +1 -1
- package/src/DebugPlugin.tsx +10 -27
- package/src/DebugPlugin.workerd.ts +1 -1
- package/src/capabilities/DebugSurfaces.tsx +146 -0
- package/src/capabilities/app-graph-builder.ts +39 -373
- package/src/capabilities/index.ts +3 -2
- package/src/capabilities/log-recording.ts +20 -0
- package/src/capabilities/react-surface.ts +123 -0
- package/src/capabilities/stats-panel.ts +74 -0
- package/src/components/SchemaTable/SchemaTable.tsx +6 -5
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +9 -3
- package/src/components/SpaceGenerator/presets.ts +2 -2
- package/src/components/index.ts +1 -1
- package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +20 -20
- package/src/containers/DebugSettings/DebugSettings.tsx +4 -3
- package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +4 -2
- package/src/containers/DebugStatus/DebugStatus.tsx +2 -0
- package/src/containers/LogStatus/LogStatus.tsx +51 -0
- package/src/containers/LogStatus/index.ts +5 -0
- package/src/containers/SpaceGenerator/SpaceGenerator.tsx +108 -10
- package/src/containers/StatsPanel/StatsPanel.tsx +74 -0
- package/src/containers/StatsPanel/index.ts +5 -0
- package/src/containers/Wireframe/Wireframe.tsx +2 -0
- package/src/containers/index.ts +9 -7
- package/src/index.ts +1 -1
- package/src/meta.ts +1 -1
- package/src/plugin.ts +1 -1
- package/src/translations.ts +8 -52
- package/src/types/DebugNodes.ts +18 -0
- package/src/types/DebugSurface.ts +16 -0
- package/src/types/debug.ts +3 -1
- package/src/types/index.ts +3 -3
- package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +0 -15
- package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +0 -7
- package/dist/lib/neutral/DebugObjectPanel-QSGQJ3LM.mjs +0 -61
- package/dist/lib/neutral/DebugObjectPanel-QSGQJ3LM.mjs.map +0 -7
- package/dist/lib/neutral/DebugPlugin.mjs +0 -59
- package/dist/lib/neutral/DebugPlugin.mjs.map +0 -7
- package/dist/lib/neutral/DebugPlugin.node.mjs +0 -18
- package/dist/lib/neutral/DebugPlugin.node.mjs.map +0 -7
- package/dist/lib/neutral/DebugPlugin.workerd.mjs +0 -12
- package/dist/lib/neutral/DebugPlugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/DebugSettings-Q3WUL6YQ.mjs +0 -229
- package/dist/lib/neutral/DebugSettings-Q3WUL6YQ.mjs.map +0 -7
- package/dist/lib/neutral/DebugSpaceObjectsPanel-AXFZWEIM.mjs +0 -36
- package/dist/lib/neutral/DebugSpaceObjectsPanel-AXFZWEIM.mjs.map +0 -7
- package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs +0 -122
- package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs.map +0 -7
- package/dist/lib/neutral/DevtoolsOverviewContainer-DWQHTK7D.mjs +0 -24
- package/dist/lib/neutral/DevtoolsOverviewContainer-DWQHTK7D.mjs.map +0 -7
- package/dist/lib/neutral/GithubPanel-4CSJRVKE.mjs +0 -177
- package/dist/lib/neutral/GithubPanel-4CSJRVKE.mjs.map +0 -7
- package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs +0 -161
- package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs.map +0 -7
- package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs +0 -146
- package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs.map +0 -7
- package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs +0 -52
- package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-UKG4WVYK.mjs +0 -619
- package/dist/lib/neutral/app-graph-builder-UKG4WVYK.mjs.map +0 -7
- package/dist/lib/neutral/capabilities/index.mjs +0 -15
- package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
- package/dist/lib/neutral/chunk-72QXLYMI.mjs +0 -118
- package/dist/lib/neutral/chunk-72QXLYMI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-R5C4CKOF.mjs +0 -54
- package/dist/lib/neutral/chunk-R5C4CKOF.mjs.map +0 -7
- package/dist/lib/neutral/components/index.mjs +0 -961
- package/dist/lib/neutral/components/index.mjs.map +0 -7
- package/dist/lib/neutral/containers/index.mjs +0 -27
- package/dist/lib/neutral/containers/index.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -20
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/meta.mjs +0 -8
- package/dist/lib/neutral/meta.mjs.map +0 -7
- package/dist/lib/neutral/plugin.mjs +0 -12
- package/dist/lib/neutral/plugin.mjs.map +0 -7
- package/dist/lib/neutral/react-context-UJURDOO6.mjs +0 -17
- package/dist/lib/neutral/react-context-UJURDOO6.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-URESE7J4.mjs +0 -484
- package/dist/lib/neutral/react-surface-URESE7J4.mjs.map +0 -7
- package/dist/lib/neutral/settings-5I2674B6.mjs +0 -28
- package/dist/lib/neutral/settings-5I2674B6.mjs.map +0 -7
- package/dist/lib/neutral/translations.mjs +0 -91
- package/dist/lib/neutral/translations.mjs.map +0 -7
- package/dist/lib/neutral/types/index.mjs +0 -16
- package/dist/lib/neutral/types/index.mjs.map +0 -7
- package/dist/types/src/DebugPlugin.test.d.ts +0 -2
- package/dist/types/src/DebugPlugin.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context.d.ts +0 -5
- package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +0 -8
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +0 -1
- package/dist/types/src/containers/DebugGraph/index.d.ts +0 -2
- package/dist/types/src/containers/DebugGraph/index.d.ts.map +0 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts +0 -3
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +0 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +0 -2
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +0 -1
- package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts +0 -15
- package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts.map +0 -1
- package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +0 -106
- package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +0 -1
- package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts +0 -3
- package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts.map +0 -1
- package/dist/types/src/containers/GithubPanel/index.d.ts +0 -2
- package/dist/types/src/containers/GithubPanel/index.d.ts.map +0 -1
- package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts +0 -3
- package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts.map +0 -1
- package/dist/types/src/containers/RegistryPanel/index.d.ts +0 -2
- package/dist/types/src/containers/RegistryPanel/index.d.ts.map +0 -1
- package/dist/types/src/types/Devtools.d.ts +0 -57
- package/dist/types/src/types/Devtools.d.ts.map +0 -1
- package/dist/types/src/types/surface.d.ts +0 -4
- package/dist/types/src/types/surface.d.ts.map +0 -1
- package/src/DebugPlugin.test.ts +0 -29
- package/src/capabilities/react-context.tsx +0 -25
- package/src/capabilities/react-surface.tsx +0 -504
- package/src/containers/DebugGraph/DebugGraph.tsx +0 -14
- package/src/containers/DebugGraph/index.ts +0 -5
- package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +0 -27
- package/src/containers/DevtoolsOverviewContainer/index.ts +0 -5
- package/src/containers/GithubPanel/GithubComponent.stories.tsx +0 -38
- package/src/containers/GithubPanel/GithubComponent.tsx +0 -192
- package/src/containers/GithubPanel/GithubPanel.tsx +0 -17
- package/src/containers/GithubPanel/index.ts +0 -5
- package/src/containers/RegistryPanel/RegistryPanel.tsx +0 -150
- package/src/containers/RegistryPanel/index.ts +0 -5
- package/src/types/Devtools.ts +0 -73
- package/src/types/surface.ts +0 -10
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/containers/DebugSettings/DebugSettings.tsx
|
|
4
|
-
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
5
|
-
import { AppSpace } from "@dxos/app-toolkit";
|
|
6
|
-
import { SaveConfig, Storage, defs } from "@dxos/config";
|
|
7
|
-
import { log } from "@dxos/log";
|
|
8
|
-
import { useClient } from "@dxos/react-client";
|
|
9
|
-
import { IconButton, Input, Select, Toast, useFileDownload, useTranslation } from "@dxos/react-ui";
|
|
10
|
-
import { Form } from "@dxos/react-ui-form";
|
|
11
|
-
import { TRACE_ALL_KEY } from "@dxos/tracing";
|
|
12
|
-
import { setDeep } from "@dxos/util";
|
|
13
|
-
import { meta } from "#meta";
|
|
14
|
-
import { Settings } from "#types";
|
|
15
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-debug/src/containers/DebugSettings/DebugSettings.tsx";
|
|
16
|
-
var StorageAdapters = {
|
|
17
|
-
opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,
|
|
18
|
-
idb: defs.Runtime.Client.Storage.StorageDriver.IDB
|
|
19
|
-
};
|
|
20
|
-
var DebugSettings = ({ settings, onSettingsChange, logStore, onUpload }) => {
|
|
21
|
-
const { t } = useTranslation(meta.profile.key);
|
|
22
|
-
const [toast, setToast] = useState();
|
|
23
|
-
const download = useFileDownload();
|
|
24
|
-
const [storageConfig, setStorageConfig] = useState({});
|
|
25
|
-
const client = useClient();
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
void Storage().then((config) => setStorageConfig(config));
|
|
28
|
-
}, []);
|
|
29
|
-
const handleToast = useCallback((toast2) => {
|
|
30
|
-
setToast(toast2);
|
|
31
|
-
const timer = setTimeout(() => setToast(void 0), 5e3);
|
|
32
|
-
return () => clearTimeout(timer);
|
|
33
|
-
}, [
|
|
34
|
-
setToast
|
|
35
|
-
]);
|
|
36
|
-
const handleDownload = useCallback(async () => {
|
|
37
|
-
const data = await client.diagnostics();
|
|
38
|
-
const file = new Blob([
|
|
39
|
-
JSON.stringify(data, void 0, 2)
|
|
40
|
-
], {
|
|
41
|
-
type: "text/plain"
|
|
42
|
-
});
|
|
43
|
-
const fileName = `composer-${(/* @__PURE__ */ new Date()).toISOString().replace(/\W/g, "-")}.json`;
|
|
44
|
-
download(file, fileName);
|
|
45
|
-
if (onUpload) {
|
|
46
|
-
const personalSpace = AppSpace.getPersonalSpace(client);
|
|
47
|
-
if (!personalSpace) {
|
|
48
|
-
log.error("no personal space available for upload", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 47, S: void 0 });
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
const info = await onUpload(personalSpace.db, new File([
|
|
52
|
-
file
|
|
53
|
-
], fileName));
|
|
54
|
-
if (!info) {
|
|
55
|
-
log.error("diagnostics failed to upload to IPFS", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 54, S: void 0 });
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
handleToast({
|
|
59
|
-
title: t("settings.uploaded.message"),
|
|
60
|
-
description: t("settings.uploaded.description")
|
|
61
|
-
});
|
|
62
|
-
const url = client.config.values.runtime.services.ipfs.gateway + "/" + info.cid;
|
|
63
|
-
void navigator.clipboard.writeText(url);
|
|
64
|
-
handleToast({
|
|
65
|
-
title: t("settings.uploaded.message"),
|
|
66
|
-
description: t("settings.uploaded.description")
|
|
67
|
-
});
|
|
68
|
-
log.info("diagnostics", {
|
|
69
|
-
url
|
|
70
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 68, S: void 0 });
|
|
71
|
-
}
|
|
72
|
-
}, [
|
|
73
|
-
client,
|
|
74
|
-
download,
|
|
75
|
-
handleToast,
|
|
76
|
-
onUpload,
|
|
77
|
-
t
|
|
78
|
-
]);
|
|
79
|
-
const handleDownloadLogs = useCallback(async () => {
|
|
80
|
-
const ndjson = await logStore.export();
|
|
81
|
-
const file = new Blob([
|
|
82
|
-
ndjson
|
|
83
|
-
], {
|
|
84
|
-
type: "application/x-ndjson"
|
|
85
|
-
});
|
|
86
|
-
const fileName = `composer-logs-${(/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace(/:/g, "-")}.ndjson`;
|
|
87
|
-
download(file, fileName);
|
|
88
|
-
}, [
|
|
89
|
-
download,
|
|
90
|
-
logStore
|
|
91
|
-
]);
|
|
92
|
-
const handleRepair = useCallback(async () => {
|
|
93
|
-
try {
|
|
94
|
-
const info = await client.repair();
|
|
95
|
-
setStorageConfig(await Storage());
|
|
96
|
-
handleToast({
|
|
97
|
-
title: t("settings.repair-success.message"),
|
|
98
|
-
description: JSON.stringify(info, void 0, 2)
|
|
99
|
-
});
|
|
100
|
-
} catch (err) {
|
|
101
|
-
handleToast({
|
|
102
|
-
title: t("settings.repair-failed.message"),
|
|
103
|
-
description: err.message
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}, [
|
|
107
|
-
client,
|
|
108
|
-
handleToast,
|
|
109
|
-
t
|
|
110
|
-
]);
|
|
111
|
-
const handleWireframeChange = useCallback((checked) => onSettingsChange?.((s) => ({
|
|
112
|
-
...s,
|
|
113
|
-
wireframe: !!checked
|
|
114
|
-
})), [
|
|
115
|
-
onSettingsChange
|
|
116
|
-
]);
|
|
117
|
-
const traceAll = useMemo(() => settings.traceAll ?? (typeof localStorage !== "undefined" && localStorage.getItem(TRACE_ALL_KEY) === "true"), [
|
|
118
|
-
settings.traceAll
|
|
119
|
-
]);
|
|
120
|
-
const handleTraceAllChange = useCallback((checked) => {
|
|
121
|
-
const value = !!checked;
|
|
122
|
-
localStorage.setItem(TRACE_ALL_KEY, String(value));
|
|
123
|
-
onSettingsChange?.((s) => ({
|
|
124
|
-
...s,
|
|
125
|
-
traceAll: value
|
|
126
|
-
}));
|
|
127
|
-
}, [
|
|
128
|
-
onSettingsChange
|
|
129
|
-
]);
|
|
130
|
-
const handleOpenTracingPanel = useCallback(() => {
|
|
131
|
-
window.open("about:blank", "_blank");
|
|
132
|
-
}, []);
|
|
133
|
-
const handleStorageAdapterChange = useCallback((value) => {
|
|
134
|
-
if (confirm(t("settings.storage-adapter.changed-alert.message"))) {
|
|
135
|
-
updateConfig(storageConfig, setStorageConfig, [
|
|
136
|
-
"runtime",
|
|
137
|
-
"client",
|
|
138
|
-
"storage",
|
|
139
|
-
"dataStore"
|
|
140
|
-
], StorageAdapters[value]);
|
|
141
|
-
}
|
|
142
|
-
}, [
|
|
143
|
-
storageConfig,
|
|
144
|
-
t
|
|
145
|
-
]);
|
|
146
|
-
return /* @__PURE__ */ React.createElement(Form.Root, {
|
|
147
|
-
schema: Settings.Settings,
|
|
148
|
-
values: settings,
|
|
149
|
-
variant: "settings",
|
|
150
|
-
readonly: !onSettingsChange
|
|
151
|
-
}, /* @__PURE__ */ React.createElement(Form.Viewport, {
|
|
152
|
-
scroll: true
|
|
153
|
-
}, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.Section, {
|
|
154
|
-
title: meta.profile.name ?? meta.profile.key
|
|
155
|
-
}, /* @__PURE__ */ React.createElement(Form.Row, {
|
|
156
|
-
label: t("settings.wireframe.label"),
|
|
157
|
-
description: t("settings.wireframe.description")
|
|
158
|
-
}, /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Switch, {
|
|
159
|
-
disabled: !onSettingsChange,
|
|
160
|
-
checked: settings.wireframe,
|
|
161
|
-
onCheckedChange: handleWireframeChange
|
|
162
|
-
}))), /* @__PURE__ */ React.createElement(Form.Row, {
|
|
163
|
-
label: t("settings.trace-all.label"),
|
|
164
|
-
description: t("settings.trace-all.description")
|
|
165
|
-
}, /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Switch, {
|
|
166
|
-
disabled: !onSettingsChange,
|
|
167
|
-
checked: traceAll,
|
|
168
|
-
onCheckedChange: handleTraceAllChange
|
|
169
|
-
}))), /* @__PURE__ */ React.createElement(Form.Row, {
|
|
170
|
-
label: t("settings.tracing-panel.label"),
|
|
171
|
-
description: t("settings.tracing-panel.description")
|
|
172
|
-
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
173
|
-
icon: "ph--arrow-square-out--regular",
|
|
174
|
-
iconOnly: true,
|
|
175
|
-
label: t("settings.tracing-panel.label"),
|
|
176
|
-
onClick: handleOpenTracingPanel
|
|
177
|
-
})), /* @__PURE__ */ React.createElement(Form.Row, {
|
|
178
|
-
label: t("settings.download-diagnostics.label"),
|
|
179
|
-
description: t("settings.download-diagnostics.description")
|
|
180
|
-
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
181
|
-
icon: "ph--download-simple--regular",
|
|
182
|
-
iconOnly: true,
|
|
183
|
-
label: t("settings.download-diagnostics.label"),
|
|
184
|
-
onClick: handleDownload
|
|
185
|
-
})), /* @__PURE__ */ React.createElement(Form.Row, {
|
|
186
|
-
label: t("settings.download-logs.label"),
|
|
187
|
-
description: t("settings.download-logs.description")
|
|
188
|
-
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
189
|
-
icon: "ph--download-simple--regular",
|
|
190
|
-
iconOnly: true,
|
|
191
|
-
label: t("settings.download-logs.label"),
|
|
192
|
-
onClick: handleDownloadLogs
|
|
193
|
-
})), /* @__PURE__ */ React.createElement(Form.Row, {
|
|
194
|
-
label: t("settings.repair.label"),
|
|
195
|
-
description: t("settings.repair.description")
|
|
196
|
-
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
197
|
-
icon: "ph--first-aid-kit--regular",
|
|
198
|
-
iconOnly: true,
|
|
199
|
-
label: t("settings.repair.label"),
|
|
200
|
-
onClick: handleRepair
|
|
201
|
-
})), toast && /* @__PURE__ */ React.createElement(Toast.Root, null, /* @__PURE__ */ React.createElement(Toast.Title, {
|
|
202
|
-
icon: "ph--gift--duotone"
|
|
203
|
-
}, /* @__PURE__ */ React.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React.createElement(Toast.Description, null, toast.description)), /* @__PURE__ */ React.createElement(Form.Row, {
|
|
204
|
-
label: t("settings.choose-storage-adaptor.label"),
|
|
205
|
-
description: t("settings.choose-storage-adaptor.description")
|
|
206
|
-
}, /* @__PURE__ */ React.createElement(Select.Root, {
|
|
207
|
-
disabled: !onSettingsChange,
|
|
208
|
-
value: Object.entries(StorageAdapters).find(([_name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore)?.[0],
|
|
209
|
-
onValueChange: handleStorageAdapterChange
|
|
210
|
-
}, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
|
|
211
|
-
disabled: !onSettingsChange,
|
|
212
|
-
placeholder: t("settings.data-store.label")
|
|
213
|
-
}), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, Object.keys(StorageAdapters).map((key) => /* @__PURE__ */ React.createElement(Select.Option, {
|
|
214
|
-
key,
|
|
215
|
-
value: key
|
|
216
|
-
}, t(`settings.storage-adaptor.${key}.label`)))), /* @__PURE__ */ React.createElement(Select.Arrow, null)))))))));
|
|
217
|
-
};
|
|
218
|
-
var updateConfig = (config, setConfig, path, value) => {
|
|
219
|
-
const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));
|
|
220
|
-
setDeep(storageConfigCopy, path, value);
|
|
221
|
-
setConfig(storageConfigCopy);
|
|
222
|
-
queueMicrotask(async () => {
|
|
223
|
-
await SaveConfig(storageConfigCopy);
|
|
224
|
-
});
|
|
225
|
-
};
|
|
226
|
-
export {
|
|
227
|
-
DebugSettings as default
|
|
228
|
-
};
|
|
229
|
-
//# sourceMappingURL=DebugSettings-Q3WUL6YQ.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/DebugSettings/DebugSettings.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { AppCapabilities, AppSpace } from '@dxos/app-toolkit';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type ConfigProto, SaveConfig, Storage, defs } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { type IdbLogStore } from '@dxos/log-store-idb';\nimport { useClient } from '@dxos/react-client';\nimport { IconButton, Input, Select, Toast, useFileDownload, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\nimport { TRACE_ALL_KEY } from '@dxos/tracing';\nimport { setDeep } from '@dxos/util';\n\nimport { meta } from '#meta';\nimport { Settings } 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 type DebugSettingsProps = AppSurface.SettingsProps<\n Settings.Settings,\n {\n logStore: IdbLogStore;\n onUpload?: AppCapabilities.FileUploader;\n }\n>;\n\nexport const DebugSettings = ({ settings, onSettingsChange, logStore, onUpload }: DebugSettingsProps) => {\n const { t } = useTranslation(meta.profile.key);\n const [toast, setToast] = useState<Toast>();\n const download = useFileDownload();\n const [storageConfig, setStorageConfig] = useState<ConfigProto>({});\n const client = useClient();\n\n useEffect(() => {\n void Storage().then((config) => setStorageConfig(config));\n }, []);\n\n const handleToast = useCallback(\n (toast: Toast) => {\n setToast(toast);\n const timer = setTimeout(() => setToast(undefined), 5_000);\n return () => clearTimeout(timer);\n },\n [setToast],\n );\n\n const handleDownload = useCallback(async () => {\n const data = await client.diagnostics();\n const file = new Blob([JSON.stringify(data, undefined, 2)], {\n type: 'text/plain',\n });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (onUpload) {\n const personalSpace = AppSpace.getPersonalSpace(client);\n if (!personalSpace) {\n log.error('no personal space available for upload');\n return;\n }\n const info = await onUpload(personalSpace.db, new File([file], fileName));\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({\n title: t('settings.uploaded.message'),\n description: t('settings.uploaded.description'),\n });\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({\n title: t('settings.uploaded.message'),\n description: t('settings.uploaded.description'),\n });\n log.info('diagnostics', { url });\n }\n }, [client, download, handleToast, onUpload, t]);\n\n const handleDownloadLogs = useCallback(async () => {\n const ndjson = await logStore.export();\n const file = new Blob([ndjson], { type: 'application/x-ndjson' });\n const fileName = `composer-logs-${new Date().toISOString().slice(0, 19).replace(/:/g, '-')}.ndjson`;\n download(file, fileName);\n }, [download, logStore]);\n\n const handleRepair = useCallback(async () => {\n try {\n const info = await client.repair();\n setStorageConfig(await Storage());\n handleToast({\n title: t('settings.repair-success.message'),\n description: JSON.stringify(info, undefined, 2),\n });\n } catch (err: any) {\n handleToast({\n title: t('settings.repair-failed.message'),\n description: err.message,\n });\n }\n }, [client, handleToast, t]);\n\n const handleWireframeChange = useCallback(\n (checked: boolean) => onSettingsChange?.((s) => ({ ...s, wireframe: !!checked })),\n [onSettingsChange],\n );\n\n const traceAll = useMemo(\n () => settings.traceAll ?? (typeof localStorage !== 'undefined' && localStorage.getItem(TRACE_ALL_KEY) === 'true'),\n [settings.traceAll],\n );\n\n const handleTraceAllChange = useCallback(\n (checked: boolean) => {\n const value = !!checked;\n localStorage.setItem(TRACE_ALL_KEY, String(value));\n onSettingsChange?.((s) => ({ ...s, traceAll: value }));\n },\n [onSettingsChange],\n );\n\n const handleOpenTracingPanel = useCallback(() => {\n window.open('about:blank', '_blank');\n }, []);\n\n const handleStorageAdapterChange = useCallback(\n (value: string) => {\n if (confirm(t('settings.storage-adapter.changed-alert.message'))) {\n updateConfig(\n storageConfig,\n setStorageConfig,\n ['runtime', 'client', 'storage', 'dataStore'],\n StorageAdapters[value as keyof typeof StorageAdapters],\n );\n }\n },\n [storageConfig, t],\n );\n\n return (\n <Form.Root schema={Settings.Settings} values={settings} variant='settings' readonly={!onSettingsChange}>\n <Form.Viewport scroll>\n <Form.Content>\n <Form.Section title={meta.profile.name ?? meta.profile.key}>\n <Form.Row label={t('settings.wireframe.label')} description={t('settings.wireframe.description')}>\n <Input.Root>\n <Input.Switch\n disabled={!onSettingsChange}\n checked={settings.wireframe}\n onCheckedChange={handleWireframeChange}\n />\n </Input.Root>\n </Form.Row>\n <Form.Row label={t('settings.trace-all.label')} description={t('settings.trace-all.description')}>\n <Input.Root>\n <Input.Switch disabled={!onSettingsChange} checked={traceAll} onCheckedChange={handleTraceAllChange} />\n </Input.Root>\n </Form.Row>\n <Form.Row label={t('settings.tracing-panel.label')} description={t('settings.tracing-panel.description')}>\n <IconButton\n icon='ph--arrow-square-out--regular'\n iconOnly\n label={t('settings.tracing-panel.label')}\n onClick={handleOpenTracingPanel}\n />\n </Form.Row>\n <Form.Row\n label={t('settings.download-diagnostics.label')}\n description={t('settings.download-diagnostics.description')}\n >\n <IconButton\n icon='ph--download-simple--regular'\n iconOnly\n label={t('settings.download-diagnostics.label')}\n onClick={handleDownload}\n />\n </Form.Row>\n <Form.Row label={t('settings.download-logs.label')} description={t('settings.download-logs.description')}>\n <IconButton\n icon='ph--download-simple--regular'\n iconOnly\n label={t('settings.download-logs.label')}\n onClick={handleDownloadLogs}\n />\n </Form.Row>\n <Form.Row label={t('settings.repair.label')} description={t('settings.repair.description')}>\n <IconButton\n icon='ph--first-aid-kit--regular'\n iconOnly\n label={t('settings.repair.label')}\n onClick={handleRepair}\n />\n </Form.Row>\n\n {/* TODO(burdon): Move to layout? */}\n {toast && (\n <Toast.Root>\n <Toast.Title icon='ph--gift--duotone'>\n <span>{toast.title}</span>\n </Toast.Title>\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Toast.Root>\n )}\n\n <Form.Row\n label={t('settings.choose-storage-adaptor.label')}\n description={t('settings.choose-storage-adaptor.description')}\n >\n <Select.Root\n disabled={!onSettingsChange}\n value={\n Object.entries(StorageAdapters).find(\n ([_name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,\n )?.[0]\n }\n onValueChange={handleStorageAdapterChange}\n >\n <Select.TriggerButton disabled={!onSettingsChange} 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 </Form.Row>\n </Form.Section>\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useCallback", "useEffect", "useMemo", "useState", "AppSpace", "SaveConfig", "Storage", "defs", "log", "useClient", "IconButton", "Input", "Select", "Toast", "useFileDownload", "useTranslation", "Form", "TRACE_ALL_KEY", "setDeep", "meta", "Settings", "StorageAdapters", "idb", "Client", "DebugSettings", "settings", "onSettingsChange", "toast", "download", "storageConfig", "setStorageConfig", "client", "config", "handleToast", "setToast", "setTimeout", "clearTimeout", "Blob", "JSON", "stringify", "data", "undefined", "type", "fileName", "onUpload", "personalSpace", "error", "description", "title", "info", "t", "ndjson", "checked", "handleTraceAllChange", "localStorage", "String", "value", "handleStorageAdapterChange", "variant", "readonly", "scroll", "Content", "Row", "label", "disabled", "wireframe", "onCheckedChange", "traceAll", "icon", "iconOnly", "onClick", "handleOpenTracingPanel", "handleDownload", "handleDownloadLogs", "handleRepair", "span", "Object", "entries", "find", "_name", "onValueChange", "TriggerButton", "key", "updateConfig", "path", "storageConfigCopy", "setConfig", "queueMicrotask"]
|
|
7
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx
|
|
4
|
-
import React, { useState } from "react";
|
|
5
|
-
import { ObjectsTree } from "@dxos/devtools";
|
|
6
|
-
import { Filter, Query } from "@dxos/echo";
|
|
7
|
-
import { useQuery } from "@dxos/react-client/echo";
|
|
8
|
-
import { Clipboard, Grid, Input, Panel, ScrollArea, Toolbar } from "@dxos/react-ui";
|
|
9
|
-
import { JsonHighlighter } from "@dxos/react-ui-syntax-highlighter";
|
|
10
|
-
var DebugSpaceObjectsPanel = ({ space, onOpen, canOpen }) => {
|
|
11
|
-
const [selectedId, setSelectedId] = useState(null);
|
|
12
|
-
const [selectedObject] = useQuery(space.db, selectedId ? Query.select(Filter.id(selectedId)) : Query.select(Filter.nothing()));
|
|
13
|
-
return /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(Panel.Root, null, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
|
|
14
|
-
asChild: true
|
|
15
|
-
}, /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.TextInput, {
|
|
16
|
-
disabled: true,
|
|
17
|
-
placeholder: "Search..."
|
|
18
|
-
})))), /* @__PURE__ */ React.createElement(Panel.Content, {
|
|
19
|
-
asChild: true
|
|
20
|
-
}, /* @__PURE__ */ React.createElement(Grid, {
|
|
21
|
-
rows: 2,
|
|
22
|
-
classNames: "divide-y divide-separator"
|
|
23
|
-
}, /* @__PURE__ */ React.createElement(ScrollArea.Root, null, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, null, /* @__PURE__ */ React.createElement(ObjectsTree, {
|
|
24
|
-
db: space.db,
|
|
25
|
-
onSelect: (entity) => setSelectedId(entity.id),
|
|
26
|
-
onOpen,
|
|
27
|
-
canOpen
|
|
28
|
-
}))), selectedObject && /* @__PURE__ */ React.createElement(JsonHighlighter, {
|
|
29
|
-
classNames: "p-1",
|
|
30
|
-
data: selectedObject
|
|
31
|
-
})))));
|
|
32
|
-
};
|
|
33
|
-
export {
|
|
34
|
-
DebugSpaceObjectsPanel as default
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=DebugSpaceObjectsPanel-AXFZWEIM.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { ObjectsTree } from '@dxos/devtools';\nimport { type Entity, Filter, Obj, Query } from '@dxos/echo';\nimport { type EntityId } from '@dxos/keys';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Clipboard, Grid, Input, Panel, ScrollArea, Toolbar } from '@dxos/react-ui';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugSpaceObjectsPanelProps = AppSurface.SpaceArticleProps & {\n onOpen?: (object: Obj.Unknown) => void;\n canOpen?: (entity: Entity.Snapshot) => boolean;\n};\n\nexport const DebugSpaceObjectsPanel = ({ space, onOpen, canOpen }: DebugSpaceObjectsPanelProps) => {\n const [selectedId, setSelectedId] = useState<EntityId | null>(null);\n const [selectedObject] = useQuery(\n space.db,\n selectedId ? Query.select(Filter.id(selectedId)) : Query.select(Filter.nothing()),\n );\n\n return (\n <Clipboard.Provider>\n <Panel.Root>\n <Panel.Toolbar asChild>\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput disabled placeholder='Search...' />\n </Input.Root>\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <Grid rows={2} classNames='divide-y divide-separator'>\n <ScrollArea.Root>\n <ScrollArea.Viewport>\n <ObjectsTree\n db={space.db}\n onSelect={(entity) => setSelectedId(entity.id)}\n onOpen={onOpen}\n canOpen={canOpen}\n />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n {selectedObject && <JsonHighlighter classNames='p-1' data={selectedObject} />}\n </Grid>\n </Panel.Content>\n </Panel.Root>\n </Clipboard.Provider>\n );\n};\n"],
|
|
5
|
-
"mappings": ";;;AAIA,OAAOA,SAASC,gBAAgB;AAGhC,SAASC,mBAAmB;AAC5B,SAAsBC,QAAaC,aAAa;AAEhD,SAASC,gBAAgB;AACzB,SAASC,WAAWC,MAAMC,OAAOC,OAAOC,YAAYC,eAAe;AACnE,SAASC,uBAAuB;AAOzB,IAAMC,yBAAyB,CAAC,EAAEC,OAAOC,QAAQC,QAAO,MAA+B;AAC5F,QAAM,CAACC,YAAYC,aAAAA,IAAiBjB,SAA0B,IAAA;AAC9D,QAAM,CAACkB,cAAAA,IAAkBd,SACvBS,MAAMM,IACNH,aAAab,MAAMiB,OAAOlB,OAAOmB,GAAGL,UAAAA,CAAAA,IAAeb,MAAMiB,OAAOlB,OAAOoB,QAAO,CAAA,CAAA;AAGhF,SACE,sBAAA,cAACjB,UAAUkB,UAAQ,MACjB,sBAAA,cAACf,MAAMgB,MAAI,MACT,sBAAA,cAAChB,MAAME,SAAO;IAACe,SAAAA;KACb,sBAAA,cAACf,QAAQc,MAAI,MACX,sBAAA,cAACjB,MAAMiB,MAAI,MACT,sBAAA,cAACjB,MAAMmB,WAAS;IAACC,UAAAA;IAASC,aAAY;SAI5C,sBAAA,cAACpB,MAAMqB,SAAO;IAACJ,SAAAA;KACb,sBAAA,cAACnB,MAAAA;IAAKwB,MAAM;IAAGC,YAAW;KACxB,sBAAA,cAACtB,WAAWe,MAAI,MACd,sBAAA,cAACf,WAAWuB,UAAQ,MAClB,sBAAA,cAAC/B,aAAAA;IACCkB,IAAIN,MAAMM;IACVc,UAAU,CAACC,WAAWjB,cAAciB,OAAOb,EAAE;IAC7CP;IACAC;QAILG,kBAAkB,sBAAA,cAACP,iBAAAA;IAAgBoB,YAAW;IAAMI,MAAMjB;;AAMvE;",
|
|
6
|
-
"names": ["React", "useState", "ObjectsTree", "Filter", "Query", "useQuery", "Clipboard", "Grid", "Input", "Panel", "ScrollArea", "Toolbar", "JsonHighlighter", "DebugSpaceObjectsPanel", "space", "onOpen", "canOpen", "selectedId", "setSelectedId", "selectedObject", "db", "select", "id", "nothing", "Provider", "Root", "asChild", "TextInput", "disabled", "placeholder", "Content", "rows", "classNames", "Viewport", "onSelect", "entity", "data"]
|
|
7
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/containers/DebugStatus/DebugStatus.tsx
|
|
4
|
-
import React, { useEffect, useRef, useState } from "react";
|
|
5
|
-
import { TimeoutError } from "@dxos/async";
|
|
6
|
-
import { StatusBar } from "@dxos/plugin-status-bar/components";
|
|
7
|
-
import { ConnectionState } from "@dxos/protocols/proto/dxos/client/services";
|
|
8
|
-
import { useNetworkStatus } from "@dxos/react-client/mesh";
|
|
9
|
-
import { IconButton } from "@dxos/react-ui";
|
|
10
|
-
var styles = {
|
|
11
|
-
success: "text-sky-300 dark:text-green-700",
|
|
12
|
-
warning: "text-orange-300 dark:text-orange-600",
|
|
13
|
-
error: "text-red-300 dark:text-red-600"
|
|
14
|
-
};
|
|
15
|
-
var ErrorIndicator = () => {
|
|
16
|
-
const [, forceUpdate] = useState({});
|
|
17
|
-
const errorRef = useRef(null);
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
const errorListener = (event) => {
|
|
20
|
-
const error = event.error ?? event.reason;
|
|
21
|
-
if (errorRef.current !== error) {
|
|
22
|
-
errorRef.current = error;
|
|
23
|
-
forceUpdate({});
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
window.addEventListener("error", errorListener);
|
|
27
|
-
window.addEventListener("unhandledrejection", errorListener);
|
|
28
|
-
return () => {
|
|
29
|
-
window.removeEventListener("error", errorListener);
|
|
30
|
-
window.removeEventListener("unhandledrejection", errorListener);
|
|
31
|
-
};
|
|
32
|
-
}, []);
|
|
33
|
-
const handleReset = () => {
|
|
34
|
-
errorRef.current = null;
|
|
35
|
-
forceUpdate({});
|
|
36
|
-
};
|
|
37
|
-
if (errorRef.current) {
|
|
38
|
-
return /* @__PURE__ */ React.createElement(StatusBar.Item, null, /* @__PURE__ */ React.createElement(IconButton, {
|
|
39
|
-
variant: "ghost",
|
|
40
|
-
icon: "ph--warning-circle--duotone",
|
|
41
|
-
iconOnly: true,
|
|
42
|
-
label: errorRef.current.message,
|
|
43
|
-
classNames: styles.error,
|
|
44
|
-
onClick: handleReset
|
|
45
|
-
}));
|
|
46
|
-
} else {
|
|
47
|
-
return /* @__PURE__ */ React.createElement(StatusBar.Item, null, /* @__PURE__ */ React.createElement(IconButton, {
|
|
48
|
-
variant: "ghost",
|
|
49
|
-
icon: "ph--check--regular",
|
|
50
|
-
iconOnly: true,
|
|
51
|
-
label: "No errors."
|
|
52
|
-
}));
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
var SwarmIndicator = () => {
|
|
56
|
-
const [state, setState] = useState(0);
|
|
57
|
-
const { swarm } = useNetworkStatus();
|
|
58
|
-
useEffect(() => {
|
|
59
|
-
setState(swarm === ConnectionState.ONLINE ? 0 : 1);
|
|
60
|
-
}, [
|
|
61
|
-
swarm
|
|
62
|
-
]);
|
|
63
|
-
if (state === 0) {
|
|
64
|
-
return /* @__PURE__ */ React.createElement(StatusBar.Item, null, /* @__PURE__ */ React.createElement(IconButton, {
|
|
65
|
-
variant: "ghost",
|
|
66
|
-
icon: "ph--lightning--regular",
|
|
67
|
-
iconOnly: true,
|
|
68
|
-
label: "Connected to swarm."
|
|
69
|
-
}));
|
|
70
|
-
} else {
|
|
71
|
-
return /* @__PURE__ */ React.createElement(StatusBar.Item, null, /* @__PURE__ */ React.createElement(IconButton, {
|
|
72
|
-
variant: "ghost",
|
|
73
|
-
icon: "ph--lightning-slash--regular",
|
|
74
|
-
iconOnly: true,
|
|
75
|
-
label: "Disconnected from swarm.",
|
|
76
|
-
classNames: styles.warning
|
|
77
|
-
}));
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
var SavingIndicator = () => {
|
|
81
|
-
const [state, _setState] = useState(0);
|
|
82
|
-
switch (state) {
|
|
83
|
-
case 2:
|
|
84
|
-
return /* @__PURE__ */ React.createElement(StatusBar.Item, null, /* @__PURE__ */ React.createElement(IconButton, {
|
|
85
|
-
variant: "ghost",
|
|
86
|
-
icon: "ph--circle--duotone",
|
|
87
|
-
iconOnly: true,
|
|
88
|
-
label: "Edit not saved.",
|
|
89
|
-
classNames: styles.warning
|
|
90
|
-
}));
|
|
91
|
-
case 1:
|
|
92
|
-
return /* @__PURE__ */ React.createElement(StatusBar.Item, null, /* @__PURE__ */ React.createElement(IconButton, {
|
|
93
|
-
variant: "ghost",
|
|
94
|
-
icon: "ph--circle--duotone",
|
|
95
|
-
iconOnly: true,
|
|
96
|
-
label: "Saving...",
|
|
97
|
-
classNames: styles.success
|
|
98
|
-
}));
|
|
99
|
-
case 0:
|
|
100
|
-
default:
|
|
101
|
-
return /* @__PURE__ */ React.createElement(StatusBar.Item, null, /* @__PURE__ */ React.createElement(IconButton, {
|
|
102
|
-
variant: "ghost",
|
|
103
|
-
icon: "ph--circle--duotone",
|
|
104
|
-
iconOnly: true,
|
|
105
|
-
label: "Modified indicator."
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
var indicators = [
|
|
110
|
-
SavingIndicator,
|
|
111
|
-
SwarmIndicator,
|
|
112
|
-
ErrorIndicator
|
|
113
|
-
];
|
|
114
|
-
var DebugStatus = () => {
|
|
115
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, indicators.map((Indicator) => /* @__PURE__ */ React.createElement(Indicator, {
|
|
116
|
-
key: Indicator.name
|
|
117
|
-
})));
|
|
118
|
-
};
|
|
119
|
-
export {
|
|
120
|
-
DebugStatus as default
|
|
121
|
-
};
|
|
122
|
-
//# sourceMappingURL=DebugStatus-H2BAHN26.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/DebugStatus/DebugStatus.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { TimeoutError } from '@dxos/async';\nimport { StatusBar } from '@dxos/plugin-status-bar/components';\nimport { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { IconButton } 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.Item>\n <IconButton\n variant='ghost'\n icon='ph--warning-circle--duotone'\n iconOnly\n label={errorRef.current.message}\n classNames={styles.error}\n onClick={handleReset}\n />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item>\n <IconButton variant='ghost' icon='ph--check--regular' iconOnly label='No errors.' />\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>\n <IconButton variant='ghost' icon='ph--lightning--regular' iconOnly label='Connected to swarm.' />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item>\n <IconButton\n variant='ghost'\n icon='ph--lightning-slash--regular'\n iconOnly\n label='Disconnected from swarm.'\n classNames={styles.warning}\n />\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 // 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>\n <IconButton\n variant='ghost'\n icon='ph--circle--duotone'\n iconOnly\n label='Edit not saved.'\n classNames={styles.warning}\n />\n </StatusBar.Item>\n );\n case 1:\n return (\n <StatusBar.Item>\n <IconButton\n variant='ghost'\n icon='ph--circle--duotone'\n iconOnly\n label='Saving...'\n classNames={styles.success}\n />\n </StatusBar.Item>\n );\n case 0:\n default:\n return (\n <StatusBar.Item>\n <IconButton variant='ghost' icon='ph--circle--duotone' iconOnly label='Modified indicator.' />\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"],
|
|
5
|
-
"mappings": ";;;AAIA,OAAOA,SAASC,WAAWC,QAAQC,gBAAgB;AAEnD,SAASC,oBAAoB;AAC7B,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAChC,SAASC,wBAAwB;AACjC,SAASC,kBAAkB;AAE3B,IAAMC,SAAS;EACbC,SAAS;EACTC,SAAS;EACTC,OAAO;AACT;AA0CA,IAAMC,iBAAiB,MAAA;AACrB,QAAM,CAAA,EAAGC,WAAAA,IAAeC,SAAS,CAAC,CAAA;AAClC,QAAMC,WAAWC,OAAc,IAAA;AAC/BC,YAAU,MAAA;AACR,UAAMC,gBAAgB,CAACC,UAAAA;AACrB,YAAMC,QAAeD,MAAMC,SAASD,MAAME;AAC1C,UAAIN,SAASO,YAAYF,OAAO;AAC9BL,iBAASO,UAAUF;AACnBP,oBAAY,CAAC,CAAA;MACf;IACF;AAIAU,WAAOC,iBAAiB,SAASN,aAAAA;AAGjCK,WAAOC,iBAAiB,sBAAsBN,aAAAA;AAE9C,WAAO,MAAA;AACLK,aAAOE,oBAAoB,SAASP,aAAAA;AACpCK,aAAOE,oBAAoB,sBAAsBP,aAAAA;IACnD;EACF,GAAG,CAAA,CAAE;AAEL,QAAMQ,cAAc,MAAA;AAClBX,aAASO,UAAU;AACnBT,gBAAY,CAAC,CAAA;EACf;AAEA,MAAIE,SAASO,SAAS;AACpB,WACE,sBAAA,cAACK,UAAUC,MAAI,MACb,sBAAA,cAACC,YAAAA;MACCC,SAAQ;MACRC,MAAK;MACLC,UAAAA;MACAC,OAAOlB,SAASO,QAAQY;MACxBC,YAAYC,OAAOhB;MACnBiB,SAASX;;EAIjB,OAAO;AACL,WACE,sBAAA,cAACC,UAAUC,MAAI,MACb,sBAAA,cAACC,YAAAA;MAAWC,SAAQ;MAAQC,MAAK;MAAqBC,UAAAA;MAASC,OAAM;;EAG3E;AACF;AAKA,IAAMK,iBAAiB,MAAA;AACrB,QAAM,CAACC,OAAOC,QAAAA,IAAY1B,SAAS,CAAA;AACnC,QAAM,EAAE2B,MAAK,IAAKC,iBAAAA;AAClBzB,YAAU,MAAA;AACRuB,aAASC,UAAUE,gBAAgBC,SAAS,IAAI,CAAA;EAClD,GAAG;IAACH;GAAM;AAEV,MAAIF,UAAU,GAAG;AACf,WACE,sBAAA,cAACZ,UAAUC,MAAI,MACb,sBAAA,cAACC,YAAAA;MAAWC,SAAQ;MAAQC,MAAK;MAAyBC,UAAAA;MAASC,OAAM;;EAG/E,OAAO;AACL,WACE,sBAAA,cAACN,UAAUC,MAAI,MACb,sBAAA,cAACC,YAAAA;MACCC,SAAQ;MACRC,MAAK;MACLC,UAAAA;MACAC,OAAM;MACNE,YAAYC,OAAOS;;EAI3B;AACF;AAMA,IAAMC,kBAAkB,MAAA;AACtB,QAAM,CAACP,OAAOQ,SAAAA,IAAajC,SAAS,CAAA;AAoBpC,UAAQyB,OAAAA;IACN,KAAK;AACH,aACE,sBAAA,cAACZ,UAAUC,MAAI,MACb,sBAAA,cAACC,YAAAA;QACCC,SAAQ;QACRC,MAAK;QACLC,UAAAA;QACAC,OAAM;QACNE,YAAYC,OAAOS;;IAI3B,KAAK;AACH,aACE,sBAAA,cAAClB,UAAUC,MAAI,MACb,sBAAA,cAACC,YAAAA;QACCC,SAAQ;QACRC,MAAK;QACLC,UAAAA;QACAC,OAAM;QACNE,YAAYC,OAAOY;;IAI3B,KAAK;IACL;AACE,aACE,sBAAA,cAACrB,UAAUC,MAAI,MACb,sBAAA,cAACC,YAAAA;QAAWC,SAAQ;QAAQC,MAAK;QAAsBC,UAAAA;QAASC,OAAM;;EAG9E;AACF;AAEA,IAAMgB,aAAa;EAACH;EAAiBR;EAAgB1B;;AAE9C,IAAMsC,cAAc,MAAA;AACzB,SACE,sBAAA,cAAA,MAAA,UAAA,MACGD,WAAWE,IAAI,CAACC,cACf,sBAAA,cAACA,WAAAA;IAAUC,KAAKD,UAAUE;;AAIlC;",
|
|
6
|
-
"names": ["React", "useEffect", "useRef", "useState", "TimeoutError", "StatusBar", "ConnectionState", "useNetworkStatus", "IconButton", "styles", "success", "warning", "error", "ErrorIndicator", "forceUpdate", "useState", "errorRef", "useRef", "useEffect", "errorListener", "event", "error", "reason", "current", "window", "addEventListener", "removeEventListener", "handleReset", "StatusBar", "Item", "IconButton", "variant", "icon", "iconOnly", "label", "message", "classNames", "styles", "onClick", "SwarmIndicator", "state", "setState", "swarm", "useNetworkStatus", "ConnectionState", "ONLINE", "warning", "SavingIndicator", "_setState", "success", "indicators", "DebugStatus", "map", "Indicator", "key", "name"]
|
|
7
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx
|
|
4
|
-
import React from "react";
|
|
5
|
-
import { Surface } from "@dxos/app-framework/ui";
|
|
6
|
-
import { StatsPanel, useStats } from "@dxos/devtools";
|
|
7
|
-
import { DevtoolsOverview } from "#types";
|
|
8
|
-
var DevtoolsOverviewContainer = () => {
|
|
9
|
-
const [stats, refreshStats] = useStats();
|
|
10
|
-
const surfaceProfilerStats = Surface.useProfilerStats();
|
|
11
|
-
const clearSurfaceProfiler = Surface.useProfilerClear();
|
|
12
|
-
return /* @__PURE__ */ React.createElement(StatsPanel, {
|
|
13
|
-
stats,
|
|
14
|
-
surfaceProfilerStats,
|
|
15
|
-
onRefresh: refreshStats,
|
|
16
|
-
onClearSurfaceProfiler: clearSurfaceProfiler
|
|
17
|
-
}, /* @__PURE__ */ React.createElement(Surface.Surface, {
|
|
18
|
-
type: DevtoolsOverview
|
|
19
|
-
}));
|
|
20
|
-
};
|
|
21
|
-
export {
|
|
22
|
-
DevtoolsOverviewContainer as default
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=DevtoolsOverviewContainer-DWQHTK7D.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { StatsPanel, useStats } from '@dxos/devtools';\n\nimport { DevtoolsOverview } from '#types';\n\nexport const DevtoolsOverviewContainer = () => {\n const [stats, refreshStats] = useStats();\n const surfaceProfilerStats = Surface.useProfilerStats();\n const clearSurfaceProfiler = Surface.useProfilerClear();\n\n return (\n <StatsPanel\n stats={stats}\n surfaceProfilerStats={surfaceProfilerStats}\n onRefresh={refreshStats}\n onClearSurfaceProfiler={clearSurfaceProfiler}\n >\n <Surface.Surface type={DevtoolsOverview} />\n </StatsPanel>\n );\n};\n"],
|
|
5
|
-
"mappings": ";;;AAIA,OAAOA,WAAW;AAElB,SAASC,eAAe;AACxB,SAASC,YAAYC,gBAAgB;AAErC,SAASC,wBAAwB;AAE1B,IAAMC,4BAA4B,MAAA;AACvC,QAAM,CAACC,OAAOC,YAAAA,IAAgBJ,SAAAA;AAC9B,QAAMK,uBAAuBP,QAAQQ,iBAAgB;AACrD,QAAMC,uBAAuBT,QAAQU,iBAAgB;AAErD,SACE,sBAAA,cAACT,YAAAA;IACCI;IACAE;IACAI,WAAWL;IACXM,wBAAwBH;KAExB,sBAAA,cAACT,QAAQA,SAAO;IAACa,MAAMV;;AAG7B;",
|
|
6
|
-
"names": ["React", "Surface", "StatsPanel", "useStats", "DevtoolsOverview", "DevtoolsOverviewContainer", "stats", "refreshStats", "surfaceProfilerStats", "useProfilerStats", "clearSurfaceProfiler", "useProfilerClear", "onRefresh", "onClearSurfaceProfiler", "type"]
|
|
7
|
-
}
|