@dxos/plugin-debug 0.7.3-main.2dd075e → 0.7.3-staging.0905f03

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.
@@ -11,161 +11,27 @@ import { Testing } from "@dxos/schema/testing";
11
11
  import { jsonKeyReplacer, sortKeys } from "@dxos/util";
12
12
 
13
13
  // packages/plugins/plugin-debug/src/components/SpaceGenerator/ObjectGenerator.tsx
14
- import { createTLStore, defaultBindingUtils, defaultShapeUtils, defaultShapeTools, defaultTools, Editor } from "@tldraw/tldraw";
15
14
  import { create } from "@dxos/live-object";
16
15
  import { DocumentType, TextType } from "@dxos/plugin-markdown/types";
17
16
  import { addressToA1Notation, createSheet } from "@dxos/plugin-sheet";
18
17
  import { SheetType } from "@dxos/plugin-sheet/types";
19
- import { TLDRAW_SCHEMA, CanvasType, DiagramType } from "@dxos/plugin-sketch/types";
20
- import { faker as faker2 } from "@dxos/random";
18
+ import { CanvasType, DiagramType } from "@dxos/plugin-sketch/types";
19
+ import { faker } from "@dxos/random";
21
20
  import { Filter } from "@dxos/react-client/echo";
22
21
  import { TableType } from "@dxos/react-ui-table";
23
22
  import { createView } from "@dxos/schema";
24
23
  import { createAsyncGenerator } from "@dxos/schema/testing";
25
- import { range as range2 } from "@dxos/util";
26
-
27
- // packages/plugins/plugin-debug/src/components/SpaceGenerator/draw-util.ts
28
- import { Graph } from "@antv/graphlib";
29
- import { D3ForceLayout } from "@antv/layout";
30
- import { createBindingId, createShapeId } from "@tldraw/tldraw";
31
- import { invariant } from "@dxos/invariant";
32
- import { faker } from "@dxos/random";
33
24
  import { range } from "@dxos/util";
