@dxos/plugin-debug 0.6.13 → 0.6.14-main.2b6a0f3

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 (62) hide show
  1. package/dist/lib/browser/{DebugGlobal-H56M2VL4.mjs → DebugGlobal-ZTCBF3XR.mjs} +5 -5
  2. package/dist/lib/browser/{DebugSpace-NHPMLATA.mjs → DebugSpace-2G2PBGCC.mjs} +16 -41
  3. package/dist/lib/browser/DebugSpace-2G2PBGCC.mjs.map +7 -0
  4. package/dist/lib/browser/chunk-2HTS7SNO.mjs +17 -0
  5. package/dist/lib/browser/chunk-2HTS7SNO.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-RYK3J66D.mjs → chunk-6Y463JSP.mjs} +3 -3
  7. package/dist/lib/browser/{chunk-ED5L5YYI.mjs → chunk-H3BJHVRD.mjs} +5 -8
  8. package/dist/lib/browser/chunk-H3BJHVRD.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +133 -106
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/meta.mjs +1 -1
  13. package/dist/types/src/DebugPlugin.d.ts.map +1 -1
  14. package/dist/types/src/components/DebugObjectPanel.d.ts +7 -0
  15. package/dist/types/src/components/DebugObjectPanel.d.ts.map +1 -0
  16. package/dist/types/src/components/DebugPanel.d.ts +3 -3
  17. package/dist/types/src/components/DebugPanel.d.ts.map +1 -1
  18. package/dist/types/src/components/DebugSpace.stories.d.ts +3 -13
  19. package/dist/types/src/components/DebugSpace.stories.d.ts.map +1 -1
  20. package/dist/types/src/components/DebugStatus.d.ts.map +1 -1
  21. package/dist/types/src/components/ObjectCreator.d.ts +5 -5
  22. package/dist/types/src/components/ObjectCreator.d.ts.map +1 -1
  23. package/dist/types/src/components/ObjectCreator.stories.d.ts +3 -14
  24. package/dist/types/src/components/ObjectCreator.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/SurfaceDebug.d.ts +9 -0
  26. package/dist/types/src/components/SurfaceDebug.d.ts.map +1 -0
  27. package/dist/types/src/components/Wireframe.d.ts +5 -4
  28. package/dist/types/src/components/Wireframe.d.ts.map +1 -1
  29. package/dist/types/src/components/index.d.ts +3 -4
  30. package/dist/types/src/components/index.d.ts.map +1 -1
  31. package/dist/types/src/meta.d.ts +4 -9
  32. package/dist/types/src/meta.d.ts.map +1 -1
  33. package/dist/types/src/scaffolding/generator.d.ts +1 -2
  34. package/dist/types/src/scaffolding/generator.d.ts.map +1 -1
  35. package/package.json +41 -43
  36. package/src/DebugPlugin.tsx +21 -15
  37. package/src/components/DebugObjectPanel.tsx +22 -0
  38. package/src/components/DebugPanel.tsx +4 -9
  39. package/src/components/DebugSpace.stories.tsx +6 -3
  40. package/src/components/DebugStatus.tsx +20 -13
  41. package/src/components/ObjectCreator.stories.tsx +13 -10
  42. package/src/components/ObjectCreator.tsx +12 -21
  43. package/src/components/SurfaceDebug.tsx +55 -0
  44. package/src/components/Wireframe.tsx +20 -11
  45. package/src/components/index.ts +4 -5
  46. package/src/meta.ts +15 -0
  47. package/src/scaffolding/generator.ts +4 -15
  48. package/dist/lib/browser/DebugSpace-NHPMLATA.mjs.map +0 -7
  49. package/dist/lib/browser/DevtoolsMain-RWT3FLJ6.mjs +0 -15
  50. package/dist/lib/browser/DevtoolsMain-RWT3FLJ6.mjs.map +0 -7
  51. package/dist/lib/browser/chunk-ED5L5YYI.mjs.map +0 -7
  52. package/dist/lib/browser/chunk-WEGYHXMB.mjs +0 -21
  53. package/dist/lib/browser/chunk-WEGYHXMB.mjs.map +0 -7
  54. package/dist/types/src/components/DevtoolsMain.d.ts +0 -4
  55. package/dist/types/src/components/DevtoolsMain.d.ts.map +0 -1
  56. package/dist/types/src/types.test.d.ts +0 -2
  57. package/dist/types/src/types.test.d.ts.map +0 -1
  58. package/src/components/DevtoolsMain.tsx +0 -15
  59. package/src/meta.tsx +0 -19
  60. package/src/types.test.ts +0 -13
  61. /package/dist/lib/browser/{DebugGlobal-H56M2VL4.mjs.map → DebugGlobal-ZTCBF3XR.mjs.map} +0 -0
  62. /package/dist/lib/browser/{chunk-RYK3J66D.mjs.map → chunk-6Y463JSP.mjs.map} +0 -0
