@dxos/plugin-debug 0.7.5-labs.5f04cf6 → 0.7.5-labs.e27f9b9

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 (41) hide show
  1. package/dist/lib/browser/SpaceGenerator-4VO7E5P2.mjs +846 -0
  2. package/dist/lib/browser/SpaceGenerator-4VO7E5P2.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-builder-FXELWOFS.mjs → app-graph-builder-IMWFZ3OZ.mjs} +7 -3
  4. package/dist/lib/browser/app-graph-builder-IMWFZ3OZ.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +3 -9
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/{react-surface-ACHNR2UU.mjs → react-surface-XDHEQY27.mjs} +54 -51
  9. package/dist/lib/browser/react-surface-XDHEQY27.mjs.map +7 -0
  10. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  11. package/dist/types/src/capabilities/app-graph-builder.d.ts +22 -22
  12. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  13. package/dist/types/src/capabilities/index.d.ts +26 -31
  14. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  15. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  16. package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
  17. package/dist/types/src/components/DebugStatus.d.ts.map +1 -1
  18. package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
  19. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  20. package/dist/types/src/components/SpaceGenerator/presets.d.ts +17 -0
  21. package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -0
  22. package/dist/types/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +47 -46
  24. package/src/DebugPlugin.tsx +2 -7
  25. package/src/capabilities/app-graph-builder.ts +6 -3
  26. package/src/capabilities/index.ts +0 -1
  27. package/src/capabilities/react-surface.tsx +7 -15
  28. package/src/components/DebugSettings.tsx +70 -70
  29. package/src/components/DebugStatus.tsx +17 -21
  30. package/src/components/SpaceGenerator/ObjectGenerator.tsx +0 -81
  31. package/src/components/SpaceGenerator/SpaceGenerator.tsx +7 -6
  32. package/src/components/SpaceGenerator/presets.ts +322 -0
  33. package/dist/lib/browser/SpaceGenerator-YNT3WDFI.mjs +0 -479
  34. package/dist/lib/browser/SpaceGenerator-YNT3WDFI.mjs.map +0 -7
  35. package/dist/lib/browser/app-graph-builder-FXELWOFS.mjs.map +0 -7
  36. package/dist/lib/browser/react-context-OZU6J7G3.mjs +0 -37
  37. package/dist/lib/browser/react-context-OZU6J7G3.mjs.map +0 -7
  38. package/dist/lib/browser/react-surface-ACHNR2UU.mjs.map +0 -7
  39. package/dist/types/src/capabilities/react-context.d.ts +0 -8
  40. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  41. package/src/capabilities/react-context.tsx +0 -38
