@dxos/plugin-debug 0.8.3 → 0.8.4-main.1da679c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +20 -0
  2. package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +7 -0
  3. package/dist/lib/browser/{DevtoolsOverviewContainer-IIIWO77Q.mjs → DevtoolsOverviewContainer-EPD6EWT5.mjs} +2 -2
  4. package/dist/lib/browser/{SpaceGenerator-VB6IB2LL.mjs → SpaceGenerator-SB2YRVRT.mjs} +376 -494
  5. package/dist/lib/browser/SpaceGenerator-SB2YRVRT.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-6HHJMKVU.mjs → app-graph-builder-7ODCSP7R.mjs} +27 -37
  7. package/dist/lib/browser/app-graph-builder-7ODCSP7R.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-47JOZTT2.mjs → chunk-5XPIRNQS.mjs} +2 -2
  9. package/dist/lib/browser/{chunk-KS3YBEL7.mjs → chunk-AJA6RYN3.mjs} +2 -2
  10. package/dist/lib/browser/index.mjs +17 -14
  11. package/dist/lib/browser/index.mjs.map +3 -3
  12. package/dist/lib/browser/meta.json +1 -1
  13. package/dist/lib/browser/{react-context-ZQRD2WG2.mjs → react-context-Y537DXK5.mjs} +5 -5
  14. package/dist/lib/browser/{react-context-ZQRD2WG2.mjs.map → react-context-Y537DXK5.mjs.map} +1 -1
  15. package/dist/lib/browser/{react-surface-UI6OK73H.mjs → react-surface-OP75RFNI.mjs} +45 -40
  16. package/dist/lib/browser/react-surface-OP75RFNI.mjs.map +7 -0
  17. package/dist/lib/browser/{settings-SXQWSIM4.mjs → settings-XAUQOU7I.mjs} +6 -6
  18. package/dist/lib/browser/{settings-SXQWSIM4.mjs.map → settings-XAUQOU7I.mjs.map} +1 -1
  19. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  20. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  21. package/dist/types/src/capabilities/index.d.ts +5 -5
  22. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  23. package/dist/types/src/capabilities/react-context.d.ts +2 -2
  24. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  25. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  26. package/dist/types/src/capabilities/settings.d.ts +1 -1
  27. package/dist/types/src/components/DebugGraph.d.ts +8 -0
  28. package/dist/types/src/components/DebugGraph.d.ts.map +1 -0
  29. package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
  30. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +3 -1
  31. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  32. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +1 -1
  33. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  34. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +13 -3
  35. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
  37. package/dist/types/src/components/SpaceGenerator/presets.d.ts +5 -5
  38. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
  39. package/dist/types/src/components/Wireframe.d.ts.map +1 -1
  40. package/dist/types/src/components/index.d.ts +2 -1
  41. package/dist/types/src/components/index.d.ts.map +1 -1
  42. package/dist/types/src/translations.d.ts +62 -60
  43. package/dist/types/src/translations.d.ts.map +1 -1
  44. package/dist/types/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +61 -59
  46. package/src/DebugPlugin.tsx +2 -2
  47. package/src/capabilities/app-graph-builder.ts +13 -40
  48. package/src/capabilities/react-surface.tsx +9 -8
  49. package/src/components/DebugGraph.tsx +14 -0
  50. package/src/components/DebugObjectPanel.tsx +1 -1
  51. package/src/components/DebugSettings.tsx +72 -64
  52. package/src/components/SpaceGenerator/ObjectGenerator.tsx +32 -26
  53. package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +8 -6
  54. package/src/components/SpaceGenerator/SpaceGenerator.tsx +15 -72
  55. package/src/components/SpaceGenerator/draw-util.ts +3 -3
  56. package/src/components/SpaceGenerator/presets.ts +346 -221
  57. package/src/components/Wireframe.tsx +2 -1
  58. package/src/components/index.ts +1 -1
  59. package/src/translations.ts +8 -4
  60. package/dist/lib/browser/DebugApp-WSEJPCKY.mjs +0 -225
  61. package/dist/lib/browser/DebugApp-WSEJPCKY.mjs.map +0 -7
  62. package/dist/lib/browser/SpaceGenerator-VB6IB2LL.mjs.map +0 -7
  63. package/dist/lib/browser/app-graph-builder-6HHJMKVU.mjs.map +0 -7
  64. package/dist/lib/browser/react-surface-UI6OK73H.mjs.map +0 -7
  65. package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
  66. package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
  67. package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
  68. package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
  69. package/dist/types/src/components/DebugApp/index.d.ts +0 -3
  70. package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
  71. package/src/components/DebugApp/DebugApp.tsx +0 -77
  72. package/src/components/DebugApp/Tree.tsx +0 -103
  73. package/src/components/DebugApp/index.ts +0 -7
  74. /package/dist/lib/browser/{DevtoolsOverviewContainer-IIIWO77Q.mjs.map → DevtoolsOverviewContainer-EPD6EWT5.mjs.map} +0 -0
  75. /package/dist/lib/browser/{chunk-47JOZTT2.mjs.map → chunk-5XPIRNQS.mjs.map} +0 -0
  76. /package/dist/lib/browser/{chunk-KS3YBEL7.mjs.map → chunk-AJA6RYN3.mjs.map} +0 -0