@@ -0,0 +1,55 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import React, { useMemo, useState } from 'react';
6
+
7
+ import { type DebugInfo, useSurfaceRoot } from '@dxos/app-framework';
8
+ import { Button, Icon, type ThemedClassName } from '@dxos/react-ui';
9
+ import { mx } from '@dxos/react-ui-theme';
10
+
11
+ // TODO(burdon): Move to debug panel.
12
+
13
+ export type SurfaceDebugProps = ThemedClassName<{}>;
14
+
15
+ /**
16
+ * Show surface info.
17
+ * NOTE: Remove from @dxos/app-framework if removing this.
18
+ */
19
+ export const SurfaceDebug = ({ classNames }: SurfaceDebugProps) => {
20
+ const context = useSurfaceRoot();
21
+ const [surfaces, setSurfaces] = useState<DebugInfo[]>([]);
22
+ const renderMap = useMemo(() => new Map<string, { last: number; delta: number }>(), []);
23
+ const handleRefresh = () => {
24
+ if (context.debugInfo) {
25
+ setSurfaces(
26
+ Array.from(context.debugInfo.values())
27
+ .sort(({ created: a }, { created: b }) => a - b)
28
+ .map((surface) => {
29
+ const state = renderMap.get(surface.id) ?? { last: 0, delta: 0 };
30
+ renderMap.set(surface.id, { last: surface.renderCount, delta: surface.renderCount - state.last });
31
+ return surface;
32
+ }),
33
+ );
34
+ }
35
+ };
36
+
37
+ return (
38
+ <div className={mx('flex flex-col border border-separator overflow-hidden bg-modalSurface', classNames)}>
39
+ <div className='flex flex-col h-full w-full p-2'>
40
+ {surfaces.map(({ id, name, renderCount }) => (
41
+ <div key={id} className='grid grid-cols-[1fr_3rem_3rem] items-center text-xs font-mono whitespace-nowrap'>
42
+ <span className='px-1 truncate'>{name}</span>
43
+ <span className='px-1 text-right'>{renderCount}</span>
44
+ <span className='px-1 text-right'>{renderMap.get(id)?.delta}</span>
45
+ </div>
46
+ ))}
47
+ </div>
48
+ <div className='flex justify-center text-sm items-center'>
49
+ <Button onClick={handleRefresh}>
50
+ <Icon icon='ph--arrow-clockwise--regular' size={4} />
51
+ </Button>
52
+ </div>
53
+ </div>
54
+ );
55
+ };
@@ -5,27 +5,36 @@
5
5
  import React from 'react';
6
6
  import { useResizeDetector } from 'react-resize-detector';
7
7
 
8
- import { createAttendableAttributes } from '@dxos/react-ui-attention';
8
+ import { fullyQualifiedId } from '@dxos/react-client/echo';
9
+ import { type ThemedClassName } from '@dxos/react-ui';
10
+ import { useAttendableAttributes } from '@dxos/react-ui-attention';
11
+ import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
9
12
  import { mx } from '@dxos/react-ui-theme';
10
13
 
14
+ // TODO(burdon): Create generic container with wireframe mode.
15
+ export type WireframeProps = ThemedClassName<{
16
+ label?: string;
17
+ object?: any;
18
+ }>;
19
+
11
20
  // TODO(burdon): Make focusable and attendable with input.