@@ -1,479 +0,0 @@
1
- // packages/plugins/plugin-debug/src/components/SpaceGenerator/SpaceGenerator.tsx
2
- import React2, { useCallback, useMemo, useState } from "react";
3
- import { ComputeGraph as ComputeGraph2 } from "@dxos/conductor";
4
- import { DocumentType as DocumentType2 } from "@dxos/plugin-markdown/types";
5
- import { SheetType as SheetType2 } from "@dxos/plugin-sheet/types";
6
- import { DiagramType as DiagramType2 } from "@dxos/plugin-sketch/types";
7
- import { useClient } from "@dxos/react-client";
8
- import { getTypename } from "@dxos/react-client/echo";
9
- import { IconButton as IconButton2, Input, Toolbar, useAsyncEffect } from "@dxos/react-ui";
10
- import { CanvasBoardType as CanvasBoardType2 } from "@dxos/react-ui-canvas-editor";
11
- import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
12
- import { Testing } from "@dxos/schema/testing";
13
- import { jsonKeyReplacer, sortKeys } from "@dxos/util";
14
-
15
- // packages/plugins/plugin-debug/src/components/SpaceGenerator/ObjectGenerator.tsx
16
- import { addressToA1Notation } from "@dxos/compute";
17
- import { ComputeGraph, ComputeGraphModel, DEFAULT_OUTPUT, NODE_INPUT, NODE_OUTPUT } from "@dxos/conductor";
18
- import { ObjectId } from "@dxos/echo-schema";
19
- import { TriggerKind } from "@dxos/functions/types";
20
- import { invariant } from "@dxos/invariant";
21
- import { DXN, SpaceId } from "@dxos/keys";
22
- import { create, makeRef } from "@dxos/live-object";
23
- import { DocumentType } from "@dxos/plugin-markdown/types";
24
- import { createSheet } from "@dxos/plugin-sheet/types";
25
- import { SheetType } from "@dxos/plugin-sheet/types";
26
- import { CanvasType, DiagramType } from "@dxos/plugin-sketch/types";
27
- import { faker } from "@dxos/random";
28
- import { Filter } from "@dxos/react-client/echo";
29
- import { createAppend, createComputeGraph, createConstant, createGpt, createQueue, createText, createTrigger } from "@dxos/react-ui-canvas-compute";
30
- import { pointMultiply, pointsToRect, rectToPoints, CanvasBoardType, CanvasGraphModel } from "@dxos/react-ui-canvas-editor";
31
- import { TableType } from "@dxos/react-ui-table";
32
- import { createView, TextType } from "@dxos/schema";
33
- import { createAsyncGenerator } from "@dxos/schema/testing";
34
- import { range } from "@dxos/util";
35
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-debug/src/components/SpaceGenerator/ObjectGenerator.tsx";
36
- var generator = faker;
37
- var staticGenerators = /* @__PURE__ */ new Map([
38
- [
39
- DocumentType.typename,
40
- async (space, n, cb) => {
41
- const objects = range(n).map(() => {
42
- return space.db.add(create(DocumentType, {
43
- name: faker.commerce.productName(),
44
- content: makeRef(create(TextType, {
45
- content: faker.lorem.sentences(5)
46
- })),
47
- threads: []
48
- }));
49
- });
50
- cb?.(objects);
51
- return objects;
52
- }
53
- ],
54
- [
55
- DiagramType.typename,
56
- async (space, n, cb) => {
57
- const objects = range(n).map(() => {
58
- const obj = space.db.add(create(DiagramType, {
59
- name: faker.commerce.productName(),
60
- canvas: makeRef(create(CanvasType, {
61
- content: {}
62
- }))
63
- }));
64
- return obj;
65
- });
66
- cb?.(objects);
67
- return objects;
68
- }
69
- ],
70
- // TODO(burdon): Create unit tests.
71
- [
72
- SheetType.typename,
73
- async (space, n, cb) => {
74
- const objects = range(n).map(() => {
75
- const cells = {};
76
- const year = (/* @__PURE__ */ new Date()).getFullYear();
77
- const cols = 4;
78
- const rows = 16;
79
- for (let col = 1; col <= cols; col++) {
80
- for (let row = 1; row <= rows; row++) {
81
- const cell = addressToA1Notation({
82
- col,
83
- row
84
- });
85
- if (row === 1) {
86
- cells[cell] = {
87
- value: `${year} Q${col}`
88
- };
89
- } else if (row === rows) {
90
- const from = addressToA1Notation({
91
- col,
92
- row: 2
93
- });
94
- const to = addressToA1Notation({
95
- col,
96
- row: rows - 1
97
- });
98
- cells[cell] = {
99
- value: `=SUM(${from}:${to})`
100
- };
101
- } else if (row > 2 && row < rows - 1) {
102
- cells[cell] = {
103
- value: Math.floor(Math.random() * 1e4)
104
- };
105
- }
106
- }
107
- }
108
- return space.db.add(createSheet({
109
- name: faker.commerce.productName(),
110
- cells
111
- }));
112
- });
113
- cb?.(objects);
114
- return objects;
115
- }
116
- ],
117
- [
118
- ComputeGraph.typename,
119
- async (space, n, cb) => {
120
- const objects = range(n, () => {
121
- const model = ComputeGraphModel.create();
122
- model.builder.createNode({
123
- id: "gpt-INPUT",
124
- type: NODE_INPUT
125
- }).createNode({
126
- id: "gpt-GPT",
127
- type: "gpt"
128
- }).createNode({
129
- id: "gpt-QUEUE_ID",
130
- type: "constant",
131
- value: new DXN(DXN.kind.QUEUE, [
132
- "data",
133
- SpaceId.random(),
134
- ObjectId.random()
135
- ]).toString()
136
- }).createNode({
137
- id: "gpt-APPEND",
138
- type: "append"
139
- }).createNode({
140
- id: "gpt-OUTPUT",
141
- type: NODE_OUTPUT
142
- }).createEdge({
143
- node: "gpt-INPUT",
144
- property: "prompt"
145
- }, {
146
- node: "gpt-GPT",
147
- property: "prompt"
148
- }).createEdge({
149
- node: "gpt-GPT",
150
- property: "text"
151
- }, {
152
- node: "gpt-OUTPUT",
153
- property: "text"
154
- }).createEdge({
155
- node: "gpt-QUEUE_ID",
156
- property: DEFAULT_OUTPUT
157
- }, {
158
- node: "gpt-APPEND",
159
- property: "id"
160
- }).createEdge({
161
- node: "gpt-GPT",
162
- property: "messages"
163
- }, {
164
- node: "gpt-APPEND",
165
- property: "items"
166
- }).createEdge({
167
- node: "gpt-QUEUE_ID",
168
- property: DEFAULT_OUTPUT
169
- }, {
170
- node: "gpt-OUTPUT",
171
- property: "queue"
172
- });
173
- return space.db.add(model.root);
174
- });
175
- cb?.(objects);
176
- return objects;
177
- }
178
- ],
179
- [
180
- CanvasBoardType.typename,
181
- async (space, n, cb) => {
182
- const objects = range(n, () => {
183
- const canvasModel = CanvasGraphModel.create();
184
- let functionTrigger;
185
- canvasModel.builder.call((builder) => {
186
- const gpt = canvasModel.createNode(createGpt(position({
187
- x: 0,
188
- y: -14
189
- })));
190
- const triggerShape = createTrigger({
191
- triggerKind: TriggerKind.Webhook,
192
- ...position({
193
- x: -18,
194
- y: -2
195
- })
196
- });
197
- const trigger = canvasModel.createNode(triggerShape);
198
- const text = canvasModel.createNode(createText(position({
199
- x: 19,
200
- y: 3,
201
- width: 10,
202
- height: 10
203
- })));
204
- const queueId = canvasModel.createNode(createConstant({
205
- value: new DXN(DXN.kind.QUEUE, [
206
- "data",
207
- SpaceId.random(),
208
- ObjectId.random()
209
- ]).toString(),
210
- ...position({
211
- x: -18,
212
- y: 5,
213
- width: 8,
214
- height: 6
215
- })
216
- }));
217
- const queue = canvasModel.createNode(createQueue(position({
218
- x: -3,
219
- y: 3,
220
- width: 14,
221
- height: 10
222
- })));
223
- const append = canvasModel.createNode(createAppend(position({
224
- x: 10,
225
- y: 6
226
- })));
227
- builder.createEdge({
228
- source: trigger.id,
229
- target: gpt.id,
230
- input: "prompt",
231
- output: "bodyText"
232
- }).createEdge({
233
- source: gpt.id,
234
- target: text.id,
235
- output: "text"
236
- }).createEdge({
237
- source: queueId.id,
238
- target: queue.id
239
- }).createEdge({
240
- source: queueId.id,
241
- target: append.id,
242
- input: "id"
243
- }).createEdge({
244
- source: gpt.id,
245
- target: append.id,
246
- output: "messages",
247
- input: "items"
248
- });
249
- functionTrigger = triggerShape.functionTrigger.target;
250
- });
251
- const computeModel = createComputeGraph(canvasModel);
252
- const computeGraph = computeModel.root;
253
- invariant(functionTrigger, void 0, {
254
- F: __dxlog_file,
255
- L: 192,
256
- S: void 0,
257
- A: [
258
- "functionTrigger",
259
- ""
260
- ]
261
- });
262
- functionTrigger.function = DXN.fromLocalObjectId(computeGraph.id).toString();
263
- functionTrigger.meta ??= {};
264
- const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT);
265
- functionTrigger.meta.computeNodeId = inputNode.id;
266
- return space.db.add(create(CanvasBoardType, {
267
- computeGraph: makeRef(computeGraph),
268
- layout: canvasModel.graph
269
- }));
270
- });
271
- cb?.(objects);
272
- return objects;
273
- }
274
- ]
275
- ]);
276
- var position = (rect) => {
277
- const snap = 32;
278
- const [center, size] = rectToPoints({
279
- width: 0,
280
- height: 0,
281
- ...rect
282
- });
283
- const { x, y, width, height } = pointsToRect([
284
- pointMultiply(center, snap),
285
- pointMultiply(size, snap)
286
- ]);
287
- if (width && height) {
288
- return {
289
- center: {
290
- x,
291
- y
292
- },
293
- size: width && height ? {
294
- width,
295
- height
296
- } : void 0
297
- };
298
- } else {
299
- return {
300
- center: {
301
- x,
302
- y
303
- }
304
- };
305
- }
306
- };
307
- var createGenerator = (type) => {
308
- return async (space, n, cb) => {
309
- const schema = await space.db.schemaRegistry.query({
310
- typename: type.typename
311
- }).firstOrUndefined() ?? (await space.db.schemaRegistry.register([
312
- type
313
- ]))[0];
314
- const generate = createAsyncGenerator(generator, schema.getSchemaSnapshot(), {
315
- db: space.db
316
- });
317
- const objects = await generate.createObjects(n);
318
- const { objects: tables } = await space.db.query(Filter.schema(TableType)).run();
319
- const table = tables.find((table2) => table2.view?.target?.query?.type === type.typename);
320
- if (!table) {
321
- const name = type.typename.split("/").pop() ?? type.typename;
322
- const view = createView({
323
- name,
324
- typename: type.typename,
325
- jsonSchema: schema.jsonSchema
326
- });
327
- const table2 = space.db.add(create(TableType, {
328
- name,
329
- view: makeRef(view)
330
- }));
331
- cb?.([
332
- table2
333
- ]);
334
- }
335
- return objects;
336
- };
337
- };
338
-
339
- // packages/plugins/plugin-debug/src/components/SpaceGenerator/SchemaTable.tsx
340
- import React from "react";
341
- import { IconButton } from "@dxos/react-ui";
342
- var SchemaTable = ({ types, objects = {}, label, onClick }) => {
343
- return /* @__PURE__ */ React.createElement("div", {
344
- className: "grid grid-cols-[1fr_80px_40px] gap-1 overflow-hidden"
345
- }, /* @__PURE__ */ React.createElement("div", {
346
- className: "grid grid-cols-subgrid col-span-3"
347
- }, /* @__PURE__ */ React.createElement("div", {
348
- className: "px-2 text-sm text-primary-500"
349
- }, label), /* @__PURE__ */ React.createElement("div", {
350
- className: "px-2 text-xs text-subdued text-right"
351
- }, "count")), types.map((type) => /* @__PURE__ */ React.createElement("div", {
352
- key: type.typename,
353
- className: "grid grid-cols-subgrid col-span-3 items-center"
354
- }, /* @__PURE__ */ React.createElement("div", {
355
- className: "px-2 text-sm font-mono text-green-500"
356
- }, type.typename), /* @__PURE__ */ React.createElement("div", {
357
- className: "px-2 text-right font-mono"
358
- }, objects[type.typename] ?? 0), /* @__PURE__ */ React.createElement(IconButton, {
359
- variant: "ghost",
360
- icon: "ph--plus--regular",
361
- iconOnly: true,
362
- label: "Create data",
363
- onClick: () => onClick(type.typename)
364
- }))));
365
- };
366
-
367
- // packages/plugins/plugin-debug/src/components/SpaceGenerator/SpaceGenerator.tsx
368
- var SpaceGenerator = ({ space, onCreateObjects }) => {
369
- const client = useClient();
370
- const staticTypes = [
371
- DocumentType2,
372
- DiagramType2,
373
- SheetType2,
374
- ComputeGraph2,
375
- CanvasBoardType2
376
- ];
377
- const mutableTypes = [
378
- Testing.OrgType,
379
- Testing.ProjectType,
380
- Testing.ContactType
381
- ];
382
- const [count, setCount] = useState(1);
383
- const [info, setInfo] = useState({});
384
- const typeMap = useMemo(() => {
385
- client.addTypes(staticTypes);
386
- const mutableGenerators = new Map(mutableTypes.map((type) => [
387
- type.typename,
388
- createGenerator(type)
389
- ]));
390
- return new Map([
391
- ...staticGenerators,
392
- ...mutableGenerators
393
- ]);
394
- }, [
395
- client,
396
- mutableTypes
397
- ]);
398
- const updateInfo = async () => {
399
- const echoSchema = await space.db.schemaRegistry.query().run();
400
- const staticSchema = space.db.graph.schemaRegistry.schemas;
401
- const { objects } = await space.db.query().run();
402
- const objectMap = sortKeys(objects.reduce((map, obj) => {
403
- const type = getTypename(obj);
404
- if (type) {
405
- const count2 = map[type] ?? 0;
406
- map[type] = count2 + 1;
407
- }
408
- return map;
409
- }, {}));
410
- setInfo({
411
- schema: {
412
- static: staticSchema.length,
413
- mutable: echoSchema.length
414
- },
415
- objects: objectMap
416
- });
417
- };
418
- useAsyncEffect(updateInfo, [
419
- space
420
- ]);
421
- const handleCreateData = useCallback(async (typename) => {
422
- const constructor = typeMap.get(typename);
423
- if (constructor) {
424
- await constructor(space, count, onCreateObjects);
425
- await updateInfo();
426
- }
427
- }, [
428
- typeMap,
429
- count
430
- ]);
431
- return /* @__PURE__ */ React2.createElement("div", {
432
- role: "none",
433
- className: "flex flex-col divide-y divide-separator"
434
- }, /* @__PURE__ */ React2.createElement(Toolbar.Root, {
435
- classNames: "p-1"
436
- }, /* @__PURE__ */ React2.createElement(IconButton2, {
437
- icon: "ph--arrow-clockwise--regular",
438
- iconOnly: true,
439
- label: "Refresh",
440
- onClick: updateInfo
441
- }), /* @__PURE__ */ React2.createElement(Toolbar.Separator, {
442
- variant: "gap"
443
- }), /* @__PURE__ */ React2.createElement("div", {
444
- className: "flex"
445
- }, /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.TextInput, {
446
- type: "number",
447
- min: 1,
448
- max: 100,
449
- placeholder: "Count",
450
- classNames: "w-[80px]",
451
- value: count,
452
- onChange: (ev) => setCount(parseInt(ev.target.value))
453
- })))), /* @__PURE__ */ React2.createElement(SchemaTable, {
454
- types: staticTypes,
455
- objects: info.objects,
456
- label: "Static Types",
457
- onClick: handleCreateData
458
- }), /* @__PURE__ */ React2.createElement(SchemaTable, {
459
- types: mutableTypes,
460
- objects: info.objects,
461
- label: "Mutable Types",
462
- onClick: handleCreateData
463
- }), /* @__PURE__ */ React2.createElement(SyntaxHighlighter, {
464
- classNames: "flex text-xs",
465
- language: "json"
466
- }, JSON.stringify({
467
- space,
468
- ...info
469
- }, jsonKeyReplacer({
470
- truncate: true
471
- }), 2)));
472
- };
473
-
474
- // packages/plugins/plugin-debug/src/components/SpaceGenerator/index.ts
475
- var SpaceGenerator_default = SpaceGenerator;
476
- export {
477
- SpaceGenerator_default as default
478
- };
479
- //# sourceMappingURL=SpaceGenerator-YNT3WDFI.mjs.map
@@ -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/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { type ReactiveObject } from '@dxos/live-object';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { SheetType } from '@dxos/plugin-sheet/types';\nimport { DiagramType } from '@dxos/plugin-sketch/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 { CanvasBoardType } from '@dxos/react-ui-canvas-editor';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { Testing } from '@dxos/schema/testing';\nimport { jsonKeyReplacer, sortKeys } from '@dxos/util';\n\nimport { type ObjectGenerator, createGenerator, staticGenerators } from './ObjectGenerator';\nimport { SchemaTable } from './SchemaTable';\n\nexport type SpaceGeneratorProps = {\n space: Space;\n onCreateObjects?: (objects: ReactiveObject<any>[]) => void;\n};\n\nexport const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps) => {\n const client = useClient();\n const staticTypes = [DocumentType, DiagramType, SheetType, ComputeGraph, CanvasBoardType]; // TODO(burdon): Make extensible.\n const mutableTypes = [Testing.OrgType, Testing.ProjectType, Testing.ContactType];\n const [count, setCount] = useState(1);\n const [info, setInfo] = useState<any>({});\n\n // Create type generators.\n const typeMap = useMemo(() => {\n client.addTypes(staticTypes);\n const mutableGenerators = new Map<string, ObjectGenerator<any>>(\n mutableTypes.map((type) => [type.typename, createGenerator(type)]),\n );\n\n return new Map([...staticGenerators, ...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().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 return (\n <div role='none' className='flex flex-col divide-y divide-separator'>\n <Toolbar.Root classNames='p-1'>\n <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />\n <Toolbar.Separator variant='gap' />\n <div className='flex'>\n <Input.Root>\n <Input.TextInput\n type='number'\n min={1}\n max={100}\n placeholder={'Count'}\n classNames='w-[80px]'\n value={count}\n onChange={(ev) => setCount(parseInt(ev.target.value))}\n />\n </Input.Root>\n </div>\n </Toolbar.Root>\n\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\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify({ space, ...info }, jsonKeyReplacer({ truncate: true }), 2)}\n </SyntaxHighlighter>\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 { ObjectId, type BaseObject, type TypedObject } from '@dxos/echo-schema';\nimport { type FunctionTrigger, TriggerKind } from '@dxos/functions/types';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, SpaceId } from '@dxos/keys';\nimport { create, makeRef, type ReactiveObject } from '@dxos/live-object';\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 { Filter, type Space } from '@dxos/react-client/echo';\nimport {\n type ComputeShape,\n createAppend,\n createComputeGraph,\n createConstant,\n createGpt,\n createQueue,\n createText,\n createTrigger,\n} from '@dxos/react-ui-canvas-compute';\nimport {\n pointMultiply,\n pointsToRect,\n rectToPoints,\n CanvasBoardType,\n CanvasGraphModel,\n} from '@dxos/react-ui-canvas-editor';\nimport { TableType } from '@dxos/react-ui-table';\nimport { createView, TextType } from '@dxos/schema';\nimport { createAsyncGenerator, type ValueGenerator } from '@dxos/schema/testing';\nimport { range } from '@dxos/util';\n\nconst generator: ValueGenerator = faker as any;\n\n// TODO(burdon): Add objects to collections.\n// TODO(burdon): Create docs.\n// TODO(burdon): Create sketches.\n// TODO(burdon): Create sheets.\n// TODO(burdon): Create comments.\n// TODO(burdon): Reuse in testbench-app.\n// TODO(burdon): Mutator running in background (factor out): from echo-generator.\n\nexport type ObjectGenerator<T extends BaseObject> = (\n space: Space,\n n: number,\n cb?: (objects: ReactiveObject<any>[]) => void,\n) => Promise<ReactiveObject<T>[]>;\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 create(DocumentType, {\n name: faker.commerce.productName(),\n content: makeRef(create(TextType, { content: faker.lorem.sentences(5) })),\n threads: [],\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 create(DiagramType, {\n name: faker.commerce.productName(),\n canvas: makeRef(create(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', SpaceId.random(), 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 CanvasBoardType.typename,\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({ triggerKind: TriggerKind.Webhook, ...position({ x: -18, y: -2 }) });\n const trigger = canvasModel.createNode(triggerShape);\n const text = canvasModel.createNode(createText(position({ x: 19, y: 3, width: 10, height: 10 })));\n const queueId = canvasModel.createNode(\n createConstant({\n value: new DXN(DXN.kind.QUEUE, ['data', SpaceId.random(), ObjectId.random()]).toString(),\n ...position({ x: -18, y: 5, width: 8, height: 6 }),\n }),\n );\n const queue = canvasModel.createNode(createQueue(position({ x: -3, y: 3, width: 14, height: 10 })));\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: queue.id })\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 const computeGraph = computeModel.root;\n\n invariant(functionTrigger);\n functionTrigger.function = DXN.fromLocalObjectId(computeGraph.id).toString();\n functionTrigger.meta ??= {};\n const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;\n functionTrigger.meta.computeNodeId = inputNode.id;\n\n return space.db.add(\n create(CanvasBoardType, {\n computeGraph: makeRef(computeGraph),\n layout: canvasModel.graph,\n }),\n );\n });\n cb?.(objects);\n return objects;\n },\n ],\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\nexport const createGenerator = <T extends BaseObject>(type: TypedObject<T>): ObjectGenerator<T> => {\n return async (\n space: Space,\n n: number,\n cb?: (objects: ReactiveObject<any>[]) => void,\n ): Promise<ReactiveObject<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.getSchemaSnapshot(), { 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.schema(TableType)).run();\n const table = tables.find((table) => table.view?.target?.query?.type === 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 const table = space.db.add(create(TableType, { name, view: makeRef(view) }));\n cb?.([table]);\n }\n\n return objects;\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-hidden'>\n <div className='grid grid-cols-subgrid col-span-3'>\n <div className='px-2 text-sm text-primary-500'>{label}</div>\n <div className='px-2 text-xs text-subdued text-right'>count</div>\n </div>\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-green-500'>{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 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", "ComputeGraph", "DocumentType", "SheetType", "DiagramType", "useClient", "getTypename", "IconButton", "Input", "Toolbar", "useAsyncEffect", "CanvasBoardType", "SyntaxHighlighter", "Testing", "jsonKeyReplacer", "sortKeys", "addressToA1Notation", "ComputeGraph", "ComputeGraphModel", "DEFAULT_OUTPUT", "NODE_INPUT", "NODE_OUTPUT", "ObjectId", "TriggerKind", "invariant", "DXN", "SpaceId", "create", "makeRef", "DocumentType", "createSheet", "SheetType", "CanvasType", "DiagramType", "faker", "Filter", "createAppend", "createComputeGraph", "createConstant", "createGpt", "createQueue", "createText", "createTrigger", "pointMultiply", "pointsToRect", "rectToPoints", "CanvasBoardType", "CanvasGraphModel", "TableType", "createView", "TextType", "createAsyncGenerator", "range", "generator", "staticGenerators", "Map", "typename", "space", "n", "cb", "objects", "map", "db", "add", "name", "commerce", "productName", "content", "lorem", "sentences", "threads", "obj", "canvas", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "value", "from", "to", "Math", "floor", "random", "model", "builder", "createNode", "id", "type", "kind", "QUEUE", "toString", "createEdge", "node", "property", "root", "canvasModel", "functionTrigger", "call", "gpt", "position", "x", "y", "triggerShape", "triggerKind", "Webhook", "trigger", "text", "width", "height", "queueId", "queue", "append", "source", "target", "input", "output", "computeModel", "computeGraph", "function", "fromLocalObjectId", "meta", "inputNode", "nodes", "find", "computeNodeId", "layout", "graph", "rect", "snap", "center", "size", "undefined", "createGenerator", "schema", "schemaRegistry", "query", "firstOrUndefined", "register", "generate", "getSchemaSnapshot", "createObjects", "tables", "run", "table", "view", "split", "pop", "jsonSchema", "React", "IconButton", "SchemaTable", "types", "objects", "label", "onClick", "div", "className", "map", "type", "key", "typename", "IconButton", "variant", "icon", "iconOnly", "SpaceGenerator", "space", "onCreateObjects", "client", "useClient", "staticTypes", "DocumentType", "DiagramType", "SheetType", "ComputeGraph", "CanvasBoardType", "mutableTypes", "Testing", "OrgType", "ProjectType", "ContactType", "count", "setCount", "useState", "info", "setInfo", "typeMap", "useMemo", "addTypes", "mutableGenerators", "Map", "map", "type", "typename", "createGenerator", "staticGenerators", "updateInfo", "echoSchema", "db", "schemaRegistry", "query", "run", "staticSchema", "graph", "schemas", "objects", "objectMap", "sortKeys", "reduce", "obj", "getTypename", "schema", "static", "length", "mutable", "useAsyncEffect", "handleCreateData", "useCallback", "constructor", "get", "React", "div", "role", "className", "Toolbar", "Root", "classNames", "IconButton", "icon", "iconOnly", "label", "onClick", "Separator", "variant", "Input", "TextInput", "min", "max", "placeholder", "value", "onChange", "ev", "parseInt", "target", "SchemaTable", "types", "SyntaxHighlighter", "language", "JSON", "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 { contributes, Capabilities, type PluginsContext } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, toSignal, type Node } from '@dxos/plugin-graph';\nimport { memoizeQuery } from '@dxos/plugin-space';\nimport { CollectionType } from '@dxos/plugin-space/types';\nimport { getTypename, parseId, SpaceState } from '@dxos/react-client/echo';\nimport { isSpace, type Space } from '@dxos/react-client/echo';\n\nimport { DEBUG_PLUGIN } from '../meta';\nimport { type DebugSettingsProps } from '../types';\n\nexport default (context: PluginsContext) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Devtools node.\n createExtension({\n id: 'dxos.org/plugin/debug/devtools',\n filter: (node): node is Node<null> => {\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<DebugSettingsProps>(DEBUG_PLUGIN)?.value;\n return !!settings?.devtools && node.id === 'root';\n },\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> => {\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<DebugSettingsProps>(DEBUG_PLUGIN)?.value;\n return !!settings?.debug && node.id === 'root';\n },\n connector: () => {\n const graph = context.requestCapability(Capabilities.AppGraph);\n\n return [\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 icon: 'ph--bug--regular',\n },\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> => {\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<DebugSettingsProps>(DEBUG_PLUGIN)?.value;\n return !!settings?.debug && isSpace(node.data);\n },\n connector: ({ node }) => {\n const space = node.data;\n const state = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (state !== SpaceState.SPACE_READY) {\n return;\n }\n\n // Not adding the debug node until the root collection is available aligns the behaviour of this\n // extension with that of the space plugin adding objects. This ensures that the debug node is added at\n // the same time as objects and prevents order from changing as the nodes are added.\n const collection = space.properties[CollectionType.typename]?.target as CollectionType | undefined;\n if (!collection) {\n return;\n }\n\n return [\n {\n id: `${space.id}-debug`, // TODO(burdon): Change to slashes consistently.\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\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 client = context.requestCapability(ClientCapabilities.Client);\n const [subjectId] = id.split('~');\n const { spaceId, objectId } = parseId(subjectId);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n const space = spaces?.find((space) => space.state.get() === SpaceState.SPACE_READY && 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] = memoizeQuery(space, { id: objectId });\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"],
5
- "mappings": "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",
6
- "names": ["contributes", "Capabilities", "ClientCapabilities", "createExtension", "toSignal", "memoizeQuery", "CollectionType", "getTypename", "parseId", "SpaceState", "isSpace", "context", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "contributes", "AppGraphBuilder", "createExtension", "filter", "node", "settings", "SettingsStore", "getStore", "DEBUG_PLUGIN", "value", "devtools", "connector", "data", "type", "properties", "label", "ns", "icon", "debug", "graph", "requestCapability", "AppGraph", "isSpace", "space", "state", "toSignal", "onChange", "subscribe", "unsubscribe", "get", "SpaceState", "SPACE_READY", "collection", "CollectionType", "target", "resolver", "endsWith", "client", "ClientCapabilities", "Client", "subjectId", "split", "spaceId", "objectId", "parseId", "spaces", "name", "showResolvedThreads", "object", "memoizeQuery", "meta", "getTypename", "placeholder"]
7
- }
@@ -1,37 +0,0 @@
1
- import {
2
- DebugContext
3
- } from "./chunk-P7GHHMDB.mjs";
4
- import {
5
- DEBUG_PLUGIN
6
- } from "./chunk-I3ON45JK.mjs";
7
-
8
- // packages/plugins/plugin-debug/src/capabilities/react-context.tsx
9
- import React, { useEffect, useState } from "react";
10
- import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { Timer } from "@dxos/async";
12
- var react_context_default = () => contributes(Capabilities.ReactContext, {
13
- id: DEBUG_PLUGIN,
14
- context: ({ children }) => {
15
- const [timer, setTimer] = useState();
16
- useEffect(() => timer?.state.on((value) => !value && setTimer(void 0)), [
17
- timer
18
- ]);
19
- useEffect(() => {
20
- timer?.stop();
21
- }, []);
22
- return /* @__PURE__ */ React.createElement(DebugContext.Provider, {
23
- value: {
24
- running: !!timer,
25
- start: (cb, options) => {
26
- timer?.stop();
27
- setTimer(new Timer(cb).start(options));
28
- },
29
- stop: () => timer?.stop()
30
- }
31
- }, children);
32
- }
33
- });
34
- export {
35
- react_context_default as default
36
- };
37
- //# sourceMappingURL=react-context-OZU6J7G3.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-context.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Timer } from '@dxos/async';\n\nimport { DEBUG_PLUGIN } from '../meta';\nimport { DebugContext } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactContext, {\n id: DEBUG_PLUGIN,\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 });\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,SAASC,WAAWC,gBAAgB;AAE3C,SAASC,cAAcC,mBAAmB;AAC1C,SAASC,aAAa;AAKtB,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,IAAIC;EACJC,SAAS,CAAC,EAAEC,SAAQ,MAAE;AACpB,UAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAAA;AAC1BC,cAAU,MAAMH,OAAOI,MAAMC,GAAG,CAACC,UAAU,CAACA,SAASL,SAASM,MAAAA,CAAAA,GAAa;MAACP;KAAM;AAClFG,cAAU,MAAA;AACRH,aAAOQ,KAAAA;IACT,GAAG,CAAA,CAAE;AAEL,WACE,sBAAA,cAACC,aAAaC,UAAQ;MACpBJ,OAAO;QACLK,SAAS,CAAC,CAACX;QACXY,OAAO,CAACC,IAAIC,YAAAA;AACVd,iBAAOQ,KAAAA;AACPP,mBAAS,IAAIc,MAAMF,EAAAA,EAAID,MAAME,OAAAA,CAAAA;QAC/B;QACAN,MAAM,MAAMR,OAAOQ,KAAAA;MACrB;OAECT,QAAAA;EAGP;AACF,CAAA;",
6
- "names": ["React", "useEffect", "useState", "Capabilities", "contributes", "Timer", "contributes", "Capabilities", "ReactContext", "id", "DEBUG_PLUGIN", "context", "children", "timer", "setTimer", "useState", "useEffect", "state", "on", "value", "undefined", "stop", "DebugContext", "Provider", "running", "start", "cb", "options", "Timer"]
7
- }