34
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-debug/src/components/SpaceGenerator/draw-util.ts";
35
- var generateGraph = () => {
36
- const nodes = range(faker.number.int({
37
- min: 8,
38
- max: 32
39
- })).map(() => ({
40
- id: faker.string.uuid(),
41
- data: {
42
- label: faker.lorem.words(2).split(" ").map((word) => word.charAt(0).toUpperCase()).join("-")
43
- }
44
- }));
45
- const edges = range(faker.number.int({
46
- min: nodes.length,
47
- max: nodes.length * 2
48
- })).map(() => {
49
- invariant(nodes.length >= 2, void 0, {
50
- F: __dxlog_file,
51
- L: 40,
52
- S: void 0,
53
- A: [
54
- "nodes.length >= 2",
55
- ""
56
- ]
57
- });
58
- let source;
59
- let target;
60
- do {
61
- source = faker.helpers.arrayElement(nodes);
62
- target = faker.helpers.arrayElement(nodes);
63
- } while (source.id === target.id);
64
- return {
65
- id: faker.string.uuid(),
66
- source: source.id,
67
- target: target.id,
68
- data: {}
69
- };
70
- });
71
- return new Graph({
72
- nodes,
73
- edges
74
- });
75
- };
76
- var drawGraph = async (editor, graph) => {
77
- const grid = 40;
78
- const nodeSize = 80;
79
- const snap = (n) => Math.round(n / grid) * grid;
80
- const layout = new D3ForceLayout({
81
- center: [
82
- 0,
83
- 0
84
- ],
85
- preventOverlap: true,
86
- collideStrength: 0.5,
87
- linkDistance: grid * 2,
88
- nodeSize,
89
- nodeSpacing: nodeSize
90
- });
91
- const { nodes, edges } = await layout.execute(graph);
92
- for (const node of nodes) {
93
- const id = createShapeId(node.id);
94
- editor.createShape({
95
- id,
96
- type: "geo",
97
- x: snap(node.data.x),
98
- y: snap(node.data.y),
99
- props: {
100
- w: nodeSize,
101
- h: nodeSize,
102
- text: node.data.label
103
- }
104
- });
105
- }
106
- for (const edge of edges) {
107
- const arrowId = createShapeId(edge.id);
108
- editor.createShape({
109
- id: arrowId,
110
- type: "arrow"
111
- });
112
- editor.createBinding({
113
- id: createBindingId(),
114
- type: "arrow",
115
- fromId: arrowId,
116
- toId: createShapeId(edge.source),
117
- props: {
118
- terminal: "start",
119
- isExact: false,
120
- isPrecise: false,
121
- normalizedAnchor: {
122
- x: 0.5,
123
- y: 0.5
124
- }
125
- }
126
- });
127
- editor.createBinding({
128
- id: createBindingId(),
129
- type: "arrow",
130
- fromId: arrowId,
131
- toId: createShapeId(edge.target),
132
- props: {
133
- terminal: "end",
134
- isExact: false,
135
- isPrecise: false,
136
- normalizedAnchor: {
137
- x: 0.5,
138
- y: 0.5
139
- }
140
- }
141
- });
142
- }
143
- const data = editor.store.getStoreSnapshot();
144
- const content = JSON.parse(JSON.stringify(data.store));
145
- return content;
146
- };
147
-
148
- // packages/plugins/plugin-debug/src/components/SpaceGenerator/ObjectGenerator.tsx
149
- var generator = faker2;
25
+ var generator = faker;
150
26
  var staticGenerators = /* @__PURE__ */ new Map([
151
- //
152
- // DocumentType
153
- //
154
27
  [
155
28
  DocumentType.typename,
156
29
  async (space, n, cb) => {
157
- const objects = range2(n).map(() => {
158
- const content = range2(faker2.number.int({
159
- min: 3,
160
- max: 8
161
- })).map(() => faker2.lorem.sentences(faker2.number.int({
162
- min: 3,
163
- max: 16
164
- }))).join("\n\n");
30
+ const objects = range(n).map(() => {
165
31
  const obj = space.db.add(create(DocumentType, {
166
- name: faker2.commerce.productName(),
32
+ name: faker.commerce.productName(),
167
33
  content: create(TextType, {
168
- content
34
+ content: faker.lorem.sentences(5)
169
35
  }),
170
36
  threads: []
171
37
  }));
@@ -175,57 +41,33 @@ var staticGenerators = /* @__PURE__ */ new Map([
175
41
  return objects;
176
42
  }
177
43
  ],
178
- //
179
- // DiagramType
180
- //
181
44
  [
182
45
  DiagramType.typename,
183
46
  async (space, n, cb) => {
184
- const options = {
185
- bindingUtils: defaultBindingUtils,
186
- shapeUtils: defaultShapeUtils,
187
- tools: [
188
- ...defaultTools,
189
- ...defaultShapeTools
190
- ],
191
- getContainer: () => document.body
192
- };
193
- const objects = await Promise.all(range2(n).map(async () => {
194
- const store = createTLStore();
195
- const editor = new Editor({
196
- ...options,
197
- store
198
- });
199
- const graph = generateGraph();
200
- const content = await drawGraph(editor, graph);
201
- editor.dispose();
202
- store.dispose();
47
+ const objects = range(n).map(() => {
203
48
  const obj = space.db.add(create(DiagramType, {
204
- name: faker2.commerce.productName(),
49
+ name: faker.commerce.productName(),
205
50
  canvas: create(CanvasType, {
206
- schema: TLDRAW_SCHEMA,
207
- content
51
+ content: {}
208
52
  })
209
53
  }));
210
54
  return obj;
211
- }));
55
+ });
212
56
  cb?.(objects);
213
57
  return objects;
214
58
  }
215
59
  ],
216
- //
217
- // SheetType
218
- //
60
+ // TODO(burdon): Create unit tests.
219
61
  [
220
62
  SheetType.typename,
221
63
  async (space, n, cb) => {
222
- const objects = range2(n).map(() => {
64
+ const objects = range(n).map(() => {
65
+ const cells = {};
223
66
  const year = (/* @__PURE__ */ new Date()).getFullYear();
224
67
  const cols = 4;
225
- const rows = 20;
226
- const cells = {};
68
+ const rows = 16;
227
69
  for (let col = 1; col <= cols; col++) {
228
- for (let row = 1; row <= 10; row++) {
70
+ for (let row = 1; row <= rows; row++) {
229
71
  const cell = addressToA1Notation({
230
72
  col,
231
73
  row
@@ -254,7 +96,7 @@ var staticGenerators = /* @__PURE__ */ new Map([
254
96
  }
255
97
  }
256
98
  return space.db.add(createSheet({
257
- name: faker2.commerce.productName(),
99
+ name: faker.commerce.productName(),
258
100
  cells
259
101
  }));
260
102
  });
@@ -267,10 +109,12 @@ var createGenerator = (type) => {
267
109
  return async (space, n, cb) => {
268
110
  const mutableSchema = await space.db.schemaRegistry.query();
269
111
  const schema = mutableSchema.find((schema2) => schema2.typename === type.typename) ?? space.db.schemaRegistry.addSchema(type);
270
- const generate = createAsyncGenerator(generator, schema.schema, space.db);
112
+ const generate = createAsyncGenerator(generator, schema.schema, {
113
+ db: space.db
114
+ });
271
115
  const objects = await generate.createObjects(n);
272
116
  const { objects: tables } = await space.db.query(Filter.schema(TableType)).run();
273
- const table = tables.find((table2) => table2.view?.query?.typename === type.typename);
117
+ const table = tables.find((table2) => table2.view?.query?.type === type.typename);
274
118
  if (!table) {
275
119
  const name = type.typename.split("/").pop() ?? type.typename;
276
120
  const view = createView({
@@ -426,4 +270,4 @@ var SpaceGenerator_default = SpaceGenerator;
426
270
  export {
427
271
  SpaceGenerator_default as default
428
272
  };
429
- //# sourceMappingURL=SpaceGenerator-P7ZPQ4N7.mjs.map
273
+ //# sourceMappingURL=SpaceGenerator-BQ3645OS.mjs.map
@@ -0,0 +1,7 @@
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 { 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 { 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]; // 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 mutableSchema = await space.db.schemaRegistry.query();\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: mutableSchema.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.Expander />\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 { type AbstractSchema, type BaseObject } from '@dxos/echo-schema';\nimport { create, type ReactiveObject } from '@dxos/live-object';\nimport { DocumentType, TextType } from '@dxos/plugin-markdown/types';\nimport { addressToA1Notation, createSheet } from '@dxos/plugin-sheet';\nimport { type CellValue } from '@dxos/plugin-sheet/types';\nimport { SheetType } 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 { TableType } from '@dxos/react-ui-table';\nimport { createView } 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 const obj = space.db.add(\n create(DocumentType, {\n name: faker.commerce.productName(),\n content: create(TextType, { content: faker.lorem.sentences(5) }),\n threads: [],\n }),\n );\n\n return obj;\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: 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\nexport const createGenerator = <T extends BaseObject>(type: AbstractSchema<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 mutableSchema = await space.db.schemaRegistry.query();\n const schema =\n mutableSchema.find((schema) => schema.typename === type.typename) ?? space.db.schemaRegistry.addSchema(type);\n\n // Create objects.\n const generate = createAsyncGenerator(generator, schema.schema, { 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?.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 }));\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", "DocumentType", "SheetType", "DiagramType", "useClient", "getTypename", "IconButton", "Input", "Toolbar", "useAsyncEffect", "SyntaxHighlighter", "Testing", "jsonKeyReplacer", "sortKeys", "create", "DocumentType", "TextType", "addressToA1Notation", "createSheet", "SheetType", "CanvasType", "DiagramType", "faker", "Filter", "TableType", "createView", "createAsyncGenerator", "range", "generator", "faker", "staticGenerators", "Map", "DocumentType", "typename", "space", "n", "cb", "objects", "range", "map", "obj", "db", "add", "create", "name", "commerce", "productName", "content", "TextType", "lorem", "sentences", "threads", "DiagramType", "canvas", "CanvasType", "SheetType", "cells", "year", "Date", "getFullYear", "cols", "rows", "col", "row", "cell", "addressToA1Notation", "value", "from", "to", "Math", "floor", "random", "createSheet", "createGenerator", "type", "mutableSchema", "schemaRegistry", "query", "schema", "find", "addSchema", "generate", "createAsyncGenerator", "createObjects", "tables", "Filter", "TableType", "run", "table", "view", "split", "pop", "createView", "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", "mutableTypes", "Testing", "OrgType", "ProjectType", "ContactType", "count", "setCount", "useState", "info", "setInfo", "typeMap", "useMemo", "addTypes", "mutableGenerators", "Map", "map", "type", "typename", "createGenerator", "staticGenerators", "updateInfo", "mutableSchema", "db", "schemaRegistry", "query", "staticSchema", "graph", "schemas", "objects", "run", "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", "Expander", "Input", "TextInput", "min", "max", "placeholder", "value", "onChange", "ev", "parseInt", "target", "SchemaTable", "types", "SyntaxHighlighter", "language", "JSON", "stringify", "jsonKeyReplacer", "truncate", "SpaceGenerator"]
7
+ }
@@ -388,7 +388,7 @@ var Wireframe = ({ classNames, label, object }) => {
388
388
  // packages/plugins/plugin-debug/src/components/index.ts
389
389
  var DebugApp = lazy(() => import("./DebugApp-HCHR6GKO.mjs"));
390
390
  var DebugSpace = lazy(() => import("./DebugSpace-DHKEAMIC.mjs"));
391
- var SpaceGenerator = lazy(() => import("./SpaceGenerator-P7ZPQ4N7.mjs"));
391
+ var SpaceGenerator = lazy(() => import("./SpaceGenerator-BQ3645OS.mjs"));
392
392
 
393
393
  // packages/plugins/plugin-debug/src/translations.ts
394
394
  var translations_default = [
@@ -566,6 +566,14 @@ var DebugPlugin = definePlugin((context) => {
566
566
  filter: (node) => !!settings.debug && isSpace(node.data),
567
567
  connector: ({ node }) => {
568
568
  const space = node.data;
569
+ const state = toSignal((onChange) => space.state.subscribe(() => onChange()).unsubscribe, () => space.state.get());
570
+ if (state !== SpaceState.SPACE_READY) {
571
+ return;
572
+ }
573
+ const collection = space.properties[CollectionType.typename];
574
+ if (!collection) {
575
+ return;
576
+ }
569
577
  return [
570
578
  {
571
579
  id: `${space.id}-debug`,