12
- export const Wireframe = ({ label, data, className }: { label?: string; data?: any; className?: string }) => {
13
- const attendableAttrs = createAttendableAttributes(data);
21
+ export const Wireframe = ({ classNames, label, object }: WireframeProps) => {
22
+ const attendableAttrs = useAttendableAttributes(fullyQualifiedId(object));
14
23
  const { width, height, ref } = useResizeDetector();
15
24
  return (
16
- <div ref={ref} className={mx('relative grow min-bs-96', className)} {...attendableAttrs}>
17
- <div className='absolute inset-2 flex flex-col overflow-hidden font-mono'>
25
+ <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attendableAttrs}>
26
+ <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>
18
27
  <div className='flex justify-between'>
19
28
  <div>{label}</div>
20
29
  <div>{`[${width}x${height}]`}</div>
21
30
  </div>
22
- <div className='flex grow overflow-auto'>
23
- {data && (
24
- <pre className='text-neutral-500 text-sm whitespace-pre-line'>{JSON.stringify(data, undefined, 1)}</pre>
25
- )}
26
- </div>
31
+ {object && (
32
+ <SyntaxHighlighter language='json' classNames='flex w-full text-xs opacity-75 rounded'>
33
+ {JSON.stringify(object, undefined, 2)}
34
+ </SyntaxHighlighter>
35
+ )}
27
36
  </div>
28
- <svg width={width} height={height} className='bg-transparent [&>*]:stroke-neutral-500'>
37
+ <svg width={width} height={height} className='bg-transparent [&>*]:text-subdued'>
29
38
  <rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />
30
39
  <line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />
31
40
  <line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />
@@ -2,13 +2,12 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import React from 'react';
5
+ import { lazy } from 'react';
6
6
 
7
- // Lazily load components for content surfaces.
8
- export const DebugGlobal = React.lazy(() => import('./DebugGlobal'));
9
- export const DebugSpace = React.lazy(() => import('./DebugSpace'));
10
- export const DevtoolsMain = React.lazy(() => import('./DevtoolsMain'));
7
+ export const DebugGlobal = lazy(() => import('./DebugGlobal'));
8
+ export const DebugSpace = lazy(() => import('./DebugSpace'));
11
9
 
10
+ export * from './DebugObjectPanel';
12
11
  export * from './DebugSettings';
13
12
  export * from './DebugStatus';
14
13
  export * from './Wireframe';
package/src/meta.ts ADDED
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type PluginMeta } from '@dxos/app-framework';
6
+
7
+ export const DEBUG_PLUGIN = 'dxos.org/plugin/debug';
8
+
9
+ export default {
10
+ id: DEBUG_PLUGIN,
11
+ name: 'Debug',
12
+ description: 'DXOS debugging tools.',
13
+ tags: ['experimental'],
14
+ icon: 'ph--bug--regular',
15
+ } satisfies PluginMeta;
@@ -22,24 +22,22 @@ import {
22
22
  import { create } from '@dxos/echo-schema';
23
23
  import { log } from '@dxos/log';
24
24
  import { DocumentType, TextType } from '@dxos/plugin-markdown/types';
25
- import { createTestSheet } from '@dxos/plugin-sheet/testing';
26
- import { SheetType } from '@dxos/plugin-sheet/types';
27
- import { TLDrawStoreAdapter } from '@dxos/plugin-sketch';
25
+ import { TLDrawStoreAdapter } from '@dxos/plugin-sketch/sdk';
28
26
  import { CanvasType, DiagramType, TLDRAW_SCHEMA } from '@dxos/plugin-sketch/types';
29
27
  import { faker } from '@dxos/random';
30
28
  import { createDocAccessor, type Space } from '@dxos/react-client/echo';
31
29
 
32
- // TODO(wittjosiah): Remove? Just use typenames.
30
+ // TODO(burdon): Move to echo-generator.
31
+
32
+ // TODO(wittjosiah): Remove? Just use DXNs.
33
33
  export enum SchemasNames {
34
34
  document = 'dxos.org/type/Document',
35
35
  diagram = 'dxos.org/type/Diagram',
36
- sheet = 'dxos.org/type/SheetType',
37
36
  }
38
37
 
39
38
  export const SchemasMap: TestSchemaMap<SchemasNames> = {
40
39
  [SchemasNames.document]: DocumentType,
41
40
  [SchemasNames.diagram]: DiagramType,
42
- [SchemasNames.sheet]: SheetType,
43
41
  };
44
42
 
45
43
  export const ObjectGenerators: TestGeneratorMap<SchemasNames> = {
@@ -55,11 +53,6 @@ export const ObjectGenerators: TestGeneratorMap<SchemasNames> = {
55
53
  canvas: create(CanvasType, { schema: TLDRAW_SCHEMA, content: {} }),
56
54
  };
57
55
  },
58
-
59
- [SchemasNames.sheet]: () => {
60
- const name = faker.lorem.sentence({ min: 2, max: 3 });
61
- return createTestSheet({ name });
62
- },
63
56
  };
64
57
 
65
58
  export const MutationsGenerators: TestMutationsMap<SchemasNames> = {
@@ -147,10 +140,6 @@ export const MutationsGenerators: TestMutationsMap<SchemasNames> = {
147
140
  }
148
141
  }
149
142
  },
150
-
151
- [SchemasNames.sheet]: async (object, params) => {
152
- // TODO: Implement.
153
- },
154
143
  };
155
144
 