@@ -22,6 +22,7 @@ export type WireframeProps = ThemedClassName<{
22
22
  export const Wireframe = ({ classNames, label, object }: WireframeProps) => {
23
23
  const attentionAttrs = useAttentionAttributes(fullyQualifiedId(object));
24
24
  const { width, height, ref } = useResizeDetector();
25
+
25
26
  return (
26
27
  <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attentionAttrs}>
27
28
  <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>
@@ -30,7 +31,7 @@ export const Wireframe = ({ classNames, label, object }: WireframeProps) => {
30
31
  <div>{`[${width}x${height}]`}</div>
31
32
  </div>
32
33
  {object && (
33
- <SyntaxHighlighter language='json' classNames='flex w-full text-xs opacity-75 rounded'>
34
+ <SyntaxHighlighter language='json' classNames='text-xs opacity-75 rounded'>
34
35
  {JSON.stringify(object, undefined, 2)}
35
36
  </SyntaxHighlighter>
36
37
  )}
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { lazy } from 'react';
6
6
 
7
- export const DebugApp = lazy(() => import('./DebugApp'));
7
+ export const DebugGraph = lazy(() => import('./DebugGraph'));
8
8
  export const DevtoolsOverviewContainer = lazy(() => import('./DevtoolsOverviewContainer'));
9
9
  export const SpaceGenerator = lazy(() => import('./SpaceGenerator'));
10
10
 
@@ -2,19 +2,23 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { DEBUG_PLUGIN } from './meta';
5
+ import { type Resource } from '@dxos/react-ui';
6
6
 
7
- export default [
7
+ import { meta } from './meta';
8
+
9
+ export const translations = [
8
10
  {
9
11
  'en-US': {
10
- [DEBUG_PLUGIN]: {
12
+ [meta.id]: {
11
13
  'plugin name': 'Debug',
14
+ 'settings title': 'Debug settings',
12
15
  'mutation count': 'Number of mutations',
13
16
  'mutation period': 'Mutation period',
14
17
  'open devtools label': 'Open DevTools',
15
18
  'devtools label': 'DevTools',
16
19
  'devtools overview label': 'DevTools Stats',
17
20
  'debug label': 'Debug',
21
+ 'debug app graph label': 'App Graph',
18
22
  'settings show debug panel': 'Show Debug panel.',
19
23
  'settings show devtools panel': 'Show DevTools panel.',
20
24
  'settings wireframe': 'Show wireframes.',
@@ -67,4 +71,4 @@ export default [
67
71
  },
68
72
  },
69
73
  },
70
- ];
74
+ ] as const satisfies Resource[];
@@ -1,225 +0,0 @@
1
- // packages/plugins/plugin-debug/src/components/DebugApp/DebugApp.tsx
2
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
3
- import { Gauge, Graph as GraphIcon, Gear, Toolbox, Warning } from "@phosphor-icons/react";
4
- import React3, { useEffect, useState as useState2 } from "react";
5
- import { useClient, useConfig } from "@dxos/react-client";
6
- import { Button, ToggleGroup, ToggleGroupItem, Toolbar } from "@dxos/react-ui";
7
- import { getSize, mx as mx2 } from "@dxos/react-ui-theme";
8
-
9
- // packages/plugins/plugin-debug/src/components/DebugApp/Tree.tsx
10
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
11
- import React, { useState } from "react";
12
- import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
13
- import { mx } from "@dxos/react-ui-theme";
14
- import { arrayToBuffer } from "@dxos/util";
15
- var replacer = (key, value) => {
16
- if (typeof value === "object") {
17
- if (value instanceof Uint8Array) {
18
- return arrayToBuffer(value).toString("hex");
19
- }
20
- if (value?.type === "Buffer") {
21
- return Buffer.from(value.data).toString("hex");
22
- }
23
- if (key === "downloaded") {
24
- return void 0;
25
- }
26
- }
27
- return value;
28
- };
29
- var Json = ({ data }) => {
30
- var _effect = _useSignals();
31
- try {
32
- return /* @__PURE__ */ React.createElement(SyntaxHighlighter, {
33
- language: "json"
34
- }, JSON.stringify(data, replacer, 2));
35
- } finally {
36
- _effect.f();
37
- }
38
- };
39
- var Tree = ({ data }) => {
40
- var _effect = _useSignals();
41
- try {
42
- return /* @__PURE__ */ React.createElement("div", {
43
- className: "p-2"
44
- }, /* @__PURE__ */ React.createElement(Node, {
45
- data,
46
- root: true
47
- }));
48
- } finally {
49
- _effect.f();
50
- }
51
- };
52
- var Node = ({ data, root }) => {
53
- var _effect = _useSignals();
54
- try {
55
- if (typeof data !== "object" || data === void 0 || data === null) {
56
- return /* @__PURE__ */ React.createElement(Scalar, {
57
- value: data
58
- });
59
- }
60
- if (Array.isArray(data)) {
61
- return /* @__PURE__ */ React.createElement("div", {
62
- className: "flex flex-col space-y-2"
63
- }, data.map((value, index) => /* @__PURE__ */ React.createElement(KeyValue, {
64
- key: index,
65
- label: String(index),
66
- data: value,
67
- className: "bg-teal-50"
68
- })));
69
- }
70
- return /* @__PURE__ */ React.createElement("div", {
71
- className: "flex flex-col space-y-2"
72
- }, Object.entries(data).map(([key, value]) => /* @__PURE__ */ React.createElement(KeyValue, {
73
- key,
74
- label: key,
75
- data: value,
76
- className: "bg-blue-50"
77
- })));
78
- } finally {
79
- _effect.f();
80
- }
81
- };
82
- var KeyValue = ({ label, data, className }) => {
83
- var _effect = _useSignals();
84
- try {
85
- const [open, setOpen] = useState(true);
86
- if (data === void 0) {
87
- return null;
88
- }
89
- return /* @__PURE__ */ React.createElement("div", {
90
- className: "flex"
91
- }, /* @__PURE__ */ React.createElement(Box, {
92
- className: mx("border-blue-200 text-sm select-none cursor-pointer", className),
93
- onClick: () => setOpen((open2) => !open2)
94
- }, label), open && /* @__PURE__ */ React.createElement(Node, {
95
- data
96
- }));
97
- } finally {
98
- _effect.f();
99
- }
100
- };
101
- var Scalar = ({ value }) => {
102
- var _effect = _useSignals();
103
- try {
104
- return /* @__PURE__ */ React.createElement(Box, {
105
- className: "bg-green-50 border-green-200 rounded-r text-sm font-thin"
106
- }, value === void 0 && "undefined" || value === null && "null" || typeof value === "string" && value || JSON.stringify(value));
107
- } finally {
108
- _effect.f();
109
- }
110
- };
111
- var Box = ({ children, className, ...props }) => {
112
- var _effect = _useSignals();
113
- try {
114
- return /* @__PURE__ */ React.createElement("div", {
115
- className: mx("flex px-2 border border-l-0 font-mono truncate", className),
116
- ...props
117
- }, children);
118
- } finally {
119
- _effect.f();
120
- }
121
- };
122
-
123
- // packages/plugins/plugin-debug/src/components/Container.tsx
124
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
125
- import React2 from "react";
126
- var Container = ({ toolbar, children }) => {
127
- var _effect = _useSignals2();
128
- try {
129
- return /* @__PURE__ */ React2.createElement("div", {
130
- role: "none",
131
- className: "flex flex-col grow overflow-hidden divide-y divide-separator"
132
- }, toolbar, /* @__PURE__ */ React2.createElement("div", {
133
- className: "flex flex-col grow overflow-auto"
134
- }, children));
135
- } finally {
136
- _effect.f();
137
- }
138
- };
139
-
140
- // packages/plugins/plugin-debug/src/components/DebugApp/DebugApp.tsx
141
- var DebugApp = ({ graph }) => {
142
- var _effect = _useSignals3();
143
- try {
144
- const [view, setView] = useState2("graph");
145
- const [data, setData] = useState2({});
146
- const client = useClient();
147
- const config = useConfig();
148
- const handleRefresh = async () => {
149
- const data2 = await client.diagnostics({
150
- truncate: true
151
- });
152
- setData(data2);
153
- };
154
- useEffect(() => {
155
- void handleRefresh();
156
- }, []);
157
- const handleResetClient = async (force = false) => {
158
- if (!force && !window.confirm("Reset storage?")) {
159
- return;
160
- }
161
- await client.reset();
162
- window.location.href = window.location.origin;
163
- };
164
- const handleOpenDevtools = () => {
165
- const vaultUrl = config.values?.runtime?.client?.remoteSource;
166
- if (vaultUrl) {
167
- window.open(`https://devtools.dev.dxos.org/?target=${vaultUrl}`);
168
- }
169
- };
170
- return /* @__PURE__ */ React3.createElement(Container, {
171
- toolbar: /* @__PURE__ */ React3.createElement(Toolbar.Root, {
172
- classNames: "p-1"
173
- }, /* @__PURE__ */ React3.createElement(ToggleGroup, {
174
- type: "single",
175
- value: view
176
- }, /* @__PURE__ */ React3.createElement(ToggleGroupItem, {
177
- value: "graph",
178
- onClick: () => setView("graph"),
179
- title: "Plugin graph"
180
- }, /* @__PURE__ */ React3.createElement(GraphIcon, {
181
- className: getSize(5)
182
- })), /* @__PURE__ */ React3.createElement(ToggleGroupItem, {
183
- value: "diagnostics",
184
- onClick: () => setView("diagnostics"),
185
- title: "Diagnostics"
186
- }, /* @__PURE__ */ React3.createElement(Gauge, {
187
- className: getSize(5)
188
- })), /* @__PURE__ */ React3.createElement(ToggleGroupItem, {
189
- value: "config",
190
- onClick: () => setView("config"),
191
- title: "Config"
192
- }, /* @__PURE__ */ React3.createElement(Gear, {
193
- className: getSize(5)
194
- }))), /* @__PURE__ */ React3.createElement(Toolbar.Separator, {
195
- variant: "gap"
196
- }), /* @__PURE__ */ React3.createElement(Button, {
197
- onClick: (event) => handleResetClient(event.shiftKey),
198
- title: "Reset client"
199
- }, /* @__PURE__ */ React3.createElement(Warning, {
200
- className: mx2(getSize(5), "text-red-700")
201
- })), /* @__PURE__ */ React3.createElement(Button, {
202
- onClick: handleOpenDevtools,
203
- title: "Open Devtools"
204
- }, /* @__PURE__ */ React3.createElement(Toolbox, {
205
- weight: "duotone",
206
- className: mx2(getSize(5), "text-700")
207
- })))
208
- }, view === "graph" && /* @__PURE__ */ React3.createElement(Tree, {
209
- data: graph.toJSON()
210
- }), view === "config" && /* @__PURE__ */ React3.createElement(Json, {
211
- data: data.diagnostics?.config
212
- }), view === "diagnostics" && /* @__PURE__ */ React3.createElement(Json, {
213
- data
214
- }));
215
- } finally {
216
- _effect.f();
217
- }
218
- };
219
-
220
- // packages/plugins/plugin-debug/src/components/DebugApp/index.ts
221
- var DebugApp_default = DebugApp;
222
- export {
223
- DebugApp_default as default
224
- };
225
- //# sourceMappingURL=DebugApp-WSEJPCKY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/DebugApp/DebugApp.tsx", "../../../src/components/DebugApp/Tree.tsx", "../../../src/components/Container.tsx", "../../../src/components/DebugApp/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Gauge, Graph as GraphIcon, Gear, Toolbox, Warning } from '@phosphor-icons/react';\nimport React, { type FC, useEffect, useState } from 'react';\n\nimport { type Graph } from '@dxos/plugin-graph';\nimport { useClient, useConfig } from '@dxos/react-client';\nimport { Button, ToggleGroup, ToggleGroupItem, Toolbar } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { Json, Tree } from './Tree';\nimport { Container } from '../Container';\n\nexport const DebugApp: FC<{ graph: Graph }> = ({ graph }) => {\n const [view, setView] = useState<'config' | 'diagnostics' | 'graph'>('graph');\n const [data, setData] = useState<any>({});\n const client = useClient();\n const config = useConfig();\n const handleRefresh = async () => {\n const data = await client.diagnostics({ truncate: true });\n setData(data);\n };\n useEffect(() => {\n void handleRefresh();\n }, []);\n\n const handleResetClient = async (force = false) => {\n if (!force && !window.confirm('Reset storage?')) {\n return;\n }\n\n // TODO(burdon): Throws exception.\n await client.reset();\n window.location.href = window.location.origin;\n };\n\n const handleOpenDevtools = () => {\n const vaultUrl = config.values?.runtime?.client?.remoteSource;\n if (vaultUrl) {\n window.open(`https://devtools.dev.dxos.org/?target=${vaultUrl}`);\n }\n };\n\n return (\n <Container\n toolbar={\n <Toolbar.Root classNames='p-1'>\n <ToggleGroup type='single' value={view}>\n <ToggleGroupItem value={'graph'} onClick={() => setView('graph')} title={'Plugin graph'}>\n <GraphIcon className={getSize(5)} />\n </ToggleGroupItem>\n <ToggleGroupItem value={'diagnostics'} onClick={() => setView('diagnostics')} title={'Diagnostics'}>\n <Gauge className={getSize(5)} />\n </ToggleGroupItem>\n <ToggleGroupItem value={'config'} onClick={() => setView('config')} title={'Config'}>\n <Gear className={getSize(5)} />\n </ToggleGroupItem>\n </ToggleGroup>\n\n <Toolbar.Separator variant='gap' />\n <Button onClick={(event) => handleResetClient(event.shiftKey)} title='Reset client'>\n <Warning className={mx(getSize(5), 'text-red-700')} />\n </Button>\n <Button onClick={handleOpenDevtools} title='Open Devtools'>\n <Toolbox weight='duotone' className={mx(getSize(5), 'text-700')} />\n </Button>\n </Toolbar.Root>\n }\n >\n {view === 'graph' && <Tree data={graph.toJSON()} />}\n {view === 'config' && <Json data={data.diagnostics?.config} />}\n {view === 'diagnostics' && <Json data={data} />}\n </Container>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, type HTMLAttributes, useState } from 'react';\n\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/react-ui-theme';\nimport { arrayToBuffer } from '@dxos/util';\n\n// TODO(burdon): Copied form devtools.\n\nexport const replacer = (key: any, value: any) => {\n if (typeof value === 'object') {\n if (value instanceof Uint8Array) {\n return arrayToBuffer(value).toString('hex');\n }\n\n if (value?.type === 'Buffer') {\n return Buffer.from(value.data).toString('hex');\n }\n\n if (key === 'downloaded') {\n return undefined;\n }\n }\n\n return value;\n};\n\nexport const Json: FC<{ data?: object }> = ({ data }) => {\n return <SyntaxHighlighter language='json'>{JSON.stringify(data, replacer, 2)}</SyntaxHighlighter>;\n};\n\nexport const Tree: FC<{ data?: object }> = ({ data }) => {\n return (\n <div className='p-2'>\n <Node data={data} root />\n </div>\n );\n};\n\nexport const Node: FC<{ data?: any; root?: boolean }> = ({ data, root }) => {\n if (typeof data !== 'object' || data === undefined || data === null) {\n return <Scalar value={data} />;\n }\n\n if (Array.isArray(data)) {\n return (\n <div className='flex flex-col space-y-2'>\n {data.map((value, index) => (\n <KeyValue key={index} label={String(index)} data={value} className='bg-teal-50' />\n ))}\n </div>\n );\n }\n\n return (\n <div className='flex flex-col space-y-2'>\n {Object.entries(data).map(([key, value]) => (\n <KeyValue key={key} label={key} data={value} className='bg-blue-50' />\n ))}\n </div>\n );\n};\n\nexport const KeyValue: FC<{ label: string; data?: any; className?: string }> = ({ label, data, className }) => {\n const [open, setOpen] = useState(true);\n if (data === undefined) {\n return null;\n }\n\n return (\n <div className='flex'>\n <Box\n className={mx('border-blue-200 text-sm select-none cursor-pointer', className)}\n onClick={() => setOpen((open) => !open)}\n >\n {label}\n </Box>\n {open && <Node data={data} />}\n </div>\n );\n};\n\nconst Scalar: FC<{ value: any }> = ({ value }) => {\n return (\n <Box className='bg-green-50 border-green-200 rounded-r text-sm font-thin'>\n {(value === undefined && 'undefined') ||\n (value === null && 'null') ||\n (typeof value === 'string' && value) ||\n JSON.stringify(value)}\n </Box>\n );\n};\n\nconst Box: FC<HTMLAttributes<HTMLDivElement>> = ({ children, className, ...props }) => {\n return (\n <div className={mx('flex px-2 border border-l-0 font-mono truncate', className)} {...props}>\n {children}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type PropsWithChildren, type ReactNode } from 'react';\n\n// TODO(burdon): Convert to grid.\nexport const Container = ({ toolbar, children }: PropsWithChildren<{ toolbar: ReactNode }>) => {\n return (\n <div role='none' className='flex flex-col grow overflow-hidden divide-y divide-separator'>\n {toolbar}\n <div className='flex flex-col grow overflow-auto'>{children}</div>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DebugApp } from './DebugApp';\n\nexport default DebugApp;\n"],
5
- "mappings": ";;AAIA,SAASA,OAAOC,SAASC,WAAWC,MAAMC,SAASC,eAAe;AAClE,OAAOC,UAAkBC,WAAWC,YAAAA,iBAAgB;AAGpD,SAASC,WAAWC,iBAAiB;AACrC,SAASC,QAAQC,aAAaC,iBAAiBC,eAAe;AAC9D,SAASC,SAASC,MAAAA,WAAU;;;;ACN5B,OAAOC,SAAuCC,gBAAgB;AAE9D,SAASC,yBAAyB;AAClC,SAASC,UAAU;AACnB,SAASC,qBAAqB;AAIvB,IAAMC,WAAW,CAACC,KAAUC,UAAAA;AACjC,MAAI,OAAOA,UAAU,UAAU;AAC7B,QAAIA,iBAAiBC,YAAY;AAC/B,aAAOC,cAAcF,KAAAA,EAAOG,SAAS,KAAA;IACvC;AAEA,QAAIH,OAAOI,SAAS,UAAU;AAC5B,aAAOC,OAAOC,KAAKN,MAAMO,IAAI,EAAEJ,SAAS,KAAA;IAC1C;AAEA,QAAIJ,QAAQ,cAAc;AACxB,aAAOS;IACT;EACF;AAEA,SAAOR;AACT;AAEO,IAAMS,OAA8B,CAAC,EAAEF,KAAI,MAAE;;;AAClD,WAAO,sBAAA,cAACG,mBAAAA;MAAkBC,UAAS;OAAQC,KAAKC,UAAUN,MAAMT,UAAU,CAAA,CAAA;;;;AAC5E;AAEO,IAAMgB,OAA8B,CAAC,EAAEP,KAAI,MAAE;;;AAClD,WACE,sBAAA,cAACQ,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACC,MAAAA;MAAKV;MAAYW,MAAAA;;;;;AAGxB;AAEO,IAAMD,OAA2C,CAAC,EAAEV,MAAMW,KAAI,MAAE;;;AACrE,QAAI,OAAOX,SAAS,YAAYA,SAASC,UAAaD,SAAS,MAAM;AACnE,aAAO,sBAAA,cAACY,QAAAA;QAAOnB,OAAOO;;IACxB;AAEA,QAAIa,MAAMC,QAAQd,IAAAA,GAAO;AACvB,aACE,sBAAA,cAACQ,OAAAA;QAAIC,WAAU;SACZT,KAAKe,IAAI,CAACtB,OAAOuB,UAChB,sBAAA,cAACC,UAAAA;QAASzB,KAAKwB;QAAOE,OAAOC,OAAOH,KAAAA;QAAQhB,MAAMP;QAAOgB,WAAU;;IAI3E;AAEA,WACE,sBAAA,cAACD,OAAAA;MAAIC,WAAU;OACZW,OAAOC,QAAQrB,IAAAA,EAAMe,IAAI,CAAC,CAACvB,KAAKC,KAAAA,MAC/B,sBAAA,cAACwB,UAAAA;MAASzB;MAAU0B,OAAO1B;MAAKQ,MAAMP;MAAOgB,WAAU;;;;;AAI/D;AAEO,IAAMQ,WAAkE,CAAC,EAAEC,OAAOlB,MAAMS,UAAS,MAAE;;;AACxG,UAAM,CAACa,MAAMC,OAAAA,IAAWC,SAAS,IAAA;AACjC,QAAIxB,SAASC,QAAW;AACtB,aAAO;IACT;AAEA,WACE,sBAAA,cAACO,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACgB,KAAAA;MACChB,WAAWiB,GAAG,sDAAsDjB,SAAAA;MACpEkB,SAAS,MAAMJ,QAAQ,CAACD,UAAS,CAACA,KAAAA;OAEjCJ,KAAAA,GAEFI,QAAQ,sBAAA,cAACZ,MAAAA;MAAKV;;;;;AAGrB;AAEA,IAAMY,SAA6B,CAAC,EAAEnB,MAAK,MAAE;;;AAC3C,WACE,sBAAA,cAACgC,KAAAA;MAAIhB,WAAU;OACXhB,UAAUQ,UAAa,eACtBR,UAAU,QAAQ,UAClB,OAAOA,UAAU,YAAYA,SAC9BY,KAAKC,UAAUb,KAAAA,CAAAA;;;;AAGvB;AAEA,IAAMgC,MAA0C,CAAC,EAAEG,UAAUnB,WAAW,GAAGoB,MAAAA,MAAO;;;AAChF,WACE,sBAAA,cAACrB,OAAAA;MAAIC,WAAWiB,GAAG,kDAAkDjB,SAAAA;MAAa,GAAGoB;OAClFD,QAAAA;;;;AAGP;;;;AClGA,OAAOE,YAAuD;AAGvD,IAAMC,YAAY,CAAC,EAAEC,SAASC,SAAQ,MAA6C;;;AACxF,WACE,gBAAAC,OAAA,cAACC,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBL,SACD,gBAAAE,OAAA,cAACC,OAAAA;MAAIE,WAAU;OAAoCJ,QAAAA,CAAAA;;;;AAGzD;;;AFCO,IAAMK,WAAiC,CAAC,EAAEC,MAAK,MAAE;;;AACtD,UAAM,CAACC,MAAMC,OAAAA,IAAWC,UAA6C,OAAA;AACrE,UAAM,CAACC,MAAMC,OAAAA,IAAWF,UAAc,CAAC,CAAA;AACvC,UAAMG,SAASC,UAAAA;AACf,UAAMC,SAASC,UAAAA;AACf,UAAMC,gBAAgB,YAAA;AACpB,YAAMN,QAAO,MAAME,OAAOK,YAAY;QAAEC,UAAU;MAAK,CAAA;AACvDP,cAAQD,KAAAA;IACV;AACAS,cAAU,MAAA;AACR,WAAKH,cAAAA;IACP,GAAG,CAAA,CAAE;AAEL,UAAMI,oBAAoB,OAAOC,QAAQ,UAAK;AAC5C,UAAI,CAACA,SAAS,CAACC,OAAOC,QAAQ,gBAAA,GAAmB;AAC/C;MACF;AAGA,YAAMX,OAAOY,MAAK;AAClBF,aAAOG,SAASC,OAAOJ,OAAOG,SAASE;IACzC;AAEA,UAAMC,qBAAqB,MAAA;AACzB,YAAMC,WAAWf,OAAOgB,QAAQC,SAASnB,QAAQoB;AACjD,UAAIH,UAAU;AACZP,eAAOW,KAAK,yCAAyCJ,QAAAA,EAAU;MACjE;IACF;AAEA,WACE,gBAAAK,OAAA,cAACC,WAAAA;MACCC,SACE,gBAAAF,OAAA,cAACG,QAAQC,MAAI;QAACC,YAAW;SACvB,gBAAAL,OAAA,cAACM,aAAAA;QAAYC,MAAK;QAASC,OAAOnC;SAChC,gBAAA2B,OAAA,cAACS,iBAAAA;QAAgBD,OAAO;QAASE,SAAS,MAAMpC,QAAQ,OAAA;QAAUqC,OAAO;SACvE,gBAAAX,OAAA,cAACY,WAAAA;QAAUC,WAAWC,QAAQ,CAAA;WAEhC,gBAAAd,OAAA,cAACS,iBAAAA;QAAgBD,OAAO;QAAeE,SAAS,MAAMpC,QAAQ,aAAA;QAAgBqC,OAAO;SACnF,gBAAAX,OAAA,cAACe,OAAAA;QAAMF,WAAWC,QAAQ,CAAA;WAE5B,gBAAAd,OAAA,cAACS,iBAAAA;QAAgBD,OAAO;QAAUE,SAAS,MAAMpC,QAAQ,QAAA;QAAWqC,OAAO;SACzE,gBAAAX,OAAA,cAACgB,MAAAA;QAAKH,WAAWC,QAAQ,CAAA;YAI7B,gBAAAd,OAAA,cAACG,QAAQc,WAAS;QAACC,SAAQ;UAC3B,gBAAAlB,OAAA,cAACmB,QAAAA;QAAOT,SAAS,CAACU,UAAUlC,kBAAkBkC,MAAMC,QAAQ;QAAGV,OAAM;SACnE,gBAAAX,OAAA,cAACsB,SAAAA;QAAQT,WAAWU,IAAGT,QAAQ,CAAA,GAAI,cAAA;WAErC,gBAAAd,OAAA,cAACmB,QAAAA;QAAOT,SAAShB;QAAoBiB,OAAM;SACzC,gBAAAX,OAAA,cAACwB,SAAAA;QAAQC,QAAO;QAAUZ,WAAWU,IAAGT,QAAQ,CAAA,GAAI,UAAA;;OAKzDzC,SAAS,WAAW,gBAAA2B,OAAA,cAAC0B,MAAAA;MAAKlD,MAAMJ,MAAMuD,OAAM;QAC5CtD,SAAS,YAAY,gBAAA2B,OAAA,cAAC4B,MAAAA;MAAKpD,MAAMA,KAAKO,aAAaH;QACnDP,SAAS,iBAAiB,gBAAA2B,OAAA,cAAC4B,MAAAA;MAAKpD;;;;;AAGvC;;;AGtEA,IAAA,mBAAeqD;",
6
- "names": ["Gauge", "Graph", "GraphIcon", "Gear", "Toolbox", "Warning", "React", "useEffect", "useState", "useClient", "useConfig", "Button", "ToggleGroup", "ToggleGroupItem", "Toolbar", "getSize", "mx", "React", "useState", "SyntaxHighlighter", "mx", "arrayToBuffer", "replacer", "key", "value", "Uint8Array", "arrayToBuffer", "toString", "type", "Buffer", "from", "data", "undefined", "Json", "SyntaxHighlighter", "language", "JSON", "stringify", "Tree", "div", "className", "Node", "root", "Scalar", "Array", "isArray", "map", "index", "KeyValue", "label", "String", "Object", "entries", "open", "setOpen", "useState", "Box", "mx", "onClick", "children", "props", "React", "Container", "toolbar", "children", "React", "div", "role", "className", "DebugApp", "graph", "view", "setView", "useState", "data", "setData", "client", "useClient", "config", "useConfig", "handleRefresh", "diagnostics", "truncate", "useEffect", "handleResetClient", "force", "window", "confirm", "reset", "location", "href", "origin", "handleOpenDevtools", "vaultUrl", "values", "runtime", "remoteSource", "open", "React", "Container", "toolbar", "Toolbar", "Root", "classNames", "ToggleGroup", "type", "value", "ToggleGroupItem", "onClick", "title", "GraphIcon", "className", "getSize", "Gauge", "Gear", "Separator", "variant", "Button", "event", "shiftKey", "Warning", "mx", "Toolbox", "weight", "Tree", "toJSON", "Json", "DebugApp"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/SpaceGenerator/SpaceGenerator.tsx", "../../../src/components/SpaceGenerator/ObjectGenerator.tsx", "../../../src/components/SpaceGenerator/SchemaTable.tsx", "../../../src/components/SpaceGenerator/presets.ts", "../../../src/components/SpaceGenerator/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Filter, Obj, Type } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { SheetType } from '@dxos/plugin-sheet/types';\nimport { DiagramType } from '@dxos/plugin-sketch/types';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { getTypename, type Space } from '@dxos/react-client/echo';\nimport { IconButton, Input, Toolbar, useAsyncEffect } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { initializeTable, TableType } from '@dxos/react-ui-table';\nimport { DataType } from '@dxos/schema';\nimport { jsonKeyReplacer, sortKeys } from '@dxos/util';\n\nimport { createGenerator, staticGenerators, type ObjectGenerator } from './ObjectGenerator';\nimport { SchemaTable } from './SchemaTable';\nimport { generator } from './presets';\n\nexport type SpaceGeneratorProps = {\n space: Space;\n onCreateObjects?: (objects: Obj.Any[]) => void;\n};\n\nexport const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const staticTypes = [DocumentType, DiagramType, SheetType, ComputeGraph]; // TODO(burdon): Make extensible.\n const mutableTypes = [DataType.Organization, DataType.Project, DataType.Person, DataType.Message];\n const [count, setCount] = useState(1);\n const [info, setInfo] = useState<any>({});\n const presets = useMemo(() => generator(), []);\n\n // Create type generators.\n const typeMap = useMemo(() => {\n client.addTypes([...staticTypes, ...presets.schemas]);\n const mutableGenerators = new Map<string, ObjectGenerator<any>>(\n mutableTypes.map((type) => [type.typename, createGenerator(type as any)]),\n );\n\n return new Map([...staticGenerators, ...presets.items, ...mutableGenerators]);\n }, [client, mutableTypes]);\n\n // Query space to get info.\n const updateInfo = async () => {\n // Create schema map.\n const echoSchema = await space.db.schemaRegistry.query().run();\n const staticSchema = space.db.graph.schemaRegistry.schemas;\n\n // Create object map.\n const { objects } = await space.db.query(Filter.everything()).run();\n const objectMap = sortKeys(\n objects.reduce<Record<string, number>>((map, obj) => {\n const type = getTypename(obj);\n if (type) {\n const count = map[type] ?? 0;\n map[type] = count + 1;\n }\n return map;\n }, {}),\n );\n\n setInfo({\n schema: {\n static: staticSchema.length,\n mutable: echoSchema.length,\n },\n objects: objectMap,\n });\n };\n\n useAsyncEffect(updateInfo, [space]);\n\n const handleCreateData = useCallback(\n async (typename: string) => {\n const constructor = typeMap.get(typename);\n if (constructor) {\n // TODO(burdon): Input to specify number of objects.\n await constructor(space, count, onCreateObjects);\n await updateInfo();\n }\n },\n [typeMap, count],\n );\n\n // TODO(wittjosiah): Remove. Replace with proper echo import.\n const handleLoadTables = useCallback(async () => {\n const input = document.createElement('input');\n input.type = 'file';\n input.accept = '.json';\n\n input.onchange = async (e) => {\n const file = (e.target as HTMLInputElement).files?.[0];\n if (!file) {\n return;\n }\n\n try {\n const content = await file.text();\n const data = JSON.parse(content);\n const schemas = await space.db.schemaRegistry.register(data.schemas.map(Type.toEffectSchema));\n // TODO(wittjosiah): If the schema is already registered this should skip.\n await Promise.all(\n schemas.map(async (schema) => {\n const parts = schema.typename.split('/');\n const name = parts[parts.length - 1];\n const table = Obj.make(TableType, { name, threads: [] });\n await initializeTable({ client, space, table, typename: schema.typename });\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: table }));\n return table;\n }),\n );\n // TODO(wittjosiah): This should query the space for schemas.\n await Promise.all(\n data.objects.map(async ({ id, '@type': typename, ...fields }: any) => {\n const schema = schemas.find((s) => `dxn:type:${s.typename}:${s.version}` === typename);\n if (!schema) {\n log.warn('Missing schema for object', { id, typename });\n return;\n }\n const object = Obj.make(schema, fields);\n space.db.add(object);\n return object;\n }),\n );\n } catch (err) {\n log.catch(err);\n }\n };\n\n input.click();\n }, []);\n\n return (\n <div role='none' className='flex flex-col grow overflow-hidden'>\n <Toolbar.Root classNames='border-be border-subduedSeparator'>\n <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />\n <IconButton\n icon='ph--file-arrow-up--regular'\n iconOnly\n label='Load tables from JSON'\n onClick={handleLoadTables}\n />\n <Toolbar.Separator variant='gap' />\n <Input.Root>\n <Input.TextInput\n type='number'\n min={1}\n max={100}\n placeholder={'Count'}\n classNames='!w-[4rem] !text-right'\n size={8}\n value={count}\n onChange={(ev) => setCount(parseInt(ev.target.value))}\n />\n </Input.Root>\n </Toolbar.Root>\n\n <div className='flex flex-col overflow-y-auto divide-y divide-separator'>\n <SchemaTable types={staticTypes} objects={info.objects} label='Static Types' onClick={handleCreateData} />\n <SchemaTable types={mutableTypes} objects={info.objects} label='Mutable Types' onClick={handleCreateData} />\n <SchemaTable types={presets.types} objects={info.objects} label='Presets' onClick={handleCreateData} />\n\n <div>\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify({ space, ...info }, jsonKeyReplacer({ truncate: true }), 2)}\n </SyntaxHighlighter>\n </div>\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { addressToA1Notation } from '@dxos/compute';\nimport { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from '@dxos/conductor';\nimport { DXN, Filter, Key, Obj, Ref } from '@dxos/echo';\nimport { type TypedObject } from '@dxos/echo-schema';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { createSheet } from '@dxos/plugin-sheet/types';\nimport { SheetType, type CellValue } from '@dxos/plugin-sheet/types';\nimport { CanvasType, DiagramType } from '@dxos/plugin-sketch/types';\nimport { faker } from '@dxos/random';\nimport { type Space } from '@dxos/react-client/echo';\nimport { TableType } from '@dxos/react-ui-table';\nimport { createView, DataType } from '@dxos/schema';\nimport { createAsyncGenerator, type ValueGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = faker as any;\n\nexport type ObjectGenerator<T extends Obj.Any> = (space: Space, n: number, cb?: (objects: T[]) => void) => Promise<T[]>;\n\nexport const createGenerator = <T extends Obj.Any>(type: TypedObject<T>): ObjectGenerator<T> => {\n return async (space: Space, n: number, cb?: (objects: T[]) => void): Promise<T[]> => {\n // Find or create mutable schema.\n const schema =\n (await space.db.schemaRegistry.query({ typename: type.typename }).firstOrUndefined()) ??\n (await space.db.schemaRegistry.register([type]))[0];\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema.snapshot, { db: space.db });\n const objects = await generate.createObjects(n);\n\n // Find or create table and view.\n const { objects: tables } = await space.db.query(Filter.type(TableType)).run();\n const table = tables.find((table) => table.view?.target?.query?.typename === type.typename);\n if (!table) {\n const name = type.typename.split('/').pop() ?? type.typename;\n const view = createView({ name, typename: type.typename, jsonSchema: schema.jsonSchema });\n space.db.add(Obj.make(TableType, { name, view: Ref.make(view) }));\n }\n\n return objects;\n };\n};\n\nexport const staticGenerators = new Map<string, ObjectGenerator<any>>([\n [\n DocumentType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n return space.db.add(\n Obj.make(DocumentType, {\n name: faker.commerce.productName(),\n content: Ref.make(Obj.make(DataType.Text, { content: faker.lorem.sentences(5) })),\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n DiagramType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n // TODO(burdon): Generate diagram.\n const obj = space.db.add(\n Obj.make(DiagramType, {\n name: faker.commerce.productName(),\n canvas: Ref.make(Obj.make(CanvasType, { content: {} })),\n }),\n );\n\n return obj;\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n // TODO(burdon): Create unit tests.\n [\n SheetType.typename,\n async (space, n, cb) => {\n const objects = range(n).map(() => {\n const cells: Record<string, CellValue> = {};\n const year = new Date().getFullYear();\n const cols = 4;\n const rows = 16;\n for (let col = 1; col <= cols; col++) {\n for (let row = 1; row <= rows; row++) {\n const cell = addressToA1Notation({ col, row });\n if (row === 1) {\n cells[cell] = { value: `${year} Q${col}` };\n } else if (row === rows) {\n const from = addressToA1Notation({ col, row: 2 });\n const to = addressToA1Notation({ col, row: rows - 1 });\n cells[cell] = { value: `=SUM(${from}:${to})` };\n } else if (row > 2 && row < rows - 1) {\n cells[cell] = { value: Math.floor(Math.random() * 10_000) };\n }\n }\n }\n\n // TODO(burdon): Set width.\n // TODO(burdon): Set formatting for columns.\n return space.db.add(\n createSheet({\n name: faker.commerce.productName(),\n cells,\n }),\n );\n });\n\n cb?.(objects);\n return objects;\n },\n ],\n [\n ComputeGraph.typename,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const model = ComputeGraphModel.create();\n model.builder\n .createNode({ id: 'gpt-INPUT', type: NODE_INPUT })\n .createNode({ id: 'gpt-GPT', type: 'gpt' })\n .createNode({\n id: 'gpt-QUEUE_ID',\n type: 'constant',\n value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\n })\n .createNode({ id: 'gpt-APPEND', type: 'append' })\n .createNode({ id: 'gpt-OUTPUT', type: NODE_OUTPUT })\n .createEdge({ node: 'gpt-INPUT', property: 'prompt' }, { node: 'gpt-GPT', property: 'prompt' })\n .createEdge({ node: 'gpt-GPT', property: 'text' }, { node: 'gpt-OUTPUT', property: 'text' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-APPEND', property: 'id' })\n .createEdge({ node: 'gpt-GPT', property: 'messages' }, { node: 'gpt-APPEND', property: 'items' })\n .createEdge({ node: 'gpt-QUEUE_ID', property: DEFAULT_OUTPUT }, { node: 'gpt-OUTPUT', property: 'queue' });\n\n return space.db.add(model.root);\n });\n cb?.(objects);\n return objects;\n },\n ],\n]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { IconButton } from '@dxos/react-ui';\n\nexport type SchemaTableProps = {\n types: any[];\n objects?: Record<string, number | undefined>;\n label: string;\n onClick: (typename: string) => void;\n};\n\nexport const SchemaTable = ({ types, objects = {}, label, onClick }: SchemaTableProps) => {\n return (\n <div className='grid grid-cols-[1fr_80px_40px] gap-1 overflow-none'>\n <h2 className='p-2'>{label}</h2>\n {types.map((type) => (\n <div key={type.typename} className='grid grid-cols-subgrid col-span-3 items-center'>\n <div className='px-2 text-sm font-mono text-subdued'>{type.typename}</div>\n <div className='px-2 text-right font-mono'>{objects[type.typename] ?? 0}</div>\n <IconButton\n variant='ghost'\n icon='ph--plus--regular'\n iconOnly\n label='Create data'\n onClick={() => onClick(type.typename)}\n />\n </div>\n ))}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema, SchemaAST } from 'effect';\n\nimport { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';\nimport { DXN, Key, Obj, Ref, Type } from '@dxos/echo';\nimport { FunctionTrigger, TriggerKind, EmailTriggerOutput, type TriggerType } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { Filter, type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createChat,\n createComputeGraph,\n createConstant,\n createFunction,\n createGpt,\n createQueue,\n createSurface,\n createRandom,\n createTemplate,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport {\n CanvasBoardType,\n CanvasGraphModel,\n pointMultiply,\n pointsToRect,\n rectToPoints,\n} from '@dxos/react-ui-canvas-editor';\nimport { TableType } from '@dxos/react-ui-table';\nimport { range } from '@dxos/util';\n\nimport { type ObjectGenerator } from './ObjectGenerator';\n\nexport enum PresetName {\n EMAIL_TABLE = 'email-table',\n GPT_QUEUE = 'webhook-gpt-queue',\n CHAT_GPT = 'chat-gpt-text',\n EMAIL_WITH_SUMMARY = 'email-gptSummary-table',\n OBJECT_CHANGE_QUEUE = 'objectChange-queue',\n FOREX_FUNCTION_CALL = 'forex-function-call',\n TIMER_TICK_QUEUE = 'timerTick-queue',\n DISCORD_MESSAGES = 'discord-messages',\n KANBAN_QUEUE = 'kanban-queue',\n}\n\nexport const generator = () => ({\n schemas: [CanvasBoardType, FunctionTrigger],\n types: Object.values(PresetName).map((name) => ({ typename: name })),\n items: [\n [\n PresetName.GPT_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Webhook,\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'bodyText' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.GPT_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.OBJECT_CHANGE_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n TriggerKind.Subscription,\n (triggerSpec) => (triggerSpec.filter = { type: 'dxn:type:dxos.org/type/Chess' }),\n 'type',\n );\n return addToSpace(PresetName.OBJECT_CHANGE_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.TIMER_TICK_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const { canvasModel, computeModel } = createQueueSinkPreset(\n space,\n TriggerKind.Timer,\n (triggerSpec) => (triggerSpec.cron = '*/5 * * * * *'),\n 'result',\n );\n return addToSpace(PresetName.TIMER_TICK_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.EMAIL_TABLE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const results = space.db.query(Filter.type(TableType)).runSync();\n const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n invariant(emailTable, 'Email table not found.');\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -80, centerY: -64, width: 320, height: 320 }),\n }),\n );\n const templateContent = ['{'];\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Email,\n ...position({ x: -18, y: -2 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n\n const tableId = canvasModel.createNode(\n createConstant({\n value: DXN.fromLocalObjectId(emailTable.id).toString(),\n ...position({ x: -18, y: 5, width: 8, height: 6 }),\n }),\n );\n\n const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n for (let i = 0; i < properties.length; i++) {\n const propName = properties[i].name.toString();\n builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n }\n templateContent.push('}');\n\n builder\n .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n templateComputeNode.value = templateContent.join('\\n');\n templateComputeNode.inputSchema = Type.toJsonSchema(EmailTriggerOutput);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.EMAIL_TABLE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.CHAT_GPT,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(createGpt(position({ x: 0, y: -14 })));\n const chat = canvasModel.createNode(createChat(position({ x: -18, y: -2 })));\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const { queueId } = setupQueue(space, canvasModel);\n\n const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));\n\n builder\n .createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })\n .createEdge({ source: gpt.id, target: text.id, output: 'text' })\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: gpt.id, target: append.id, output: 'messages', input: 'items' });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.CHAT_GPT, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.EMAIL_WITH_SUMMARY,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const results = space.db.query(Filter.type(TableType)).runSync();\n const emailTable = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Email'));\n invariant(emailTable, 'Email table not found.');\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: 192, centerY: -176, width: 320, height: 320 }),\n }),\n );\n const templateContent = ['{'];\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const gpt = canvasModel.createNode(\n createGpt(rawPosition({ centerX: -400, centerY: -112, width: 256, height: 202 })),\n );\n const systemPrompt = canvasModel.createNode(\n createConstant({\n value: \"use one word to describe content category. don't write anything else\",\n ...rawPosition({ centerX: -800, centerY: -160, width: 192, height: 128 }),\n }),\n );\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Email,\n ...rawPosition({ centerX: -736, centerY: -384, width: 182, height: 192 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n\n const { queueId } = setupQueue(space, canvasModel, {\n idPosition: { centerX: -720, centerY: 224, width: 192, height: 256 },\n queuePosition: { centerX: -144, centerY: 416, width: 320, height: 448 },\n });\n const appendToQueue = canvasModel.createNode(\n createAppend(rawPosition({ centerX: -80, centerY: 96, width: 122, height: 128 })),\n );\n\n const tableId = canvasModel.createNode(\n createConstant({\n value: DXN.fromLocalObjectId(emailTable.id).toString(),\n ...rawPosition({ centerX: -112, centerY: -544, width: 192, height: 256 }),\n }),\n );\n\n const appendToTable = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 560, centerY: -416, width: 128, height: 122 })),\n );\n\n templateContent.push(' \"category\": \"{{text}}\",');\n builder.createEdge({ source: gpt.id, target: template.id, input: 'text', output: 'text' });\n\n const properties = SchemaAST.getPropertySignatures(EmailTriggerOutput.ast);\n for (let i = 0; i < properties.length; i++) {\n const propName = properties[i].name.toString();\n builder.createEdge({ source: trigger.id, target: template.id, input: propName, output: propName });\n templateContent.push(` \"${propName}\": \"{{${propName}}}\"` + (i === properties.length - 1 ? '' : ','));\n }\n templateContent.push('}');\n\n builder\n .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n .createEdge({ source: queueId.id, target: appendToQueue.id, input: 'id' })\n .createEdge({ source: gpt.id, target: appendToQueue.id, output: 'messages', input: 'items' })\n .createEdge({ source: systemPrompt.id, target: gpt.id, input: 'systemPrompt' })\n .createEdge({ source: trigger.id, target: gpt.id, input: 'prompt', output: 'body' })\n .createEdge({ source: template.id, target: appendToTable.id, input: 'items' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n templateComputeNode.value = templateContent.join('\\n');\n const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));\n templateComputeNode.inputSchema = Type.toJsonSchema(extendedSchema);\n\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.EMAIL_WITH_SUMMARY, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.FOREX_FUNCTION_CALL,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n canvasModel.builder.call((builder) => {\n const sourceCurrency = canvasModel.createNode(\n createConstant({ value: 'USD', ...position({ x: -10, y: -5 }) }),\n );\n const targetCurrency = canvasModel.createNode(\n createConstant({ value: 'EUR', ...position({ x: -10, y: 5 }) }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));\n\n builder\n .createEdge({ source: sourceCurrency.id, target: converter.id, input: 'from' })\n .createEdge({ source: targetCurrency.id, target: converter.id, input: 'to' })\n .createEdge({ source: converter.id, target: view.id, output: 'rate' });\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n return addToSpace(PresetName.FOREX_FUNCTION_CALL, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.DISCORD_MESSAGES,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Timer,\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n // DXOS dev-null channel.\n const channelId = canvasModel.createNode(\n createConstant({ value: '1088569858767212554', ...position({ x: -10, y: 0 }) }),\n );\n const queueId = canvasModel.createNode(\n createConstant({\n value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));\n const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));\n const queue = canvasModel.createNode(createQueue(position({ x: 0, y: 12 })));\n\n builder\n .createEdge({ source: trigger.id, target: converter.id, input: 'tick' })\n .createEdge({ source: channelId.id, target: converter.id, input: 'channelId' })\n .createEdge({ source: queueId.id, target: converter.id, input: 'queueId' })\n .createEdge({ source: converter.id, target: view.id, output: 'newMessages' })\n .createEdge({ source: queueId.id, target: queue.id, input: 'input' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.DISCORD_MESSAGES, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n\n [\n PresetName.KANBAN_QUEUE,\n async (space, n, cb) => {\n const objects = range(n, () => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n // TODO(wittjosiah): Integrate directly w/ Kanban.\n // const results = space.db.query(Filter.type(KanbanType)).runSync();\n // const kanban = results.find((r) => r.object?.cardView?.target?.query?.type?.endsWith('Message'));\n // invariant(kanban, 'Kanban not found.');\n\n const results = space.db.query(Filter.type(TableType)).runSync();\n const messages = results.find((r) => r.object?.view?.target?.query?.typename?.endsWith('Message'));\n invariant(messages, 'Table not found.');\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind: TriggerKind.Queue,\n ...position({ x: -10, y: -5 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n\n const tableId = canvasModel.createNode(\n createConstant({\n value: DXN.fromLocalObjectId(messages.id).toString(),\n ...position({ x: -10, y: 5 }),\n }),\n );\n const appendToTable = canvasModel.createNode(createAppend(position({ x: 10, y: 0 })));\n\n builder\n .createEdge({ source: tableId.id, target: appendToTable.id, input: 'id' })\n .createEdge({ source: trigger.id, target: appendToTable.id, input: 'items', output: 'item' });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n });\n\n const computeModel = createComputeGraph(canvasModel);\n attachTrigger(functionTrigger, computeModel);\n\n return addToSpace(PresetName.KANBAN_QUEUE, space, canvasModel, computeModel);\n });\n cb?.(objects);\n return objects;\n },\n ],\n ] as [PresetName, ObjectGenerator<any>][],\n});\n\nconst createQueueSinkPreset = <SpecType extends TriggerKind>(\n space: Space,\n triggerKind: SpecType,\n initSpec: (spec: Extract<TriggerType, { kind: SpecType }>) => void,\n triggerOutputName: string,\n) => {\n const canvasModel = CanvasGraphModel.create<ComputeShape>();\n\n const template = canvasModel.createNode(\n createTemplate({\n valueType: 'object',\n ...rawPosition({ centerX: -64, centerY: -79, width: 320, height: 320 }),\n }),\n );\n\n let functionTrigger: FunctionTrigger | undefined;\n canvasModel.builder.call((builder) => {\n const triggerShape = createTrigger({\n spaceId: space.id,\n triggerKind,\n ...rawPosition({ centerX: -578, centerY: -187, height: 320, width: 320 }),\n });\n const trigger = canvasModel.createNode(triggerShape);\n const { queueId } = setupQueue(space, canvasModel, {\n queuePosition: { centerX: -80, centerY: 378, width: 320, height: 448 },\n });\n const append = canvasModel.createNode(\n createAppend(rawPosition({ centerX: 320, centerY: 192, width: 128, height: 122 })),\n );\n const random = canvasModel.createNode(\n createRandom(rawPosition({ centerX: -509, centerY: -30, width: 64, height: 64 })),\n );\n\n builder\n .createEdge({ source: queueId.id, target: append.id, input: 'id' })\n .createEdge({ source: template.id, target: append.id, input: 'items' })\n .createEdge({ source: trigger.id, target: template.id, output: triggerOutputName, input: 'type' })\n .createEdge({\n source: random.id,\n target: template.id,\n input: 'changeId',\n });\n\n functionTrigger = triggerShape.functionTrigger!.target!;\n const triggerSpec = functionTrigger.spec;\n invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');\n initSpec(triggerSpec as any);\n });\n\n const computeModel = createComputeGraph(canvasModel);\n\n const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);\n invariant(templateComputeNode, 'Template compute node was not created.');\n templateComputeNode.value = ['{', ' \"@type\": \"{{type}}\",', ' \"id\": \"@{{changeId}}\"', '}'].join('\\n');\n templateComputeNode.inputSchema = Type.toJsonSchema(Schema.Struct({ type: Schema.String, changeId: Schema.String }));\n attachTrigger(functionTrigger, computeModel);\n\n return { canvasModel, computeModel };\n};\n\nconst addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {\n return space.db.add(\n Obj.make(CanvasBoardType, {\n name,\n computeGraph: Ref.make(compute.root),\n layout: canvas.graph,\n }),\n );\n};\n\nconst setupQueue = (\n space: Space,\n canvasModel: CanvasGraphModel,\n args?: { idPosition?: RawPositionInput; queuePosition?: RawPositionInput },\n) => {\n const queueId = canvasModel.createNode(\n createConstant({\n value: new DXN(DXN.kind.QUEUE, ['data', space.id, Key.ObjectId.random()]).toString(),\n ...(args?.idPosition ? rawPosition(args.idPosition) : position({ x: -18, y: 5, width: 8, height: 6 })),\n }),\n );\n const queue = canvasModel.createNode(\n createQueue(\n args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),\n ),\n );\n canvasModel.createEdge({ source: queueId.id, target: queue.id });\n return { queue, queueId };\n};\n\nconst attachTrigger = (functionTrigger: FunctionTrigger | undefined, computeModel: ComputeGraphModel) => {\n invariant(functionTrigger);\n functionTrigger.function = Ref.make(computeModel.root);\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n functionTrigger.inputNodeId = inputNode.id;\n};\n\ntype RawPositionInput = { centerX: number; centerY: number; width: number; height: number };\n\nconst rawPosition = (args: RawPositionInput) => {\n return { center: { x: args.centerX, y: args.centerY }, size: { width: args.width, height: args.height } };\n};\n\nconst position = (rect: { x: number; y: number; width?: number; height?: number }) => {\n const snap = 32;\n const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });\n const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);\n if (width && height) {\n return { center: { x, y }, size: width && height ? { width, height } : undefined };\n } else {\n return { center: { x, y } };\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SpaceGenerator } from './SpaceGenerator';\n\nexport default SpaceGenerator;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "useMemo", "useState", "createIntent", "useIntentDispatcher", "ComputeGraph", "Filter", "Obj", "Type", "log", "DocumentType", "SheetType", "DiagramType", "SpaceAction", "useClient", "getTypename", "IconButton", "Input", "Toolbar", "useAsyncEffect", "SyntaxHighlighter", "initializeTable", "TableType", "DataType", "jsonKeyReplacer", "sortKeys", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "DXN", "Filter", "Key", "Obj", "Ref", "DocumentType", "createSheet", "SheetType", "CanvasType", "DiagramType", "faker", "TableType", "createView", "DataType", "createAsyncGenerator", "range", "generator", "faker", "createGenerator", "type", "space", "n", "cb", "schema", "db", "schemaRegistry", "query", "typename", "firstOrUndefined", "register", "generate", "createAsyncGenerator", "snapshot", "objects", "createObjects", "tables", "Filter", "TableType", "run", "table", "find", "view", "target", "name", "split", "pop", "createView", "jsonSchema", "add", "Obj", "make", "Ref", "staticGenerators", "Map", "DocumentType", "range", "map", "commerce", "productName", "content", "DataType", "Text", "lorem", "sentences", "DiagramType", "obj", "canvas", "CanvasType", "SheetType", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "addressToA1Notation", "value", "from", "to", "Math", "floor", "random", "createSheet", "ComputeGraph", "model", "ComputeGraphModel", "create", "builder", "createNode", "id", "NODE_INPUT", "DXN", "kind", "QUEUE", "Key", "ObjectId", "toString", "NODE_OUTPUT", "createEdge", "node", "property", "DEFAULT_OUTPUT", "root", "React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "h2", "map", "type", "key", "typename", "IconButton", "variant", "icon", "iconOnly", "Schema", "SchemaAST", "NODE_INPUT", "DXN", "Key", "Obj", "Ref", "Type", "FunctionTrigger", "TriggerKind", "EmailTriggerOutput", "invariant", "Filter", "createAppend", "createChat", "createComputeGraph", "createConstant", "createFunction", "createGpt", "createQueue", "createSurface", "createRandom", "createTemplate", "createText", "createTrigger", "CanvasBoardType", "CanvasGraphModel", "pointMultiply", "pointsToRect", "rectToPoints", "TableType", "range", "PresetName", "generator", "schemas", "types", "Object", "values", "map", "name", "typename", "items", "space", "n", "cb", "objects", "canvasModel", "create", "functionTrigger", "builder", "call", "gpt", "createNode", "position", "x", "y", "triggerShape", "spaceId", "id", "triggerKind", "Webhook", "trigger", "text", "width", "height", "queueId", "setupQueue", "append", "createEdge", "source", "target", "input", "output", "computeModel", "attachTrigger", "addToSpace", "createQueueSinkPreset", "Subscription", "triggerSpec", "filter", "type", "Timer", "cron", "results", "db", "query", "runSync", "emailTable", "find", "r", "object", "view", "endsWith", "template", "valueType", "rawPosition", "centerX", "centerY", "templateContent", "Email", "tableId", "value", "fromLocalObjectId", "toString", "appendToTable", "properties", "getPropertySignatures", "ast", "i", "length", "propName", "push", "templateComputeNode", "nodes", "node", "join", "inputSchema", "toJsonSchema", "chat", "systemPrompt", "idPosition", "queuePosition", "appendToQueue", "extendedSchema", "extend", "Struct", "String", "sourceCurrency", "targetCurrency", "converter", "channelId", "kind", "QUEUE", "ObjectId", "random", "queue", "messages", "Queue", "initSpec", "triggerOutputName", "spec", "changeId", "canvas", "compute", "add", "make", "computeGraph", "root", "layout", "graph", "args", "function", "inputNode", "inputNodeId", "center", "size", "rect", "snap", "undefined", "SpaceGenerator", "space", "onCreateObjects", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "staticTypes", "DocumentType", "DiagramType", "SheetType", "ComputeGraph", "mutableTypes", "DataType", "Organization", "Project", "Person", "Message", "count", "setCount", "useState", "info", "setInfo", "presets", "useMemo", "generator", "typeMap", "addTypes", "schemas", "mutableGenerators", "Map", "map", "type", "typename", "createGenerator", "staticGenerators", "items", "updateInfo", "echoSchema", "db", "schemaRegistry", "query", "run", "staticSchema", "graph", "objects", "Filter", "everything", "objectMap", "sortKeys", "reduce", "obj", "getTypename", "schema", "static", "length", "mutable", "useAsyncEffect", "handleCreateData", "useCallback", "constructor", "get", "handleLoadTables", "input", "document", "createElement", "accept", "onchange", "e", "file", "target", "files", "content", "text", "data", "JSON", "parse", "register", "Type", "toEffectSchema", "Promise", "all", "parts", "split", "name", "table", "Obj", "make", "TableType", "threads", "initializeTable", "createIntent", "SpaceAction", "AddObject", "object", "id", "fields", "find", "s", "version", "log", "warn", "add", "err", "catch", "click", "React", "div", "role", "className", "Toolbar", "Root", "classNames", "IconButton", "icon", "iconOnly", "label", "onClick", "Separator", "variant", "Input", "TextInput", "min", "max", "placeholder", "size", "value", "onChange", "ev", "parseInt", "SchemaTable", "types", "SyntaxHighlighter", "language", "stringify", "jsonKeyReplacer", "truncate", "SpaceGenerator"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { contributes, Capabilities, type PluginContext } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\nimport { getActiveSpace, SPACE_PLUGIN } from '@dxos/plugin-space';\n\nimport { DEBUG_PLUGIN } from '../meta';\nimport { Devtools } from '../types';\n\nconst DEVTOOLS_TYPE = 'dxos.org/plugin/debug/devtools';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n // Devtools node.\n createExtension({\n id: 'dxos.org/plugin/debug/devtools',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.id === ROOT_ID || node.type === `${SPACE_PLUGIN}/settings` ? Option.some(node) : Option.none(),\n ),\n Option.map((node) => {\n const space = get(rxFromSignal(() => getActiveSpace(context)));\n\n return [\n {\n id: `${Devtools.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['devtools label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hammer--regular',\n disposition: 'pin-end',\n position: 'fallback',\n },\n nodes: [\n ...(space && node.type === `${SPACE_PLUGIN}/settings`\n ? [\n {\n id: `debug-${node.id}`,\n type: 'dxos.org/plugin/debug/space',\n data: { space, type: 'dxos.org/plugin/debug/space' },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n },\n },\n ]\n : []),\n {\n id: `${Devtools.Client.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['client label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--users--regular',\n },\n nodes: [\n {\n id: `${Devtools.Client.Config}-${node.id}`,\n data: Devtools.Client.Config,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['config label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n {\n id: `${Devtools.Client.Storage}-${node.id}`,\n data: Devtools.Client.Storage,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['storage label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hard-drives--regular',\n },\n },\n {\n id: `${Devtools.Client.Logs}-${node.id}`,\n data: Devtools.Client.Logs,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['logs label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--file-text--regular',\n },\n },\n {\n id: `${Devtools.Client.Diagnostics}-${node.id}`,\n data: Devtools.Client.Diagnostics,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['diagnostics label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--chart-line--regular',\n },\n },\n {\n id: `${Devtools.Client.Tracing}-${node.id}`,\n data: Devtools.Client.Tracing,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['tracing label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--fire--regular',\n },\n },\n ],\n },\n {\n id: `${Devtools.Halo.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['halo label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--identification-badge--regular',\n },\n nodes: [\n {\n id: `${Devtools.Halo.Identity}-${node.id}`,\n data: Devtools.Halo.Identity,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['identity label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--identification-badge--regular',\n },\n },\n {\n id: `${Devtools.Halo.Devices}-${node.id}`,\n data: Devtools.Halo.Devices,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['devices label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--devices--regular',\n },\n },\n {\n id: `${Devtools.Halo.Keyring}-${node.id}`,\n data: Devtools.Halo.Keyring,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['keyring label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--key--regular',\n },\n },\n {\n id: `${Devtools.Halo.Credentials}-${node.id}`,\n data: Devtools.Halo.Credentials,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['credentials label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--credit-card--regular',\n },\n },\n ],\n },\n {\n id: `${Devtools.Echo.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['echo label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--database--regular',\n },\n nodes: [\n {\n id: `${Devtools.Echo.Spaces}-${node.id}`,\n data: Devtools.Echo.Spaces,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['spaces label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--graph--regular',\n },\n },\n {\n id: `${Devtools.Echo.Space}-${node.id}`,\n data: Devtools.Echo.Space,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['space label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--planet--regular',\n },\n },\n {\n id: `${Devtools.Echo.Feeds}-${node.id}`,\n data: Devtools.Echo.Feeds,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['feeds label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--list-bullets--regular',\n },\n },\n {\n id: `${Devtools.Echo.Objects}-${node.id}`,\n data: Devtools.Echo.Objects,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['objects label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--cube--regular',\n },\n },\n {\n id: `${Devtools.Echo.Schema}-${node.id}`,\n data: Devtools.Echo.Schema,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['schema label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--database--regular',\n },\n },\n {\n id: `${Devtools.Echo.Automerge}-${node.id}`,\n data: Devtools.Echo.Automerge,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['automerge label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--gear-six--regular',\n },\n },\n {\n id: `${Devtools.Echo.Queues}-${node.id}`,\n data: Devtools.Echo.Queues,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['queues label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--queue--regular',\n },\n },\n {\n id: `${Devtools.Echo.Members}-${node.id}`,\n data: Devtools.Echo.Members,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['members label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--users--regular',\n },\n },\n {\n id: `${Devtools.Echo.Metadata}-${node.id}`,\n data: Devtools.Echo.Metadata,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['metadata label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--hard-drive--regular',\n },\n },\n ],\n },\n {\n id: `${Devtools.Mesh.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['mesh label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--graph--regular',\n },\n nodes: [\n {\n id: `${Devtools.Mesh.Signal}-${node.id}`,\n data: Devtools.Mesh.Signal,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['signal label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--wifi-high--regular',\n },\n },\n {\n id: `${Devtools.Mesh.Swarm}-${node.id}`,\n data: Devtools.Mesh.Swarm,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['swarm label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--users-three--regular',\n },\n },\n {\n id: `${Devtools.Mesh.Network}-${node.id}`,\n data: Devtools.Mesh.Network,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['network label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--polygon--regular',\n },\n },\n ],\n },\n // TODO(wittjosiah): Remove?\n // {\n // id: `${prefix}-${Devtools.Agent.id}`,\n // data: null,\n // type: DEVTOOLS_TYPE,\n // properties: {\n // label: ['agent label', { ns: DEBUG_PLUGIN }],\n // icon: 'ph--robot--regular',\n // },\n // nodes: [\n // {\n // id: `${prefix}-${Devtools.Agent.Dashboard}`,\n // data: Devtools.Agent.Dashboard,\n // type: DEVTOOLS_TYPE,\n // properties: {\n // label: ['dashboard label', { ns: DEBUG_PLUGIN }],\n // icon: 'ph--computer-tower--regular',\n // },\n // },\n // ],\n // },\n {\n id: `${Devtools.Edge.id}-${node.id}`,\n data: null,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['edge label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--cloud--regular',\n },\n nodes: [\n {\n id: `${Devtools.Edge.Dashboard}-${node.id}`,\n data: Devtools.Edge.Dashboard,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['dashboard label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--computer-tower--regular',\n },\n },\n {\n id: `${Devtools.Edge.Workflows}-${node.id}`,\n data: Devtools.Edge.Workflows,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['workflows label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--function--regular',\n },\n },\n {\n id: `${Devtools.Edge.Traces}-${node.id}`,\n data: Devtools.Edge.Traces,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['traces label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--line-segments--regular',\n },\n },\n {\n id: `${Devtools.Edge.Testing}-${node.id}`,\n data: Devtools.Edge.Testing,\n type: DEVTOOLS_TYPE,\n properties: {\n label: ['testing label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--flask--regular',\n },\n },\n ],\n },\n ],\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Debug node.\n createExtension({\n id: 'dxos.org/plugin/debug/debug',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.flatMap(() => {\n const [graph] = get(context.capabilities(Capabilities.AppGraph));\n return graph ? Option.some(graph) : Option.none();\n }),\n Option.flatMap((graph) => {\n // TODO(wittjosiah): Plank is currently blank. Remove?\n // const settings = context\n // .requestCapabilities(Capabilities.SettingsStore)[0]\n // ?.getStore<DebugSettingsProps>(DEBUG_PLUGIN)?.value;\n // return !!settings?.debug && node.id === 'root';\n return Option.none();\n }),\n Option.map((graph) => [\n {\n id: 'dxos.org/plugin/debug/debug',\n type: 'dxos.org/plugin/debug/debug',\n data: { graph },\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n disposition: 'navigation',\n icon: 'ph--bug--regular',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Debug object companion.\n createExtension({\n id: `${DEBUG_PLUGIN}/debug-object`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'debug'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'debug',\n properties: {\n label: ['debug label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--bug--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Devtools deck companion.\n createExtension({\n id: `${DEBUG_PLUGIN}/devtools-overview`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'devtools'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['devtools overview label', { ns: DEBUG_PLUGIN }],\n icon: 'ph--equalizer--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "Option", "pipe", "contributes", "Capabilities", "Obj", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "PLANK_COMPANION_TYPE", "createExtension", "ROOT_ID", "rxFromSignal", "getActiveSpace", "SPACE_PLUGIN", "DEVTOOLS_TYPE", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "type", "SPACE_PLUGIN", "some", "none", "map", "space", "rxFromSignal", "getActiveSpace", "Devtools", "data", "properties", "label", "ns", "DEBUG_PLUGIN", "icon", "disposition", "position", "nodes", "Client", "Config", "Storage", "Logs", "Diagnostics", "Tracing", "Halo", "Identity", "Devices", "Keyring", "Credentials", "Echo", "Spaces", "Space", "Feeds", "Objects", "Schema", "Automerge", "Queues", "Members", "Metadata", "Mesh", "Signal", "Swarm", "Network", "Edge", "Dashboard", "Workflows", "Traces", "Testing", "getOrElse", "graph", "capabilities", "AppGraph", "Obj", "isObject", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "DECK_COMPANION_TYPE"]
7
- }