@dxos/plugin-debug 0.6.14-main.f49f251 → 0.6.14-staging.77003c1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{DebugSpace-I6BNZKI2.mjs → DebugSpace-22PW7RJM.mjs} +3 -3
- package/dist/lib/browser/{chunk-2HTS7SNO.mjs → chunk-CAENAAHY.mjs} +4 -3
- package/dist/lib/browser/{chunk-2HTS7SNO.mjs.map → chunk-CAENAAHY.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-NHHLZV45.mjs → chunk-LZEK532R.mjs} +2 -2
- package/dist/lib/browser/chunk-LZEK532R.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +28 -13
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/meta.mjs +1 -1
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +2 -1
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +38 -37
- package/src/DebugPlugin.tsx +3 -0
- package/src/components/DebugSettings.tsx +13 -13
- package/src/meta.ts +2 -1
- package/src/translations.ts +1 -0
- package/src/types.ts +3 -1
- package/dist/lib/browser/chunk-NHHLZV45.mjs.map +0 -7
- /package/dist/lib/browser/{DebugSpace-I6BNZKI2.mjs.map → DebugSpace-22PW7RJM.mjs.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DebugContext
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-LZEK532R.mjs";
|
|
4
|
+
import "./chunk-CAENAAHY.mjs";
|
|
5
5
|
import {
|
|
6
6
|
DebugPanel
|
|
7
7
|
} from "./chunk-H3BJHVRD.mjs";
|
|
@@ -408,4 +408,4 @@ var DebugSpace_default = DebugSpace;
|
|
|
408
408
|
export {
|
|
409
409
|
DebugSpace_default as default
|
|
410
410
|
};
|
|
411
|
-
//# sourceMappingURL=DebugSpace-
|
|
411
|
+
//# sourceMappingURL=DebugSpace-22PW7RJM.mjs.map
|
|
@@ -4,14 +4,15 @@ var meta_default = {
|
|
|
4
4
|
id: DEBUG_PLUGIN,
|
|
5
5
|
name: "Debug",
|
|
6
6
|
description: "DXOS debugging tools.",
|
|
7
|
+
icon: "ph--bug--regular",
|
|
8
|
+
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-debug",
|
|
7
9
|
tags: [
|
|
8
10
|
"experimental"
|
|
9
|
-
]
|
|
10
|
-
icon: "ph--bug--regular"
|
|
11
|
+
]
|
|
11
12
|
};
|
|
12
13
|
|
|
13
14
|
export {
|
|
14
15
|
DEBUG_PLUGIN,
|
|
15
16
|
meta_default
|
|
16
17
|
};
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-CAENAAHY.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const DEBUG_PLUGIN = 'dxos.org/plugin/debug';\n\nexport default {\n id: DEBUG_PLUGIN,\n name: 'Debug',\n description: 'DXOS debugging tools.',\n
|
|
5
|
-
"mappings": ";AAMO,IAAMA,eAAe;AAE5B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;EACNC,aAAa;EACbC,MAAM;
|
|
6
|
-
"names": ["DEBUG_PLUGIN", "id", "name", "description", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const DEBUG_PLUGIN = 'dxos.org/plugin/debug';\n\nexport default {\n id: DEBUG_PLUGIN,\n name: 'Debug',\n description: 'DXOS debugging tools.',\n icon: 'ph--bug--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-debug',\n tags: ['experimental'],\n} satisfies PluginMeta;\n"],
|
|
5
|
+
"mappings": ";AAMO,IAAMA,eAAe;AAE5B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
|
|
6
|
+
"names": ["DEBUG_PLUGIN", "id", "name", "description", "icon", "source", "tags"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEBUG_PLUGIN
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CAENAAHY.mjs";
|
|
4
4
|
|
|
5
5
|
// packages/plugins/plugin-debug/src/types.ts
|
|
6
6
|
import { createContext } from "react";
|
|
@@ -28,4 +28,4 @@ export {
|
|
|
28
28
|
DebugContext,
|
|
29
29
|
DebugSettingsSchema
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
31
|
+
//# sourceMappingURL=chunk-LZEK532R.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Context, createContext } from 'react';\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n SettingsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport type { TimerCallback, TimerOptions } from '@dxos/async';\nimport { S } from '@dxos/echo-schema';\nimport { type PanelProvides } from '@dxos/plugin-deck/types';\n\nimport { DEBUG_PLUGIN } from './meta';\n\nconst DEBUG_ACTION = `${DEBUG_PLUGIN}/action`;\nexport enum DebugAction {\n OPEN_DEVTOOLS = `${DEBUG_ACTION}/open-devtools`,\n}\n\nexport type DebugContextType = {\n running: boolean;\n start: (cb: TimerCallback, options: TimerOptions) => void;\n stop: () => void;\n};\n\nexport const DebugContext: Context<DebugContextType> = createContext<DebugContextType>({\n running: false,\n start: () => {},\n stop: () => {},\n});\n\nexport const DebugSettingsSchema = S.mutable(\n S.Struct({\n devtools: S.optional(S.Boolean),\n debug: S.optional(S.Boolean),\n wireframe: S.optional(S.Boolean),\n }),\n);\n\nexport interface DebugSettingsProps extends S.Schema.Type<typeof DebugSettingsSchema> {}\n\nexport type DebugPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n SettingsProvides<DebugSettingsProps> &\n TranslationsProvides &\n PanelProvides;\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAAuBA,qBAAqB;AAU5C,SAASC,SAAS;AAKlB,IAAMC,eAAe,GAAGC,YAAAA;;UACZC,cAAAA;+CACM,GAAGF,YAAAA,gBAA4B,IAAA;GADrCE,gBAAAA,cAAAA,CAAAA,EAAAA;AAUL,IAAMC,eAA0CC,cAAgC;EACrFC,SAAS;EACTC,OAAO,MAAA;EAAO;EACdC,MAAM,MAAA;EAAO;AACf,CAAA;AAEO,IAAMC,sBAAsBC,EAAEC,QACnCD,EAAEE,OAAO;EACPC,UAAUH,EAAEI,SAASJ,EAAEK,OAAO;EAC9BC,OAAON,EAAEI,SAASJ,EAAEK,OAAO;EAC3BE,WAAWP,EAAEI,SAASJ,EAAEK,OAAO;AACjC,CAAA,CAAA;",
|
|
6
|
+
"names": ["createContext", "S", "DEBUG_ACTION", "DEBUG_PLUGIN", "DebugAction", "DebugContext", "createContext", "running", "start", "stop", "DebugSettingsSchema", "S", "mutable", "Struct", "devtools", "optional", "Boolean", "debug", "wireframe"]
|
|
7
|
+
}
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
DebugAction,
|
|
3
3
|
DebugContext,
|
|
4
4
|
DebugSettingsSchema
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LZEK532R.mjs";
|
|
6
6
|
import {
|
|
7
7
|
DEBUG_PLUGIN,
|
|
8
8
|
meta_default
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CAENAAHY.mjs";
|
|
10
10
|
|
|
11
11
|
// packages/plugins/plugin-debug/src/DebugPlugin.tsx
|
|
12
12
|
import React5, { useEffect as useEffect3, useState as useState3 } from "react";
|
|
@@ -46,7 +46,7 @@ import { defs, SaveConfig, Storage } from "@dxos/config";
|
|
|
46
46
|
import { log } from "@dxos/log";
|
|
47
47
|
import { useClient } from "@dxos/react-client";
|
|
48
48
|
import { useTranslation, Button, Toast, Input, useFileDownload, Select } from "@dxos/react-ui";
|
|
49
|
-
import {
|
|
49
|
+
import { DeprecatedFormInput } from "@dxos/react-ui-data";
|
|
50
50
|
import { getSize, mx } from "@dxos/react-ui-theme";
|
|
51
51
|
import { setDeep } from "@dxos/util";
|
|
52
52
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-debug/src/components/DebugSettings.tsx";
|
|
@@ -126,28 +126,28 @@ var DebugSettings = ({ settings }) => {
|
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
};
|
|
129
|
-
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(
|
|
129
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
|
|
130
130
|
label: t("settings show debug panel")
|
|
131
131
|
}, /* @__PURE__ */ React2.createElement(Input.Switch, {
|
|
132
132
|
checked: settings.debug,
|
|
133
133
|
onCheckedChange: (checked) => settings.debug = !!checked
|
|
134
|
-
})), /* @__PURE__ */ React2.createElement(
|
|
134
|
+
})), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
|
|
135
135
|
label: t("settings show devtools panel")
|
|
136
136
|
}, /* @__PURE__ */ React2.createElement(Input.Switch, {
|
|
137
137
|
checked: settings.devtools,
|
|
138
138
|
onCheckedChange: (checked) => settings.devtools = !!checked
|
|
139
|
-
})), /* @__PURE__ */ React2.createElement(
|
|
139
|
+
})), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
|
|
140
140
|
label: t("settings wireframe")
|
|
141
141
|
}, /* @__PURE__ */ React2.createElement(Input.Switch, {
|
|
142
142
|
checked: settings.wireframe,
|
|
143
143
|
onCheckedChange: (checked) => settings.wireframe = !!checked
|
|
144
|
-
})), /* @__PURE__ */ React2.createElement(
|
|
144
|
+
})), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
|
|
145
145
|
label: t("settings download diagnostics")
|
|
146
146
|
}, /* @__PURE__ */ React2.createElement(Button, {
|
|
147
147
|
onClick: handleDownload
|
|
148
148
|
}, /* @__PURE__ */ React2.createElement(DownloadSimple, {
|
|
149
149
|
className: getSize(5)
|
|
150
|
-
}))), /* @__PURE__ */ React2.createElement(
|
|
150
|
+
}))), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
|
|
151
151
|
label: t("settings repair")
|
|
152
152
|
}, /* @__PURE__ */ React2.createElement(Button, {
|
|
153
153
|
onClick: handleRepair
|
|
@@ -156,7 +156,7 @@ var DebugSettings = ({ settings }) => {
|
|
|
156
156
|
}))), toast && /* @__PURE__ */ React2.createElement(Toast.Root, null, /* @__PURE__ */ React2.createElement(Toast.Body, null, /* @__PURE__ */ React2.createElement(Toast.Title, null, /* @__PURE__ */ React2.createElement(Gift, {
|
|
157
157
|
className: mx(getSize(5), "inline mr-1"),
|
|
158
158
|
weight: "duotone"
|
|
159
|
-
}), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(
|
|
159
|
+
}), /* @__PURE__ */ React2.createElement("span", null, toast.title)), toast.description && /* @__PURE__ */ React2.createElement(Toast.Description, null, toast.description))), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
|
|
160
160
|
label: t("settings choose storage adaptor")
|
|
161
161
|
}, /* @__PURE__ */ React2.createElement(Select.Root, {
|
|
162
162
|
value: Object.entries(StorageAdapters).find(([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore)?.[0],
|
|
@@ -388,7 +388,7 @@ var Wireframe = ({ classNames, label, object }) => {
|
|
|
388
388
|
|
|
389
389
|
// packages/plugins/plugin-debug/src/components/index.ts
|
|
390
390
|
var DebugGlobal = lazy(() => import("./DebugGlobal-ZTCBF3XR.mjs"));
|
|
391
|
-
var DebugSpace = lazy(() => import("./DebugSpace-
|
|
391
|
+
var DebugSpace = lazy(() => import("./DebugSpace-22PW7RJM.mjs"));
|
|
392
392
|
|
|
393
393
|
// packages/plugins/plugin-debug/src/translations.ts
|
|
394
394
|
var translations_default = [
|
|
@@ -415,7 +415,8 @@ var translations_default = [
|
|
|
415
415
|
"settings storage adaptor opfs label": "OPFS",
|
|
416
416
|
"settings data store label": "Data Store",
|
|
417
417
|
"settings storage adapter changed alert": "Warning: Swapping the storage adapter will make your data unavailable.",
|
|
418
|
-
"settings space fragmentation": "Enable AM space fragmentation"
|
|
418
|
+
"settings space fragmentation": "Enable AM space fragmentation",
|
|
419
|
+
"open debug panel label": "Show Debug"
|
|
419
420
|
}
|
|
420
421
|
}
|
|
421
422
|
}
|
|
@@ -455,6 +456,20 @@ var DebugPlugin = definePlugin((context) => {
|
|
|
455
456
|
provides: {
|
|
456
457
|
settings,
|
|
457
458
|
translations: translations_default,
|
|
459
|
+
complementary: {
|
|
460
|
+
panels: [
|
|
461
|
+
{
|
|
462
|
+
id: "debug",
|
|
463
|
+
label: [
|
|
464
|
+
"open debug panel label",
|
|
465
|
+
{
|
|
466
|
+
ns: DEBUG_PLUGIN
|
|
467
|
+
}
|
|
468
|
+
],
|
|
469
|
+
icon: "ph--bug--regular"
|
|
470
|
+
}
|
|
471
|
+
]
|
|
472
|
+
},
|
|
458
473
|
context: ({ children }) => {
|
|
459
474
|
const [timer, setTimer] = useState3();
|
|
460
475
|
useEffect3(() => timer?.state.on((value) => !value && setTimer(void 0)), [
|
|
@@ -483,7 +498,7 @@ var DebugPlugin = definePlugin((context) => {
|
|
|
483
498
|
const client = clientPlugin?.provides.client;
|
|
484
499
|
invariant(resolve, void 0, {
|
|
485
500
|
F: __dxlog_file3,
|
|
486
|
-
L:
|
|
501
|
+
L: 111,
|
|
487
502
|
S: void 0,
|
|
488
503
|
A: [
|
|
489
504
|
"resolve",
|
|
@@ -492,7 +507,7 @@ var DebugPlugin = definePlugin((context) => {
|
|
|
492
507
|
});
|
|
493
508
|
invariant(client, void 0, {
|
|
494
509
|
F: __dxlog_file3,
|
|
495
|
-
L:
|
|
510
|
+
L: 112,
|
|
496
511
|
S: void 0,
|
|
497
512
|
A: [
|
|
498
513
|
"client",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/DebugPlugin.tsx", "../../../src/components/index.ts", "../../../src/components/DebugObjectPanel.tsx", "../../../src/components/DebugSettings.tsx", "../../../src/components/DebugStatus.tsx", "../../../src/components/Wireframe.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ReactNode, useEffect, useState } from 'react';\n\nimport {\n definePlugin,\n parseGraphPlugin,\n parseIntentPlugin,\n parseMetadataResolverPlugin,\n parseSettingsPlugin,\n resolvePlugin,\n} from '@dxos/app-framework';\nimport { Timer } from '@dxos/async';\nimport { Devtools } from '@dxos/devtools';\nimport { invariant } from '@dxos/invariant';\nimport { type ClientPluginProvides, parseClientPlugin } from '@dxos/plugin-client';\nimport { createExtension, Graph, type Node, toSignal } from '@dxos/plugin-graph';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { CollectionType } from '@dxos/plugin-space/types';\nimport { type Client } from '@dxos/react-client';\nimport { create, getTypename, isEchoObject, isSpace, parseId, type Space, SpaceState } from '@dxos/react-client/echo';\nimport { Main } from '@dxos/react-ui';\nimport {\n baseSurface,\n bottombarBlockPaddingEnd,\n fixedInsetFlexLayout,\n topbarBlockPaddingStart,\n} from '@dxos/react-ui-theme';\n\nimport { DebugGlobal, DebugObjectPanel, DebugSettings, DebugSpace, DebugStatus, Wireframe } from './components';\nimport meta, { DEBUG_PLUGIN } from './meta';\nimport translations from './translations';\nimport {\n DebugAction,\n DebugContext,\n type DebugPluginProvides,\n type DebugSettingsProps,\n DebugSettingsSchema,\n} from './types';\n\nexport const DebugPlugin = definePlugin<DebugPluginProvides>((context) => {\n const settings = create<DebugSettingsProps>({\n debug: true,\n devtools: true,\n });\n\n return {\n meta,\n ready: async (plugins) => {\n context.init(plugins);\n context.resolvePlugin(parseSettingsPlugin).provides.settingsStore.createStore({\n schema: DebugSettingsSchema,\n prefix: DEBUG_PLUGIN,\n value: settings,\n });\n\n // TODO(burdon): Remove hacky dependency on global variable.\n // Used to test how composer handles breaking protocol changes.\n const composer = (window as any).composer;\n composer.changeStorageVersionInMetadata = async (version: number) => {\n const { changeStorageVersionInMetadata } = await import('@dxos/echo-pipeline/testing');\n const { createStorageObjects } = await import('@dxos/client-services');\n const client: Client = (window as any).dxos.client;\n const config = client.config;\n await client.destroy();\n const { storage } = createStorageObjects(config.values?.runtime?.client?.storage ?? {});\n await changeStorageVersionInMetadata(storage, version);\n location.pathname = '/';\n };\n },\n unload: async () => {\n context.dispose();\n },\n provides: {\n settings,\n translations,\n context: ({ children }) => {\n const [timer, setTimer] = useState<Timer>();\n useEffect(() => timer?.state.on((value) => !value && setTimer(undefined)), [timer]);\n useEffect(() => {\n timer?.stop();\n }, []);\n\n return (\n <DebugContext.Provider\n value={{\n running: !!timer,\n start: (cb, options) => {\n timer?.stop();\n setTimer(new Timer(cb).start(options));\n },\n stop: () => timer?.stop(),\n }}\n >\n {children}\n </DebugContext.Provider>\n );\n },\n graph: {\n builder: (plugins) => {\n const clientPlugin = resolvePlugin(plugins, parseClientPlugin);\n const metadataPlugin = resolvePlugin(plugins, parseMetadataResolverPlugin);\n const graphPlugin = resolvePlugin(plugins, parseGraphPlugin);\n const resolve = metadataPlugin?.provides.metadata.resolver;\n const client = clientPlugin?.provides.client;\n invariant(resolve);\n invariant(client);\n\n return [\n // Devtools node.\n createExtension({\n id: 'dxos.org/plugin/debug/devtools',\n filter: (node): node is Node<null> => !!settings.devtools && node.id === 'root',\n connector: () => [\n {\n // TODO(zan): Removed `/` because it breaks deck layout reload. Fix?\n id: 'dxos.org.plugin.debug.devtools',\n data: 'devtools',\n type: 'dxos.org/plugin/debug/devtools',\n properties: {\n label: ['devtools label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hammer--regular',\n },\n },\n ],\n }),\n\n // Debug node.\n createExtension({\n id: 'dxos.org/plugin/debug/debug',\n filter: (node): node is Node<null> => !!settings.debug && node.id === 'root',\n connector: () => [\n {\n id: 'dxos.org/plugin/debug/debug',\n type: 'dxos.org/plugin/debug/debug',\n data: { graph: graphPlugin?.provides.graph },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n },\n },\n ],\n }),\n\n // Space debug nodes.\n createExtension({\n id: 'dxos.org/plugin/debug/spaces',\n filter: (node): node is Node<Space> => !!settings.debug && isSpace(node.data),\n connector: ({ node }) => {\n const space = node.data;\n return [\n {\n id: `${space.id}-debug`, // TODO(burdon): Change to slashes consistently.\n type: 'dxos.org/plugin/debug/space',\n data: { space },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n },\n },\n ];\n },\n }),\n\n // Create nodes for debug sidebar.\n createExtension({\n id: `${DEBUG_PLUGIN}/debug-for-subject`,\n resolver: ({ id }) => {\n // TODO(Zan): Find util (or make one).\n if (!id.endsWith('~debug')) {\n return;\n }\n\n const type = 'orphan-settings-for-subject';\n const icon = 'ph--bug--regular';\n\n const [subjectId] = id.split('~');\n const { spaceId, objectId } = parseId(subjectId);\n const space = client.spaces.get().find((space) => space.id === spaceId);\n if (!objectId) {\n // TODO(burdon): Ref SPACE_PLUGIN ns.\n const label = space\n ? space.properties.name || ['unnamed space label', { ns: DEBUG_PLUGIN }]\n : ['unnamed object settings label', { ns: DEBUG_PLUGIN }];\n\n // TODO(wittjosiah): Support comments for arbitrary subjects.\n // This is to ensure that the comments panel is not stuck on an old object.\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n showResolvedThreads: false,\n object: null,\n space,\n },\n };\n }\n\n const object = toSignal(\n (onChange) => {\n const timeout = setTimeout(async () => {\n await space?.db.loadObjectById(objectId);\n onChange();\n });\n\n return () => clearTimeout(timeout);\n },\n () => space?.db.getObjectById(objectId),\n subjectId,\n );\n if (!object || !subjectId) {\n return;\n }\n\n const meta = resolve(getTypename(object) ?? '');\n const label = meta.label?.(object) ||\n object.name ||\n meta.placeholder || ['unnamed object settings label', { ns: DEBUG_PLUGIN }];\n\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n object,\n },\n };\n },\n }),\n ];\n },\n },\n intent: {\n resolver: async (intent, plugins) => {\n switch (intent.action) {\n case DebugAction.OPEN_DEVTOOLS: {\n const clientPlugin = context.getPlugin<ClientPluginProvides>('dxos.org/plugin/client');\n const client = clientPlugin.provides.client;\n const vaultUrl = client.config.values?.runtime?.client?.remoteSource ?? 'https://halo.dxos.org';\n\n // Check if we're serving devtools locally on the usual port.\n let devtoolsUrl = 'http://localhost:5174';\n try {\n // TODO(burdon): Test header to see if this is actually devtools.\n await fetch(devtoolsUrl);\n } catch {\n // Match devtools to running app.\n const isDev = window.location.href.includes('.dev.') || window.location.href.includes('localhost');\n devtoolsUrl = `https://devtools${isDev ? '.dev.' : '.'}dxos.org`;\n }\n\n window.open(`${devtoolsUrl}?target=${vaultUrl}`, '_blank');\n return { data: true };\n }\n }\n },\n },\n surface: {\n component: ({ name, data, role }) => {\n switch (role) {\n case 'settings':\n return data.plugin === meta.id ? <DebugSettings settings={settings} /> : null;\n case 'status':\n return <DebugStatus />;\n case 'complementary--debug':\n return isEchoObject(data.subject) ? <DebugObjectPanel object={data.subject} /> : null;\n }\n\n const primary = data.active ?? data.object;\n let component: ReactNode;\n if (role === 'main' || role === 'article') {\n if (primary === 'devtools' && settings.devtools) {\n component = <Devtools />;\n } else if (!primary || typeof primary !== 'object' || !settings.debug) {\n component = null;\n } else if ('space' in primary && isSpace(primary.space)) {\n component = (\n <DebugSpace\n space={primary.space}\n onAddObjects={(objects) => {\n if (!isSpace(primary.space)) {\n return;\n }\n\n const collection =\n primary.space.state.get() === SpaceState.SPACE_READY &&\n primary.space.properties[CollectionType.typename];\n if (!(collection instanceof CollectionType)) {\n return;\n }\n\n void context.resolvePlugin(parseIntentPlugin).provides.intent.dispatch(\n objects.map((object) => ({\n action: SpaceAction.ADD_OBJECT,\n data: { target: collection, object },\n })),\n );\n }}\n />\n );\n } else if ('graph' in primary && primary.graph instanceof Graph) {\n component = <DebugGlobal graph={primary.graph} />;\n } else {\n component = null;\n }\n }\n\n if (!component) {\n if (settings.wireframe) {\n if (role === 'main' || role === 'article' || role === 'section') {\n const primary = data.active ?? data.object;\n const isCollection = primary instanceof CollectionType;\n // TODO(burdon): Move into Container abstraction.\n if (!isCollection) {\n return {\n node: (\n <Wireframe label={`${role}:${name}`} object={primary} classNames='row-span-2 overflow-hidden' />\n ),\n disposition: 'hoist',\n };\n }\n }\n }\n\n return null;\n }\n\n switch (role) {\n case 'article':\n return (\n <div role='none' className='row-span-2 rounded-t-md overflow-x-auto'>\n {component}\n </div>\n );\n case 'main':\n return (\n <Main.Content\n classNames={[baseSurface, fixedInsetFlexLayout, topbarBlockPaddingStart, bottombarBlockPaddingEnd]}\n >\n {component}\n </Main.Content>\n );\n }\n\n return null;\n },\n },\n },\n };\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const DebugGlobal = lazy(() => import('./DebugGlobal'));\nexport const DebugSpace = lazy(() => import('./DebugSpace'));\n\nexport * from './DebugObjectPanel';\nexport * from './DebugSettings';\nexport * from './DebugStatus';\nexport * from './Wireframe';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type EchoReactiveObject } from '@dxos/client/echo';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: EchoReactiveObject<any>;\n};\n\nexport const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {\n return (\n <div role='form' className='flex flex-col'>\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify(object, null, 2)}\n </SyntaxHighlighter>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Gift, DownloadSimple, FirstAidKit } from '@phosphor-icons/react';\nimport React, { useEffect, useState } from 'react';\n\nimport { parseFileManagerPlugin, useResolvePlugin } from '@dxos/app-framework';\nimport { type ConfigProto, defs, SaveConfig, Storage } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { useTranslation, Button, Toast, Input, useFileDownload, Select } from '@dxos/react-ui';\nimport { FormInput } from '@dxos/react-ui-data';\nimport { getSize, mx } from '@dxos/react-ui-theme';\nimport { setDeep } from '@dxos/util';\n\nimport { DEBUG_PLUGIN } from '../meta';\nimport { type DebugSettingsProps } from '../types';\n\ntype Toast = {\n title: string;\n description?: string;\n};\n\nconst StorageAdapters = {\n opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,\n idb: defs.Runtime.Client.Storage.StorageDriver.IDB,\n} as const;\n\nexport const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) => {\n const { t } = useTranslation(DEBUG_PLUGIN);\n const [toast, setToast] = useState<Toast>();\n const client = useClient();\n const download = useFileDownload();\n // TODO(mykola): Get updates from other places that change Config.\n const [storageConfig, setStorageConfig] = useState<ConfigProto>({});\n const fileManagerPlugin = useResolvePlugin(parseFileManagerPlugin);\n\n useEffect(() => {\n void Storage().then((config) => setStorageConfig(config));\n }, []);\n\n const handleToast = (toast: Toast) => {\n setToast(toast);\n const t = setTimeout(() => setToast(undefined), 5_000);\n return () => clearTimeout(t);\n };\n\n const handleDownload = async () => {\n const data = await client.diagnostics();\n const file = new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (fileManagerPlugin?.provides.file.upload) {\n const info = await fileManagerPlugin.provides.file.upload(new File([file], fileName), client.spaces.default);\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n\n // TODO(nf): move to IpfsPlugin?\n const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;\n void navigator.clipboard.writeText(url);\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n log.info('diagnostics', { url });\n }\n };\n\n const handleRepair = async () => {\n try {\n const info = await client.repair();\n setStorageConfig(await Storage());\n handleToast({ title: t('settings repair success'), description: JSON.stringify(info, undefined, 2) });\n } catch (err: any) {\n handleToast({ title: t('settings repair failed'), description: err.message });\n }\n };\n\n return (\n <>\n <FormInput label={t('settings show debug panel')}>\n <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />\n </FormInput>\n <FormInput label={t('settings show devtools panel')}>\n <Input.Switch checked={settings.devtools} onCheckedChange={(checked) => (settings.devtools = !!checked)} />\n </FormInput>\n <FormInput label={t('settings wireframe')}>\n <Input.Switch checked={settings.wireframe} onCheckedChange={(checked) => (settings.wireframe = !!checked)} />\n </FormInput>\n <FormInput label={t('settings download diagnostics')}>\n <Button onClick={handleDownload}>\n <DownloadSimple className={getSize(5)} />\n </Button>\n </FormInput>\n <FormInput label={t('settings repair')}>\n <Button onClick={handleRepair}>\n <FirstAidKit className={getSize(5)} />\n </Button>\n </FormInput>\n\n {/* TODO(burdon): Move to layout? */}\n {toast && (\n <Toast.Root>\n <Toast.Body>\n <Toast.Title>\n <Gift className={mx(getSize(5), 'inline mr-1')} weight='duotone' />\n <span>{toast.title}</span>\n </Toast.Title>\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Toast.Body>\n </Toast.Root>\n )}\n\n <FormInput label={t('settings choose storage adaptor')}>\n <Select.Root\n value={\n Object.entries(StorageAdapters).find(\n ([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,\n )?.[0]\n }\n onValueChange={(value) => {\n if (confirm(t('settings storage adapter changed alert'))) {\n updateConfig(\n storageConfig,\n setStorageConfig,\n ['runtime', 'client', 'storage', 'dataStore'],\n StorageAdapters[value as keyof typeof StorageAdapters],\n );\n }\n }}\n >\n <Select.TriggerButton placeholder={t('settings data store label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Object.keys(StorageAdapters).map((key) => (\n <Select.Option key={key} value={key}>\n {t(`settings storage adaptor ${key} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </FormInput>\n </>\n );\n};\n\nconst updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {\n const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));\n setDeep(storageConfigCopy, path, value);\n setConfig(storageConfigCopy);\n queueMicrotask(async () => {\n await SaveConfig(storageConfigCopy);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { firstIdInPart, parseGraphPlugin, parseNavigationPlugin, useResolvePlugin } from '@dxos/app-framework';\nimport { TimeoutError } from '@dxos/async';\nimport { StatsPanel, useStats } from '@dxos/devtools';\nimport { log } from '@dxos/log';\nimport { getActiveSpace } from '@dxos/plugin-space';\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Icon } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\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>();\n useEffect(() => {\n const errorListener = (event: any) => {\n const error: Error = event.error ?? event.reason;\n // event.preventDefault();\n if (errorRef.current !== error) {\n // eslint-disable-next-line no-console\n log.error('onError', { event });\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 = undefined;\n forceUpdate({});\n };\n\n if (errorRef.current) {\n return (\n <StatusBar.Button title={errorRef.current.message} onClick={handleReset}>\n <Icon icon='ph--warning-circle--duotone' size={4} classNames={styles.error} />\n </StatusBar.Button>\n );\n } else {\n return (\n <StatusBar.Item title='No errors.'>\n <Icon icon='ph--check--regular' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Swarm connection handler.\n */\nconst SwarmIndicator = () => {\n const [state, setState] = useState(0);\n const { swarm } = useNetworkStatus();\n useEffect(() => {\n setState(swarm === ConnectionState.ONLINE ? 0 : 1);\n }, [swarm]);\n\n if (state === 0) {\n return (\n <StatusBar.Item title='Connected to swarm.'>\n <Icon icon='ph--lightning--regular' size={4} />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item title='Disconnected from swarm.'>\n <Icon icon='ph--lightning-slash--regular' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Data saving indicator.\n */\n// TODO(burdon): Merge with SaveStatus.\nconst SavingIndicator = () => {\n const [state, _setState] = useState(0);\n const navigationPlugin = useResolvePlugin(parseNavigationPlugin);\n const graphPlugin = useResolvePlugin(parseGraphPlugin);\n const location = navigationPlugin?.provides.location;\n const graph = graphPlugin?.provides.graph;\n const _space = location && graph ? getActiveSpace(graph, firstIdInPart(location.active, 'main')) : undefined;\n // TODO(dmaretskyi): Fix this when we have save status for automerge.\n // useEffect(() => {\n // if (!space) {\n // return;\n // }\n // const { start, stop } = timer(() => setState(0), { min: 250 });\n // return space.db.pendingBatch.on(({ duration, error }) => {\n // if (error) {\n // setState(2);\n // stop();\n // } else if (duration === undefined) {\n // setState(1);\n // start();\n // } else {\n // stop();\n // }\n // });\n // }, [space]);\n\n switch (state) {\n case 2:\n return (\n <StatusBar.Item title='Edit not saved.'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n case 1:\n return (\n <StatusBar.Item title='Saving...'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.success} />\n </StatusBar.Item>\n );\n case 0:\n default:\n return (\n <StatusBar.Item title='Modified indicator.'>\n <Icon icon='ph--circle--duotone' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\nconst PerformanceIndicator = () => {\n const [visible, setVisible] = useState(false);\n const [stats, refreshStats] = useStats();\n\n return (\n <>\n <StatusBar.Button onClick={() => setVisible((visible) => !visible)} title='Performance panels'>\n <Icon icon='ph--chart-bar--regular' size={4} />\n </StatusBar.Button>\n {visible && (\n <div\n className={mx(\n 'z-20 absolute bottom-[--statusbar-size] right-4 w-[450px]',\n 'overflow-x-hidden overflow-y-auto scrollbar-thin',\n 'border-x border-y border-separator',\n )}\n >\n <StatsPanel stats={stats} onRefresh={refreshStats} />\n </div>\n )}\n </>\n );\n};\n\nconst indicators = [SavingIndicator, SwarmIndicator, PerformanceIndicator, ErrorIndicator];\n\nexport const DebugStatus = () => {\n return (\n <>\n {indicators.map((Indicator) => (\n <Indicator key={Indicator.name} />\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttendableAttributes } from '@dxos/react-ui-attention';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/react-ui-theme';\n\n// TODO(burdon): Create generic container with wireframe mode.\nexport type WireframeProps = ThemedClassName<{\n label?: string;\n object?: any;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attendableAttrs = useAttendableAttributes(fullyQualifiedId(object));\n const { width, height, ref } = useResizeDetector();\n return (\n <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attendableAttrs}>\n <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>\n <div className='flex justify-between'>\n <div>{label}</div>\n <div>{`[${width}x${height}]`}</div>\n </div>\n {object && (\n <SyntaxHighlighter language='json' classNames='flex w-full text-xs opacity-75 rounded'>\n {JSON.stringify(object, undefined, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n <svg width={width} height={height} className='bg-transparent [&>*]:text-subdued'>\n <rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />\n <line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />\n <line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />\n </svg>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DEBUG_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [DEBUG_PLUGIN]: {\n 'plugin name': 'Debug',\n 'mutation count': 'Number of mutations',\n 'mutation period': 'Mutation period',\n 'open devtools label': 'Open DevTools',\n 'devtools label': 'DevTools',\n 'debug label': 'Debug',\n 'settings show debug panel': 'Show Debug panel.',\n 'settings show devtools panel': 'Show DevTools panel.',\n 'settings wireframe': 'Show wireframes.',\n 'settings repair': 'Run repair tool.',\n 'settings download diagnostics': 'Download diagnostics.',\n 'settings uploaded': 'Uploaded to IPFS',\n 'settings uploaded to clipboard': 'URL copied to clipboard.',\n 'settings repair success': 'Repair succeeded',\n 'settings repair failed': 'Repair failed',\n 'settings choose storage adaptor': 'Storage adaptor (worker reload required).',\n 'settings storage adaptor idb label': 'IndexedDB',\n 'settings storage adaptor opfs label': 'OPFS',\n 'settings data store label': 'Data Store',\n 'settings storage adapter changed alert':\n 'Warning: Swapping the storage adapter will make your data unavailable.',\n 'settings space fragmentation': 'Enable AM space fragmentation',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DebugPlugin } from './DebugPlugin';\n\nexport * from './DebugPlugin';\n\nexport default DebugPlugin;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useEffect", "useState", "definePlugin", "parseGraphPlugin", "parseIntentPlugin", "parseMetadataResolverPlugin", "parseSettingsPlugin", "resolvePlugin", "Timer", "Devtools", "invariant", "parseClientPlugin", "createExtension", "Graph", "toSignal", "SpaceAction", "CollectionType", "create", "getTypename", "isEchoObject", "isSpace", "parseId", "SpaceState", "Main", "baseSurface", "bottombarBlockPaddingEnd", "fixedInsetFlexLayout", "topbarBlockPaddingStart", "lazy", "React", "SyntaxHighlighter", "DebugObjectPanel", "object", "div", "role", "className", "SyntaxHighlighter", "classNames", "language", "JSON", "stringify", "Gift", "DownloadSimple", "FirstAidKit", "React", "useEffect", "useState", "parseFileManagerPlugin", "useResolvePlugin", "defs", "SaveConfig", "Storage", "log", "useClient", "useTranslation", "Button", "Toast", "Input", "useFileDownload", "Select", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ReactNode, useEffect, useState } from 'react';\n\nimport {\n definePlugin,\n parseGraphPlugin,\n parseIntentPlugin,\n parseMetadataResolverPlugin,\n parseSettingsPlugin,\n resolvePlugin,\n} from '@dxos/app-framework';\nimport { Timer } from '@dxos/async';\nimport { Devtools } from '@dxos/devtools';\nimport { invariant } from '@dxos/invariant';\nimport { type ClientPluginProvides, parseClientPlugin } from '@dxos/plugin-client';\nimport { createExtension, Graph, type Node, toSignal } from '@dxos/plugin-graph';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { CollectionType } from '@dxos/plugin-space/types';\nimport { type Client } from '@dxos/react-client';\nimport { create, getTypename, isEchoObject, isSpace, parseId, type Space, SpaceState } from '@dxos/react-client/echo';\nimport { Main } from '@dxos/react-ui';\nimport {\n baseSurface,\n bottombarBlockPaddingEnd,\n fixedInsetFlexLayout,\n topbarBlockPaddingStart,\n} from '@dxos/react-ui-theme';\n\nimport { DebugGlobal, DebugObjectPanel, DebugSettings, DebugSpace, DebugStatus, Wireframe } from './components';\nimport meta, { DEBUG_PLUGIN } from './meta';\nimport translations from './translations';\nimport {\n DebugAction,\n DebugContext,\n type DebugPluginProvides,\n type DebugSettingsProps,\n DebugSettingsSchema,\n} from './types';\n\nexport const DebugPlugin = definePlugin<DebugPluginProvides>((context) => {\n const settings = create<DebugSettingsProps>({\n debug: true,\n devtools: true,\n });\n\n return {\n meta,\n ready: async (plugins) => {\n context.init(plugins);\n context.resolvePlugin(parseSettingsPlugin).provides.settingsStore.createStore({\n schema: DebugSettingsSchema,\n prefix: DEBUG_PLUGIN,\n value: settings,\n });\n\n // TODO(burdon): Remove hacky dependency on global variable.\n // Used to test how composer handles breaking protocol changes.\n const composer = (window as any).composer;\n composer.changeStorageVersionInMetadata = async (version: number) => {\n const { changeStorageVersionInMetadata } = await import('@dxos/echo-pipeline/testing');\n const { createStorageObjects } = await import('@dxos/client-services');\n const client: Client = (window as any).dxos.client;\n const config = client.config;\n await client.destroy();\n const { storage } = createStorageObjects(config.values?.runtime?.client?.storage ?? {});\n await changeStorageVersionInMetadata(storage, version);\n location.pathname = '/';\n };\n },\n unload: async () => {\n context.dispose();\n },\n provides: {\n settings,\n translations,\n complementary: {\n panels: [{ id: 'debug', label: ['open debug panel label', { ns: DEBUG_PLUGIN }], icon: 'ph--bug--regular' }],\n },\n context: ({ children }) => {\n const [timer, setTimer] = useState<Timer>();\n useEffect(() => timer?.state.on((value) => !value && setTimer(undefined)), [timer]);\n useEffect(() => {\n timer?.stop();\n }, []);\n\n return (\n <DebugContext.Provider\n value={{\n running: !!timer,\n start: (cb, options) => {\n timer?.stop();\n setTimer(new Timer(cb).start(options));\n },\n stop: () => timer?.stop(),\n }}\n >\n {children}\n </DebugContext.Provider>\n );\n },\n graph: {\n builder: (plugins) => {\n const clientPlugin = resolvePlugin(plugins, parseClientPlugin);\n const metadataPlugin = resolvePlugin(plugins, parseMetadataResolverPlugin);\n const graphPlugin = resolvePlugin(plugins, parseGraphPlugin);\n const resolve = metadataPlugin?.provides.metadata.resolver;\n const client = clientPlugin?.provides.client;\n invariant(resolve);\n invariant(client);\n\n return [\n // Devtools node.\n createExtension({\n id: 'dxos.org/plugin/debug/devtools',\n filter: (node): node is Node<null> => !!settings.devtools && node.id === 'root',\n connector: () => [\n {\n // TODO(zan): Removed `/` because it breaks deck layout reload. Fix?\n id: 'dxos.org.plugin.debug.devtools',\n data: 'devtools',\n type: 'dxos.org/plugin/debug/devtools',\n properties: {\n label: ['devtools label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hammer--regular',\n },\n },\n ],\n }),\n\n // Debug node.\n createExtension({\n id: 'dxos.org/plugin/debug/debug',\n filter: (node): node is Node<null> => !!settings.debug && node.id === 'root',\n connector: () => [\n {\n id: 'dxos.org/plugin/debug/debug',\n type: 'dxos.org/plugin/debug/debug',\n data: { graph: graphPlugin?.provides.graph },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n },\n },\n ],\n }),\n\n // Space debug nodes.\n createExtension({\n id: 'dxos.org/plugin/debug/spaces',\n filter: (node): node is Node<Space> => !!settings.debug && isSpace(node.data),\n connector: ({ node }) => {\n const space = node.data;\n return [\n {\n id: `${space.id}-debug`, // TODO(burdon): Change to slashes consistently.\n type: 'dxos.org/plugin/debug/space',\n data: { space },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n },\n },\n ];\n },\n }),\n\n // Create nodes for debug sidebar.\n createExtension({\n id: `${DEBUG_PLUGIN}/debug-for-subject`,\n resolver: ({ id }) => {\n // TODO(Zan): Find util (or make one).\n if (!id.endsWith('~debug')) {\n return;\n }\n\n const type = 'orphan-settings-for-subject';\n const icon = 'ph--bug--regular';\n\n const [subjectId] = id.split('~');\n const { spaceId, objectId } = parseId(subjectId);\n const space = client.spaces.get().find((space) => space.id === spaceId);\n if (!objectId) {\n // TODO(burdon): Ref SPACE_PLUGIN ns.\n const label = space\n ? space.properties.name || ['unnamed space label', { ns: DEBUG_PLUGIN }]\n : ['unnamed object settings label', { ns: DEBUG_PLUGIN }];\n\n // TODO(wittjosiah): Support comments for arbitrary subjects.\n // This is to ensure that the comments panel is not stuck on an old object.\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n showResolvedThreads: false,\n object: null,\n space,\n },\n };\n }\n\n const object = toSignal(\n (onChange) => {\n const timeout = setTimeout(async () => {\n await space?.db.loadObjectById(objectId);\n onChange();\n });\n\n return () => clearTimeout(timeout);\n },\n () => space?.db.getObjectById(objectId),\n subjectId,\n );\n if (!object || !subjectId) {\n return;\n }\n\n const meta = resolve(getTypename(object) ?? '');\n const label = meta.label?.(object) ||\n object.name ||\n meta.placeholder || ['unnamed object settings label', { ns: DEBUG_PLUGIN }];\n\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n object,\n },\n };\n },\n }),\n ];\n },\n },\n intent: {\n resolver: async (intent, plugins) => {\n switch (intent.action) {\n case DebugAction.OPEN_DEVTOOLS: {\n const clientPlugin = context.getPlugin<ClientPluginProvides>('dxos.org/plugin/client');\n const client = clientPlugin.provides.client;\n const vaultUrl = client.config.values?.runtime?.client?.remoteSource ?? 'https://halo.dxos.org';\n\n // Check if we're serving devtools locally on the usual port.\n let devtoolsUrl = 'http://localhost:5174';\n try {\n // TODO(burdon): Test header to see if this is actually devtools.\n await fetch(devtoolsUrl);\n } catch {\n // Match devtools to running app.\n const isDev = window.location.href.includes('.dev.') || window.location.href.includes('localhost');\n devtoolsUrl = `https://devtools${isDev ? '.dev.' : '.'}dxos.org`;\n }\n\n window.open(`${devtoolsUrl}?target=${vaultUrl}`, '_blank');\n return { data: true };\n }\n }\n },\n },\n surface: {\n component: ({ name, data, role }) => {\n switch (role) {\n case 'settings':\n return data.plugin === meta.id ? <DebugSettings settings={settings} /> : null;\n case 'status':\n return <DebugStatus />;\n case 'complementary--debug':\n return isEchoObject(data.subject) ? <DebugObjectPanel object={data.subject} /> : null;\n }\n\n const primary = data.active ?? data.object;\n let component: ReactNode;\n if (role === 'main' || role === 'article') {\n if (primary === 'devtools' && settings.devtools) {\n component = <Devtools />;\n } else if (!primary || typeof primary !== 'object' || !settings.debug) {\n component = null;\n } else if ('space' in primary && isSpace(primary.space)) {\n component = (\n <DebugSpace\n space={primary.space}\n onAddObjects={(objects) => {\n if (!isSpace(primary.space)) {\n return;\n }\n\n const collection =\n primary.space.state.get() === SpaceState.SPACE_READY &&\n primary.space.properties[CollectionType.typename];\n if (!(collection instanceof CollectionType)) {\n return;\n }\n\n void context.resolvePlugin(parseIntentPlugin).provides.intent.dispatch(\n objects.map((object) => ({\n action: SpaceAction.ADD_OBJECT,\n data: { target: collection, object },\n })),\n );\n }}\n />\n );\n } else if ('graph' in primary && primary.graph instanceof Graph) {\n component = <DebugGlobal graph={primary.graph} />;\n } else {\n component = null;\n }\n }\n\n if (!component) {\n if (settings.wireframe) {\n if (role === 'main' || role === 'article' || role === 'section') {\n const primary = data.active ?? data.object;\n const isCollection = primary instanceof CollectionType;\n // TODO(burdon): Move into Container abstraction.\n if (!isCollection) {\n return {\n node: (\n <Wireframe label={`${role}:${name}`} object={primary} classNames='row-span-2 overflow-hidden' />\n ),\n disposition: 'hoist',\n };\n }\n }\n }\n\n return null;\n }\n\n switch (role) {\n case 'article':\n return (\n <div role='none' className='row-span-2 rounded-t-md overflow-x-auto'>\n {component}\n </div>\n );\n case 'main':\n return (\n <Main.Content\n classNames={[baseSurface, fixedInsetFlexLayout, topbarBlockPaddingStart, bottombarBlockPaddingEnd]}\n >\n {component}\n </Main.Content>\n );\n }\n\n return null;\n },\n },\n },\n };\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const DebugGlobal = lazy(() => import('./DebugGlobal'));\nexport const DebugSpace = lazy(() => import('./DebugSpace'));\n\nexport * from './DebugObjectPanel';\nexport * from './DebugSettings';\nexport * from './DebugStatus';\nexport * from './Wireframe';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type EchoReactiveObject } from '@dxos/client/echo';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: EchoReactiveObject<any>;\n};\n\nexport const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {\n return (\n <div role='form' className='flex flex-col'>\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify(object, null, 2)}\n </SyntaxHighlighter>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Gift, DownloadSimple, FirstAidKit } from '@phosphor-icons/react';\nimport React, { useEffect, useState } from 'react';\n\nimport { parseFileManagerPlugin, useResolvePlugin } from '@dxos/app-framework';\nimport { type ConfigProto, defs, SaveConfig, Storage } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { useTranslation, Button, Toast, Input, useFileDownload, Select } from '@dxos/react-ui';\nimport { DeprecatedFormInput } from '@dxos/react-ui-data';\nimport { getSize, mx } from '@dxos/react-ui-theme';\nimport { setDeep } from '@dxos/util';\n\nimport { DEBUG_PLUGIN } from '../meta';\nimport { type DebugSettingsProps } from '../types';\n\ntype Toast = {\n title: string;\n description?: string;\n};\n\nconst StorageAdapters = {\n opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,\n idb: defs.Runtime.Client.Storage.StorageDriver.IDB,\n} as const;\n\nexport const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) => {\n const { t } = useTranslation(DEBUG_PLUGIN);\n const [toast, setToast] = useState<Toast>();\n const client = useClient();\n const download = useFileDownload();\n // TODO(mykola): Get updates from other places that change Config.\n const [storageConfig, setStorageConfig] = useState<ConfigProto>({});\n const fileManagerPlugin = useResolvePlugin(parseFileManagerPlugin);\n\n useEffect(() => {\n void Storage().then((config) => setStorageConfig(config));\n }, []);\n\n const handleToast = (toast: Toast) => {\n setToast(toast);\n const t = setTimeout(() => setToast(undefined), 5_000);\n return () => clearTimeout(t);\n };\n\n const handleDownload = async () => {\n const data = await client.diagnostics();\n const file = new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (fileManagerPlugin?.provides.file.upload) {\n const info = await fileManagerPlugin.provides.file.upload(new File([file], fileName), client.spaces.default);\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n\n // TODO(nf): move to IpfsPlugin?\n const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;\n void navigator.clipboard.writeText(url);\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n log.info('diagnostics', { url });\n }\n };\n\n const handleRepair = async () => {\n try {\n const info = await client.repair();\n setStorageConfig(await Storage());\n handleToast({ title: t('settings repair success'), description: JSON.stringify(info, undefined, 2) });\n } catch (err: any) {\n handleToast({ title: t('settings repair failed'), description: err.message });\n }\n };\n\n return (\n <>\n <DeprecatedFormInput label={t('settings show debug panel')}>\n <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings show devtools panel')}>\n <Input.Switch checked={settings.devtools} onCheckedChange={(checked) => (settings.devtools = !!checked)} />\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings wireframe')}>\n <Input.Switch checked={settings.wireframe} onCheckedChange={(checked) => (settings.wireframe = !!checked)} />\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings download diagnostics')}>\n <Button onClick={handleDownload}>\n <DownloadSimple className={getSize(5)} />\n </Button>\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings repair')}>\n <Button onClick={handleRepair}>\n <FirstAidKit className={getSize(5)} />\n </Button>\n </DeprecatedFormInput>\n\n {/* TODO(burdon): Move to layout? */}\n {toast && (\n <Toast.Root>\n <Toast.Body>\n <Toast.Title>\n <Gift className={mx(getSize(5), 'inline mr-1')} weight='duotone' />\n <span>{toast.title}</span>\n </Toast.Title>\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Toast.Body>\n </Toast.Root>\n )}\n\n <DeprecatedFormInput label={t('settings choose storage adaptor')}>\n <Select.Root\n value={\n Object.entries(StorageAdapters).find(\n ([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,\n )?.[0]\n }\n onValueChange={(value) => {\n if (confirm(t('settings storage adapter changed alert'))) {\n updateConfig(\n storageConfig,\n setStorageConfig,\n ['runtime', 'client', 'storage', 'dataStore'],\n StorageAdapters[value as keyof typeof StorageAdapters],\n );\n }\n }}\n >\n <Select.TriggerButton placeholder={t('settings data store label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Object.keys(StorageAdapters).map((key) => (\n <Select.Option key={key} value={key}>\n {t(`settings storage adaptor ${key} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </>\n );\n};\n\nconst updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {\n const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));\n setDeep(storageConfigCopy, path, value);\n setConfig(storageConfigCopy);\n queueMicrotask(async () => {\n await SaveConfig(storageConfigCopy);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { firstIdInPart, parseGraphPlugin, parseNavigationPlugin, useResolvePlugin } from '@dxos/app-framework';\nimport { TimeoutError } from '@dxos/async';\nimport { StatsPanel, useStats } from '@dxos/devtools';\nimport { log } from '@dxos/log';\nimport { getActiveSpace } from '@dxos/plugin-space';\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Icon } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\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>();\n useEffect(() => {\n const errorListener = (event: any) => {\n const error: Error = event.error ?? event.reason;\n // event.preventDefault();\n if (errorRef.current !== error) {\n // eslint-disable-next-line no-console\n log.error('onError', { event });\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 = undefined;\n forceUpdate({});\n };\n\n if (errorRef.current) {\n return (\n <StatusBar.Button title={errorRef.current.message} onClick={handleReset}>\n <Icon icon='ph--warning-circle--duotone' size={4} classNames={styles.error} />\n </StatusBar.Button>\n );\n } else {\n return (\n <StatusBar.Item title='No errors.'>\n <Icon icon='ph--check--regular' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Swarm connection handler.\n */\nconst SwarmIndicator = () => {\n const [state, setState] = useState(0);\n const { swarm } = useNetworkStatus();\n useEffect(() => {\n setState(swarm === ConnectionState.ONLINE ? 0 : 1);\n }, [swarm]);\n\n if (state === 0) {\n return (\n <StatusBar.Item title='Connected to swarm.'>\n <Icon icon='ph--lightning--regular' size={4} />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item title='Disconnected from swarm.'>\n <Icon icon='ph--lightning-slash--regular' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Data saving indicator.\n */\n// TODO(burdon): Merge with SaveStatus.\nconst SavingIndicator = () => {\n const [state, _setState] = useState(0);\n const navigationPlugin = useResolvePlugin(parseNavigationPlugin);\n const graphPlugin = useResolvePlugin(parseGraphPlugin);\n const location = navigationPlugin?.provides.location;\n const graph = graphPlugin?.provides.graph;\n const _space = location && graph ? getActiveSpace(graph, firstIdInPart(location.active, 'main')) : undefined;\n // TODO(dmaretskyi): Fix this when we have save status for automerge.\n // useEffect(() => {\n // if (!space) {\n // return;\n // }\n // const { start, stop } = timer(() => setState(0), { min: 250 });\n // return space.db.pendingBatch.on(({ duration, error }) => {\n // if (error) {\n // setState(2);\n // stop();\n // } else if (duration === undefined) {\n // setState(1);\n // start();\n // } else {\n // stop();\n // }\n // });\n // }, [space]);\n\n switch (state) {\n case 2:\n return (\n <StatusBar.Item title='Edit not saved.'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n case 1:\n return (\n <StatusBar.Item title='Saving...'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.success} />\n </StatusBar.Item>\n );\n case 0:\n default:\n return (\n <StatusBar.Item title='Modified indicator.'>\n <Icon icon='ph--circle--duotone' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\nconst PerformanceIndicator = () => {\n const [visible, setVisible] = useState(false);\n const [stats, refreshStats] = useStats();\n\n return (\n <>\n <StatusBar.Button onClick={() => setVisible((visible) => !visible)} title='Performance panels'>\n <Icon icon='ph--chart-bar--regular' size={4} />\n </StatusBar.Button>\n {visible && (\n <div\n className={mx(\n 'z-20 absolute bottom-[--statusbar-size] right-4 w-[450px]',\n 'overflow-x-hidden overflow-y-auto scrollbar-thin',\n 'border-x border-y border-separator',\n )}\n >\n <StatsPanel stats={stats} onRefresh={refreshStats} />\n </div>\n )}\n </>\n );\n};\n\nconst indicators = [SavingIndicator, SwarmIndicator, PerformanceIndicator, ErrorIndicator];\n\nexport const DebugStatus = () => {\n return (\n <>\n {indicators.map((Indicator) => (\n <Indicator key={Indicator.name} />\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttendableAttributes } from '@dxos/react-ui-attention';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/react-ui-theme';\n\n// TODO(burdon): Create generic container with wireframe mode.\nexport type WireframeProps = ThemedClassName<{\n label?: string;\n object?: any;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attendableAttrs = useAttendableAttributes(fullyQualifiedId(object));\n const { width, height, ref } = useResizeDetector();\n return (\n <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attendableAttrs}>\n <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>\n <div className='flex justify-between'>\n <div>{label}</div>\n <div>{`[${width}x${height}]`}</div>\n </div>\n {object && (\n <SyntaxHighlighter language='json' classNames='flex w-full text-xs opacity-75 rounded'>\n {JSON.stringify(object, undefined, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n <svg width={width} height={height} className='bg-transparent [&>*]:text-subdued'>\n <rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />\n <line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />\n <line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />\n </svg>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DEBUG_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [DEBUG_PLUGIN]: {\n 'plugin name': 'Debug',\n 'mutation count': 'Number of mutations',\n 'mutation period': 'Mutation period',\n 'open devtools label': 'Open DevTools',\n 'devtools label': 'DevTools',\n 'debug label': 'Debug',\n 'settings show debug panel': 'Show Debug panel.',\n 'settings show devtools panel': 'Show DevTools panel.',\n 'settings wireframe': 'Show wireframes.',\n 'settings repair': 'Run repair tool.',\n 'settings download diagnostics': 'Download diagnostics.',\n 'settings uploaded': 'Uploaded to IPFS',\n 'settings uploaded to clipboard': 'URL copied to clipboard.',\n 'settings repair success': 'Repair succeeded',\n 'settings repair failed': 'Repair failed',\n 'settings choose storage adaptor': 'Storage adaptor (worker reload required).',\n 'settings storage adaptor idb label': 'IndexedDB',\n 'settings storage adaptor opfs label': 'OPFS',\n 'settings data store label': 'Data Store',\n 'settings storage adapter changed alert':\n 'Warning: Swapping the storage adapter will make your data unavailable.',\n 'settings space fragmentation': 'Enable AM space fragmentation',\n 'open debug panel label': 'Show Debug',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DebugPlugin } from './DebugPlugin';\n\nexport * from './DebugPlugin';\n\nexport default DebugPlugin;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAIA,OAAOA,UAAyBC,aAAAA,YAAWC,YAAAA,iBAAgB;AAE3D,SACEC,cACAC,oBAAAA,mBACAC,mBACAC,6BACAC,qBACAC,qBACK;AACP,SAASC,aAAa;AACtB,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAAoCC,yBAAyB;AAC7D,SAASC,iBAAiBC,OAAkBC,gBAAgB;AAC5D,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAE/B,SAASC,QAAQC,aAAaC,cAAcC,SAASC,SAAqBC,kBAAkB;AAC5F,SAASC,YAAY;AACrB,SACEC,aACAC,0BACAC,sBACAC,+BACK;;;ACzBP,SAASC,YAAY;;;ACArB,OAAOC,WAAW;AAGlB,SAASC,yBAAyB;AAM3B,IAAMC,mBAAmB,CAAC,EAAEC,OAAM,MAAyB;AAChE,SACE,sBAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACC,mBAAAA;IAAkBC,YAAW;IAAeC,UAAS;KACnDC,KAAKC,UAAUR,QAAQ,MAAM,CAAA,CAAA,CAAA;AAItC;;;ACjBA,SAASS,MAAMC,gBAAgBC,mBAAmB;AAClD,OAAOC,UAASC,WAAWC,gBAAgB;AAE3C,SAASC,wBAAwBC,wBAAwB;AACzD,SAA2BC,MAAMC,YAAYC,eAAe;AAC5D,SAASC,WAAW;AACpB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgBC,QAAQC,OAAOC,OAAOC,iBAAiBC,cAAc;AAC9E,SAASC,2BAA2B;AACpC,SAASC,SAASC,UAAU;AAC5B,SAASC,eAAe;;AAUxB,IAAMC,kBAAkB;EACtBC,MAAMC,KAAKC,QAAQC,OAAOC,QAAQC,cAAcC;EAChDC,KAAKN,KAAKC,QAAQC,OAAOC,QAAQC,cAAcG;AACjD;AAEO,IAAMC,gBAAgB,CAAC,EAAEC,SAAQ,MAAoC;AAC1E,QAAM,EAAEC,EAAC,IAAKC,eAAeC,YAAAA;AAC7B,QAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAAA;AAC1B,QAAMC,SAASC,UAAAA;AACf,QAAMC,WAAWC,gBAAAA;AAEjB,QAAM,CAACC,eAAeC,gBAAAA,IAAoBN,SAAsB,CAAC,CAAA;AACjE,QAAMO,oBAAoBC,iBAAiBC,sBAAAA;AAE3CC,YAAU,MAAA;AACR,SAAKtB,QAAAA,EAAUuB,KAAK,CAACC,WAAWN,iBAAiBM,MAAAA,CAAAA;EACnD,GAAG,CAAA,CAAE;AAEL,QAAMC,cAAc,CAACf,WAAAA;AACnBC,aAASD,MAAAA;AACT,UAAMH,KAAImB,WAAW,MAAMf,SAASgB,MAAAA,GAAY,GAAA;AAChD,WAAO,MAAMC,aAAarB,EAAAA;EAC5B;AAEA,QAAMsB,iBAAiB,YAAA;AACrB,UAAMC,OAAO,MAAMjB,OAAOkB,YAAW;AACrC,UAAMC,OAAO,IAAIC,KAAK;MAACC,KAAKC,UAAUL,MAAMH,QAAW,CAAA;OAAK;MAAES,MAAM;IAAa,CAAA;AACjF,UAAMC,WAAW,aAAY,oBAAIC,KAAAA,GAAOC,YAAW,EAAGC,QAAQ,OAAO,GAAA,CAAA;AACrEzB,aAASiB,MAAMK,QAAAA;AAEf,QAAIlB,mBAAmBsB,SAAST,KAAKU,QAAQ;AAC3C,YAAMC,OAAO,MAAMxB,kBAAkBsB,SAAST,KAAKU,OAAO,IAAIE,KAAK;QAACZ;SAAOK,QAAAA,GAAWxB,OAAOgC,OAAOC,OAAO;AAC3G,UAAI,CAACH,MAAM;AACTI,YAAIC,MAAM,wCAAA,QAAA;;;;;;AACV;MACF;AACAvB,kBAAY;QAAEwB,OAAO1C,EAAE,mBAAA;QAAsB2C,aAAa3C,EAAE,gCAAA;MAAkC,CAAA;AAG9F,YAAM4C,MAAMtC,OAAOW,OAAO4B,OAAOC,QAASC,SAAUC,KAAMC,UAAU,MAAMb,KAAKc;AAC/E,WAAKC,UAAUC,UAAUC,UAAUT,GAAAA;AACnC1B,kBAAY;QAAEwB,OAAO1C,EAAE,mBAAA;QAAsB2C,aAAa3C,EAAE,gCAAA;MAAkC,CAAA;AAC9FwC,UAAIJ,KAAK,eAAe;QAAEQ;MAAI,GAAA;;;;;;IAChC;EACF;AAEA,QAAMU,eAAe,YAAA;AACnB,QAAI;AACF,YAAMlB,OAAO,MAAM9B,OAAOiD,OAAM;AAChC5C,uBAAiB,MAAMlB,QAAAA,CAAAA;AACvByB,kBAAY;QAAEwB,OAAO1C,EAAE,yBAAA;QAA4B2C,aAAahB,KAAKC,UAAUQ,MAAMhB,QAAW,CAAA;MAAG,CAAA;IACrG,SAASoC,KAAU;AACjBtC,kBAAY;QAAEwB,OAAO1C,EAAE,wBAAA;QAA2B2C,aAAaa,IAAIC;MAAQ,CAAA;IAC7E;EACF;AAEA,SACE,gBAAAC,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACC,qBAAAA;IAAoBC,OAAO5D,EAAE,2BAAA;KAC5B,gBAAA0D,OAAA,cAACG,MAAMC,QAAM;IAACC,SAAShE,SAASiE;IAAOC,iBAAiB,CAACF,YAAahE,SAASiE,QAAQ,CAAC,CAACD;OAE3F,gBAAAL,OAAA,cAACC,qBAAAA;IAAoBC,OAAO5D,EAAE,8BAAA;KAC5B,gBAAA0D,OAAA,cAACG,MAAMC,QAAM;IAACC,SAAShE,SAASmE;IAAUD,iBAAiB,CAACF,YAAahE,SAASmE,WAAW,CAAC,CAACH;OAEjG,gBAAAL,OAAA,cAACC,qBAAAA;IAAoBC,OAAO5D,EAAE,oBAAA;KAC5B,gBAAA0D,OAAA,cAACG,MAAMC,QAAM;IAACC,SAAShE,SAASoE;IAAWF,iBAAiB,CAACF,YAAahE,SAASoE,YAAY,CAAC,CAACJ;OAEnG,gBAAAL,OAAA,cAACC,qBAAAA;IAAoBC,OAAO5D,EAAE,+BAAA;KAC5B,gBAAA0D,OAAA,cAACU,QAAAA;IAAOC,SAAS/C;KACf,gBAAAoC,OAAA,cAACY,gBAAAA;IAAeC,WAAWC,QAAQ,CAAA;QAGvC,gBAAAd,OAAA,cAACC,qBAAAA;IAAoBC,OAAO5D,EAAE,iBAAA;KAC5B,gBAAA0D,OAAA,cAACU,QAAAA;IAAOC,SAASf;KACf,gBAAAI,OAAA,cAACe,aAAAA;IAAYF,WAAWC,QAAQ,CAAA;QAKnCrE,SACC,gBAAAuD,OAAA,cAACgB,MAAMC,MAAI,MACT,gBAAAjB,OAAA,cAACgB,MAAME,MAAI,MACT,gBAAAlB,OAAA,cAACgB,MAAMG,OAAK,MACV,gBAAAnB,OAAA,cAACoB,MAAAA;IAAKP,WAAWQ,GAAGP,QAAQ,CAAA,GAAI,aAAA;IAAgBQ,QAAO;MACvD,gBAAAtB,OAAA,cAACuB,QAAAA,MAAM9E,MAAMuC,KAAK,CAAA,GAEnBvC,MAAMwC,eAAe,gBAAAe,OAAA,cAACgB,MAAMQ,aAAW,MAAE/E,MAAMwC,WAAW,CAAA,CAAA,GAKjE,gBAAAe,OAAA,cAACC,qBAAAA;IAAoBC,OAAO5D,EAAE,iCAAA;KAC5B,gBAAA0D,OAAA,cAACyB,OAAOR,MAAI;IACVS,OACEC,OAAOC,QAAQlG,eAAAA,EAAiBmG,KAC9B,CAAC,CAACC,MAAMJ,KAAAA,MAAWA,UAAU1E,eAAeoC,SAASxC,QAAQmF,SAASC,SAAAA,IACpE,CAAA;IAENC,eAAe,CAACP,UAAAA;AACd,UAAIQ,QAAQ5F,EAAE,wCAAA,CAAA,GAA4C;AACxD6F,qBACEnF,eACAC,kBACA;UAAC;UAAW;UAAU;UAAW;WACjCvB,gBAAgBgG,KAAAA,CAAsC;MAE1D;IACF;KAEA,gBAAA1B,OAAA,cAACyB,OAAOW,eAAa;IAACC,aAAa/F,EAAE,2BAAA;MACrC,gBAAA0D,OAAA,cAACyB,OAAOa,QAAM,MACZ,gBAAAtC,OAAA,cAACyB,OAAOc,SAAO,MACb,gBAAAvC,OAAA,cAACyB,OAAOe,UAAQ,MACbb,OAAOc,KAAK/G,eAAAA,EAAiBgH,IAAI,CAACC,QACjC,gBAAA3C,OAAA,cAACyB,OAAOmB,QAAM;IAACD;IAAUjB,OAAOiB;KAC7BrG,EAAE,4BAA4BqG,GAAAA,QAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAU9D;AAEA,IAAMR,eAAe,CAAC5E,QAAqBsF,WAA6CC,MAAgBpB,UAAAA;AACtG,QAAMqB,oBAAoB9E,KAAK+E,MAAM/E,KAAKC,UAAUX,UAAU,CAAC,CAAA,CAAA;AAC/D0F,UAAQF,mBAAmBD,MAAMpB,KAAAA;AACjCmB,YAAUE,iBAAAA;AACVG,iBAAe,YAAA;AACb,UAAMC,WAAWJ,iBAAAA;EACnB,CAAA;AACF;;;AC1JA,OAAOK,UAASC,aAAAA,YAAWC,QAAQC,YAAAA,iBAAgB;AAEnD,SAASC,eAAeC,kBAAkBC,uBAAuBC,oBAAAA,yBAAwB;AACzF,SAASC,oBAAoB;AAC7B,SAASC,YAAYC,gBAAgB;AACrC,SAASC,OAAAA,YAAW;AACpB,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAChC,SAASC,wBAAwB;AACjC,SAASC,YAAY;AACrB,SAASC,MAAAA,WAAU;;AAEnB,IAAMC,SAAS;EACbC,SAAS;EACTC,SAAS;EACTC,OAAO;AACT;AA0CA,IAAMC,iBAAiB,MAAA;AACrB,QAAM,CAAA,EAAGC,WAAAA,IAAeC,UAAS,CAAC,CAAA;AAClC,QAAMC,WAAWC,OAAAA;AACjBC,EAAAA,WAAU,MAAA;AACR,UAAMC,gBAAgB,CAACC,UAAAA;AACrB,YAAMC,QAAeD,MAAMC,SAASD,MAAME;AAE1C,UAAIN,SAASO,YAAYF,OAAO;AAE9BG,QAAAA,KAAIH,MAAM,WAAW;UAAED;QAAM,GAAA;;;;;;AAC7BJ,iBAASO,UAAUF;AACnBP,oBAAY,CAAC,CAAA;MACf;IACF;AAIAW,WAAOC,iBAAiB,SAASP,aAAAA;AAGjCM,WAAOC,iBAAiB,sBAAsBP,aAAAA;AAE9C,WAAO,MAAA;AACLM,aAAOE,oBAAoB,SAASR,aAAAA;AACpCM,aAAOE,oBAAoB,sBAAsBR,aAAAA;IACnD;EACF,GAAG,CAAA,CAAE;AAEL,QAAMS,cAAc,MAAA;AAClBZ,aAASO,UAAUM;AACnBf,gBAAY,CAAC,CAAA;EACf;AAEA,MAAIE,SAASO,SAAS;AACpB,WACE,gBAAAO,OAAA,cAACC,UAAUC,QAAM;MAACC,OAAOjB,SAASO,QAAQW;MAASC,SAASP;OAC1D,gBAAAE,OAAA,cAACM,MAAAA;MAAKC,MAAK;MAA8BC,MAAM;MAAGC,YAAYC,OAAOnB;;EAG3E,OAAO;AACL,WACE,gBAAAS,OAAA,cAACC,UAAUU,MAAI;MAACR,OAAM;OACpB,gBAAAH,OAAA,cAACM,MAAAA;MAAKC,MAAK;MAAqBC,MAAM;;EAG5C;AACF;AAKA,IAAMI,iBAAiB,MAAA;AACrB,QAAM,CAACC,OAAOC,QAAAA,IAAY7B,UAAS,CAAA;AACnC,QAAM,EAAE8B,MAAK,IAAKC,iBAAAA;AAClB5B,EAAAA,WAAU,MAAA;AACR0B,aAASC,UAAUE,gBAAgBC,SAAS,IAAI,CAAA;EAClD,GAAG;IAACH;GAAM;AAEV,MAAIF,UAAU,GAAG;AACf,WACE,gBAAAb,OAAA,cAACC,UAAUU,MAAI;MAACR,OAAM;OACpB,gBAAAH,OAAA,cAACM,MAAAA;MAAKC,MAAK;MAAyBC,MAAM;;EAGhD,OAAO;AACL,WACE,gBAAAR,OAAA,cAACC,UAAUU,MAAI;MAACR,OAAM;OACpB,gBAAAH,OAAA,cAACM,MAAAA;MAAKC,MAAK;MAA+BC,MAAM;MAAGC,YAAYC,OAAOS;;EAG5E;AACF;AAMA,IAAMC,kBAAkB,MAAA;AACtB,QAAM,CAACP,OAAOQ,SAAAA,IAAapC,UAAS,CAAA;AACpC,QAAMqC,mBAAmBC,kBAAiBC,qBAAAA;AAC1C,QAAMC,cAAcF,kBAAiBG,gBAAAA;AACrC,QAAMC,YAAWL,kBAAkBM,SAASD;AAC5C,QAAME,QAAQJ,aAAaG,SAASC;AACpC,QAAMC,SAASH,aAAYE,QAAQE,eAAeF,OAAOG,cAAcL,UAASM,QAAQ,MAAA,CAAA,IAAWlC;AAoBnG,UAAQc,OAAAA;IACN,KAAK;AACH,aACE,gBAAAb,OAAA,cAACC,UAAUU,MAAI;QAACR,OAAM;SACpB,gBAAAH,OAAA,cAACM,MAAAA;QAAKC,MAAK;QAAsBC,MAAM;QAAGC,YAAYC,OAAOS;;IAGnE,KAAK;AACH,aACE,gBAAAnB,OAAA,cAACC,UAAUU,MAAI;QAACR,OAAM;SACpB,gBAAAH,OAAA,cAACM,MAAAA;QAAKC,MAAK;QAAsBC,MAAM;QAAGC,YAAYC,OAAOwB;;IAGnE,KAAK;IACL;AACE,aACE,gBAAAlC,OAAA,cAACC,UAAUU,MAAI;QAACR,OAAM;SACpB,gBAAAH,OAAA,cAACM,MAAAA;QAAKC,MAAK;QAAsBC,MAAM;;EAG/C;AACF;AAEA,IAAM2B,uBAAuB,MAAA;AAC3B,QAAM,CAACC,SAASC,UAAAA,IAAcpD,UAAS,KAAA;AACvC,QAAM,CAACqD,OAAOC,YAAAA,IAAgBC,SAAAA;AAE9B,SACE,gBAAAxC,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACC,UAAUC,QAAM;IAACG,SAAS,MAAMgC,WAAW,CAACD,aAAY,CAACA,QAAAA;IAAUjC,OAAM;KACxE,gBAAAH,OAAA,cAACM,MAAAA;IAAKC,MAAK;IAAyBC,MAAM;OAE3C4B,WACC,gBAAApC,OAAA,cAACyC,OAAAA;IACCC,WAAWC,IACT,6DACA,oDACA,oCAAA;KAGF,gBAAA3C,OAAA,cAAC4C,YAAAA;IAAWN;IAAcO,WAAWN;;AAK/C;AAEA,IAAMO,aAAa;EAAC1B;EAAiBR;EAAgBuB;EAAsBpD;;AAEpE,IAAMgE,cAAc,MAAA;AACzB,SACE,gBAAA/C,OAAA,cAAAA,OAAA,UAAA,MACG8C,WAAWE,IAAI,CAACC,cACf,gBAAAjD,OAAA,cAACiD,WAAAA;IAAUC,KAAKD,UAAUE;;AAIlC;;;AC3NA,OAAOC,YAAW;AAClB,SAASC,yBAAyB;AAElC,SAASC,wBAAwB;AAEjC,SAASC,+BAA+B;AACxC,SAASC,qBAAAA,0BAAyB;AAClC,SAASC,MAAAA,WAAU;AASZ,IAAMC,YAAY,CAAC,EAAEC,YAAYC,OAAOC,OAAM,MAAkB;AACrE,QAAMC,kBAAkBC,wBAAwBC,iBAAiBH,MAAAA,CAAAA;AACjE,QAAM,EAAEI,OAAOC,QAAQC,IAAG,IAAKC,kBAAAA;AAC/B,SACE,gBAAAC,OAAA,cAACC,OAAAA;IAAIH;IAAUI,WAAWC,IAAG,2BAA2Bb,UAAAA;IAAc,GAAGG;KACvE,gBAAAO,OAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,gBAAAF,OAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,gBAAAF,OAAA,cAACC,OAAAA,MAAKV,KAAAA,GACN,gBAAAS,OAAA,cAACC,OAAAA,MAAK,IAAIL,KAAAA,IAASC,MAAAA,GAAS,CAAA,GAE7BL,UACC,gBAAAQ,OAAA,cAACI,oBAAAA;IAAkBC,UAAS;IAAOf,YAAW;KAC3CgB,KAAKC,UAAUf,QAAQgB,QAAW,CAAA,CAAA,CAAA,GAIzC,gBAAAR,OAAA,cAACS,OAAAA;IAAIb;IAAcC;IAAgBK,WAAU;KAC3C,gBAAAF,OAAA,cAACU,QAAAA;IAAKC,GAAG;IAAGC,GAAG;IAAGhB;IAAcC;IAAgBgB,aAAa;IAAGC,MAAK;MACrE,gBAAAd,OAAA,cAACe,QAAAA;IAAKC,IAAI;IAAGC,IAAI;IAAGC,IAAItB;IAAOuB,IAAItB;IAAQgB,aAAa;MACxD,gBAAAb,OAAA,cAACe,QAAAA;IAAKC,IAAI;IAAGC,IAAIpB;IAAQqB,IAAItB;IAAOuB,IAAI;IAAGN,aAAa;;AAIhE;;;AJrCO,IAAMO,cAAcC,KAAK,MAAM,OAAO,4BAAA,CAAA;AACtC,IAAMC,aAAaD,KAAK,MAAM,OAAO,2BAAA,CAAA;;;AKD5C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACE,YAAAA,GAAe;QACd,eAAe;QACf,kBAAkB;QAClB,mBAAmB;QACnB,uBAAuB;QACvB,kBAAkB;QAClB,eAAe;QACf,6BAA6B;QAC7B,gCAAgC;QAChC,sBAAsB;QACtB,mBAAmB;QACnB,iCAAiC;QACjC,qBAAqB;QACrB,kCAAkC;QAClC,2BAA2B;QAC3B,0BAA0B;QAC1B,mCAAmC;QACnC,sCAAsC;QACtC,uCAAuC;QACvC,6BAA6B;QAC7B,0CACE;QACF,gCAAgC;QAChC,0BAA0B;MAC5B;IACF;EACF;;;;;ANOK,IAAMC,cAAcC,aAAkC,CAACC,YAAAA;AAC5D,QAAMC,WAAWC,OAA2B;IAC1CC,OAAO;IACPC,UAAU;EACZ,CAAA;AAEA,SAAO;IACLC;IACAC,OAAO,OAAOC,YAAAA;AACZP,cAAQQ,KAAKD,OAAAA;AACbP,cAAQS,cAAcC,mBAAAA,EAAqBC,SAASC,cAAcC,YAAY;QAC5EC,QAAQC;QACRC,QAAQC;QACRC,OAAOjB;MACT,CAAA;AAIA,YAAMkB,WAAYC,OAAeD;AACjCA,eAASE,iCAAiC,OAAOC,YAAAA;AAC/C,cAAM,EAAED,+BAA8B,IAAK,MAAM,OAAO,6BAAA;AACxD,cAAM,EAAEE,qBAAoB,IAAK,MAAM,OAAO,uBAAA;AAC9C,cAAMC,SAAkBJ,OAAeK,KAAKD;AAC5C,cAAME,SAASF,OAAOE;AACtB,cAAMF,OAAOG,QAAO;AACpB,cAAM,EAAEC,QAAO,IAAKL,qBAAqBG,OAAOG,QAAQC,SAASN,QAAQI,WAAW,CAAC,CAAA;AACrF,cAAMP,+BAA+BO,SAASN,OAAAA;AAC9CS,iBAASC,WAAW;MACtB;IACF;IACAC,QAAQ,YAAA;AACNjC,cAAQkC,QAAO;IACjB;IACAvB,UAAU;MACRV;MACAkC;MACAC,eAAe;QACbC,QAAQ;UAAC;YAAEC,IAAI;YAASC,OAAO;cAAC;cAA0B;gBAAEC,IAAIvB;cAAa;;YAAIwB,MAAM;UAAmB;;MAC5G;MACAzC,SAAS,CAAC,EAAE0C,SAAQ,MAAE;AACpB,cAAM,CAACC,OAAOC,QAAAA,IAAYC,UAAAA;AAC1BC,QAAAA,WAAU,MAAMH,OAAOI,MAAMC,GAAG,CAAC9B,UAAU,CAACA,SAAS0B,SAASK,MAAAA,CAAAA,GAAa;UAACN;SAAM;AAClFG,QAAAA,WAAU,MAAA;AACRH,iBAAOO,KAAAA;QACT,GAAG,CAAA,CAAE;AAEL,eACE,gBAAAC,OAAA,cAACC,aAAaC,UAAQ;UACpBnC,OAAO;YACLoC,SAAS,CAAC,CAACX;YACXY,OAAO,CAACC,IAAIC,YAAAA;AACVd,qBAAOO,KAAAA;AACPN,uBAAS,IAAIc,MAAMF,EAAAA,EAAID,MAAME,OAAAA,CAAAA;YAC/B;YACAP,MAAM,MAAMP,OAAOO,KAAAA;UACrB;WAECR,QAAAA;MAGP;MACAiB,OAAO;QACLC,SAAS,CAACrD,YAAAA;AACR,gBAAMsD,eAAepD,cAAcF,SAASuD,iBAAAA;AAC5C,gBAAMC,iBAAiBtD,cAAcF,SAASyD,2BAAAA;AAC9C,gBAAMC,cAAcxD,cAAcF,SAAS2D,iBAAAA;AAC3C,gBAAMC,UAAUJ,gBAAgBpD,SAASyD,SAASC;AAClD,gBAAM7C,SAASqC,cAAclD,SAASa;AACtC8C,oBAAUH,SAAAA,QAAAA;;;;;;;;;AACVG,oBAAU9C,QAAAA,QAAAA;;;;;;;;;AAEV,iBAAO;;YAEL+C,gBAAgB;cACdjC,IAAI;cACJkC,QAAQ,CAACC,SAA6B,CAAC,CAACxE,SAASG,YAAYqE,KAAKnC,OAAO;cACzEoC,WAAW,MAAM;gBACf;;kBAEEpC,IAAI;kBACJqC,MAAM;kBACNC,MAAM;kBACNC,YAAY;oBACVtC,OAAO;sBAAC;sBAAkB;wBAAEC,IAAIvB;sBAAa;;oBAC7CwB,MAAM;kBACR;gBACF;;YAEJ,CAAA;;YAGA8B,gBAAgB;cACdjC,IAAI;cACJkC,QAAQ,CAACC,SAA6B,CAAC,CAACxE,SAASE,SAASsE,KAAKnC,OAAO;cACtEoC,WAAW,MAAM;gBACf;kBACEpC,IAAI;kBACJsC,MAAM;kBACND,MAAM;oBAAEhB,OAAOM,aAAatD,SAASgD;kBAAM;kBAC3CkB,YAAY;oBACVtC,OAAO;sBAAC;sBAAe;wBAAEC,IAAIvB;sBAAa;;oBAC1CwB,MAAM;kBACR;gBACF;;YAEJ,CAAA;;YAGA8B,gBAAgB;cACdjC,IAAI;cACJkC,QAAQ,CAACC,SAA8B,CAAC,CAACxE,SAASE,SAAS2E,QAAQL,KAAKE,IAAI;cAC5ED,WAAW,CAAC,EAAED,KAAI,MAAE;AAClB,sBAAMM,QAAQN,KAAKE;AACnB,uBAAO;kBACL;oBACErC,IAAI,GAAGyC,MAAMzC,EAAE;oBACfsC,MAAM;oBACND,MAAM;sBAAEI;oBAAM;oBACdF,YAAY;sBACVtC,OAAO;wBAAC;wBAAe;0BAAEC,IAAIvB;wBAAa;;sBAC1CwB,MAAM;oBACR;kBACF;;cAEJ;YACF,CAAA;;YAGA8B,gBAAgB;cACdjC,IAAI,GAAGrB,YAAAA;cACPoD,UAAU,CAAC,EAAE/B,GAAE,MAAE;AAEf,oBAAI,CAACA,GAAG0C,SAAS,QAAA,GAAW;AAC1B;gBACF;AAEA,sBAAMJ,OAAO;AACb,sBAAMnC,OAAO;AAEb,sBAAM,CAACwC,SAAAA,IAAa3C,GAAG4C,MAAM,GAAA;AAC7B,sBAAM,EAAEC,SAASC,SAAQ,IAAKC,QAAQJ,SAAAA;AACtC,sBAAMF,QAAQvD,OAAO8D,OAAOC,IAAG,EAAGC,KAAK,CAACT,WAAUA,OAAMzC,OAAO6C,OAAAA;AAC/D,oBAAI,CAACC,UAAU;AAEb,wBAAM7C,SAAQwC,QACVA,MAAMF,WAAWY,QAAQ;oBAAC;oBAAuB;sBAAEjD,IAAIvB;oBAAa;sBACpE;oBAAC;oBAAiC;sBAAEuB,IAAIvB;oBAAa;;AAIzD,yBAAO;oBACLqB;oBACAsC;oBACAD,MAAM;oBACNE,YAAY;sBACVpC;sBACAF,OAAAA;sBACAmD,qBAAqB;sBACrBC,QAAQ;sBACRZ;oBACF;kBACF;gBACF;AAEA,sBAAMY,SAASC,SACb,CAACC,aAAAA;AACC,wBAAMC,UAAUC,WAAW,YAAA;AACzB,0BAAMhB,OAAOiB,GAAGC,eAAeb,QAAAA;AAC/BS,6BAAAA;kBACF,CAAA;AAEA,yBAAO,MAAMK,aAAaJ,OAAAA;gBAC5B,GACA,MAAMf,OAAOiB,GAAGG,cAAcf,QAAAA,GAC9BH,SAAAA;AAEF,oBAAI,CAACU,UAAU,CAACV,WAAW;AACzB;gBACF;AAEA,sBAAM5E,OAAO8D,QAAQiC,YAAYT,MAAAA,KAAW,EAAA;AAC5C,sBAAMpD,QAAQlC,KAAKkC,QAAQoD,MAAAA,KACzBA,OAAOF,QACPpF,KAAKgG,eAAe;kBAAC;kBAAiC;oBAAE7D,IAAIvB;kBAAa;;AAE3E,uBAAO;kBACLqB;kBACAsC;kBACAD,MAAM;kBACNE,YAAY;oBACVpC;oBACAF;oBACAoD;kBACF;gBACF;cACF;YACF,CAAA;;QAEJ;MACF;MACAW,QAAQ;QACNjC,UAAU,OAAOiC,QAAQ/F,YAAAA;AACvB,kBAAQ+F,OAAOC,QAAM;YACnB,KAAKC,YAAYC,eAAe;AAC9B,oBAAM5C,eAAe7D,QAAQ0G,UAAgC,wBAAA;AAC7D,oBAAMlF,SAASqC,aAAalD,SAASa;AACrC,oBAAMmF,WAAWnF,OAAOE,OAAOG,QAAQC,SAASN,QAAQoF,gBAAgB;AAGxE,kBAAIC,cAAc;AAClB,kBAAI;AAEF,sBAAMC,MAAMD,WAAAA;cACd,QAAQ;AAEN,sBAAME,QAAQ3F,OAAOW,SAASiF,KAAKC,SAAS,OAAA,KAAY7F,OAAOW,SAASiF,KAAKC,SAAS,WAAA;AACtFJ,8BAAc,mBAAmBE,QAAQ,UAAU,GAAA;cACrD;AAEA3F,qBAAO8F,KAAK,GAAGL,WAAAA,WAAsBF,QAAAA,IAAY,QAAA;AACjD,qBAAO;gBAAEhC,MAAM;cAAK;YACtB;UACF;QACF;MACF;MACAwC,SAAS;QACPC,WAAW,CAAC,EAAE3B,MAAMd,MAAM0C,KAAI,MAAE;AAC9B,kBAAQA,MAAAA;YACN,KAAK;AACH,qBAAO1C,KAAK2C,WAAWjH,aAAKiC,KAAK,gBAAAa,OAAA,cAACoE,eAAAA;gBAActH;mBAAyB;YAC3E,KAAK;AACH,qBAAO,gBAAAkD,OAAA,cAACqE,aAAAA,IAAAA;YACV,KAAK;AACH,qBAAOC,aAAa9C,KAAK+C,OAAO,IAAI,gBAAAvE,OAAA,cAACwE,kBAAAA;gBAAiBhC,QAAQhB,KAAK+C;mBAAc;UACrF;AAEA,gBAAME,UAAUjD,KAAKkD,UAAUlD,KAAKgB;AACpC,cAAIyB;AACJ,cAAIC,SAAS,UAAUA,SAAS,WAAW;AACzC,gBAAIO,YAAY,cAAc3H,SAASG,UAAU;AAC/CgH,0BAAY,gBAAAjE,OAAA,cAAC2E,UAAAA,IAAAA;YACf,WAAW,CAACF,WAAW,OAAOA,YAAY,YAAY,CAAC3H,SAASE,OAAO;AACrEiH,0BAAY;YACd,WAAW,WAAWQ,WAAW9C,QAAQ8C,QAAQ7C,KAAK,GAAG;AACvDqC,0BACE,gBAAAjE,OAAA,cAAC4E,YAAAA;gBACChD,OAAO6C,QAAQ7C;gBACfiD,cAAc,CAACC,YAAAA;AACb,sBAAI,CAACnD,QAAQ8C,QAAQ7C,KAAK,GAAG;AAC3B;kBACF;AAEA,wBAAMmD,aACJN,QAAQ7C,MAAMhC,MAAMwC,IAAG,MAAO4C,WAAWC,eACzCR,QAAQ7C,MAAMF,WAAWwD,eAAeC,QAAQ;AAClD,sBAAI,EAAEJ,sBAAsBG,iBAAiB;AAC3C;kBACF;AAEA,uBAAKrI,QAAQS,cAAc8H,iBAAAA,EAAmB5H,SAAS2F,OAAOkC,SAC5DP,QAAQQ,IAAI,CAAC9C,YAAY;oBACvBY,QAAQmC,YAAYC;oBACpBhE,MAAM;sBAAEiE,QAAQV;sBAAYvC;oBAAO;kBACrC,EAAA,CAAA;gBAEJ;;YAGN,WAAW,WAAWiC,WAAWA,QAAQjE,iBAAiBkF,OAAO;AAC/DzB,0BAAY,gBAAAjE,OAAA,cAAC2F,aAAAA;gBAAYnF,OAAOiE,QAAQjE;;YAC1C,OAAO;AACLyD,0BAAY;YACd;UACF;AAEA,cAAI,CAACA,WAAW;AACd,gBAAInH,SAAS8I,WAAW;AACtB,kBAAI1B,SAAS,UAAUA,SAAS,aAAaA,SAAS,WAAW;AAC/D,sBAAMO,WAAUjD,KAAKkD,UAAUlD,KAAKgB;AACpC,sBAAMqD,eAAepB,oBAAmBS;AAExC,oBAAI,CAACW,cAAc;AACjB,yBAAO;oBACLvE,MACE,gBAAAtB,OAAA,cAAC8F,WAAAA;sBAAU1G,OAAO,GAAG8E,IAAAA,IAAQ5B,IAAAA;sBAAQE,QAAQiC;sBAASsB,YAAW;;oBAEnEC,aAAa;kBACf;gBACF;cACF;YACF;AAEA,mBAAO;UACT;AAEA,kBAAQ9B,MAAAA;YACN,KAAK;AACH,qBACE,gBAAAlE,OAAA,cAACiG,OAAAA;gBAAI/B,MAAK;gBAAOgC,WAAU;iBACxBjC,SAAAA;YAGP,KAAK;AACH,qBACE,gBAAAjE,OAAA,cAACmG,KAAKC,SAAO;gBACXL,YAAY;kBAACM;kBAAaC;kBAAsBC;kBAAyBC;;iBAExEvC,SAAAA;UAGT;AAEA,iBAAO;QACT;MACF;IACF;EACF;AACF,CAAA;;;AO/VA,IAAA,cAAewC;",
|
|
6
|
+
"names": ["React", "useEffect", "useState", "definePlugin", "parseGraphPlugin", "parseIntentPlugin", "parseMetadataResolverPlugin", "parseSettingsPlugin", "resolvePlugin", "Timer", "Devtools", "invariant", "parseClientPlugin", "createExtension", "Graph", "toSignal", "SpaceAction", "CollectionType", "create", "getTypename", "isEchoObject", "isSpace", "parseId", "SpaceState", "Main", "baseSurface", "bottombarBlockPaddingEnd", "fixedInsetFlexLayout", "topbarBlockPaddingStart", "lazy", "React", "SyntaxHighlighter", "DebugObjectPanel", "object", "div", "role", "className", "SyntaxHighlighter", "classNames", "language", "JSON", "stringify", "Gift", "DownloadSimple", "FirstAidKit", "React", "useEffect", "useState", "parseFileManagerPlugin", "useResolvePlugin", "defs", "SaveConfig", "Storage", "log", "useClient", "useTranslation", "Button", "Toast", "Input", "useFileDownload", "Select", "DeprecatedFormInput", "getSize", "mx", "setDeep", "StorageAdapters", "opfs", "defs", "Runtime", "Client", "Storage", "StorageDriver", "WEBFS", "idb", "IDB", "DebugSettings", "settings", "t", "useTranslation", "DEBUG_PLUGIN", "toast", "setToast", "useState", "client", "useClient", "download", "useFileDownload", "storageConfig", "setStorageConfig", "fileManagerPlugin", "useResolvePlugin", "parseFileManagerPlugin", "useEffect", "then", "config", "handleToast", "setTimeout", "undefined", "clearTimeout", "handleDownload", "data", "diagnostics", "file", "Blob", "JSON", "stringify", "type", "fileName", "Date", "toISOString", "replace", "provides", "upload", "info", "File", "spaces", "default", "log", "error", "title", "description", "url", "values", "runtime", "services", "ipfs", "gateway", "cid", "navigator", "clipboard", "writeText", "handleRepair", "repair", "err", "message", "React", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "debug", "onCheckedChange", "devtools", "wireframe", "Button", "onClick", "DownloadSimple", "className", "getSize", "FirstAidKit", "Toast", "Root", "Body", "Title", "Gift", "mx", "weight", "span", "Description", "Select", "value", "Object", "entries", "find", "name", "storage", "dataStore", "onValueChange", "confirm", "updateConfig", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "keys", "map", "key", "Option", "setConfig", "path", "storageConfigCopy", "parse", "setDeep", "queueMicrotask", "SaveConfig", "React", "useEffect", "useRef", "useState", "firstIdInPart", "parseGraphPlugin", "parseNavigationPlugin", "useResolvePlugin", "TimeoutError", "StatsPanel", "useStats", "log", "getActiveSpace", "StatusBar", "ConnectionState", "useNetworkStatus", "Icon", "mx", "styles", "success", "warning", "error", "ErrorIndicator", "forceUpdate", "useState", "errorRef", "useRef", "useEffect", "errorListener", "event", "error", "reason", "current", "log", "window", "addEventListener", "removeEventListener", "handleReset", "undefined", "React", "StatusBar", "Button", "title", "message", "onClick", "Icon", "icon", "size", "classNames", "styles", "Item", "SwarmIndicator", "state", "setState", "swarm", "useNetworkStatus", "ConnectionState", "ONLINE", "warning", "SavingIndicator", "_setState", "navigationPlugin", "useResolvePlugin", "parseNavigationPlugin", "graphPlugin", "parseGraphPlugin", "location", "provides", "graph", "_space", "getActiveSpace", "firstIdInPart", "active", "success", "PerformanceIndicator", "visible", "setVisible", "stats", "refreshStats", "useStats", "div", "className", "mx", "StatsPanel", "onRefresh", "indicators", "DebugStatus", "map", "Indicator", "key", "name", "React", "useResizeDetector", "fullyQualifiedId", "useAttendableAttributes", "SyntaxHighlighter", "mx", "Wireframe", "classNames", "label", "object", "attendableAttrs", "useAttendableAttributes", "fullyQualifiedId", "width", "height", "ref", "useResizeDetector", "React", "div", "className", "mx", "SyntaxHighlighter", "language", "JSON", "stringify", "undefined", "svg", "rect", "x", "y", "strokeWidth", "fill", "line", "x1", "y1", "x2", "y2", "DebugGlobal", "lazy", "DebugSpace", "DEBUG_PLUGIN", "DebugPlugin", "definePlugin", "context", "settings", "create", "debug", "devtools", "meta", "ready", "plugins", "init", "resolvePlugin", "parseSettingsPlugin", "provides", "settingsStore", "createStore", "schema", "DebugSettingsSchema", "prefix", "DEBUG_PLUGIN", "value", "composer", "window", "changeStorageVersionInMetadata", "version", "createStorageObjects", "client", "dxos", "config", "destroy", "storage", "values", "runtime", "location", "pathname", "unload", "dispose", "translations", "complementary", "panels", "id", "label", "ns", "icon", "children", "timer", "setTimer", "useState", "useEffect", "state", "on", "undefined", "stop", "React", "DebugContext", "Provider", "running", "start", "cb", "options", "Timer", "graph", "builder", "clientPlugin", "parseClientPlugin", "metadataPlugin", "parseMetadataResolverPlugin", "graphPlugin", "parseGraphPlugin", "resolve", "metadata", "resolver", "invariant", "createExtension", "filter", "node", "connector", "data", "type", "properties", "isSpace", "space", "endsWith", "subjectId", "split", "spaceId", "objectId", "parseId", "spaces", "get", "find", "name", "showResolvedThreads", "object", "toSignal", "onChange", "timeout", "setTimeout", "db", "loadObjectById", "clearTimeout", "getObjectById", "getTypename", "placeholder", "intent", "action", "DebugAction", "OPEN_DEVTOOLS", "getPlugin", "vaultUrl", "remoteSource", "devtoolsUrl", "fetch", "isDev", "href", "includes", "open", "surface", "component", "role", "plugin", "DebugSettings", "DebugStatus", "isEchoObject", "subject", "DebugObjectPanel", "primary", "active", "Devtools", "DebugSpace", "onAddObjects", "objects", "collection", "SpaceState", "SPACE_READY", "CollectionType", "typename", "parseIntentPlugin", "dispatch", "map", "SpaceAction", "ADD_OBJECT", "target", "Graph", "DebugGlobal", "wireframe", "isCollection", "Wireframe", "classNames", "disposition", "div", "className", "Main", "Content", "baseSurface", "fixedInsetFlexLayout", "topbarBlockPaddingStart", "bottombarBlockPaddingEnd", "DebugPlugin"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-debug/src/components/DebugObjectPanel.tsx":{"bytes":2077,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/meta.ts":{"bytes":1271,"imports":[],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugSettings.tsx":{"bytes":22318,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugStatus.tsx":{"bytes":23325,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-status-bar","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/react-client/mesh","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/Wireframe.tsx":{"bytes":6379,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugPanel.tsx":{"bytes":3530,"imports":[{"path":"date-fns","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/Tree.tsx":{"bytes":10119,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx":{"bytes":10564,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/DebugPanel.tsx","kind":"import-statement","original":"./DebugPanel"},{"path":"packages/plugins/plugin-debug/src/components/Tree.tsx","kind":"import-statement","original":"./Tree"}],"format":"esm"},"packages/plugins/plugin-debug/src/scaffolding/generator.ts":{"bytes":16017,"imports":[{"path":"@tldraw/tldraw","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/echo-generator","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/sdk","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/types","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/scaffolding/index.ts":{"bytes":514,"imports":[{"path":"packages/plugins/plugin-debug/src/scaffolding/generator.ts","kind":"import-statement","original":"./generator"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/ObjectCreator.tsx":{"bytes":11943,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-table","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/scaffolding/index.ts","kind":"import-statement","original":"../scaffolding"}],"format":"esm"},"packages/plugins/plugin-debug/src/types.ts":{"bytes":3597,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugSpace.tsx":{"bytes":24385,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/invitations","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/DebugPanel.tsx","kind":"import-statement","original":"./DebugPanel"},{"path":"packages/plugins/plugin-debug/src/components/ObjectCreator.tsx","kind":"import-statement","original":"./ObjectCreator"},{"path":"packages/plugins/plugin-debug/src/scaffolding/index.ts","kind":"import-statement","original":"../scaffolding"},{"path":"packages/plugins/plugin-debug/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/index.ts":{"bytes":1413,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/DebugObjectPanel.tsx","kind":"import-statement","original":"./DebugObjectPanel"},{"path":"packages/plugins/plugin-debug/src/components/DebugSettings.tsx","kind":"import-statement","original":"./DebugSettings"},{"path":"packages/plugins/plugin-debug/src/components/DebugStatus.tsx","kind":"import-statement","original":"./DebugStatus"},{"path":"packages/plugins/plugin-debug/src/components/Wireframe.tsx","kind":"import-statement","original":"./Wireframe"},{"path":"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx","kind":"dynamic-import","original":"./DebugGlobal"},{"path":"packages/plugins/plugin-debug/src/components/DebugSpace.tsx","kind":"dynamic-import","original":"./DebugSpace"}],"format":"esm"},"packages/plugins/plugin-debug/src/translations.ts":{"bytes":4344,"imports":[{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-debug/src/DebugPlugin.tsx":{"bytes":48963,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-debug/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-debug/src/types.ts","kind":"import-statement","original":"./types"},{"path":"@dxos/echo-pipeline/testing","kind":"dynamic-import","external":true},{"path":"@dxos/client-services","kind":"dynamic-import","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/index.ts":{"bytes":769,"imports":[{"path":"packages/plugins/plugin-debug/src/DebugPlugin.tsx","kind":"import-statement","original":"./DebugPlugin"},{"path":"packages/plugins/plugin-debug/src/DebugPlugin.tsx","kind":"import-statement","original":"./DebugPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-debug/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":51687},"packages/plugins/plugin-debug/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-NHHLZV45.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-2HTS7SNO.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-status-bar","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/react-client/mesh","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/dist/lib/browser/DebugGlobal-ZTCBF3XR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/DebugSpace-I6BNZKI2.mjs","kind":"dynamic-import"},{"path":"@dxos/echo-pipeline/testing","kind":"dynamic-import","external":true},{"path":"@dxos/client-services","kind":"dynamic-import","external":true}],"exports":["DebugPlugin","default"],"entryPoint":"packages/plugins/plugin-debug/src/index.ts","inputs":{"packages/plugins/plugin-debug/src/DebugPlugin.tsx":{"bytesInOutput":12967},"packages/plugins/plugin-debug/src/components/index.ts":{"bytesInOutput":164},"packages/plugins/plugin-debug/src/components/DebugObjectPanel.tsx":{"bytesInOutput":400},"packages/plugins/plugin-debug/src/components/DebugSettings.tsx":{"bytesInOutput":6219},"packages/plugins/plugin-debug/src/components/DebugStatus.tsx":{"bytesInOutput":5386},"packages/plugins/plugin-debug/src/components/Wireframe.tsx":{"bytesInOutput":1750},"packages/plugins/plugin-debug/src/translations.ts":{"bytesInOutput":1297},"packages/plugins/plugin-debug/src/index.ts":{"bytesInOutput":31}},"bytes":29055},"packages/plugins/plugin-debug/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-debug/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-2HTS7SNO.mjs","kind":"import-statement"}],"exports":["DEBUG_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-debug/src/meta.ts","inputs":{},"bytes":159},"packages/plugins/plugin-debug/dist/lib/browser/DebugGlobal-ZTCBF3XR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10741},"packages/plugins/plugin-debug/dist/lib/browser/DebugGlobal-ZTCBF3XR.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx","inputs":{"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx":{"bytesInOutput":2994},"packages/plugins/plugin-debug/src/components/Tree.tsx":{"bytesInOutput":2694}},"bytes":6024},"packages/plugins/plugin-debug/dist/lib/browser/DebugSpace-I6BNZKI2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":26998},"packages/plugins/plugin-debug/dist/lib/browser/DebugSpace-I6BNZKI2.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-NHHLZV45.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-2HTS7SNO.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/invitations","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-table","kind":"import-statement","external":true},{"path":"@tldraw/tldraw","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/echo-generator","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/sdk","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/types","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-debug/src/components/DebugSpace.tsx","inputs":{"packages/plugins/plugin-debug/src/components/DebugSpace.tsx":{"bytesInOutput":6626},"packages/plugins/plugin-debug/src/components/ObjectCreator.tsx":{"bytesInOutput":2866},"packages/plugins/plugin-debug/src/scaffolding/generator.ts":{"bytesInOutput":4031},"packages/plugins/plugin-debug/src/scaffolding/index.ts":{"bytesInOutput":0}},"bytes":14080},"packages/plugins/plugin-debug/dist/lib/browser/chunk-NHHLZV45.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2041},"packages/plugins/plugin-debug/dist/lib/browser/chunk-NHHLZV45.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-2HTS7SNO.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["DebugAction","DebugContext","DebugSettingsSchema"],"inputs":{"packages/plugins/plugin-debug/src/types.ts":{"bytesInOutput":557}},"bytes":769},"packages/plugins/plugin-debug/dist/lib/browser/chunk-2HTS7SNO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":607},"packages/plugins/plugin-debug/dist/lib/browser/chunk-2HTS7SNO.mjs":{"imports":[],"exports":["DEBUG_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-debug/src/meta.ts":{"bytesInOutput":206}},"bytes":339},"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1877},"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs":{"imports":[{"path":"date-fns","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["DebugPanel"],"inputs":{"packages/plugins/plugin-debug/src/components/DebugPanel.tsx":{"bytesInOutput":921}},"bytes":1054}}}
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-debug/src/components/DebugObjectPanel.tsx":{"bytes":2077,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/meta.ts":{"bytes":1491,"imports":[],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugSettings.tsx":{"bytes":22584,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugStatus.tsx":{"bytes":23325,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-status-bar","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/react-client/mesh","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/Wireframe.tsx":{"bytes":6379,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugPanel.tsx":{"bytes":3530,"imports":[{"path":"date-fns","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/Tree.tsx":{"bytes":10119,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx":{"bytes":10564,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/DebugPanel.tsx","kind":"import-statement","original":"./DebugPanel"},{"path":"packages/plugins/plugin-debug/src/components/Tree.tsx","kind":"import-statement","original":"./Tree"}],"format":"esm"},"packages/plugins/plugin-debug/src/scaffolding/generator.ts":{"bytes":16017,"imports":[{"path":"@tldraw/tldraw","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/echo-generator","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/sdk","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/types","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/scaffolding/index.ts":{"bytes":514,"imports":[{"path":"packages/plugins/plugin-debug/src/scaffolding/generator.ts","kind":"import-statement","original":"./generator"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/ObjectCreator.tsx":{"bytes":11943,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-table","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/scaffolding/index.ts","kind":"import-statement","original":"../scaffolding"}],"format":"esm"},"packages/plugins/plugin-debug/src/types.ts":{"bytes":3705,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/DebugSpace.tsx":{"bytes":24385,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/invitations","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/DebugPanel.tsx","kind":"import-statement","original":"./DebugPanel"},{"path":"packages/plugins/plugin-debug/src/components/ObjectCreator.tsx","kind":"import-statement","original":"./ObjectCreator"},{"path":"packages/plugins/plugin-debug/src/scaffolding/index.ts","kind":"import-statement","original":"../scaffolding"},{"path":"packages/plugins/plugin-debug/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-debug/src/components/index.ts":{"bytes":1413,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/DebugObjectPanel.tsx","kind":"import-statement","original":"./DebugObjectPanel"},{"path":"packages/plugins/plugin-debug/src/components/DebugSettings.tsx","kind":"import-statement","original":"./DebugSettings"},{"path":"packages/plugins/plugin-debug/src/components/DebugStatus.tsx","kind":"import-statement","original":"./DebugStatus"},{"path":"packages/plugins/plugin-debug/src/components/Wireframe.tsx","kind":"import-statement","original":"./Wireframe"},{"path":"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx","kind":"dynamic-import","original":"./DebugGlobal"},{"path":"packages/plugins/plugin-debug/src/components/DebugSpace.tsx","kind":"dynamic-import","original":"./DebugSpace"}],"format":"esm"},"packages/plugins/plugin-debug/src/translations.ts":{"bytes":4484,"imports":[{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-debug/src/DebugPlugin.tsx":{"bytes":49876,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-debug/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-debug/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-debug/src/types.ts","kind":"import-statement","original":"./types"},{"path":"@dxos/echo-pipeline/testing","kind":"dynamic-import","external":true},{"path":"@dxos/client-services","kind":"dynamic-import","external":true}],"format":"esm"},"packages/plugins/plugin-debug/src/index.ts":{"bytes":769,"imports":[{"path":"packages/plugins/plugin-debug/src/DebugPlugin.tsx","kind":"import-statement","original":"./DebugPlugin"},{"path":"packages/plugins/plugin-debug/src/DebugPlugin.tsx","kind":"import-statement","original":"./DebugPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-debug/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":52235},"packages/plugins/plugin-debug/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-LZEK532R.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-CAENAAHY.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-status-bar","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/react-client/mesh","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-debug/dist/lib/browser/DebugGlobal-ZTCBF3XR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/DebugSpace-22PW7RJM.mjs","kind":"dynamic-import"},{"path":"@dxos/echo-pipeline/testing","kind":"dynamic-import","external":true},{"path":"@dxos/client-services","kind":"dynamic-import","external":true}],"exports":["DebugPlugin","default"],"entryPoint":"packages/plugins/plugin-debug/src/index.ts","inputs":{"packages/plugins/plugin-debug/src/DebugPlugin.tsx":{"bytesInOutput":13254},"packages/plugins/plugin-debug/src/components/index.ts":{"bytesInOutput":164},"packages/plugins/plugin-debug/src/components/DebugObjectPanel.tsx":{"bytesInOutput":400},"packages/plugins/plugin-debug/src/components/DebugSettings.tsx":{"bytesInOutput":6289},"packages/plugins/plugin-debug/src/components/DebugStatus.tsx":{"bytesInOutput":5386},"packages/plugins/plugin-debug/src/components/Wireframe.tsx":{"bytesInOutput":1750},"packages/plugins/plugin-debug/src/translations.ts":{"bytesInOutput":1345},"packages/plugins/plugin-debug/src/index.ts":{"bytesInOutput":31}},"bytes":29460},"packages/plugins/plugin-debug/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-debug/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-CAENAAHY.mjs","kind":"import-statement"}],"exports":["DEBUG_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-debug/src/meta.ts","inputs":{},"bytes":159},"packages/plugins/plugin-debug/dist/lib/browser/DebugGlobal-ZTCBF3XR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10741},"packages/plugins/plugin-debug/dist/lib/browser/DebugGlobal-ZTCBF3XR.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx","inputs":{"packages/plugins/plugin-debug/src/components/DebugGlobal.tsx":{"bytesInOutput":2994},"packages/plugins/plugin-debug/src/components/Tree.tsx":{"bytesInOutput":2694}},"bytes":6024},"packages/plugins/plugin-debug/dist/lib/browser/DebugSpace-22PW7RJM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":26998},"packages/plugins/plugin-debug/dist/lib/browser/DebugSpace-22PW7RJM.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-LZEK532R.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-CAENAAHY.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/invitations","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-table","kind":"import-statement","external":true},{"path":"@tldraw/tldraw","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/echo-generator","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/sdk","kind":"import-statement","external":true},{"path":"@dxos/plugin-sketch/types","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-debug/src/components/DebugSpace.tsx","inputs":{"packages/plugins/plugin-debug/src/components/DebugSpace.tsx":{"bytesInOutput":6626},"packages/plugins/plugin-debug/src/components/ObjectCreator.tsx":{"bytesInOutput":2866},"packages/plugins/plugin-debug/src/scaffolding/generator.ts":{"bytesInOutput":4031},"packages/plugins/plugin-debug/src/scaffolding/index.ts":{"bytesInOutput":0}},"bytes":14080},"packages/plugins/plugin-debug/dist/lib/browser/chunk-LZEK532R.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2123},"packages/plugins/plugin-debug/dist/lib/browser/chunk-LZEK532R.mjs":{"imports":[{"path":"packages/plugins/plugin-debug/dist/lib/browser/chunk-CAENAAHY.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["DebugAction","DebugContext","DebugSettingsSchema"],"inputs":{"packages/plugins/plugin-debug/src/types.ts":{"bytesInOutput":557}},"bytes":769},"packages/plugins/plugin-debug/dist/lib/browser/chunk-CAENAAHY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":711},"packages/plugins/plugin-debug/dist/lib/browser/chunk-CAENAAHY.mjs":{"imports":[],"exports":["DEBUG_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-debug/src/meta.ts":{"bytesInOutput":288}},"bytes":421},"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1877},"packages/plugins/plugin-debug/dist/lib/browser/chunk-H3BJHVRD.mjs":{"imports":[{"path":"date-fns","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["DebugPanel"],"inputs":{"packages/plugins/plugin-debug/src/components/DebugPanel.tsx":{"bytesInOutput":921}},"bytes":1054}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugPlugin.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAGL,KAAK,mBAAmB,EAGzB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"DebugPlugin.d.ts","sourceRoot":"","sources":["../../../src/DebugPlugin.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAGL,KAAK,mBAAmB,EAGzB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,WAAW,2EA6TtB,CAAC"}
|
package/dist/types/src/meta.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,0BAA0B,CAAC
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,0BAA0B,CAAC;;;;;;;;;AAEpD,wBAOuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBA8BE"}
|
|
@@ -2,6 +2,7 @@ import { type Context } from 'react';
|
|
|
2
2
|
import type { GraphBuilderProvides, IntentResolverProvides, SettingsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';
|
|
3
3
|
import type { TimerCallback, TimerOptions } from '@dxos/async';
|
|
4
4
|
import { S } from '@dxos/echo-schema';
|
|
5
|
+
import { type PanelProvides } from '@dxos/plugin-deck/types';
|
|
5
6
|
export declare enum DebugAction {
|
|
6
7
|
OPEN_DEVTOOLS = "dxos.org/plugin/debug/action/open-devtools"
|
|
7
8
|
}
|
|
@@ -18,5 +19,5 @@ export declare const DebugSettingsSchema: S.mutable<S.Struct<{
|
|
|
18
19
|
}>>;
|
|
19
20
|
export interface DebugSettingsProps extends S.Schema.Type<typeof DebugSettingsSchema> {
|
|
20
21
|
}
|
|
21
|
-
export type DebugPluginProvides = SurfaceProvides & IntentResolverProvides & GraphBuilderProvides & SettingsProvides<DebugSettingsProps> & TranslationsProvides;
|
|
22
|
+
export type DebugPluginProvides = SurfaceProvides & IntentResolverProvides & GraphBuilderProvides & SettingsProvides<DebugSettingsProps> & TranslationsProvides & PanelProvides;
|
|
22
23
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAK7D,oBAAY,WAAW;IACrB,aAAa,+CAAkC;CAChD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1D,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAIjD,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;GAM/B,CAAC;AAEF,MAAM,WAAW,kBAAmB,SAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAExF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAC/C,sBAAsB,GACtB,oBAAoB,GACpB,gBAAgB,CAAC,kBAAkB,CAAC,GACpC,oBAAoB,GACpB,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-debug",
|
|
3
|
-
"version": "0.6.14-
|
|
3
|
+
"version": "0.6.14-staging.77003c1",
|
|
4
4
|
"description": "DXOS Surface plugin for testing.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -36,36 +36,37 @@
|
|
|
36
36
|
"lodash.get": "^4.4.2",
|
|
37
37
|
"react-json-tree": "^0.18.0",
|
|
38
38
|
"react-resize-detector": "^11.0.1",
|
|
39
|
-
"@dxos/app-framework": "0.6.14-
|
|
40
|
-
"@dxos/async": "0.6.14-
|
|
41
|
-
"@dxos/automerge": "0.6.14-
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/devtools": "0.6.14-
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/echo-schema": "0.6.14-
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/plugin-client": "0.6.14-
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/plugin-
|
|
54
|
-
"@dxos/plugin-
|
|
55
|
-
"@dxos/plugin-
|
|
56
|
-
"@dxos/plugin-
|
|
57
|
-
"@dxos/plugin-space": "0.6.14-
|
|
58
|
-
"@dxos/plugin-table": "0.6.14-
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/
|
|
61
|
-
"@dxos/
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/
|
|
64
|
-
"@dxos/react-
|
|
65
|
-
"@dxos/react-ui-
|
|
66
|
-
"@dxos/react-ui-
|
|
67
|
-
"@dxos/react-ui-
|
|
68
|
-
"@dxos/
|
|
39
|
+
"@dxos/app-framework": "0.6.14-staging.77003c1",
|
|
40
|
+
"@dxos/async": "0.6.14-staging.77003c1",
|
|
41
|
+
"@dxos/automerge": "0.6.14-staging.77003c1",
|
|
42
|
+
"@dxos/client-services": "0.6.14-staging.77003c1",
|
|
43
|
+
"@dxos/devtools": "0.6.14-staging.77003c1",
|
|
44
|
+
"@dxos/echo-generator": "0.6.14-staging.77003c1",
|
|
45
|
+
"@dxos/config": "0.6.14-staging.77003c1",
|
|
46
|
+
"@dxos/echo-pipeline": "0.6.14-staging.77003c1",
|
|
47
|
+
"@dxos/echo-schema": "0.6.14-staging.77003c1",
|
|
48
|
+
"@dxos/invariant": "0.6.14-staging.77003c1",
|
|
49
|
+
"@dxos/keys": "0.6.14-staging.77003c1",
|
|
50
|
+
"@dxos/log": "0.6.14-staging.77003c1",
|
|
51
|
+
"@dxos/plugin-client": "0.6.14-staging.77003c1",
|
|
52
|
+
"@dxos/local-storage": "0.6.14-staging.77003c1",
|
|
53
|
+
"@dxos/plugin-deck": "0.6.14-staging.77003c1",
|
|
54
|
+
"@dxos/plugin-graph": "0.6.14-staging.77003c1",
|
|
55
|
+
"@dxos/plugin-markdown": "0.6.14-staging.77003c1",
|
|
56
|
+
"@dxos/plugin-sketch": "0.6.14-staging.77003c1",
|
|
57
|
+
"@dxos/plugin-space": "0.6.14-staging.77003c1",
|
|
58
|
+
"@dxos/plugin-table": "0.6.14-staging.77003c1",
|
|
59
|
+
"@dxos/plugin-theme": "0.6.14-staging.77003c1",
|
|
60
|
+
"@dxos/protocols": "0.6.14-staging.77003c1",
|
|
61
|
+
"@dxos/plugin-status-bar": "0.6.14-staging.77003c1",
|
|
62
|
+
"@dxos/random": "0.6.14-staging.77003c1",
|
|
63
|
+
"@dxos/react-hooks": "0.6.14-staging.77003c1",
|
|
64
|
+
"@dxos/react-client": "0.6.14-staging.77003c1",
|
|
65
|
+
"@dxos/react-ui-data": "0.6.14-staging.77003c1",
|
|
66
|
+
"@dxos/react-ui-attention": "0.6.14-staging.77003c1",
|
|
67
|
+
"@dxos/react-ui-syntax-highlighter": "0.6.14-staging.77003c1",
|
|
68
|
+
"@dxos/react-ui-table": "0.6.14-staging.77003c1",
|
|
69
|
+
"@dxos/util": "0.6.14-staging.77003c1"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -75,17 +76,17 @@
|
|
|
75
76
|
"react": "~18.2.0",
|
|
76
77
|
"react-dom": "~18.2.0",
|
|
77
78
|
"vite": "5.4.7",
|
|
78
|
-
"@dxos/react-ui": "0.6.14-
|
|
79
|
-
"@dxos/
|
|
80
|
-
"@dxos/
|
|
79
|
+
"@dxos/react-ui": "0.6.14-staging.77003c1",
|
|
80
|
+
"@dxos/react-ui-theme": "0.6.14-staging.77003c1",
|
|
81
|
+
"@dxos/storybook-utils": "0.6.14-staging.77003c1"
|
|
81
82
|
},
|
|
82
83
|
"peerDependencies": {
|
|
83
84
|
"@phosphor-icons/react": "^2.1.5",
|
|
84
85
|
"react": "~18.2.0",
|
|
85
86
|
"react-dom": "~18.2.0",
|
|
86
|
-
"@dxos/random": "0.6.14-
|
|
87
|
-
"@dxos/react-ui": "0.6.14-
|
|
88
|
-
"@dxos/react-ui-theme": "0.6.14-
|
|
87
|
+
"@dxos/random": "0.6.14-staging.77003c1",
|
|
88
|
+
"@dxos/react-ui": "0.6.14-staging.77003c1",
|
|
89
|
+
"@dxos/react-ui-theme": "0.6.14-staging.77003c1"
|
|
89
90
|
},
|
|
90
91
|
"publishConfig": {
|
|
91
92
|
"access": "public"
|
package/src/DebugPlugin.tsx
CHANGED
|
@@ -76,6 +76,9 @@ export const DebugPlugin = definePlugin<DebugPluginProvides>((context) => {
|
|
|
76
76
|
provides: {
|
|
77
77
|
settings,
|
|
78
78
|
translations,
|
|
79
|
+
complementary: {
|
|
80
|
+
panels: [{ id: 'debug', label: ['open debug panel label', { ns: DEBUG_PLUGIN }], icon: 'ph--bug--regular' }],
|
|
81
|
+
},
|
|
79
82
|
context: ({ children }) => {
|
|
80
83
|
const [timer, setTimer] = useState<Timer>();
|
|
81
84
|
useEffect(() => timer?.state.on((value) => !value && setTimer(undefined)), [timer]);
|
|
@@ -10,7 +10,7 @@ import { type ConfigProto, defs, SaveConfig, Storage } from '@dxos/config';
|
|
|
10
10
|
import { log } from '@dxos/log';
|
|
11
11
|
import { useClient } from '@dxos/react-client';
|
|
12
12
|
import { useTranslation, Button, Toast, Input, useFileDownload, Select } from '@dxos/react-ui';
|
|
13
|
-
import {
|
|
13
|
+
import { DeprecatedFormInput } from '@dxos/react-ui-data';
|
|
14
14
|
import { getSize, mx } from '@dxos/react-ui-theme';
|
|
15
15
|
import { setDeep } from '@dxos/util';
|
|
16
16
|
|
|
@@ -80,25 +80,25 @@ export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) =>
|
|
|
80
80
|
|
|
81
81
|
return (
|
|
82
82
|
<>
|
|
83
|
-
<
|
|
83
|
+
<DeprecatedFormInput label={t('settings show debug panel')}>
|
|
84
84
|
<Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />
|
|
85
|
-
</
|
|
86
|
-
<
|
|
85
|
+
</DeprecatedFormInput>
|
|
86
|
+
<DeprecatedFormInput label={t('settings show devtools panel')}>
|
|
87
87
|
<Input.Switch checked={settings.devtools} onCheckedChange={(checked) => (settings.devtools = !!checked)} />
|
|
88
|
-
</
|
|
89
|
-
<
|
|
88
|
+
</DeprecatedFormInput>
|
|
89
|
+
<DeprecatedFormInput label={t('settings wireframe')}>
|
|
90
90
|
<Input.Switch checked={settings.wireframe} onCheckedChange={(checked) => (settings.wireframe = !!checked)} />
|
|
91
|
-
</
|
|
92
|
-
<
|
|
91
|
+
</DeprecatedFormInput>
|
|
92
|
+
<DeprecatedFormInput label={t('settings download diagnostics')}>
|
|
93
93
|
<Button onClick={handleDownload}>
|
|
94
94
|
<DownloadSimple className={getSize(5)} />
|
|
95
95
|
</Button>
|
|
96
|
-
</
|
|
97
|
-
<
|
|
96
|
+
</DeprecatedFormInput>
|
|
97
|
+
<DeprecatedFormInput label={t('settings repair')}>
|
|
98
98
|
<Button onClick={handleRepair}>
|
|
99
99
|
<FirstAidKit className={getSize(5)} />
|
|
100
100
|
</Button>
|
|
101
|
-
</
|
|
101
|
+
</DeprecatedFormInput>
|
|
102
102
|
|
|
103
103
|
{/* TODO(burdon): Move to layout? */}
|
|
104
104
|
{toast && (
|
|
@@ -113,7 +113,7 @@ export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) =>
|
|
|
113
113
|
</Toast.Root>
|
|
114
114
|
)}
|
|
115
115
|
|
|
116
|
-
<
|
|
116
|
+
<DeprecatedFormInput label={t('settings choose storage adaptor')}>
|
|
117
117
|
<Select.Root
|
|
118
118
|
value={
|
|
119
119
|
Object.entries(StorageAdapters).find(
|
|
@@ -144,7 +144,7 @@ export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) =>
|
|
|
144
144
|
</Select.Content>
|
|
145
145
|
</Select.Portal>
|
|
146
146
|
</Select.Root>
|
|
147
|
-
</
|
|
147
|
+
</DeprecatedFormInput>
|
|
148
148
|
</>
|
|
149
149
|
);
|
|
150
150
|
};
|
package/src/meta.ts
CHANGED
|
@@ -10,6 +10,7 @@ export default {
|
|
|
10
10
|
id: DEBUG_PLUGIN,
|
|
11
11
|
name: 'Debug',
|
|
12
12
|
description: 'DXOS debugging tools.',
|
|
13
|
-
tags: ['experimental'],
|
|
14
13
|
icon: 'ph--bug--regular',
|
|
14
|
+
source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-debug',
|
|
15
|
+
tags: ['experimental'],
|
|
15
16
|
} satisfies PluginMeta;
|
package/src/translations.ts
CHANGED
|
@@ -30,6 +30,7 @@ export default [
|
|
|
30
30
|
'settings storage adapter changed alert':
|
|
31
31
|
'Warning: Swapping the storage adapter will make your data unavailable.',
|
|
32
32
|
'settings space fragmentation': 'Enable AM space fragmentation',
|
|
33
|
+
'open debug panel label': 'Show Debug',
|
|
33
34
|
},
|
|
34
35
|
},
|
|
35
36
|
},
|
package/src/types.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
} from '@dxos/app-framework';
|
|
14
14
|
import type { TimerCallback, TimerOptions } from '@dxos/async';
|
|
15
15
|
import { S } from '@dxos/echo-schema';
|
|
16
|
+
import { type PanelProvides } from '@dxos/plugin-deck/types';
|
|
16
17
|
|
|
17
18
|
import { DEBUG_PLUGIN } from './meta';
|
|
18
19
|
|
|
@@ -47,4 +48,5 @@ export type DebugPluginProvides = SurfaceProvides &
|
|
|
47
48
|
IntentResolverProvides &
|
|
48
49
|
GraphBuilderProvides &
|
|
49
50
|
SettingsProvides<DebugSettingsProps> &
|
|
50
|
-
TranslationsProvides
|
|
51
|
+
TranslationsProvides &
|
|
52
|
+
PanelProvides;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Context, createContext } from 'react';\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n SettingsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport type { TimerCallback, TimerOptions } from '@dxos/async';\nimport { S } from '@dxos/echo-schema';\n\nimport { DEBUG_PLUGIN } from './meta';\n\nconst DEBUG_ACTION = `${DEBUG_PLUGIN}/action`;\nexport enum DebugAction {\n OPEN_DEVTOOLS = `${DEBUG_ACTION}/open-devtools`,\n}\n\nexport type DebugContextType = {\n running: boolean;\n start: (cb: TimerCallback, options: TimerOptions) => void;\n stop: () => void;\n};\n\nexport const DebugContext: Context<DebugContextType> = createContext<DebugContextType>({\n running: false,\n start: () => {},\n stop: () => {},\n});\n\nexport const DebugSettingsSchema = S.mutable(\n S.Struct({\n devtools: S.optional(S.Boolean),\n debug: S.optional(S.Boolean),\n wireframe: S.optional(S.Boolean),\n }),\n);\n\nexport interface DebugSettingsProps extends S.Schema.Type<typeof DebugSettingsSchema> {}\n\nexport type DebugPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n SettingsProvides<DebugSettingsProps> &\n TranslationsProvides;\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAAuBA,qBAAqB;AAU5C,SAASC,SAAS;AAIlB,IAAMC,eAAe,GAAGC,YAAAA;;UACZC,cAAAA;+CACM,GAAGF,YAAAA,gBAA4B,IAAA;GADrCE,gBAAAA,cAAAA,CAAAA,EAAAA;AAUL,IAAMC,eAA0CC,cAAgC;EACrFC,SAAS;EACTC,OAAO,MAAA;EAAO;EACdC,MAAM,MAAA;EAAO;AACf,CAAA;AAEO,IAAMC,sBAAsBC,EAAEC,QACnCD,EAAEE,OAAO;EACPC,UAAUH,EAAEI,SAASJ,EAAEK,OAAO;EAC9BC,OAAON,EAAEI,SAASJ,EAAEK,OAAO;EAC3BE,WAAWP,EAAEI,SAASJ,EAAEK,OAAO;AACjC,CAAA,CAAA;",
|
|
6
|
-
"names": ["createContext", "S", "DEBUG_ACTION", "DEBUG_PLUGIN", "DebugAction", "DebugContext", "createContext", "running", "start", "stop", "DebugSettingsSchema", "S", "mutable", "Struct", "devtools", "optional", "Boolean", "debug", "wireframe"]
|
|
7
|
-
}
|
|
File without changes
|