156
145
  export const createSpaceObjectGenerator = (space: Space) =>
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/DebugSpace.tsx", "../../../src/components/ObjectCreator.tsx", "../../../src/scaffolding/generator.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n ArrowClockwise,\n DownloadSimple,\n Flag,\n FlagPennant,\n HandPalm,\n Play,\n PlusMinus,\n Timer,\n UserCirclePlus,\n} from '@phosphor-icons/react';\nimport React, { type FC, useContext, useMemo, useState } from 'react';\n\nimport { type ReactiveObject } from '@dxos/echo-schema';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\nimport { faker } from '@dxos/random';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, type Space, useSpaceInvitation } from '@dxos/react-client/echo';\nimport { InvitationEncoder } from '@dxos/react-client/invitations';\nimport { useAsyncEffect } from '@dxos/react-hooks';\nimport { Button, Input, useFileDownload } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\nimport { safeParseInt } from '@dxos/util';\n\nimport { DebugPanel } from './DebugPanel';\nimport { ObjectCreator } from './ObjectCreator';\nimport { createSpaceObjectGenerator } from '../scaffolding';\nimport { DebugContext } from '../types';\n\nconst DEFAULT_COUNT = 100;\nconst DEFAULT_PERIOD = 500;\nconst DEFAULT_JITTER = 50;\n\n// TODO(burdon): Factor out.\nconst useRefresh = (): [any, () => void] => {\n const [update, setUpdate] = useState({});\n return [update, () => setUpdate({})];\n};\n\nconst DebugSpace: FC<{\n space: Space;\n onAddObjects?: (objects: ReactiveObject<any>[]) => void;\n}> = ({ space, onAddObjects }) => {\n const { connect } = useSpaceInvitation(space?.key);\n const client = useClient();\n const [data, setData] = useState<any>({});\n\n const [update, handleUpdate] = useRefresh();\n useAsyncEffect(\n async (isMounted) => {\n const data = await client.diagnostics({ truncate: true });\n if (isMounted()) {\n setData(\n data?.diagnostics?.spaces?.find(({ key }: any) => {\n return space.key.toHex().startsWith(key);\n }),\n );\n }\n },\n [space, update],\n );\n\n const download = useFileDownload();\n const handleCopy = async () => {\n download(\n new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' }),\n `${new Date().toISOString().replace(/\\W/g, '-')}.json`,\n );\n };\n\n const [mutationCount, setMutationCount] = useState(String(DEFAULT_COUNT));\n const [mutationInterval, setMutationInterval] = useState(String(DEFAULT_PERIOD));\n const [mutationJitter, setMutationJitter] = useState(String(DEFAULT_JITTER));\n\n const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);\n\n // TODO(burdon): Note: this is shared across all spaces!\n const { running, start, stop } = useContext(DebugContext);\n const handleToggleRunning = () => {\n if (running) {\n stop();\n handleUpdate();\n } else {\n start(\n async () => {\n const { objects } = await space.db.query(Filter.schema(DocumentType)).run();\n if (objects.length) {\n const object = faker.helpers.arrayElement(objects);\n await generator.mutateObject(object, { count: 10, mutationSize: 10, maxContentLength: 1000 });\n }\n },\n {\n count: safeParseInt(mutationCount) ?? 0,\n interval: safeParseInt(mutationInterval) ?? 0,\n jitter: safeParseInt(mutationJitter) ?? 0,\n },\n );\n }\n };\n\n const handleCreateInvitation = () => {\n const invitation = space.share({\n type: Invitation.Type.INTERACTIVE,\n authMethod: Invitation.AuthMethod.NONE,\n multiUse: true,\n });\n\n // TODO(burdon): Refactor.\n // TODO(burdon): Unsubscribe?\n connect(invitation);\n const code = InvitationEncoder.encode(invitation.get());\n new URL(window.origin).searchParams.set('spaceInvitationCode', code);\n const url = `${window.origin}?spaceInvitationCode=${code}`;\n void navigator.clipboard.writeText(url);\n };\n\n const handleCreateEpoch = async () => {\n await space.internal.createEpoch();\n handleUpdate();\n };\n\n return (\n <DebugPanel\n menu={\n <>\n <div className='relative' title='mutation count'>\n <Input.Root>\n <Input.TextInput\n autoComplete='off'\n size={5}\n classNames='w-[100px] text-right pie-[22px]'\n placeholder='Count'\n value={mutationCount}\n onChange={({ target: { value } }) => setMutationCount(value)}\n />\n </Input.Root>\n <Flag className={mx('absolute inline-end-1 block-start-1 mt-[6px]', getSize(3))} />\n </div>\n <div className='relative' title='mutation period'>\n <Input.Root>\n <Input.TextInput\n autoComplete='off'\n size={5}\n classNames='w-[100px] text-right pie-[22px]'\n placeholder='Interval'\n value={mutationInterval}\n onChange={({ target: { value } }) => setMutationInterval(value)}\n />\n </Input.Root>\n <Timer className={mx('absolute inline-end-1 block-start-1 mt-[6px]', getSize(3))} />\n </div>\n <div className='relative' title='mutation jitter'>\n <Input.Root>\n <Input.TextInput\n autoComplete='off'\n size={5}\n classNames='w-[100px] text-right pie-[22px]'\n placeholder='Jitter'\n value={mutationJitter}\n onChange={({ target: { value } }) => setMutationJitter(value)}\n />\n </Input.Root>\n <PlusMinus className={mx('absolute inline-end-1 block-start-1 mt-[6px]', getSize(3))} />\n </div>\n <Button onClick={handleToggleRunning}>\n {running ? <HandPalm className={getSize(5)} /> : <Play className={getSize(5)} />}\n </Button>\n <Button onClick={handleUpdate}>\n <ArrowClockwise className={getSize(5)} />\n </Button>\n <Button onClick={handleCopy}>\n <DownloadSimple className={getSize(5)} />\n </Button>\n\n <div className='grow' />\n <Button onClick={handleCreateEpoch} title='Create epoch'>\n <FlagPennant className={mx(getSize(5))} />\n </Button>\n <Button onClick={handleCreateInvitation} title='Create Space invitation'>\n <UserCirclePlus className={mx(getSize(5), 'text-blue-500')} />\n </Button>\n </>\n }\n >\n <ObjectCreator space={space} onAddObjects={onAddObjects} />\n </DebugPanel>\n );\n};\n\nexport default DebugSpace;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, useMemo, useState } from 'react';\n\nimport { type EchoReactiveObject, type ReactiveObject } from '@dxos/echo-schema';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Button, DensityProvider } from '@dxos/react-ui';\nimport { createColumnBuilder, type TableColumnDef, Table } from '@dxos/react-ui-table';\n\nimport { SchemasNames, createSpaceObjectGenerator } from '../scaffolding';\n\nexport type CreateObjectsParams = {\n enabled: boolean;\n schema: SchemasNames;\n objectsCount: number;\n mutationsCount: number;\n maxContentLength: number;\n mutationSize: number;\n};\n\nconst CREATE_OBJECTS_IN_ONE_CHUNK = 10;\n\nexport const ObjectCreator: FC<{\n space: Space;\n onAddObjects?: (objects: ReactiveObject<any>[]) => void;\n}> = ({ space, onAddObjects }) => {\n const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);\n\n const [objectsToCreate, setObjectsToCreate] = useState<CreateObjectsParams[]>([\n {\n enabled: true,\n schema: SchemasNames.document,\n objectsCount: 10,\n mutationsCount: 10,\n mutationSize: 10,\n maxContentLength: 1000,\n },\n {\n enabled: true,\n schema: SchemasNames.diagram,\n objectsCount: 10,\n mutationsCount: 10,\n mutationSize: 10,\n maxContentLength: 1000,\n },\n {\n enabled: true,\n schema: SchemasNames.sheet,\n objectsCount: 10,\n mutationsCount: 10,\n mutationSize: 10,\n maxContentLength: 1000,\n },\n ]);\n\n const handleCreate = async () => {\n for (const params of objectsToCreate) {\n if (!params.enabled) {\n continue;\n }\n let objectsCreated = 0;\n while (objectsCreated < params.objectsCount) {\n const objects = (await generator.createObjects({\n [params.schema]: Math.min(CREATE_OBJECTS_IN_ONE_CHUNK, params.objectsCount - objectsCreated),\n })) as EchoReactiveObject<any>[];\n\n await generator.mutateObjects(objects, {\n count: params.mutationsCount,\n mutationSize: params.mutationSize,\n maxContentLength: params.maxContentLength,\n });\n objectsCreated += objects.length;\n onAddObjects?.(objects);\n }\n }\n await space.db.flush();\n };\n const handleChangeOnRow = (row: CreateObjectsParams, key: string, value: any) => {\n const newObjects = [...objectsToCreate];\n Object.assign(newObjects.find((object) => object.schema === row.schema)!, { [key]: value });\n setObjectsToCreate(newObjects);\n };\n\n const { helper, builder } = createColumnBuilder<CreateObjectsParams>();\n const columns: TableColumnDef<CreateObjectsParams>[] = [\n helper.accessor('enabled', builder.switch({ label: 'Enabled', onUpdate: handleChangeOnRow })),\n helper.accessor('schema', builder.string({ classNames: 'font-mono', label: 'Schema' })),\n helper.accessor('objectsCount', builder.number({ label: 'Objects', onUpdate: handleChangeOnRow })),\n helper.accessor('mutationsCount', builder.number({ label: 'Mutations', onUpdate: handleChangeOnRow })),\n helper.accessor('mutationSize', builder.number({ label: 'Mut. Size', onUpdate: handleChangeOnRow })),\n helper.accessor('maxContentLength', builder.number({ label: 'Length', onUpdate: handleChangeOnRow })),\n ];\n\n return (\n <>\n <DensityProvider density={'fine'}>\n <Table.Root>\n <Table.Viewport>\n <Table.Main<CreateObjectsParams> columns={columns} data={objectsToCreate} />\n </Table.Viewport>\n </Table.Root>\n </DensityProvider>\n <Button onClick={handleCreate}>Create</Button>\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n createShapeId,\n defaultBindingUtils,\n defaultShapeUtils,\n defaultTools,\n Editor,\n type TLParentId,\n} from '@tldraw/tldraw';\n\nimport { sleep } from '@dxos/async';\nimport { next as A } from '@dxos/automerge/automerge';\nimport {\n SpaceObjectGenerator,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestSchemaMap,\n} from '@dxos/echo-generator';\nimport { create } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { DocumentType, TextType } from '@dxos/plugin-markdown/types';\nimport { createTestSheet } from '@dxos/plugin-sheet/testing';\nimport { SheetType } from '@dxos/plugin-sheet/types';\nimport { TLDrawStoreAdapter } from '@dxos/plugin-sketch';\nimport { CanvasType, DiagramType, TLDRAW_SCHEMA } from '@dxos/plugin-sketch/types';\nimport { faker } from '@dxos/random';\nimport { createDocAccessor, type Space } from '@dxos/react-client/echo';\n\n// TODO(wittjosiah): Remove? Just use typenames.\nexport enum SchemasNames {\n document = 'dxos.org/type/Document',\n diagram = 'dxos.org/type/Diagram',\n sheet = 'dxos.org/type/SheetType',\n}\n\nexport const SchemasMap: TestSchemaMap<SchemasNames> = {\n [SchemasNames.document]: DocumentType,\n [SchemasNames.diagram]: DiagramType,\n [SchemasNames.sheet]: SheetType,\n};\n\nexport const ObjectGenerators: TestGeneratorMap<SchemasNames> = {\n [SchemasNames.document]: () => {\n const name = faker.lorem.sentence({ min: 2, max: 3 });\n return { name, content: create(TextType, { content: '' }), threads: [] };\n },\n\n [SchemasNames.diagram]: () => {\n const name = faker.lorem.sentence({ min: 2, max: 3 });\n return {\n name,\n canvas: create(CanvasType, { schema: TLDRAW_SCHEMA, content: {} }),\n };\n },\n\n [SchemasNames.sheet]: () => {\n const name = faker.lorem.sentence({ min: 2, max: 3 });\n return createTestSheet({ name });\n },\n};\n\nexport const MutationsGenerators: TestMutationsMap<SchemasNames> = {\n [SchemasNames.document]: async (object, params) => {\n const accessor = createDocAccessor<DocumentType>(object.content, ['content']);\n\n for (let i = 0; i < params.count; i++) {\n const length = object.content?.content?.length ?? 0;\n accessor.handle.change((doc) => {\n A.splice(\n doc,\n accessor.path.slice(),\n 0,\n params.maxContentLength >= length ? 0 : params.mutationSize,\n faker.string.hexadecimal({ length: params.mutationSize - 1 }) + ' ',\n );\n });\n\n // Release the event loop.\n if (i % 100 === 0 || i === params.count - 1) {\n log.info('Mutation:', { mutationIdx: i });\n await sleep(1);\n }\n }\n },\n\n [SchemasNames.diagram]: async (object, params) => {\n const store = new TLDrawStoreAdapter();\n await store.open(createDocAccessor<CanvasType>(object.canvas, ['content']));\n const app = new Editor({\n store: store.store!,\n shapeUtils: defaultShapeUtils,\n bindingUtils: defaultBindingUtils,\n tools: defaultTools,\n getContainer: () => document.getElementsByTagName('body')[0],\n });\n\n //\n // Draw spiral.\n //\n const r = 100;\n const a = 0.05;\n const cx = 200;\n const cy = 200;\n\n for (let i = 0; i < params.count; i++) {\n const t = i;\n const t1 = i + 1;\n const x = cx + a * t * r * Math.cos(t);\n const y = cy + a * t * r * Math.sin(t);\n const x1 = cx + a * t1 * r * Math.cos(t1);\n const y1 = cy + a * t1 * r * Math.sin(t1);\n\n app.createShape({\n id: createShapeId(),\n isLocked: false,\n meta: {},\n opacity: 1,\n parentId: 'page:page' as TLParentId,\n props: {\n arrowheadEnd: 'none',\n arrowheadStart: 'none',\n bend: 0,\n color: 'black',\n dash: 'draw',\n start: { x, y },\n end: { x: x1, y: y1 },\n fill: 'none',\n font: 'draw',\n labelColor: 'black',\n labelPosition: 0.5,\n scale: 1,\n size: 'm',\n },\n rotation: 0,\n type: 'arrow',\n typeName: 'shape',\n x: 0,\n y: 0,\n });\n\n // Release the event loop.\n if (i % 100 === 0) {\n await sleep(1);\n }\n }\n },\n\n [SchemasNames.sheet]: async (object, params) => {\n // TODO: Implement.\n },\n};\n\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, SchemasMap, ObjectGenerators, MutationsGenerators);\n"],
5
- "mappings": "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",
6
- "names": ["ArrowClockwise", "DownloadSimple", "Flag", "FlagPennant", "HandPalm", "Play", "PlusMinus", "Timer", "UserCirclePlus", "React", "useContext", "useMemo", "useState", "DocumentType", "Invitation", "faker", "useClient", "Filter", "useSpaceInvitation", "InvitationEncoder", "useAsyncEffect", "Button", "Input", "useFileDownload", "getSize", "mx", "safeParseInt", "React", "useMemo", "useState", "Button", "DensityProvider", "createColumnBuilder", "Table", "createShapeId", "defaultBindingUtils", "defaultShapeUtils", "defaultTools", "Editor", "sleep", "next", "A", "SpaceObjectGenerator", "create", "log", "DocumentType", "TextType", "createTestSheet", "SheetType", "TLDrawStoreAdapter", "CanvasType", "DiagramType", "TLDRAW_SCHEMA", "faker", "createDocAccessor", "SchemasNames", "SchemasMap", "ObjectGenerators", "name", "lorem", "sentence", "min", "max", "content", "threads", "canvas", "schema", "MutationsGenerators", "object", "params", "accessor", "i", "count", "length", "handle", "change", "doc", "splice", "path", "slice", "maxContentLength", "mutationSize", "string", "hexadecimal", "info", "mutationIdx", "store", "open", "app", "shapeUtils", "bindingUtils", "tools", "getContainer", "document", "getElementsByTagName", "r", "a", "cx", "cy", "t", "t1", "x", "Math", "cos", "y", "sin", "x1", "y1", "createShape", "id", "isLocked", "meta", "opacity", "parentId", "props", "arrowheadEnd", "arrowheadStart", "bend", "color", "dash", "start", "end", "fill", "font", "labelColor", "labelPosition", "scale", "size", "rotation", "type", "typeName", "createSpaceObjectGenerator", "space", "CREATE_OBJECTS_IN_ONE_CHUNK", "ObjectCreator", "space", "onAddObjects", "generator", "useMemo", "createSpaceObjectGenerator", "objectsToCreate", "setObjectsToCreate", "useState", "enabled", "schema", "SchemasNames", "document", "objectsCount", "mutationsCount", "mutationSize", "maxContentLength", "diagram", "sheet", "handleCreate", "params", "objectsCreated", "objects", "createObjects", "Math", "min", "mutateObjects", "count", "length", "db", "flush", "handleChangeOnRow", "row", "key", "value", "newObjects", "Object", "assign", "find", "object", "helper", "builder", "createColumnBuilder", "columns", "accessor", "switch", "label", "onUpdate", "string", "classNames", "number", "DensityProvider", "density", "Table", "Root", "Viewport", "Main", "data", "Button", "onClick", "DEFAULT_COUNT", "DEFAULT_PERIOD", "DEFAULT_JITTER", "useRefresh", "update", "setUpdate", "useState", "DebugSpace", "space", "onAddObjects", "connect", "useSpaceInvitation", "key", "client", "useClient", "data", "setData", "handleUpdate", "useAsyncEffect", "isMounted", "diagnostics", "truncate", "spaces", "find", "toHex", "startsWith", "download", "useFileDownload", "handleCopy", "Blob", "JSON", "stringify", "undefined", "type", "Date", "toISOString", "replace", "mutationCount", "setMutationCount", "String", "mutationInterval", "setMutationInterval", "mutationJitter", "setMutationJitter", "generator", "useMemo", "createSpaceObjectGenerator", "running", "start", "stop", "useContext", "DebugContext", "handleToggleRunning", "objects", "db", "query", "Filter", "schema", "DocumentType", "run", "length", "object", "faker", "helpers", "arrayElement", "mutateObject", "count", "mutationSize", "maxContentLength", "safeParseInt", "interval", "jitter", "handleCreateInvitation", "invitation", "share", "Invitation", "Type", "INTERACTIVE", "authMethod", "AuthMethod", "NONE", "multiUse", "code", "InvitationEncoder", "encode", "get", "URL", "window", "origin", "searchParams", "set", "url", "navigator", "clipboard", "writeText", "handleCreateEpoch", "internal", "createEpoch", "React", "DebugPanel", "menu", "div", "className", "title", "Input", "Root", "TextInput", "autoComplete", "size", "classNames", "placeholder", "value", "onChange", "target", "Flag", "mx", "getSize", "Timer", "PlusMinus", "Button", "onClick", "HandPalm", "Play", "ArrowClockwise", "DownloadSimple", "FlagPennant", "UserCirclePlus", "ObjectCreator"]
7
- }
@@ -1,15 +0,0 @@
1
- // packages/plugins/experimental/plugin-debug/src/components/DevtoolsMain.tsx
2
- import React from "react";
3
- import { Devtools } from "@dxos/devtools";
4
- import { useClient } from "@dxos/react-client";
5
- var DevtoolsMain = () => {
6
- const client = useClient();
7
- return /* @__PURE__ */ React.createElement(Devtools, {
8
- client
9
- });
10
- };
11
- var DevtoolsMain_default = DevtoolsMain;
12
- export {
13
- DevtoolsMain_default as default
14
- };
15
- //# sourceMappingURL=DevtoolsMain-RWT3FLJ6.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/DevtoolsMain.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Devtools } from '@dxos/devtools';\nimport { useClient } from '@dxos/react-client';\n\nconst DevtoolsMain = () => {\n const client = useClient();\n return <Devtools client={client} />;\n};\n\nexport default DevtoolsMain;\n"],
5
- "mappings": ";AAIA,OAAOA,WAAW;AAElB,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAE1B,IAAMC,eAAe,MAAA;AACnB,QAAMC,SAASC,UAAAA;AACf,SAAO,sBAAA,cAACC,UAAAA;IAASF;;AACnB;AAEA,IAAA,uBAAeD;",
6
- "names": ["React", "Devtools", "useClient", "DevtoolsMain", "client", "useClient", "Devtools"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/DebugPanel.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { formatDistance } from 'date-fns';\nimport React, { type FC, type PropsWithChildren, type ReactNode } from 'react';\n\nimport { useConfig } from '@dxos/react-client';\nimport { DensityProvider } from '@dxos/react-ui';\n\nexport const DebugPanel: FC<PropsWithChildren<{ menu: ReactNode }>> = ({ menu, children }) => {\n const config = useConfig();\n return (\n <>\n <div className='flex shrink-0 p-2 space-x-2'>\n <DensityProvider density='fine'>{menu}</DensityProvider>\n </div>\n <div className='flex flex-col grow px-2 overflow-hidden'>\n <div className='flex flex-col grow overflow-auto'>{children}</div>\n\n {config.values?.runtime?.app?.build?.timestamp && (\n <div className='p-2 text-sm font-mono'>\n {config.values?.runtime?.app?.build?.version} (\n {formatDistance(new Date(config.values?.runtime?.app?.build?.timestamp), new Date(), {\n addSuffix: true,\n includeSeconds: true,\n })}\n )\n </div>\n )}\n </div>\n </>\n );\n};\n"],
5
- "mappings": ";AAIA,SAASA,sBAAsB;AAC/B,OAAOC,WAAgE;AAEvE,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAEzB,IAAMC,aAAyD,CAAC,EAAEC,MAAMC,SAAQ,MAAE;AACvF,QAAMC,SAASC,UAAAA;AACf,SACE,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACC,iBAAAA;IAAgBC,SAAQ;KAAQP,IAAAA,CAAAA,GAEnC,sBAAA,cAACI,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACD,OAAAA;IAAIC,WAAU;KAAoCJ,QAAAA,GAElDC,OAAOM,QAAQC,SAASC,KAAKC,OAAOC,aACnC,sBAAA,cAACR,OAAAA;IAAIC,WAAU;KACZH,OAAOM,QAAQC,SAASC,KAAKC,OAAOE,SAAQ,MAC5CC,eAAe,IAAIC,KAAKb,OAAOM,QAAQC,SAASC,KAAKC,OAAOC,SAAAA,GAAY,oBAAIG,KAAAA,GAAQ;IACnFC,WAAW;IACXC,gBAAgB;EAClB,CAAA,GAAG,GAAA,CAAA,CAAA;AAOf;",
6
- "names": ["formatDistance", "React", "useConfig", "DensityProvider", "DebugPanel", "menu", "children", "config", "useConfig", "div", "className", "DensityProvider", "density", "values", "runtime", "app", "build", "timestamp", "version", "formatDistance", "Date", "addSuffix", "includeSeconds"]
7
- }
@@ -1,21 +0,0 @@
1
- // packages/plugins/experimental/plugin-debug/src/meta.tsx
2
- import { Bug } from "@phosphor-icons/react";
3
- import React from "react";
4
- import { pluginMeta } from "@dxos/app-framework";
5
- var DEBUG_PLUGIN = "dxos.org/plugin/debug";
6
- var meta_default = pluginMeta({
7
- id: DEBUG_PLUGIN,
8
- name: "Debug",
9
- description: "DXOS debugging tools.",
10
- tags: [
11
- "experimental"
12
- ],
13
- iconComponent: (props) => /* @__PURE__ */ React.createElement(Bug, props),
14
- iconSymbol: "ph--bug--regular"
15
- });
16
-
17
- export {
18
- DEBUG_PLUGIN,
19
- meta_default
20
- };
21
- //# sourceMappingURL=chunk-WEGYHXMB.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Bug, type IconProps } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { pluginMeta } from '@dxos/app-framework';\n\nexport const DEBUG_PLUGIN = 'dxos.org/plugin/debug';\n\nexport default pluginMeta({\n id: DEBUG_PLUGIN,\n name: 'Debug',\n description: 'DXOS debugging tools.',\n tags: ['experimental'],\n iconComponent: (props: IconProps) => <Bug {...props} />,\n iconSymbol: 'ph--bug--regular',\n});\n"],
5
- "mappings": ";AAIA,SAASA,WAA2B;AACpC,OAAOC,WAAW;AAElB,SAASC,kBAAkB;AAEpB,IAAMC,eAAe;AAE5B,IAAA,eAAeC,WAAW;EACxBC,IAAIF;EACJG,MAAM;EACNC,aAAa;EACbC,MAAM;IAAC;;EACPC,eAAe,CAACC,UAAqB,sBAAA,cAACC,KAAQD,KAAAA;EAC9CE,YAAY;AACd,CAAA;",
6
- "names": ["Bug", "React", "pluginMeta", "DEBUG_PLUGIN", "pluginMeta", "id", "name", "description", "tags", "iconComponent", "props", "Bug", "iconSymbol"]
7
- }
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- declare const DevtoolsMain: () => React.JSX.Element;
3
- export default DevtoolsMain;
4
- //# sourceMappingURL=DevtoolsMain.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DevtoolsMain.d.ts","sourceRoot":"","sources":["../../../../src/components/DevtoolsMain.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,QAAA,MAAM,YAAY,yBAGjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../src/types.test.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { Devtools } from '@dxos/devtools';
8
- import { useClient } from '@dxos/react-client';
9
-
10
- const DevtoolsMain = () => {
11
- const client = useClient();
12
- return <Devtools client={client} />;
13
- };
14
-
15
- export default DevtoolsMain;
package/src/meta.tsx DELETED
@@ -1,19 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { Bug, type IconProps } from '@phosphor-icons/react';
6
- import React from 'react';
7
-
8
- import { pluginMeta } from '@dxos/app-framework';
9
-
10
- export const DEBUG_PLUGIN = 'dxos.org/plugin/debug';
11
-
12
- export default pluginMeta({
13
- id: DEBUG_PLUGIN,
14
- name: 'Debug',
15
- description: 'DXOS debugging tools.',
16
- tags: ['experimental'],
17
- iconComponent: (props: IconProps) => <Bug {...props} />,
18
- iconSymbol: 'ph--bug--regular',
19
- });
package/src/types.test.ts DELETED
@@ -1,13 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { expect } from 'chai';
6
-
7
- import { describe, test } from '@dxos/test';
8
-
9
- describe('sanity', () => {
10
- test('basic', () => {
11
- expect(true).to.be.true;
12
- });
13
- });