@dxos/plugin-script 0.8.4-main.c1de068 → 0.8.4-main.c4373fc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/DeploymentDialog-7FNPALCV.mjs +12 -0
- package/dist/lib/browser/NotebookContainer-ZSXYRRZB.mjs +578 -0
- package/dist/lib/browser/NotebookContainer-ZSXYRRZB.mjs.map +7 -0
- package/dist/lib/browser/ScriptContainer-24LLLTLB.mjs +149 -0
- package/dist/lib/browser/ScriptContainer-24LLLTLB.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-DPYULSME.mjs} +9 -8
- package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +28 -0
- package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3U6DTUH3.mjs → chunk-DXWTBOND.mjs} +26 -27
- package/dist/lib/browser/chunk-DXWTBOND.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FMDXKOP7.mjs → chunk-ETFBQURU.mjs} +71 -50
- package/dist/lib/browser/chunk-ETFBQURU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EZVXV6DA.mjs} +3 -5
- package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +7 -0
- package/dist/lib/browser/chunk-I3THDIT5.mjs +90 -0
- package/dist/lib/browser/chunk-I3THDIT5.mjs.map +7 -0
- package/dist/lib/browser/chunk-N6M34EUC.mjs +112 -0
- package/dist/lib/browser/chunk-N6M34EUC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-P4HQKUCP.mjs → chunk-NNYSARXK.mjs} +15 -15
- package/dist/lib/browser/chunk-NNYSARXK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-OKXN2N7M.mjs} +2 -2
- package/dist/lib/browser/{chunk-FIM2MVNJ.mjs → chunk-SRSEZWDY.mjs} +159 -68
- package/dist/lib/browser/chunk-SRSEZWDY.mjs.map +7 -0
- package/dist/lib/browser/chunk-SWBZUZDX.mjs +80 -0
- package/dist/lib/browser/chunk-SWBZUZDX.mjs.map +7 -0
- package/dist/lib/browser/chunk-VFJJA4WR.mjs +88 -0
- package/dist/lib/browser/chunk-VFJJA4WR.mjs.map +7 -0
- package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-G2N2CG63.mjs} +24 -8
- package/dist/lib/browser/compiler-G2N2CG63.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +96 -39
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-7B77IG3N.mjs → intent-resolver-FYZRLYNT.mjs} +30 -16
- package/dist/lib/browser/intent-resolver-FYZRLYNT.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-FYYXZA7C.mjs → react-surface-CFRYAL2P.mjs} +36 -13
- package/dist/lib/browser/react-surface-CFRYAL2P.mjs.map +7 -0
- package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-L3HCZRBP.mjs} +8 -8
- package/dist/lib/browser/settings-L3HCZRBP.mjs.map +7 -0
- package/dist/lib/browser/templates/index.mjs +1 -1
- package/dist/lib/browser/types/index.mjs +6 -4
- package/dist/lib/node-esm/{DeploymentDialog-3KPRWFE7.mjs → DeploymentDialog-AKAGR37W.mjs} +5 -5
- package/dist/lib/node-esm/NotebookContainer-2O3N3XPE.mjs +579 -0
- package/dist/lib/node-esm/NotebookContainer-2O3N3XPE.mjs.map +7 -0
- package/dist/lib/node-esm/ScriptContainer-IKOB6FHQ.mjs +150 -0
- package/dist/lib/node-esm/ScriptContainer-IKOB6FHQ.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-UXJGHXSL.mjs} +9 -8
- package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +30 -0
- package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-QKK3NDHW.mjs → chunk-5IKGUOMI.mjs} +15 -15
- package/dist/lib/node-esm/chunk-5IKGUOMI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-RT43MACC.mjs → chunk-7MR2L4T3.mjs} +26 -27
- package/dist/lib/node-esm/chunk-7MR2L4T3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-C33FKUSC.mjs +91 -0
- package/dist/lib/node-esm/chunk-C33FKUSC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-NUXZQQ6P.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-OG2SIKHE.mjs} +3 -5
- package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-OQGBKNYU.mjs +90 -0
- package/dist/lib/node-esm/chunk-OQGBKNYU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7NMI4CEU.mjs → chunk-PMQ3D535.mjs} +159 -68
- package/dist/lib/node-esm/chunk-PMQ3D535.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XJPK3IYI.mjs → chunk-U4CZGISN.mjs} +71 -50
- package/dist/lib/node-esm/chunk-U4CZGISN.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +114 -0
- package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ZF5ULKED.mjs +81 -0
- package/dist/lib/node-esm/chunk-ZF5ULKED.mjs.map +7 -0
- package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-PLDAZ5GJ.mjs} +24 -8
- package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +96 -39
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-FRZGS4TB.mjs → intent-resolver-6J3CFL5T.mjs} +30 -16
- package/dist/lib/node-esm/intent-resolver-6J3CFL5T.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-V32NWHKN.mjs → react-surface-NPKEO7SA.mjs} +36 -13
- package/dist/lib/node-esm/react-surface-NPKEO7SA.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-YWGZP4EW.mjs} +8 -8
- package/dist/lib/node-esm/settings-YWGZP4EW.mjs.map +7 -0
- package/dist/lib/node-esm/templates/index.mjs +1 -1
- package/dist/lib/node-esm/types/index.mjs +6 -4
- package/dist/types/src/ScriptPlugin.d.ts +1 -1
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/compiler.d.ts +1 -1
- package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +6 -6
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/compiler/compiler.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +225 -13
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
- package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
- package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
- package/dist/types/src/components/NotebookContainer.d.ts +10 -0
- package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
- package/dist/types/src/components/NotebookContainer.stories.d.ts +231 -0
- package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +16 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +231 -0
- package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
- package/dist/types/src/components/NotebookStack/index.d.ts +2 -0
- package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
- package/dist/types/src/components/ScriptContainer.d.ts +2 -2
- package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +227 -10
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
- package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +17 -4
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/hooks/deploy.d.ts +11 -10
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/template.d.ts.map +1 -1
- package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/notebook/index.d.ts +2 -0
- package/dist/types/src/notebook/index.d.ts.map +1 -0
- package/dist/types/src/notebook/notebook.d.ts +39 -0
- package/dist/types/src/notebook/notebook.d.ts.map +1 -0
- package/dist/types/src/notebook/notebook.test.d.ts +2 -0
- package/dist/types/src/notebook/notebook.test.d.ts.map +1 -0
- package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
- package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
- package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
- package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
- package/dist/types/src/templates/chess.d.ts.map +1 -1
- package/dist/types/src/templates/data-generator.d.ts.map +1 -1
- package/dist/types/src/templates/discord.d.ts.map +1 -1
- package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
- package/dist/types/src/templates/forex.d.ts.map +1 -1
- package/dist/types/src/templates/gmail.d.ts.map +1 -1
- package/dist/types/src/testing/data.d.ts +10 -0
- package/dist/types/src/testing/data.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +21 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/actions.d.ts +58 -0
- package/dist/types/src/types/actions.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +29 -32
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/util/deploy.d.ts +3 -3
- package/dist/types/src/util/deploy.d.ts.map +1 -1
- package/dist/types/src/util/functions.d.ts +5 -2
- package/dist/types/src/util/functions.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +73 -69
- package/src/ScriptPlugin.tsx +91 -69
- package/src/capabilities/app-graph-builder.ts +6 -5
- package/src/capabilities/artifact-definition.ts +8 -12
- package/src/capabilities/blueprint-definition.ts +30 -0
- package/src/capabilities/compiler.ts +2 -1
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +15 -8
- package/src/capabilities/react-surface.tsx +20 -7
- package/src/capabilities/settings.ts +3 -3
- package/src/compiler/compiler.ts +1 -1
- package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +34 -20
- package/src/components/DeploymentDialog/DeploymentDialog.tsx +16 -22
- package/src/components/DeploymentDialog/index.ts +1 -1
- package/src/components/FrameContainer/FrameContainer.tsx +3 -2
- package/src/components/NotebookContainer.stories.tsx +36 -0
- package/src/components/NotebookContainer.tsx +82 -0
- package/src/components/NotebookStack/NotebookStack.stories.tsx +36 -0
- package/src/components/NotebookStack/NotebookStack.tsx +113 -0
- package/src/components/NotebookStack/index.ts +5 -0
- package/src/components/ScriptContainer.tsx +4 -3
- package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +33 -17
- package/src/components/ScriptToolbar/ScriptToolbar.tsx +30 -23
- package/src/components/Settings/ScriptObjectSettings.tsx +111 -31
- package/src/components/Settings/ScriptPluginSettings.tsx +37 -47
- package/src/components/TestPanel/TestContainer.tsx +2 -1
- package/src/components/TestPanel/TestPanel.tsx +6 -6
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +84 -30
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +32 -25
- package/src/components/index.ts +3 -0
- package/src/events.ts +2 -2
- package/src/hooks/deploy.ts +18 -19
- package/src/hooks/format.ts +2 -2
- package/src/hooks/template.ts +4 -3
- package/src/hooks/useCreateAndDeployScriptTemplates.ts +4 -3
- package/src/index.ts +1 -0
- package/src/meta.ts +2 -4
- package/src/notebook/index.ts +5 -0
- package/src/notebook/notebook.test.ts +38 -0
- package/src/notebook/notebook.ts +188 -0
- package/src/notebook/vfs-parser.test.ts +149 -0
- package/src/notebook/vfs-parser.ts +490 -0
- package/src/templates/chess.ts +3 -1
- package/src/templates/data-generator.ts +9 -3
- package/src/templates/discord.ts +12 -4
- package/src/templates/forex-effect.ts +7 -3
- package/src/templates/forex.ts +3 -1
- package/src/templates/gmail.ts +33 -62
- package/src/testing/data.ts +37 -0
- package/src/testing/index.ts +5 -0
- package/src/translations.ts +24 -4
- package/src/types/actions.ts +49 -0
- package/src/types/index.ts +1 -0
- package/src/types/schema.ts +24 -19
- package/src/util/deploy.ts +20 -33
- package/src/util/functions.ts +35 -6
- package/dist/lib/browser/DeploymentDialog-M4QIHTDR.mjs +0 -12
- package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs +0 -262
- package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-HLQ7K3BT.mjs.map +0 -7
- package/dist/lib/browser/artifact-definition-24Q3IHOU.mjs +0 -249
- package/dist/lib/browser/artifact-definition-24Q3IHOU.mjs.map +0 -7
- package/dist/lib/browser/chunk-3U6DTUH3.mjs.map +0 -7
- package/dist/lib/browser/chunk-FIM2MVNJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-FMDXKOP7.mjs.map +0 -7
- package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
- package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
- package/dist/lib/browser/chunk-P4HQKUCP.mjs.map +0 -7
- package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
- package/dist/lib/browser/chunk-R4R7VOFY.mjs +0 -88
- package/dist/lib/browser/chunk-R4R7VOFY.mjs.map +0 -7
- package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-7B77IG3N.mjs.map +0 -7
- package/dist/lib/browser/react-surface-FYYXZA7C.mjs.map +0 -7
- package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs +0 -263
- package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-7EYIHWH4.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-definition-WAJFALUI.mjs +0 -250
- package/dist/lib/node-esm/artifact-definition-WAJFALUI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7NMI4CEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs +0 -90
- package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
- package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-QKK3NDHW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RT43MACC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XJPK3IYI.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-FRZGS4TB.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-V32NWHKN.mjs.map +0 -7
- package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
- /package/dist/lib/browser/{DeploymentDialog-M4QIHTDR.mjs.map → DeploymentDialog-7FNPALCV.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-OKXN2N7M.mjs.map} +0 -0
- /package/dist/lib/node-esm/{DeploymentDialog-3KPRWFE7.mjs.map → DeploymentDialog-AKAGR37W.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-NUXZQQ6P.mjs.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/NotebookContainer.tsx", "../../../src/notebook/notebook.ts", "../../../src/notebook/vfs-parser.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Ref } from '@dxos/echo';\nimport { Toolbar, useTranslation } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\nimport { ComputeGraph } from '../notebook';\nimport { type Notebook } from '../types';\n\nimport { NotebookStack, type NotebookStackProps } from './NotebookStack';\nimport { type TypescriptEditorProps } from './TypescriptEditor';\n\nexport type NotebookContainerProps = {\n role?: string;\n notebook?: Notebook.Notebook;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const NotebookContainer = ({ notebook, env }: NotebookContainerProps) => {\n const { t } = useTranslation(meta.id);\n\n const graph = useMemo(() => notebook && new ComputeGraph(notebook), [notebook]);\n\n const handleCompute = useCallback(() => {\n graph?.evaluate();\n }, [graph]);\n\n const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(\n (after) => {\n const idx = after ? notebook!.cells.findIndex((cell) => cell.id === after) : notebook!.cells.length;\n notebook?.cells.splice(idx, 0, {\n id: crypto.randomUUID(),\n script: Ref.make(DataType.makeText('\\n\\n\\n')),\n });\n },\n [notebook],\n );\n\n const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(\n (id: string) => {\n const idx = notebook!.cells.findIndex((cell) => cell.id === id);\n if (idx !== -1) {\n notebook!.cells.splice(idx, 1);\n }\n },\n [notebook],\n );\n\n return (\n <StackItem.Content classNames='container-max-width border-l border-r border-subduedSeparator' toolbar>\n <Toolbar.Root>\n <Toolbar.IconButton\n icon='ph--plus--regular'\n iconOnly\n label={t('add cell label')}\n onClick={() => handleCellInsert('')}\n />\n <Toolbar.IconButton\n icon='ph--play--fill'\n iconOnly\n label={t('compute label')}\n classNames='text-green-500'\n onClick={handleCompute}\n />\n </Toolbar.Root>\n <NotebookStack\n notebook={notebook}\n graph={graph}\n env={env}\n onCellInsert={handleCellInsert}\n onCellDelete={handleCellDelete}\n />\n </StackItem.Content>\n );\n};\n\nexport default NotebookContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Signal, signal } from '@preact/signals-core';\n\nimport { log } from '@dxos/log';\n\nimport { type Notebook } from '../types';\n\nimport { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';\n\n/**\n * Compute graph that evaluates the notebook cells.\n */\nexport class ComputeGraph {\n private readonly _parser = new VirtualTypeScriptParser();\n\n private _expressions = signal<Record<string, ParsedExpression>>({});\n private _values = signal<Record<string, any>>({});\n\n constructor(private readonly _notebook: Notebook.Notebook) {}\n\n /**\n * Parsed expressions by cell ID.\n */\n get expressions(): Signal<Record<string, ParsedExpression>> {\n return this._expressions;\n }\n\n /**\n * Computed values by cell ID.\n */\n get values(): Signal<Record<string, any>> {\n return this._values;\n }\n\n /**\n * Compute values.\n */\n evaluate() {\n // Parse expressions.\n const { expressions, dependencyGraph } = this.parse();\n this._values.value = {};\n\n // Create a map of cell IDs to expressions for easy lookup.\n const cellExpressions = new Map<string, ParsedExpression>();\n Object.entries(expressions).forEach(([id, expr]) => {\n cellExpressions.set(id, expr);\n });\n\n // Topological sort to determine evaluation order.\n const evaluationOrder = this.topologicalSort(Object.keys(expressions), dependencyGraph);\n\n // Values by reference name.\n const valuesByName: Record<string, any> = {};\n const valuesByCellId: Record<string, any> = {};\n\n // Evaluate cells in dependency order.\n for (const cellId of evaluationOrder) {\n const expr = cellExpressions.get(cellId);\n if (!expr) {\n log.error('no expression for cell', { cellId });\n continue;\n }\n\n const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.script.target?.content;\n if (!cellSource) {\n log.error('no source for cell', { cellId });\n continue;\n }\n\n try {\n // For assignments or declarations, evaluate and store the value.\n if (expr.name && expr.value !== undefined) {\n // If the parser extracted a literal value, use it directly.\n valuesByName[expr.name] = expr.value;\n valuesByCellId[cellId] = expr.value;\n } else if (expr.name) {\n // For non-literal assignments, we need to evaluate the expression.\n // The parser identifies it's an assignment, so we can extract the RHS.\n const equalIndex = cellSource.indexOf('=');\n if (equalIndex !== -1) {\n // Find the actual assignment operator (not in strings or other contexts).\n let rhs = cellSource.substring(equalIndex + 1).trim();\n\n // Handle semicolon at the end.\n if (rhs.endsWith(';')) {\n rhs = rhs.slice(0, -1).trim();\n }\n\n const result = this.evalScript(rhs, valuesByName);\n valuesByName[expr.name] = result;\n if (typeof result !== 'function') {\n valuesByCellId[cellId] = result;\n }\n }\n } else {\n // For expressions without assignment, just evaluate.\n const result = this.evalScript(cellSource, valuesByName);\n valuesByCellId[cellId] = result;\n }\n } catch (error) {\n log.error('error evaluating cell', { cellId, error });\n }\n }\n\n this._values.value = valuesByCellId;\n return valuesByCellId;\n }\n\n /**\n * Parse expressions.\n */\n parse() {\n const expressions = this._notebook.cells.reduce<Record<string, ParsedExpression>>((acc, cell) => {\n const text = cell.script.target?.content.trim();\n if (text) {\n const parsed = this._parser.parseExpression(text);\n acc[cell.id] = parsed;\n }\n\n return acc;\n }, {});\n\n // Build dependency graph.\n const dependencyGraph = this.buildDependencyGraph(expressions);\n this._expressions.value = expressions;\n return { expressions, dependencyGraph };\n }\n\n private topologicalSort(nodes: string[], dependencies: Record<string, string[]>): string[] {\n const visited = new Set<string>();\n const result: string[] = [];\n\n const visit = (node: string) => {\n if (visited.has(node)) {\n return;\n }\n\n visited.add(node);\n\n // Visit dependencies first.\n const deps = dependencies[node] || [];\n deps.forEach((dep) => visit(dep));\n result.push(node);\n };\n\n // Visit all nodes.\n nodes.forEach((node) => visit(node));\n return result;\n }\n\n private buildDependencyGraph(expressions: Record<string, ParsedExpression>): Record<string, string[]> {\n // Create a map of variable names to their cell IDs.\n const nameToCellId = new Map<string, string>();\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.name) {\n nameToCellId.set(expr.name, id);\n }\n });\n\n // Build the dependency graph using cell IDs.\n const graph: Record<string, string[]> = {};\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.references && expr.references.length > 0) {\n // Map variable references to cell IDs.\n const dependencyCellIds = expr.references\n .map((ref) => nameToCellId.get(ref))\n .filter((cellId): cellId is string => cellId !== undefined && cellId !== id);\n\n if (dependencyCellIds.length > 0) {\n graph[id] = dependencyCellIds;\n }\n }\n });\n\n return graph;\n }\n\n /**\n * Evaluate the script (with dependencies as arguments).\n */\n private evalScript(code: string, deps: Record<string, any> = {}) {\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n return new Function(...Object.keys(deps), 'return ' + code)(...Object.values(deps));\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createSystem, createVirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\nimport { trim } from '@dxos/util';\n\nexport type ParsedExpression = {\n name?: string;\n type?: 'function' | 'variable' | 'class' | 'interface';\n value?: any;\n valueType?: string;\n parameters?: Array<{ name: string; type: string }>;\n returnType?: string;\n references?: string[];\n};\n\nexport type VirtualFile = {\n filename: string;\n content: string;\n};\n\n/**\n * TypeScript parser using Virtual File System for browser compatibility.\n * This provides full TypeScript analysis including type information.\n */\nexport class VirtualTypeScriptParser {\n protected compilerOptions: ts.CompilerOptions = {\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInfilenames: true,\n jsx: ts.JsxEmit.React,\n noLib: true, // Don't automatically include default lib files.\n };\n\n /**\n * Parse a single expression or statement.\n */\n parseExpression(input: string): ParsedExpression {\n invariant(input.trim() !== '', 'input must not be empty');\n const files: VirtualFile[] = [{ filename: '/temp.ts', content: input }];\n const analysis = this.analyzeFiles(files);\n\n // If no declarations found, check for standalone expression references.\n if (analysis.length === 0) {\n const sourcefilename = '/temp.ts';\n const env = this.createEnvironment([{ filename: sourcefilename, content: input }, ...systemFiles]);\n const sourceFile = env.getSourceFile(sourcefilename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n // Check for assignment expressions.\n const assignmentInfo = this.findAssignmentExpression(sourceFile, typeChecker);\n if (assignmentInfo) {\n return assignmentInfo;\n }\n\n const references = this.findAllReferences(sourceFile, typeChecker);\n return { references };\n }\n }\n\n return analysis[0];\n }\n\n /**\n * Analyze multiple files with full type information.\n */\n analyzeFiles(files: VirtualFile[]): ParsedExpression[] {\n const env = this.createEnvironment([...files, ...systemFiles]);\n const results: ParsedExpression[] = [];\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n // Analyze each file.\n files.forEach((file) => {\n const sourceFile = env.getSourceFile(file.filename);\n if (!sourceFile || !typeChecker) return;\n\n const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);\n results.push(...fileResults);\n });\n\n return results;\n }\n\n /**\n * Analyze a source file with type information.\n */\n protected analyzeSourceFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression[] {\n const results: ParsedExpression[] = [];\n\n const visit = (node: ts.Node) => {\n // Function declarations\n if (ts.isFunctionDeclaration(node) && node.name) {\n const symbol = typeChecker.getSymbolAtLocation(node.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, node);\n const signature = type && typeChecker.getSignaturesOfType(type, ts.SignatureKind.Call)[0];\n\n results.push({\n name: node.name.text,\n type: 'function',\n parameters: this.extractParameters(signature, typeChecker),\n returnType: signature ? typeChecker.typeToString(signature.getReturnType()) : 'any',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Variable declarations.\n else if (ts.isVariableStatement(node)) {\n node.declarationList.declarations.forEach((declaration) => {\n if (ts.isIdentifier(declaration.name)) {\n const symbol = typeChecker.getSymbolAtLocation(declaration.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, declaration);\n\n let kind: 'function' | 'variable' = 'variable';\n let parameters: Array<{ name: string; type: string }> | undefined;\n let returnType: string | undefined;\n let value: any;\n\n // Get the type string\n const typeString = type ? typeChecker.typeToString(type) : 'any';\n\n // Check if it's a function.\n if (declaration.initializer) {\n if (ts.isArrowFunction(declaration.initializer) || ts.isFunctionExpression(declaration.initializer)) {\n kind = 'function';\n const funcType = typeChecker.getTypeAtLocation(declaration.initializer);\n const signature = typeChecker.getSignaturesOfType(funcType, ts.SignatureKind.Call)[0];\n if (signature) {\n parameters = this.extractParameters(signature, typeChecker);\n returnType = typeChecker.typeToString(signature.getReturnType());\n }\n } else {\n // Extract literal values\n if (ts.isNumericLiteral(declaration.initializer)) {\n value = Number(declaration.initializer.text);\n } else if (ts.isStringLiteral(declaration.initializer)) {\n value = declaration.initializer.text;\n }\n }\n }\n\n // Find references in the initializer only\n const refs = declaration.initializer\n ? this.findReferences(declaration.initializer, sourceFile, typeChecker)\n : [];\n\n results.push({\n name: declaration.name.text,\n type: kind,\n valueType: typeString,\n value,\n parameters,\n returnType,\n references: refs,\n });\n }\n });\n }\n\n // Class declarations\n else if (ts.isClassDeclaration(node) && node.name) {\n results.push({\n name: node.name.text,\n type: 'class',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Interface declarations.\n else if (ts.isInterfaceDeclaration(node)) {\n results.push({\n name: node.name.text,\n type: 'interface',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return results;\n }\n\n /**\n * Extract parameter information from a signature.\n */\n private extractParameters(\n signature: ts.Signature | undefined,\n typeChecker: ts.TypeChecker,\n ): Array<{ name: string; type: string }> {\n if (!signature) return [];\n\n return signature.parameters.map((param) => ({\n name: param.getName(),\n type: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(param, param.valueDeclaration!)),\n }));\n }\n\n /**\n * Find all references to variables used in a node.\n */\n private findReferences(node: ts.Node, _sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n const localSymbols = new Set<string>();\n\n // First, collect local symbols (parameters, local variables).\n const collectLocalSymbols = (n: ts.Node) => {\n if (ts.isFunctionDeclaration(n) || ts.isArrowFunction(n) || ts.isFunctionExpression(n)) {\n n.parameters.forEach((param) => {\n if (ts.isIdentifier(param.name)) {\n localSymbols.add(param.name.text);\n }\n });\n }\n\n if (ts.isVariableDeclaration(n) && ts.isIdentifier(n.name)) {\n localSymbols.add(n.name.text);\n }\n\n ts.forEachChild(n, collectLocalSymbols);\n };\n\n collectLocalSymbols(node);\n\n // Then find all identifier references.\n const findRefs = (n: ts.Node) => {\n if (ts.isIdentifier(n)) {\n // Skip if it's a local symbol\n if (!localSymbols.has(n.text)) {\n // Check if it's a reference (not a declaration).\n const parent = n.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === n) ||\n (ts.isFunctionDeclaration(parent) && parent.name === n) ||\n (ts.isParameter(parent) && parent.name === n);\n\n if (!isDeclaration && !this.isBuiltIn(n.text)) {\n references.add(n.text);\n }\n }\n }\n ts.forEachChild(n, findRefs);\n };\n\n findRefs(node);\n return Array.from(references);\n }\n\n /**\n * Check if a name is a built-in global.\n */\n protected isBuiltIn(name: string): boolean {\n return builtIns.has(name);\n }\n\n /**\n * Find assignment expressions in a source file.\n */\n private findAssignmentExpression(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression | null {\n let result: ParsedExpression | null = null;\n\n const visit = (node: ts.Node) => {\n if (ts.isExpressionStatement(node) && ts.isBinaryExpression(node.expression)) {\n const expr = node.expression;\n if (expr.operatorToken.kind === ts.SyntaxKind.EqualsToken && ts.isIdentifier(expr.left)) {\n const type = typeChecker.getTypeAtLocation(expr.right);\n const typeString = typeChecker.typeToString(type);\n\n // Get the literal value if it's a literal\n let value: any;\n if (ts.isNumericLiteral(expr.right)) {\n value = Number(expr.right.text);\n } else if (ts.isStringLiteral(expr.right)) {\n value = expr.right.text;\n }\n\n // Find references in the right-hand side\n const references = this.findReferences(expr.right, sourceFile, typeChecker);\n\n result = {\n name: expr.left.text,\n type: 'variable',\n valueType: typeString,\n value,\n references,\n };\n }\n }\n if (!result) {\n ts.forEachChild(node, visit);\n }\n };\n\n visit(sourceFile);\n return result;\n }\n\n /**\n * Find all identifier references in a source file.\n */\n protected findAllReferences(sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n\n const visit = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a declaration.\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n // Skip if it's the left-hand side of an assignment.\n const isAssignmentTarget =\n ts.isBinaryExpression(parent) &&\n parent.operatorToken.kind === ts.SyntaxKind.EqualsToken &&\n parent.left === node;\n\n if (!isDeclaration && !isAssignmentTarget && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return Array.from(references);\n }\n\n protected createEnvironment(files: VirtualFile[]) {\n const fileMap = new Map<string, string>();\n files.forEach(({ filename, content }) => {\n fileMap.set(filename, content);\n });\n\n const system = createSystem(fileMap);\n return createVirtualTypeScriptEnvironment(\n system,\n files.map(({ filename }) => filename),\n ts,\n this.compilerOptions,\n );\n }\n}\n\n/**\n * Notebook-specific parser with dependency analysis.\n */\nexport class NotebookVirtualParser extends VirtualTypeScriptParser {\n /**\n * Analyze notebook cells with full type checking.\n */\n analyzeNotebook(cells: Array<{ id: string; code: string }>) {\n // Create cumulative environment where each cell can see previous cells\n const cumulativeCode: string[] = [];\n const cellAnalysis: Map<\n string,\n {\n exports: ParsedExpression[];\n imports: string[];\n errors: ts.Diagnostic[];\n }\n > = new Map();\n\n cells.forEach((cell) => {\n // Create files for all cells up to current.\n const files: VirtualFile[] = [];\n\n // Add previous cells as context.\n if (cumulativeCode.length > 0) {\n files.push({\n filename: '/context.ts',\n content: cumulativeCode.join('\\n'),\n });\n }\n\n // Add current cell.\n const filename = `/cell/${cell.id}.ts`;\n files.push({\n filename,\n content: cell.code,\n });\n\n // Create environment.\n const env = this.createEnvironment([...files, ...systemFiles]);\n\n // Get diagnostics (errors).\n const diagnostics = env.languageService.getSemanticDiagnostics(filename);\n\n // Analyze current cell.\n const sourceFile = env.getSourceFile(filename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n const exports = this.analyzeSourceFile(sourceFile, typeChecker);\n\n // Find all references in the current cell.\n const allRefs = new Set<string>();\n exports.forEach((exp) => {\n exp.references?.forEach((ref) => allRefs.add(ref));\n });\n\n // Also check for references not in exports (e.g., console.log(y)).\n const additionalRefs = this.findAllReferences(sourceFile, typeChecker);\n additionalRefs.forEach((ref) => allRefs.add(ref));\n\n // Determine which references are imports from previous cells.\n const previousExports = new Set<string>();\n for (const [_prevCellId, prevAnalysis] of cellAnalysis) {\n prevAnalysis.exports.forEach((exp) => {\n if (exp.name) previousExports.add(exp.name);\n });\n }\n\n const imports = Array.from(allRefs).filter((ref) => previousExports.has(ref));\n\n cellAnalysis.set(cell.id, {\n exports,\n imports,\n errors: diagnostics,\n });\n }\n\n // Add current cell code to cumulative.\n cumulativeCode.push(cell.code);\n });\n\n return cellAnalysis;\n }\n}\n\n/**\n * Globals.\n */\nconst builtIns = new Set([\n // Types.\n 'Array',\n 'Date',\n 'Error',\n 'JSON',\n 'Map',\n 'Math',\n 'Number',\n 'Promise',\n 'Object',\n 'RegExp',\n 'Set',\n 'String',\n\n // Functions.\n 'console',\n 'document',\n 'global',\n 'isFinite',\n 'isNaN',\n 'parseFloat',\n 'parseInt',\n 'process',\n 'window',\n]);\n\n/**\n * Default system definitions.\n */\nconst systemFiles: VirtualFile[] = [\n {\n filename: '/lib.d.ts',\n content: trim`\n interface Array<T> { length: number; [n: number]: T; }\n interface Boolean {}\n interface Function {}\n interface IArguments {}\n interface Number {}\n interface Object {}\n interface RegExp {}\n interface String { length: number; }\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n declare var console: { log(...args: any[]): void };\n `,\n },\n];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useCallback", "useMemo", "Ref", "Toolbar", "useTranslation", "StackItem", "DataType", "signal", "log", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "trim", "VirtualTypeScriptParser", "parseExpression", "input", "files", "filename", "content", "analysis", "analyzeFiles", "length", "sourcefilename", "env", "createEnvironment", "systemFiles", "sourceFile", "getSourceFile", "typeChecker", "languageService", "getProgram", "getTypeChecker", "assignmentInfo", "findAssignmentExpression", "references", "findAllReferences", "results", "forEach", "file", "fileResults", "analyzeSourceFile", "push", "visit", "node", "isFunctionDeclaration", "name", "symbol", "getSymbolAtLocation", "type", "getTypeOfSymbolAtLocation", "signature", "getSignaturesOfType", "SignatureKind", "Call", "text", "parameters", "extractParameters", "returnType", "typeToString", "getReturnType", "findReferences", "isVariableStatement", "declarationList", "declarations", "declaration", "isIdentifier", "kind", "value", "typeString", "initializer", "isArrowFunction", "isFunctionExpression", "funcType", "getTypeAtLocation", "isNumericLiteral", "Number", "isStringLiteral", "refs", "valueType", "isClassDeclaration", "isInterfaceDeclaration", "forEachChild", "map", "param", "getName", "valueDeclaration", "_sourceFile", "_typeChecker", "Set", "localSymbols", "collectLocalSymbols", "n", "add", "isVariableDeclaration", "findRefs", "has", "parent", "isDeclaration", "isParameter", "isBuiltIn", "Array", "from", "builtIns", "result", "isExpressionStatement", "isBinaryExpression", "expression", "expr", "operatorToken", "SyntaxKind", "EqualsToken", "left", "right", "isAssignmentTarget", "fileMap", "Map", "set", "system", "compilerOptions", "target", "ScriptTarget", "ES2020", "module", "ModuleKind", "ESNext", "strict", "esModuleInterop", "skipLibCheck", "forceConsistentCasingInfilenames", "jsx", "JsxEmit", "React", "noLib", "builtIns", "Set", "systemFiles", "filename", "content", "trim", "ComputeGraph", "expressions", "_expressions", "values", "_values", "evaluate", "dependencyGraph", "parse", "value", "cellExpressions", "Map", "Object", "entries", "forEach", "id", "expr", "set", "evaluationOrder", "topologicalSort", "keys", "valuesByName", "valuesByCellId", "cellId", "get", "log", "error", "cellSource", "_notebook", "cells", "find", "cell", "script", "target", "content", "name", "undefined", "equalIndex", "indexOf", "rhs", "substring", "trim", "endsWith", "slice", "result", "evalScript", "reduce", "acc", "text", "parsed", "_parser", "parseExpression", "buildDependencyGraph", "nodes", "dependencies", "visited", "Set", "visit", "node", "has", "add", "deps", "dep", "push", "nameToCellId", "graph", "references", "length", "dependencyCellIds", "map", "ref", "filter", "code", "Function", "_define_property", "VirtualTypeScriptParser", "signal", "NotebookContainer", "notebook", "env", "t", "useTranslation", "meta", "id", "graph", "useMemo", "ComputeGraph", "handleCompute", "useCallback", "evaluate", "handleCellInsert", "after", "idx", "cells", "findIndex", "cell", "length", "splice", "crypto", "randomUUID", "script", "Ref", "make", "DataType", "makeText", "handleCellDelete", "StackItem", "Content", "classNames", "toolbar", "Toolbar", "Root", "IconButton", "icon", "iconOnly", "label", "onClick", "NotebookStack", "onCellInsert", "onCellDelete"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createDeploy,
|
|
3
|
+
createFormat,
|
|
4
|
+
createTemplateSelect,
|
|
5
|
+
useDeployDeps,
|
|
6
|
+
useDeployState,
|
|
7
|
+
useToolbarState
|
|
8
|
+
} from "./chunk-DXWTBOND.mjs";
|
|
9
|
+
import {
|
|
10
|
+
TypescriptEditor
|
|
11
|
+
} from "./chunk-N6M34EUC.mjs";
|
|
12
|
+
import "./chunk-VFJJA4WR.mjs";
|
|
13
|
+
import "./chunk-ETFBQURU.mjs";
|
|
14
|
+
import "./chunk-SWBZUZDX.mjs";
|
|
15
|
+
import {
|
|
16
|
+
meta
|
|
17
|
+
} from "./chunk-EZVXV6DA.mjs";
|
|
18
|
+
|
|
19
|
+
// src/components/ScriptContainer.tsx
|
|
20
|
+
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
21
|
+
import React2, { useMemo as useMemo2 } from "react";
|
|
22
|
+
import { createDocAccessor, getSpace } from "@dxos/react-client/echo";
|
|
23
|
+
import { useIdentity } from "@dxos/react-client/halo";
|
|
24
|
+
import { createDataExtensions, listener, stackItemContentEditorClassNames } from "@dxos/react-ui-editor";
|
|
25
|
+
import { StackItem } from "@dxos/react-ui-stack";
|
|
26
|
+
|
|
27
|
+
// src/components/ScriptToolbar/ScriptToolbar.tsx
|
|
28
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
29
|
+
import { Rx } from "@effect-rx/rx-react";
|
|
30
|
+
import React, { useMemo } from "react";
|
|
31
|
+
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
32
|
+
import { ElevationProvider, useTranslation } from "@dxos/react-ui";
|
|
33
|
+
import { MenuProvider, ToolbarMenu, createGapSeparator, rxFromSignal, useMenuActions } from "@dxos/react-ui-menu";
|
|
34
|
+
var ScriptToolbar = ({ script, role, state, classNames }) => {
|
|
35
|
+
var _effect = _useSignals();
|
|
36
|
+
try {
|
|
37
|
+
const { t } = useTranslation(meta.id);
|
|
38
|
+
const options = useDeployDeps({
|
|
39
|
+
script
|
|
40
|
+
});
|
|
41
|
+
const menu = useMemo(() => createToolbarActions({
|
|
42
|
+
state,
|
|
43
|
+
script,
|
|
44
|
+
t,
|
|
45
|
+
...options
|
|
46
|
+
}), [
|
|
47
|
+
state,
|
|
48
|
+
script,
|
|
49
|
+
options,
|
|
50
|
+
t
|
|
51
|
+
]);
|
|
52
|
+
const actions = useMenuActions(menu);
|
|
53
|
+
return /* @__PURE__ */ React.createElement(ElevationProvider, {
|
|
54
|
+
elevation: role === "section" ? "positioned" : "base"
|
|
55
|
+
}, /* @__PURE__ */ React.createElement(MenuProvider, {
|
|
56
|
+
...actions,
|
|
57
|
+
attendableId: fullyQualifiedId(script)
|
|
58
|
+
}, /* @__PURE__ */ React.createElement(ToolbarMenu, {
|
|
59
|
+
classNames
|
|
60
|
+
})));
|
|
61
|
+
} finally {
|
|
62
|
+
_effect.f();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var createToolbarActions = ({ state, script, ...options }) => Rx.make((get) => get(rxFromSignal(() => {
|
|
66
|
+
const templateSelect = createTemplateSelect(script);
|
|
67
|
+
const format = createFormat(script);
|
|
68
|
+
const gap = createGapSeparator();
|
|
69
|
+
const deploy = createDeploy({
|
|
70
|
+
state,
|
|
71
|
+
script,
|
|
72
|
+
...options
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
nodes: [
|
|
76
|
+
...templateSelect.nodes,
|
|
77
|
+
...format.nodes,
|
|
78
|
+
...gap.nodes,
|
|
79
|
+
...deploy.nodes
|
|
80
|
+
],
|
|
81
|
+
edges: [
|
|
82
|
+
...templateSelect.edges,
|
|
83
|
+
...format.edges,
|
|
84
|
+
...gap.edges,
|
|
85
|
+
...deploy.edges
|
|
86
|
+
]
|
|
87
|
+
};
|
|
88
|
+
})));
|
|
89
|
+
|
|
90
|
+
// src/components/ScriptContainer.tsx
|
|
91
|
+
var ScriptContainer = ({ role, script, settings = {
|
|
92
|
+
editorInputMode: "vscode"
|
|
93
|
+
}, env }) => {
|
|
94
|
+
var _effect = _useSignals2();
|
|
95
|
+
try {
|
|
96
|
+
const identity = useIdentity();
|
|
97
|
+
const space = getSpace(script);
|
|
98
|
+
const state = useToolbarState();
|
|
99
|
+
useDeployState({
|
|
100
|
+
state,
|
|
101
|
+
script
|
|
102
|
+
});
|
|
103
|
+
const extensions = useMemo2(() => script.source.target ? [
|
|
104
|
+
listener({
|
|
105
|
+
onChange: (text) => {
|
|
106
|
+
if (script.source.target?.content !== text) {
|
|
107
|
+
script.changed = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}),
|
|
111
|
+
createDataExtensions({
|
|
112
|
+
id: script.id,
|
|
113
|
+
text: createDocAccessor(script.source.target, [
|
|
114
|
+
"content"
|
|
115
|
+
]),
|
|
116
|
+
space,
|
|
117
|
+
identity
|
|
118
|
+
})
|
|
119
|
+
] : [], [
|
|
120
|
+
identity,
|
|
121
|
+
space,
|
|
122
|
+
script,
|
|
123
|
+
script.source.target
|
|
124
|
+
]);
|
|
125
|
+
return /* @__PURE__ */ React2.createElement(StackItem.Content, {
|
|
126
|
+
toolbar: true
|
|
127
|
+
}, /* @__PURE__ */ React2.createElement(ScriptToolbar, {
|
|
128
|
+
state,
|
|
129
|
+
role,
|
|
130
|
+
script
|
|
131
|
+
}), /* @__PURE__ */ React2.createElement(TypescriptEditor, {
|
|
132
|
+
id: script.id,
|
|
133
|
+
env,
|
|
134
|
+
initialValue: script.source?.target?.content,
|
|
135
|
+
extensions,
|
|
136
|
+
classNames: stackItemContentEditorClassNames(role),
|
|
137
|
+
inputMode: settings.editorInputMode,
|
|
138
|
+
toolbar: true
|
|
139
|
+
}));
|
|
140
|
+
} finally {
|
|
141
|
+
_effect.f();
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
var ScriptContainer_default = ScriptContainer;
|
|
145
|
+
export {
|
|
146
|
+
ScriptContainer,
|
|
147
|
+
ScriptContainer_default as default
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=ScriptContainer-24LLLTLB.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettings } from '../types';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\n\nexport type ScriptEditorProps = {\n role: string;\n script: ScriptType;\n settings?: ScriptSettings;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ state, script });\n\n const extensions = useMemo(\n () =>\n script.source.target\n ? [\n listener({\n onChange: (text) => {\n if (script.source.target?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ]\n : [],\n [identity, space, script, script.source.target],\n );\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport {\n type ActionGraphProps,\n MenuProvider,\n ToolbarMenu,\n createGapSeparator,\n rxFromSignal,\n useMenuActions,\n} from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '../../hooks';\nimport { meta } from '../../meta';\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const { t } = useTranslation(meta.id);\n const options = useDeployDeps({ script });\n const menu = useMemo(() => createToolbarActions({ state, script, t, ...options }), [state, script, options, t]);\n const actions = useMenuActions(menu);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...actions} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n );\n};\n\nconst createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Rx.Rx<ActionGraphProps> =>\n Rx.make((get) =>\n get(\n rxFromSignal(() => {\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n }),\n ),\n );\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,UAASC,WAAAA,gBAAe;AAG/B,SAASC,mBAAmBC,gBAAgB;AAC5C,SAASC,mBAAmB;AAC5B,SAASC,sBAAsBC,UAAUC,wCAAwC;AACjF,SAASC,iBAAiB;;;;ACN1B,SAASC,UAAU;AACnB,OAAOC,SAASC,eAAe;AAG/B,SAASC,wBAAwB;AACjC,SAASC,mBAAyCC,sBAAsB;AACxE,SAEEC,cACAC,aACAC,oBACAC,cACAC,sBACK;AAkBA,IAAMC,gBAAgB,CAAC,EAAEC,QAAQC,MAAMC,OAAOC,WAAU,MAAsB;;;AACnF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUC,cAAc;MAAET;IAAO,CAAA;AACvC,UAAMU,OAAOC,QAAQ,MAAMC,qBAAqB;MAAEV;MAAOF;MAAQI;MAAG,GAAGI;IAAQ,CAAA,GAAI;MAACN;MAAOF;MAAQQ;MAASJ;KAAE;AAC9G,UAAMS,UAAUC,eAAeJ,IAAAA;AAE/B,WACE,sBAAA,cAACK,mBAAAA;MAAkBC,WAAWf,SAAS,YAAY,eAAe;OAChE,sBAAA,cAACgB,cAAAA;MAAc,GAAGJ;MAASK,cAAcC,iBAAiBnB,MAAAA;OACxD,sBAAA,cAACoB,aAAAA;MAAYjB;;;;;AAIrB;AAEA,IAAMS,uBAAuB,CAAC,EAAEV,OAAOF,QAAQ,GAAGQ,QAAAA,MAChDa,GAAGC,KAAK,CAACC,QACPA,IACEC,aAAa,MAAA;AACX,QAAMC,iBAAiBC,qBAAqB1B,MAAAA;AAC5C,QAAM2B,SAASC,aAAa5B,MAAAA;AAC5B,QAAM6B,MAAMC,mBAAAA;AACZ,QAAMC,SAASC,aAAa;IAAE9B;IAAOF;IAAQ,GAAGQ;EAAQ,CAAA;AACxD,SAAO;IACLyB,OAAO;SAAIR,eAAeQ;SAAUN,OAAOM;SAAUJ,IAAII;SAAUF,OAAOE;;IAC1EC,OAAO;SAAIT,eAAeS;SAAUP,OAAOO;SAAUL,IAAIK;SAAUH,OAAOG;;EAC5E;AACF,CAAA,CAAA,CAAA;;;ADtCC,IAAMC,kBAAkB,CAAC,EAAEC,MAAMC,QAAQC,WAAW;EAAEC,iBAAiB;AAAS,GAAGC,IAAG,MAAqB;;;AAChH,UAAMC,WAAWC,YAAAA;AACjB,UAAMC,QAAQC,SAASP,MAAAA;AACvB,UAAMQ,QAAQC,gBAAAA;AACdC,mBAAe;MAAEF;MAAOR;IAAO,CAAA;AAE/B,UAAMW,aAAaC,SACjB,MACEZ,OAAOa,OAAOC,SACV;MACEC,SAAS;QACPC,UAAU,CAACC,SAAAA;AACT,cAAIjB,OAAOa,OAAOC,QAAQI,YAAYD,MAAM;AAC1CjB,mBAAOmB,UAAU;UACnB;QACF;MACF,CAAA;MACAC,qBAAqB;QACnBC,IAAIrB,OAAOqB;QACXJ,MAAMK,kBAAkBtB,OAAOa,OAAOC,QAAQ;UAAC;SAAU;QACzDR;QACAF;MACF,CAAA;QAEF,CAAA,GACN;MAACA;MAAUE;MAAON;MAAQA,OAAOa,OAAOC;KAAO;AAGjD,WACE,gBAAAS,OAAA,cAACC,UAAUC,SAAO;MAACC,SAAAA;OACjB,gBAAAH,OAAA,cAACI,eAAAA;MAAcnB;MAAcT;MAAYC;QACzC,gBAAAuB,OAAA,cAACK,kBAAAA;MACCP,IAAIrB,OAAOqB;MACXlB;MACA0B,cAAc7B,OAAOa,QAAQC,QAAQI;MACrCP;MACAmB,YAAYC,iCAAiChC,IAAAA;MAC7CiC,WAAW/B,SAASC;MACpBwB,SAAAA;;;;;AAIR;AAEA,IAAA,0BAAe5B;",
|
|
6
|
+
"names": ["React", "useMemo", "createDocAccessor", "getSpace", "useIdentity", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "StackItem", "Rx", "React", "useMemo", "fullyQualifiedId", "ElevationProvider", "useTranslation", "MenuProvider", "ToolbarMenu", "createGapSeparator", "rxFromSignal", "useMenuActions", "ScriptToolbar", "script", "role", "state", "classNames", "t", "useTranslation", "meta", "id", "options", "useDeployDeps", "menu", "useMemo", "createToolbarActions", "actions", "useMenuActions", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptContainer", "role", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "listener", "onChange", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "React", "StackItem", "Content", "toolbar", "ScriptToolbar", "TypescriptEditor", "initialValue", "classNames", "stackItemContentEditorClassNames", "inputMode"]
|
|
7
|
+
}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
meta
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EZVXV6DA.mjs";
|
|
4
4
|
|
|
5
5
|
// src/capabilities/app-graph-builder.ts
|
|
6
6
|
import { Rx } from "@effect-rx/rx-react";
|
|
7
|
-
import
|
|
7
|
+
import * as Function from "effect/Function";
|
|
8
|
+
import * as Option from "effect/Option";
|
|
8
9
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
9
10
|
import { Obj } from "@dxos/echo";
|
|
10
11
|
import { ScriptType } from "@dxos/functions";
|
|
11
|
-
import {
|
|
12
|
+
import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
|
|
12
13
|
import { createExtension } from "@dxos/plugin-graph";
|
|
13
|
-
var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
|
|
14
|
+
var app_graph_builder_default = ((context) => contributes(Capabilities.AppGraphBuilder, [
|
|
14
15
|
createExtension({
|
|
15
16
|
id: `${meta.id}/execute`,
|
|
16
|
-
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
17
|
+
connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
17
18
|
{
|
|
18
19
|
id: [
|
|
19
20
|
node2.id,
|
|
@@ -36,7 +37,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
36
37
|
}),
|
|
37
38
|
createExtension({
|
|
38
39
|
id: `${meta.id}/logs`,
|
|
39
|
-
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
40
|
+
connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
40
41
|
{
|
|
41
42
|
id: [
|
|
42
43
|
node2.id,
|
|
@@ -57,8 +58,8 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
57
58
|
}
|
|
58
59
|
]), Option.getOrElse(() => [])))
|
|
59
60
|
})
|
|
60
|
-
]);
|
|
61
|
+
]));
|
|
61
62
|
export {
|
|
62
63
|
app_graph_builder_default as default
|
|
63
64
|
};
|
|
64
|
-
//# sourceMappingURL=app-graph-builder-
|
|
65
|
+
//# sourceMappingURL=app-graph-builder-DPYULSME.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/execute`,\n connector: (node) =>\n Rx.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'execute'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'execute',\n properties: {\n label: ['script test label', { ns: meta.id }],\n icon: 'ph--terminal--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/logs`,\n connector: (node) =>\n Rx.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'logs',\n properties: {\n label: ['script logs label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,UAAU;AACnB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,WAAW;AACpB,SAASC,kBAAkB;AAC3B,SAASC,2BAA2BC,4BAA4B;AAChE,SAASC,uBAAuB;AAIhC,IAAA,6BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACEC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUM,IAAIC,WAAWC,YAAYR,MAAKS,IAAI,IAAWC,YAAKV,KAAAA,IAAeW,YAAI,CAAA,GAC1FC,WAAI,CAACZ,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAWgB,KAAKC,yBAAAA;QAC9BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAIrB,KAAKD;YAAG;;UAC3CuB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACA1B,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACEC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUM,IAAIC,WAAWC,YAAYR,MAAKS,IAAI,IAAWC,YAAKV,KAAAA,IAAeW,YAAI,CAAA,GAC1FC,WAAI,CAACZ,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAQgB,KAAKC,yBAAAA;QAC3BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAIrB,KAAKD;YAAG;;UAC3CuB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
|
|
6
|
+
"names": ["Rx", "Function", "Option", "Capabilities", "contributes", "Obj", "ScriptType", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "createExtension", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Rx", "make", "get", "pipe", "flatMap", "Obj", "instanceOf", "ScriptType", "data", "some", "none", "map", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "properties", "label", "ns", "icon", "disposition", "getOrElse"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// src/capabilities/blueprint-definition.ts
|
|
2
|
+
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
3
|
+
import { Blueprint, Template } from "@dxos/blueprints";
|
|
4
|
+
import { trim } from "@dxos/util";
|
|
5
|
+
var functions = [];
|
|
6
|
+
var tools = [];
|
|
7
|
+
var blueprint_definition_default = (() => {
|
|
8
|
+
return [
|
|
9
|
+
contributes(Capabilities.Functions, functions),
|
|
10
|
+
contributes(Capabilities.BlueprintDefinition, Blueprint.make({
|
|
11
|
+
key: "dxos.org/blueprint/script",
|
|
12
|
+
name: "Script",
|
|
13
|
+
tools: Blueprint.toolDefinitions({
|
|
14
|
+
functions,
|
|
15
|
+
tools
|
|
16
|
+
}),
|
|
17
|
+
instructions: Template.make({
|
|
18
|
+
source: trim`
|
|
19
|
+
You can create and update scripts which contain Typescript code.
|
|
20
|
+
`
|
|
21
|
+
})
|
|
22
|
+
}))
|
|
23
|
+
];
|
|
24
|
+
});
|
|
25
|
+
export {
|
|
26
|
+
blueprint_definition_default as default
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=blueprint-definition-ET5KZ46I.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/blueprint-definition.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nconst functions: FunctionDefinition[] = [];\nconst tools: string[] = [];\n\nexport default () => {\n return [\n contributes(Capabilities.Functions, functions),\n contributes(\n Capabilities.BlueprintDefinition,\n Blueprint.make({\n key: 'dxos.org/blueprint/script',\n name: 'Script',\n tools: Blueprint.toolDefinitions({ functions, tools }),\n instructions: Template.make({\n source: trim`\n You can create and update scripts which contain Typescript code.\n `,\n }),\n }),\n ),\n ];\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,WAAWC,gBAAgB;AAEpC,SAASC,YAAY;AAErB,IAAMC,YAAkC,CAAA;AACxC,IAAMC,QAAkB,CAAA;AAExB,IAAA,gCAAe,MAAA;AACb,SAAO;IACLC,YAAYC,aAAaC,WAAWJ,SAAAA;IACpCE,YACEC,aAAaE,qBACbC,UAAUC,KAAK;MACbC,KAAK;MACLC,MAAM;MACNR,OAAOK,UAAUI,gBAAgB;QAAEV;QAAWC;MAAM,CAAA;MACpDU,cAAcC,SAASL,KAAK;QAC1BM,QAAQC;;;MAGV,CAAA;IACF,CAAA,CAAA;;AAGN;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "Blueprint", "Template", "trim", "functions", "tools", "contributes", "Capabilities", "Functions", "BlueprintDefinition", "Blueprint", "make", "key", "name", "toolDefinitions", "instructions", "Template", "source", "trim"]
|
|
7
|
+
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
templates
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VFJJA4WR.mjs";
|
|
4
4
|
import {
|
|
5
5
|
deployScript,
|
|
6
6
|
getFunctionUrl,
|
|
7
7
|
isScriptDeployed
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ETFBQURU.mjs";
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
10
|
+
meta
|
|
11
|
+
} from "./chunk-EZVXV6DA.mjs";
|
|
12
12
|
|
|
13
13
|
// src/hooks/deploy.ts
|
|
14
14
|
import { useEffect, useMemo } from "react";
|
|
15
|
-
import { FunctionType,
|
|
15
|
+
import { FunctionType, getUserFunctionIdInMetadata } from "@dxos/functions";
|
|
16
16
|
import { log } from "@dxos/log";
|
|
17
17
|
import { useClient } from "@dxos/react-client";
|
|
18
|
-
import {
|
|
18
|
+
import { Query, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
19
19
|
import { createMenuAction } from "@dxos/react-ui-menu";
|
|
20
20
|
import { errorMessageColors } from "@dxos/react-ui-theme";
|
|
21
21
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/hooks/deploy.ts";
|
|
22
|
-
var createDeploy = ({ state, script, space, fn, client,
|
|
22
|
+
var createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }) => {
|
|
23
23
|
const errorItem = createMenuAction("error", () => {
|
|
24
24
|
}, {
|
|
25
25
|
label: state.error ?? [
|
|
26
26
|
"no error label",
|
|
27
27
|
{
|
|
28
|
-
ns:
|
|
28
|
+
ns: meta.id
|
|
29
29
|
}
|
|
30
30
|
],
|
|
31
31
|
icon: "ph--warning-circle--regular",
|
|
@@ -43,7 +43,7 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }
|
|
|
43
43
|
client,
|
|
44
44
|
space,
|
|
45
45
|
fn,
|
|
46
|
-
|
|
46
|
+
existingFunctionId
|
|
47
47
|
});
|
|
48
48
|
if (!result.success) {
|
|
49
49
|
log.catch(result.error, void 0, {
|
|
@@ -58,9 +58,9 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }
|
|
|
58
58
|
}, {
|
|
59
59
|
type: "deploy",
|
|
60
60
|
label: [
|
|
61
|
-
state.deploying ? "
|
|
61
|
+
state.deploying ? "publishing label" : "deploy label",
|
|
62
62
|
{
|
|
63
|
-
ns:
|
|
63
|
+
ns: meta.id
|
|
64
64
|
}
|
|
65
65
|
],
|
|
66
66
|
icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
|
|
@@ -68,16 +68,15 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }
|
|
|
68
68
|
classNames: state.deploying ? "[&_svg]:animate-spin" : ""
|
|
69
69
|
});
|
|
70
70
|
const copyAction = createMenuAction("copy", async () => {
|
|
71
|
-
if (
|
|
72
|
-
|
|
71
|
+
if (state.functionUrl) {
|
|
72
|
+
await navigator.clipboard.writeText(state.functionUrl);
|
|
73
73
|
}
|
|
74
|
-
await navigator.clipboard.writeText(state.functionUrl);
|
|
75
74
|
}, {
|
|
76
75
|
type: "copy",
|
|
77
76
|
label: [
|
|
78
77
|
"copy link label",
|
|
79
78
|
{
|
|
80
|
-
ns:
|
|
79
|
+
ns: meta.id
|
|
81
80
|
}
|
|
82
81
|
],
|
|
83
82
|
icon: "ph--link--regular",
|
|
@@ -106,11 +105,11 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }
|
|
|
106
105
|
};
|
|
107
106
|
};
|
|
108
107
|
var useDeployState = ({ state, script }) => {
|
|
109
|
-
const { space, client, fn,
|
|
108
|
+
const { space, client, fn, existingFunctionId } = useDeployDeps({
|
|
110
109
|
script
|
|
111
110
|
});
|
|
112
111
|
useEffect(() => {
|
|
113
|
-
if (!
|
|
112
|
+
if (!existingFunctionId) {
|
|
114
113
|
return;
|
|
115
114
|
}
|
|
116
115
|
state.functionUrl = getFunctionUrl({
|
|
@@ -119,7 +118,7 @@ var useDeployState = ({ state, script }) => {
|
|
|
119
118
|
edgeUrl: client.config.values.runtime?.services?.edge?.url ?? ""
|
|
120
119
|
});
|
|
121
120
|
}, [
|
|
122
|
-
|
|
121
|
+
existingFunctionId,
|
|
123
122
|
space,
|
|
124
123
|
fn,
|
|
125
124
|
script,
|
|
@@ -132,25 +131,25 @@ var useDeployState = ({ state, script }) => {
|
|
|
132
131
|
});
|
|
133
132
|
}, [
|
|
134
133
|
script.changed,
|
|
135
|
-
|
|
134
|
+
existingFunctionId,
|
|
136
135
|
fn,
|
|
137
136
|
script
|
|
138
137
|
]);
|
|
139
138
|
};
|
|
140
139
|
var useDeployDeps = ({ script }) => {
|
|
140
|
+
const client = useClient();
|
|
141
141
|
const space = getSpace(script);
|
|
142
142
|
const [fn] = useQuery(space, Query.type(FunctionType, {
|
|
143
143
|
source: Ref.make(script)
|
|
144
144
|
}));
|
|
145
|
-
const
|
|
146
|
-
const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [
|
|
145
|
+
const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(getMeta(fn)), [
|
|
147
146
|
fn
|
|
148
147
|
]);
|
|
149
148
|
return {
|
|
149
|
+
client,
|
|
150
150
|
space,
|
|
151
151
|
fn,
|
|
152
|
-
|
|
153
|
-
existingFunctionUrl
|
|
152
|
+
existingFunctionId
|
|
154
153
|
};
|
|
155
154
|
};
|
|
156
155
|
|
|
@@ -195,7 +194,7 @@ var createFormat = (script) => {
|
|
|
195
194
|
label: [
|
|
196
195
|
"format label",
|
|
197
196
|
{
|
|
198
|
-
ns:
|
|
197
|
+
ns: meta.id
|
|
199
198
|
}
|
|
200
199
|
],
|
|
201
200
|
icon: "ph--magic-wand--regular"
|
|
@@ -216,13 +215,13 @@ var createFormat = (script) => {
|
|
|
216
215
|
// src/hooks/template.ts
|
|
217
216
|
import { Obj } from "@dxos/echo";
|
|
218
217
|
import { FUNCTIONS_PRESET_META_KEY } from "@dxos/functions";
|
|
219
|
-
import {
|
|
218
|
+
import { createMenuAction as createMenuAction3, createMenuItemGroup } from "@dxos/react-ui-menu";
|
|
220
219
|
var createTemplateSelectGroup = () => {
|
|
221
220
|
return createMenuItemGroup("template-select", {
|
|
222
221
|
label: [
|
|
223
222
|
"template select group label",
|
|
224
223
|
{
|
|
225
|
-
ns:
|
|
224
|
+
ns: meta.id
|
|
226
225
|
}
|
|
227
226
|
],
|
|
228
227
|
variant: "dropdownMenu"
|
|
@@ -280,4 +279,4 @@ export {
|
|
|
280
279
|
createTemplateSelect,
|
|
281
280
|
useToolbarState
|
|
282
281
|
};
|
|
283
|
-
//# sourceMappingURL=chunk-
|
|
282
|
+
//# sourceMappingURL=chunk-DXWTBOND.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/deploy.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { FunctionType, type ScriptType, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { Query, Ref, type Space, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { type TFunction } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\nimport { errorMessageColors } from '@dxos/react-ui-theme';\n\nimport { meta } from '../meta';\nimport { deployScript, getFunctionUrl, isScriptDeployed } from '../util';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport type CreateDeployOptions = {\n state: Partial<DeployState>;\n script: ScriptType;\n fn: FunctionType;\n space?: Space;\n existingFunctionId?: string;\n client: Client;\n t: TFunction;\n};\n\nexport const createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }: CreateDeployOptions) => {\n // TODO(wittjosiah): Should this be an action?\n const errorItem = createMenuAction('error', () => {}, {\n label: state.error ?? ['no error label', { ns: meta.id }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n classNames: state.error && errorMessageColors,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>(\n 'deploy',\n async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n const result = await deployScript({ script, client, space, fn, existingFunctionId });\n\n if (!result.success) {\n log.catch(result.error);\n state.error = t('upload failed label');\n }\n\n state.deploying = false;\n },\n {\n type: 'deploy',\n label: [state.deploying ? 'publishing label' : 'deploy label', { ns: meta.id }],\n icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: state.deploying,\n classNames: state.deploying ? '[&_svg]:animate-spin' : '',\n },\n );\n\n const copyAction = createMenuAction<DeployActionProperties>(\n 'copy',\n async () => {\n if (state.functionUrl) {\n await navigator.clipboard.writeText(state.functionUrl);\n }\n },\n {\n type: 'copy',\n label: ['copy link label', { ns: meta.id }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n },\n );\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, fn, existingFunctionId } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionId) {\n return;\n }\n\n state.functionUrl = getFunctionUrl({\n script,\n fn,\n edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',\n });\n }, [existingFunctionId, space, fn, script, client.config.values.runtime?.services?.edge?.url]);\n\n useEffect(() => {\n state.deployed = isScriptDeployed({ script, fn });\n }, [script.changed, existingFunctionId, fn, script]);\n};\n\nexport const useDeployDeps = ({ script }: { script: ScriptType }) => {\n const client = useClient();\n const space = getSpace(script);\n const [fn] = useQuery(space, Query.type(FunctionType, { source: Ref.make(script) }));\n const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(getMeta(fn)), [fn]);\n return { client, space, fn, existingFunctionId };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { live } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\n\nexport type ScriptToolbarState = Partial<DeployState>;\n\n// TODO(burdon): Replace with context provider?\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => live<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { meta } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = (script: ScriptType) => {\n const formatAction = createMenuAction(\n 'format',\n async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.target!.content = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n },\n {\n label: ['format label', { ns: meta.id }],\n icon: 'ph--magic-wand--regular',\n },\n );\n\n return {\n nodes: [formatAction],\n edges: [\n {\n source: 'root',\n target: 'format',\n },\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';\nimport { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { meta } from '../meta';\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectGroup = () => {\n // TODO(burdon): This should not be in the toolbar (move to create Object dialog).\n return createMenuItemGroup('template-select', {\n label: ['template select group label', { ns: meta.id }],\n variant: 'dropdownMenu',\n });\n};\n\nconst createTemplateSelectActions = (script: ScriptType) => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(\n `template--${template.id}`,\n () => {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = Obj.getMeta(script).keys;\n const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n metaKeys.splice(oldPresetIndex, 1);\n }\n if (template.presetId) {\n metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n },\n {\n label: template.name,\n value: template.id,\n type: 'template',\n },\n );\n });\n};\n\nexport const createTemplateSelect = (script: ScriptType) => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions(script);\n return {\n nodes: [templateSelectGroup, ...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useEffect", "useMemo", "FunctionType", "getUserFunctionIdInMetadata", "log", "useClient", "Query", "Ref", "getMeta", "getSpace", "useQuery", "createMenuAction", "errorMessageColors", "createDeploy", "state", "script", "space", "fn", "client", "existingFunctionId", "t", "errorItem", "createMenuAction", "label", "error", "ns", "meta", "id", "icon", "hidden", "classNames", "errorMessageColors", "deployAction", "source", "undefined", "deploying", "result", "deployScript", "success", "log", "catch", "type", "disabled", "copyAction", "functionUrl", "navigator", "clipboard", "writeText", "nodes", "edges", "target", "useDeployState", "useDeployDeps", "useEffect", "getFunctionUrl", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "deployed", "isScriptDeployed", "changed", "useClient", "getSpace", "useQuery", "Query", "FunctionType", "Ref", "make", "useMemo", "getUserFunctionIdInMetadata", "getMeta", "useMemo", "live", "useToolbarState", "initialState", "useMemo", "live", "format", "prettierPluginEstree", "prettierPluginTypescript", "log", "createMenuAction", "createFormat", "script", "formatAction", "createMenuAction", "source", "target", "content", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "label", "ns", "meta", "id", "icon", "nodes", "edges", "Obj", "FUNCTIONS_PRESET_META_KEY", "createMenuAction", "createMenuItemGroup", "createTemplateSelectGroup", "createMenuItemGroup", "label", "ns", "meta", "id", "variant", "createTemplateSelectActions", "script", "templates", "map", "template", "createMenuAction", "name", "source", "target", "content", "metaKeys", "Obj", "getMeta", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "value", "type", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "nodes", "edges", "action"]
|
|
7
|
+
}
|