@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.
Files changed (236) hide show
  1. package/PLUGIN.mdl +12 -325
  2. package/README.md +4 -14
  3. package/dist/lib/DebugPlugin.mjs +29 -0
  4. package/dist/lib/DebugPlugin.mjs.map +1 -0
  5. package/dist/lib/DebugPlugin.node.mjs +10 -0
  6. package/dist/lib/DebugPlugin.node.mjs.map +1 -0
  7. package/dist/lib/DebugPlugin.workerd.mjs +8 -0
  8. package/dist/lib/DebugPlugin.workerd.mjs.map +1 -0
  9. package/dist/lib/capabilities.mjs +11 -0
  10. package/dist/lib/capabilities.mjs.map +1 -0
  11. package/dist/lib/chunk-DebugObjectPanel.mjs +58 -0
  12. package/dist/lib/chunk-DebugObjectPanel.mjs.map +1 -0
  13. package/dist/lib/chunk-DebugSettings.mjs +237 -0
  14. package/dist/lib/chunk-DebugSettings.mjs.map +1 -0
  15. package/dist/lib/chunk-DebugSpaceObjectsPanel.mjs +39 -0
  16. package/dist/lib/chunk-DebugSpaceObjectsPanel.mjs.map +1 -0
  17. package/dist/lib/chunk-DebugStatus.mjs +117 -0
  18. package/dist/lib/chunk-DebugStatus.mjs.map +1 -0
  19. package/dist/lib/chunk-LogStatus.mjs +44 -0
  20. package/dist/lib/chunk-LogStatus.mjs.map +1 -0
  21. package/dist/lib/chunk-SpaceGenerator.mjs +208 -0
  22. package/dist/lib/chunk-SpaceGenerator.mjs.map +1 -0
  23. package/dist/lib/chunk-StatsPanel.mjs +58 -0
  24. package/dist/lib/chunk-StatsPanel.mjs.map +1 -0
  25. package/dist/lib/chunk-Wireframe.mjs +60 -0
  26. package/dist/lib/chunk-Wireframe.mjs.map +1 -0
  27. package/dist/lib/chunk-app-graph-builder.mjs +76 -0
  28. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
  29. package/dist/lib/chunk-log-recording.mjs +17 -0
  30. package/dist/lib/chunk-log-recording.mjs.map +1 -0
  31. package/dist/lib/chunk-meta.mjs +36 -0
  32. package/dist/lib/chunk-meta.mjs.map +1 -0
  33. package/dist/lib/chunk-react-surface.mjs +193 -0
  34. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  35. package/dist/lib/chunk-settings.mjs +23 -0
  36. package/dist/lib/chunk-settings.mjs.map +1 -0
  37. package/dist/lib/chunk-stats-panel.mjs +56 -0
  38. package/dist/lib/chunk-stats-panel.mjs.map +1 -0
  39. package/dist/lib/chunk-types.mjs +60 -0
  40. package/dist/lib/chunk-types.mjs.map +1 -0
  41. package/dist/lib/components.mjs +763 -0
  42. package/dist/lib/components.mjs.map +1 -0
  43. package/dist/lib/containers.mjs +14 -0
  44. package/dist/lib/containers.mjs.map +1 -0
  45. package/dist/lib/index.mjs +3 -0
  46. package/dist/lib/meta.mjs +2 -0
  47. package/dist/lib/plugin.mjs +8 -0
  48. package/dist/lib/plugin.mjs.map +1 -0
  49. package/dist/lib/translations.mjs +38 -0
  50. package/dist/lib/translations.mjs.map +1 -0
  51. package/dist/lib/types.mjs +2 -0
  52. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  53. package/dist/types/src/capabilities/DebugSurfaces.d.ts +25 -0
  54. package/dist/types/src/capabilities/DebugSurfaces.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  56. package/dist/types/src/capabilities/index.d.ts +4 -1
  57. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/log-recording.d.ts +10 -0
  59. package/dist/types/src/capabilities/log-recording.d.ts.map +1 -0
  60. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  61. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/settings.d.ts +1 -1
  63. package/dist/types/src/capabilities/stats-panel.d.ts +16 -0
  64. package/dist/types/src/capabilities/stats-panel.d.ts.map +1 -0
  65. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts +4 -3
  66. package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -1
  67. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  68. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +4 -1
  69. package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -1
  70. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +4 -1
  71. package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -1
  72. package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts +30 -58
  73. package/dist/types/src/containers/DebugSettings/DebugSettings.stories.d.ts.map +1 -1
  74. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +4 -1
  75. package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -1
  76. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts +4 -1
  77. package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -1
  78. package/dist/types/src/containers/LogStatus/LogStatus.d.ts +6 -0
  79. package/dist/types/src/containers/LogStatus/LogStatus.d.ts.map +1 -0
  80. package/dist/types/src/containers/LogStatus/index.d.ts +2 -0
  81. package/dist/types/src/containers/LogStatus/index.d.ts.map +1 -0
  82. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +1 -1
  83. package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  84. package/dist/types/src/containers/StatsPanel/StatsPanel.d.ts +6 -0
  85. package/dist/types/src/containers/StatsPanel/StatsPanel.d.ts.map +1 -0
  86. package/dist/types/src/containers/StatsPanel/index.d.ts +2 -0
  87. package/dist/types/src/containers/StatsPanel/index.d.ts.map +1 -0
  88. package/dist/types/src/containers/Wireframe/Wireframe.d.ts +4 -1
  89. package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -1
  90. package/dist/types/src/containers/index.d.ts +4 -6
  91. package/dist/types/src/containers/index.d.ts.map +1 -1
  92. package/dist/types/src/translations.d.ts +26 -57
  93. package/dist/types/src/translations.d.ts.map +1 -1
  94. package/dist/types/src/types/DebugNodes.d.ts +7 -0
  95. package/dist/types/src/types/DebugNodes.d.ts.map +1 -0
  96. package/dist/types/src/types/DebugSurface.d.ts +8 -0
  97. package/dist/types/src/types/DebugSurface.d.ts.map +1 -0
  98. package/dist/types/src/types/debug.d.ts +3 -1
  99. package/dist/types/src/types/debug.d.ts.map +1 -1
  100. package/dist/types/src/types/index.d.ts +2 -2
  101. package/dist/types/src/types/index.d.ts.map +1 -1
  102. package/dist/types/tsconfig.tsbuildinfo +1 -1
  103. package/dx.config.ts +8 -13
  104. package/package.json +61 -63
  105. package/src/DebugPlugin.node.ts +1 -1
  106. package/src/DebugPlugin.tsx +10 -27
  107. package/src/DebugPlugin.workerd.ts +1 -1
  108. package/src/capabilities/DebugSurfaces.tsx +146 -0
  109. package/src/capabilities/app-graph-builder.ts +39 -373
  110. package/src/capabilities/index.ts +3 -2
  111. package/src/capabilities/log-recording.ts +20 -0
  112. package/src/capabilities/react-surface.ts +123 -0
  113. package/src/capabilities/stats-panel.ts +74 -0
  114. package/src/components/SchemaTable/SchemaTable.tsx +6 -5
  115. package/src/components/SpaceGenerator/ObjectGenerator.tsx +9 -3
  116. package/src/components/SpaceGenerator/presets.ts +2 -2
  117. package/src/components/index.ts +1 -1
  118. package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +20 -20
  119. package/src/containers/DebugSettings/DebugSettings.tsx +4 -3
  120. package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +4 -2
  121. package/src/containers/DebugStatus/DebugStatus.tsx +2 -0
  122. package/src/containers/LogStatus/LogStatus.tsx +51 -0
  123. package/src/containers/LogStatus/index.ts +5 -0
  124. package/src/containers/SpaceGenerator/SpaceGenerator.tsx +108 -10
  125. package/src/containers/StatsPanel/StatsPanel.tsx +74 -0
  126. package/src/containers/StatsPanel/index.ts +5 -0
  127. package/src/containers/Wireframe/Wireframe.tsx +2 -0
  128. package/src/containers/index.ts +9 -7
  129. package/src/index.ts +1 -1
  130. package/src/meta.ts +1 -1
  131. package/src/plugin.ts +1 -1
  132. package/src/translations.ts +8 -52
  133. package/src/types/DebugNodes.ts +18 -0
  134. package/src/types/DebugSurface.ts +16 -0
  135. package/src/types/debug.ts +3 -1
  136. package/src/types/index.ts +3 -3
  137. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +0 -15
  138. package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +0 -7
  139. package/dist/lib/neutral/DebugObjectPanel-QSGQJ3LM.mjs +0 -61
  140. package/dist/lib/neutral/DebugObjectPanel-QSGQJ3LM.mjs.map +0 -7
  141. package/dist/lib/neutral/DebugPlugin.mjs +0 -59
  142. package/dist/lib/neutral/DebugPlugin.mjs.map +0 -7
  143. package/dist/lib/neutral/DebugPlugin.node.mjs +0 -18
  144. package/dist/lib/neutral/DebugPlugin.node.mjs.map +0 -7
  145. package/dist/lib/neutral/DebugPlugin.workerd.mjs +0 -12
  146. package/dist/lib/neutral/DebugPlugin.workerd.mjs.map +0 -7
  147. package/dist/lib/neutral/DebugSettings-Q3WUL6YQ.mjs +0 -229
  148. package/dist/lib/neutral/DebugSettings-Q3WUL6YQ.mjs.map +0 -7
  149. package/dist/lib/neutral/DebugSpaceObjectsPanel-AXFZWEIM.mjs +0 -36
  150. package/dist/lib/neutral/DebugSpaceObjectsPanel-AXFZWEIM.mjs.map +0 -7
  151. package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs +0 -122
  152. package/dist/lib/neutral/DebugStatus-H2BAHN26.mjs.map +0 -7
  153. package/dist/lib/neutral/DevtoolsOverviewContainer-DWQHTK7D.mjs +0 -24
  154. package/dist/lib/neutral/DevtoolsOverviewContainer-DWQHTK7D.mjs.map +0 -7
  155. package/dist/lib/neutral/GithubPanel-4CSJRVKE.mjs +0 -177
  156. package/dist/lib/neutral/GithubPanel-4CSJRVKE.mjs.map +0 -7
  157. package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs +0 -161
  158. package/dist/lib/neutral/RegistryPanel-64GIYJHN.mjs.map +0 -7
  159. package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs +0 -146
  160. package/dist/lib/neutral/SpaceGenerator-Y35G6DRV.mjs.map +0 -7
  161. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs +0 -52
  162. package/dist/lib/neutral/Wireframe-WD7S2AUU.mjs.map +0 -7
  163. package/dist/lib/neutral/app-graph-builder-UKG4WVYK.mjs +0 -619
  164. package/dist/lib/neutral/app-graph-builder-UKG4WVYK.mjs.map +0 -7
  165. package/dist/lib/neutral/capabilities/index.mjs +0 -15
  166. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  167. package/dist/lib/neutral/chunk-72QXLYMI.mjs +0 -118
  168. package/dist/lib/neutral/chunk-72QXLYMI.mjs.map +0 -7
  169. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  170. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  171. package/dist/lib/neutral/chunk-R5C4CKOF.mjs +0 -54
  172. package/dist/lib/neutral/chunk-R5C4CKOF.mjs.map +0 -7
  173. package/dist/lib/neutral/components/index.mjs +0 -961
  174. package/dist/lib/neutral/components/index.mjs.map +0 -7
  175. package/dist/lib/neutral/containers/index.mjs +0 -27
  176. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  177. package/dist/lib/neutral/index.mjs +0 -20
  178. package/dist/lib/neutral/index.mjs.map +0 -7
  179. package/dist/lib/neutral/meta.json +0 -1
  180. package/dist/lib/neutral/meta.mjs +0 -8
  181. package/dist/lib/neutral/meta.mjs.map +0 -7
  182. package/dist/lib/neutral/plugin.mjs +0 -12
  183. package/dist/lib/neutral/plugin.mjs.map +0 -7
  184. package/dist/lib/neutral/react-context-UJURDOO6.mjs +0 -17
  185. package/dist/lib/neutral/react-context-UJURDOO6.mjs.map +0 -7
  186. package/dist/lib/neutral/react-surface-URESE7J4.mjs +0 -484
  187. package/dist/lib/neutral/react-surface-URESE7J4.mjs.map +0 -7
  188. package/dist/lib/neutral/settings-5I2674B6.mjs +0 -28
  189. package/dist/lib/neutral/settings-5I2674B6.mjs.map +0 -7
  190. package/dist/lib/neutral/translations.mjs +0 -91
  191. package/dist/lib/neutral/translations.mjs.map +0 -7
  192. package/dist/lib/neutral/types/index.mjs +0 -16
  193. package/dist/lib/neutral/types/index.mjs.map +0 -7
  194. package/dist/types/src/DebugPlugin.test.d.ts +0 -2
  195. package/dist/types/src/DebugPlugin.test.d.ts.map +0 -1
  196. package/dist/types/src/capabilities/react-context.d.ts +0 -5
  197. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  198. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +0 -8
  199. package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +0 -1
  200. package/dist/types/src/containers/DebugGraph/index.d.ts +0 -2
  201. package/dist/types/src/containers/DebugGraph/index.d.ts.map +0 -1
  202. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts +0 -3
  203. package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +0 -1
  204. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +0 -2
  205. package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +0 -1
  206. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts +0 -15
  207. package/dist/types/src/containers/GithubPanel/GithubComponent.d.ts.map +0 -1
  208. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts +0 -106
  209. package/dist/types/src/containers/GithubPanel/GithubComponent.stories.d.ts.map +0 -1
  210. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts +0 -3
  211. package/dist/types/src/containers/GithubPanel/GithubPanel.d.ts.map +0 -1
  212. package/dist/types/src/containers/GithubPanel/index.d.ts +0 -2
  213. package/dist/types/src/containers/GithubPanel/index.d.ts.map +0 -1
  214. package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts +0 -3
  215. package/dist/types/src/containers/RegistryPanel/RegistryPanel.d.ts.map +0 -1
  216. package/dist/types/src/containers/RegistryPanel/index.d.ts +0 -2
  217. package/dist/types/src/containers/RegistryPanel/index.d.ts.map +0 -1
  218. package/dist/types/src/types/Devtools.d.ts +0 -57
  219. package/dist/types/src/types/Devtools.d.ts.map +0 -1
  220. package/dist/types/src/types/surface.d.ts +0 -4
  221. package/dist/types/src/types/surface.d.ts.map +0 -1
  222. package/src/DebugPlugin.test.ts +0 -29
  223. package/src/capabilities/react-context.tsx +0 -25
  224. package/src/capabilities/react-surface.tsx +0 -504
  225. package/src/containers/DebugGraph/DebugGraph.tsx +0 -14
  226. package/src/containers/DebugGraph/index.ts +0 -5
  227. package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +0 -27
  228. package/src/containers/DevtoolsOverviewContainer/index.ts +0 -5
  229. package/src/containers/GithubPanel/GithubComponent.stories.tsx +0 -38
  230. package/src/containers/GithubPanel/GithubComponent.tsx +0 -192
  231. package/src/containers/GithubPanel/GithubPanel.tsx +0 -17
  232. package/src/containers/GithubPanel/index.ts +0 -5
  233. package/src/containers/RegistryPanel/RegistryPanel.tsx +0 -150
  234. package/src/containers/RegistryPanel/index.ts +0 -5
  235. package/src/types/Devtools.ts +0 -73
  236. 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
- }