@dxos/plugin-script 0.8.3 → 0.8.4-main.1f223c7
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-QZSTVNIS.mjs +12 -0
- package/dist/lib/browser/{ScriptContainer-RSN52NH7.mjs → ScriptContainer-DNNA6XC6.mjs} +20 -16
- package/dist/lib/browser/ScriptContainer-DNNA6XC6.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-5Z3MUX4N.mjs → app-graph-builder-IABOSTBK.mjs} +4 -4
- package/dist/lib/{node-esm/app-graph-builder-IOOUTHV2.mjs.map → browser/app-graph-builder-IABOSTBK.mjs.map} +3 -3
- package/dist/lib/browser/blueprint-definition-AR7ITBCD.mjs +28 -0
- package/dist/lib/browser/blueprint-definition-AR7ITBCD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YSQMXTYO.mjs → chunk-5TVBECWH.mjs} +3 -3
- package/dist/lib/browser/chunk-6CAH7VIE.mjs +283 -0
- package/dist/lib/browser/chunk-6CAH7VIE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3JLR2SHJ.mjs → chunk-GZKWMME3.mjs} +52 -53
- package/dist/lib/browser/chunk-GZKWMME3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WB3X5Z7Q.mjs → chunk-IS4OG2UW.mjs} +5 -6
- package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QJH7I2UV.mjs → chunk-NXKU3BNX.mjs} +40 -51
- package/dist/lib/browser/chunk-NXKU3BNX.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6ZHHWU6S.mjs → chunk-QYAREHGH.mjs} +2 -2
- package/dist/lib/browser/chunk-RNGIQIEJ.mjs +88 -0
- package/dist/lib/browser/chunk-RNGIQIEJ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LA66DQGU.mjs → chunk-YCZPTTFO.mjs} +6 -6
- package/dist/lib/browser/chunk-YCZPTTFO.mjs.map +7 -0
- package/dist/lib/browser/{compiler-W4BYJYTL.mjs → compiler-2HJH34GM.mjs} +26 -10
- package/dist/lib/browser/compiler-2HJH34GM.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +34 -31
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-JOJNH4UX.mjs → intent-resolver-F4YSRPJI.mjs} +11 -12
- package/dist/lib/browser/intent-resolver-F4YSRPJI.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-7BKUWL2U.mjs → react-surface-BBHFU6MI.mjs} +13 -14
- package/dist/lib/browser/react-surface-BBHFU6MI.mjs.map +7 -0
- package/dist/lib/browser/{settings-Z22D6JVJ.mjs → settings-KCTBK5TY.mjs} +4 -4
- package/dist/lib/browser/templates/index.mjs +9 -0
- package/dist/lib/browser/types/index.mjs +10 -0
- package/dist/lib/node-esm/{DeploymentDialog-IA4CH6WZ.mjs → DeploymentDialog-G6EHEPXN.mjs} +5 -5
- package/dist/lib/node-esm/{ScriptContainer-4IOOIPBF.mjs → ScriptContainer-KPYZN2KY.mjs} +20 -16
- package/dist/lib/node-esm/ScriptContainer-KPYZN2KY.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-IOOUTHV2.mjs → app-graph-builder-CQTTAYHP.mjs} +4 -4
- package/dist/lib/{browser/app-graph-builder-5Z3MUX4N.mjs.map → node-esm/app-graph-builder-CQTTAYHP.mjs.map} +3 -3
- package/dist/lib/node-esm/blueprint-definition-TJY4TX6S.mjs +30 -0
- package/dist/lib/node-esm/blueprint-definition-TJY4TX6S.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-2GBESIHU.mjs +284 -0
- package/dist/lib/node-esm/chunk-2GBESIHU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2KJYPUQD.mjs → chunk-35M3CHYE.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-AEB5TPEW.mjs → chunk-AHXJ6NQU.mjs} +2 -2
- package/dist/lib/node-esm/chunk-GWHLP5LM.mjs +90 -0
- package/dist/lib/node-esm/chunk-GWHLP5LM.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-B4TP3LSZ.mjs → chunk-HUHVIOL5.mjs} +52 -53
- package/dist/lib/node-esm/chunk-HUHVIOL5.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-UESZKXLR.mjs → chunk-JIPFLBYA.mjs} +5 -6
- package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MJJQBUOL.mjs → chunk-M642JUOZ.mjs} +40 -51
- package/dist/lib/node-esm/chunk-M642JUOZ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-T7XDCUTF.mjs → chunk-ZA36GO4T.mjs} +6 -6
- package/dist/lib/node-esm/chunk-ZA36GO4T.mjs.map +7 -0
- package/dist/lib/node-esm/{compiler-7PQ4D43R.mjs → compiler-7SP27RA6.mjs} +26 -10
- package/dist/lib/node-esm/compiler-7SP27RA6.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +34 -31
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-HTM5PSRZ.mjs → intent-resolver-CGQYRWWD.mjs} +11 -12
- package/dist/lib/{browser/intent-resolver-JOJNH4UX.mjs.map → node-esm/intent-resolver-CGQYRWWD.mjs.map} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-6UO64YOS.mjs → react-surface-UWIWPKZD.mjs} +13 -14
- package/dist/lib/node-esm/react-surface-UWIWPKZD.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-KZEGCDYX.mjs → settings-DXZ334A3.mjs} +4 -4
- package/dist/lib/node-esm/templates/index.mjs +10 -0
- package/dist/lib/node-esm/templates/index.mjs.map +7 -0
- package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -6
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- 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 +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +139 -12
- 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/ScriptContainer.d.ts +3 -3
- 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 +7 -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.map +1 -1
- package/dist/types/src/components/TestPanel/TestContainer.d.ts +4 -3
- package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +10 -3
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/deploy.d.ts +4 -3
- 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/templates/data-generator.d.ts.map +1 -1
- package/dist/types/src/templates/index.d.ts +2 -0
- package/dist/types/src/templates/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +68 -176
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/{types.d.ts → types/schema.d.ts} +3 -5
- package/dist/types/src/types/schema.d.ts.map +1 -0
- 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.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +79 -70
- package/src/ScriptPlugin.tsx +7 -7
- package/src/capabilities/app-graph-builder.ts +2 -2
- package/src/capabilities/artifact-definition.ts +9 -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 +2 -5
- package/src/capabilities/react-surface.tsx +6 -5
- package/src/compiler/compiler.ts +1 -1
- package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +29 -17
- package/src/components/DeploymentDialog/DeploymentDialog.tsx +5 -5
- package/src/components/DeploymentDialog/index.ts +1 -1
- package/src/components/FrameContainer/FrameContainer.tsx +3 -2
- package/src/components/FrameContainer/frame.tsx +1 -1
- package/src/components/ScriptContainer.tsx +6 -4
- package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +19 -14
- package/src/components/ScriptToolbar/ScriptToolbar.tsx +14 -4
- package/src/components/Settings/ScriptObjectSettings.tsx +19 -23
- package/src/components/Settings/ScriptPluginSettings.tsx +33 -28
- package/src/components/TestPanel/TestContainer.tsx +9 -3
- package/src/components/TestPanel/TestPanel.tsx +1 -1
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +9 -16
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +6 -4
- package/src/hooks/deploy.ts +11 -11
- package/src/hooks/template.ts +3 -3
- package/src/hooks/useCreateAndDeployScriptTemplates.ts +1 -0
- package/src/templates/chess.ts +1 -1
- package/src/templates/data-generator.ts +8 -4
- package/src/templates/discord.ts +4 -4
- package/src/templates/email.ts +2 -2
- package/src/templates/forex-effect.ts +3 -3
- package/src/templates/forex.ts +1 -1
- package/src/templates/gmail.ts +14 -55
- package/src/templates/index.ts +2 -0
- package/src/translations.ts +9 -6
- package/src/types/index.ts +5 -0
- package/src/{types.ts → types/schema.ts} +2 -7
- package/src/util/deploy.ts +20 -33
- package/src/util/functions.ts +4 -4
- package/dist/lib/browser/DeploymentDialog-RPPPWEEL.mjs +0 -12
- package/dist/lib/browser/ScriptContainer-RSN52NH7.mjs.map +0 -7
- package/dist/lib/browser/artifact-definition-A4TBQL75.mjs +0 -249
- package/dist/lib/browser/artifact-definition-A4TBQL75.mjs.map +0 -7
- package/dist/lib/browser/chunk-3FU4QZVP.mjs +0 -364
- package/dist/lib/browser/chunk-3FU4QZVP.mjs.map +0 -7
- package/dist/lib/browser/chunk-3JLR2SHJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-LA66DQGU.mjs.map +0 -7
- package/dist/lib/browser/chunk-QJH7I2UV.mjs.map +0 -7
- package/dist/lib/browser/chunk-WB3X5Z7Q.mjs.map +0 -7
- package/dist/lib/browser/compiler-W4BYJYTL.mjs.map +0 -7
- package/dist/lib/browser/react-surface-7BKUWL2U.mjs.map +0 -7
- package/dist/lib/browser/types.mjs +0 -13
- package/dist/lib/node/DeploymentDialog-C3EEYGRH.cjs +0 -33
- package/dist/lib/node/DeploymentDialog-C3EEYGRH.cjs.map +0 -7
- package/dist/lib/node/ScriptContainer-CAC7AISY.cjs +0 -278
- package/dist/lib/node/ScriptContainer-CAC7AISY.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-25OOTBW4.cjs +0 -80
- package/dist/lib/node/app-graph-builder-25OOTBW4.cjs.map +0 -7
- package/dist/lib/node/artifact-definition-QKZI6PTO.cjs +0 -265
- package/dist/lib/node/artifact-definition-QKZI6PTO.cjs.map +0 -7
- package/dist/lib/node/chunk-AU2FOE26.cjs +0 -369
- package/dist/lib/node/chunk-AU2FOE26.cjs.map +0 -7
- package/dist/lib/node/chunk-BUOBOT3V.cjs +0 -179
- package/dist/lib/node/chunk-BUOBOT3V.cjs.map +0 -7
- package/dist/lib/node/chunk-HCRW6T3G.cjs +0 -60
- package/dist/lib/node/chunk-HCRW6T3G.cjs.map +0 -7
- package/dist/lib/node/chunk-OSBMUJ4T.cjs +0 -580
- package/dist/lib/node/chunk-OSBMUJ4T.cjs.map +0 -7
- package/dist/lib/node/chunk-QG2X6J74.cjs +0 -52
- package/dist/lib/node/chunk-QG2X6J74.cjs.map +0 -7
- package/dist/lib/node/chunk-YO5W2IPQ.cjs +0 -251
- package/dist/lib/node/chunk-YO5W2IPQ.cjs.map +0 -7
- package/dist/lib/node/chunk-ZEV3VARQ.cjs +0 -34
- package/dist/lib/node/chunk-ZEV3VARQ.cjs.map +0 -7
- package/dist/lib/node/compiler-TFSJRLL4.cjs +0 -104
- package/dist/lib/node/compiler-TFSJRLL4.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -225
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-BQ2NKEM7.cjs +0 -100
- package/dist/lib/node/intent-resolver-BQ2NKEM7.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-surface-EUKPDFU3.cjs +0 -120
- package/dist/lib/node/react-surface-EUKPDFU3.cjs.map +0 -7
- package/dist/lib/node/settings-WO53FLYZ.cjs +0 -38
- package/dist/lib/node/settings-WO53FLYZ.cjs.map +0 -7
- package/dist/lib/node/types.cjs +0 -34
- package/dist/lib/node/types.cjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-4IOOIPBF.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-definition-4XRYAP54.mjs +0 -250
- package/dist/lib/node-esm/artifact-definition-4XRYAP54.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-B4TP3LSZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MJJQBUOL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-T7XDCUTF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UESZKXLR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-W2DAXWHA.mjs +0 -365
- package/dist/lib/node-esm/chunk-W2DAXWHA.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-7PQ4D43R.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-HTM5PSRZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-6UO64YOS.mjs.map +0 -7
- package/dist/types/src/types.d.ts.map +0 -1
- /package/dist/lib/browser/{DeploymentDialog-RPPPWEEL.mjs.map → DeploymentDialog-QZSTVNIS.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-YSQMXTYO.mjs.map → chunk-5TVBECWH.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-6ZHHWU6S.mjs.map → chunk-QYAREHGH.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-Z22D6JVJ.mjs.map → settings-KCTBK5TY.mjs.map} +0 -0
- /package/dist/lib/browser/{types.mjs.map → templates/index.mjs.map} +0 -0
- /package/dist/lib/{node-esm/DeploymentDialog-IA4CH6WZ.mjs.map → browser/types/index.mjs.map} +0 -0
- /package/dist/lib/node-esm/{types.mjs.map → DeploymentDialog-G6EHEPXN.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-2KJYPUQD.mjs.map → chunk-35M3CHYE.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-AEB5TPEW.mjs.map → chunk-AHXJ6NQU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-KZEGCDYX.mjs.map → settings-DXZ334A3.mjs.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/util/functions.ts", "../../../src/util/deploy.ts", "../../../src/hooks/useCreateAndDeployScriptTemplates.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { getMeta, getSpace } from '@dxos/react-client/echo';\n\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: ScriptType;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n\n if (!existingFunctionUrl) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionUrl, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (script: ScriptType, storedFunction: any, meta: any, functionId: string) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n storedFunction.description = script.description;\n } else if (meta.description) {\n storedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n storedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n storedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport {\n FunctionType,\n type ScriptType,\n getUserFunctionUrlInMetadata,\n makeFunctionUrl,\n setUserFunctionUrlInMetadata,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionUrl) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: ScriptType;\n client: Client;\n space: Space;\n fn?: FunctionType;\n existingFunctionUrl?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionUrl?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionUrl,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const existingFunctionId = extractFunctionId(existingFunctionUrl);\n\n const { bundle, error } = await bundleScript(script.source!.target!.content);\n if (error || !bundle) {\n throw error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: bundle,\n });\n\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);\n }\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);\n script.changed = false;\n updateFunctionMetadata(script, storedFunction, meta, functionId);\n\n const functionUrl = makeFunctionUrl({ functionId });\n setUserFunctionUrlInMetadata(Obj.getMeta(storedFunction), functionUrl);\n\n return { success: true, functionUrl };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: ScriptType, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst extractFunctionId = (functionUrl?: string): string | undefined => {\n return functionUrl?.split('/').at(-1);\n};\n\nconst bundleScript = async (source: string): Promise<{ bundle?: string; error?: Error }> => {\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source });\n\n if (buildResult.error || !buildResult.bundle) {\n return { error: buildResult.error || new Error('Bundle creation failed') };\n }\n\n return { bundle: buildResult.bundle };\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: FunctionType | undefined,\n script: ScriptType,\n functionId: string,\n version: string,\n): FunctionType => {\n if (fn) {\n fn.version = version;\n return fn;\n } else {\n return space.db.add(Obj.make(FunctionType, { name: functionId, version, source: Ref.make(script) }));\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type Template } from '../templates';\nimport { ScriptAction } from '../types';\nimport { deployScript } from '../util';\n\ntype DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * Hook for creating and deploying multiple script templates concurrently.\n *\n * Takes a space and an array of script template IDs, then provides a callback\n * function that creates each script from its template and deploys it to the space.\n * All creation / deployment operations run concurrently for improved performance.\n */\nexport const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const [status, setStatus] = useState<DeploymentStatus>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n\n const handleCreateAndDeployScripts = useCallback(async () => {\n invariant(space);\n setStatus('pending');\n setError(undefined);\n\n const deploymentResults = await Promise.all(\n scriptTemplates.map(async (template) => {\n const result = await dispatch(\n pipe(\n createIntent(ScriptAction.Create, { space, initialTemplateId: template.id }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(Obj.instanceOf(ScriptType, result.data?.object));\n\n return deployScript({ space, client, script: result.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, dispatch, client, scriptTemplates]);\n\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["getInvocationUrl", "getUserFunctionUrlInMetadata", "log", "getMeta", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionUrl", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "description", "trim", "verbose", "inputSchema", "outputSchema", "Obj", "Ref", "FunctionType", "getUserFunctionUrlInMetadata", "makeFunctionUrl", "setUserFunctionUrlInMetadata", "Bundler", "incrementSemverPatch", "uploadWorkerFunction", "log", "isScriptDeployed", "script", "fn", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "Obj", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "existingFunctionId", "extractFunctionId", "bundle", "bundleScript", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "ownerPublicKey", "key", "incrementSemverPatch", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "functionUrl", "makeFunctionUrl", "setUserFunctionUrlInMetadata", "err", "log", "catch", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "db", "add", "make", "FunctionType", "name", "Ref", "pipe", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "Obj", "ScriptType", "invariant", "SpaceAction", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "result", "pipe", "createIntent", "ScriptAction", "Create", "initialTemplateId", "id", "chain", "SpaceAction", "AddObject", "target", "Obj", "instanceOf", "ScriptType", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { EditorInputMode } from '@dxos/react-ui-editor';\n\nimport { SCRIPT_PLUGIN } from './meta';\n\n// TODO(burdon): Standardize export (e.g., @dxos/plugin-script/meta)?\nexport { SCRIPT_PLUGIN };\n\nexport namespace ScriptAction {\n const SCRIPT_ACTION = `${SCRIPT_PLUGIN}/action`;\n\n export const CreateScriptSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),\n initialTemplateId: Schema.optional(Schema.String),\n });\n\n export type CreateScriptProps = Schema.Schema.Type<typeof CreateScriptSchema>;\n\n export class Create extends Schema.TaggedClass<Create>()(`${SCRIPT_ACTION}/create`, {\n input: Schema.extend(CreateScriptSchema, Schema.Struct({ space: SpaceSchema })),\n output: Schema.Struct({\n object: ScriptType,\n }),\n }) {}\n}\n\nexport const ScriptSettingsSchema = Schema.mutable(\n Schema.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettingsProps = Schema.Schema.Type<typeof ScriptSettingsSchema>;\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;UAOfC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;gBAEZC,qBAAqBC,OAAOC,OAAO;IAC9CC,MAAMF,OAAOG,SAASH,OAAOI,MAAM;;IAEnCC,SAASL,OAAOG,SAASH,OAAOI,OAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAAmBR,OAAOG,SAASH,OAAOI,MAAM;EAClD,CAAA;EAIO,MAAMK,eAAeT,OAAOU,YAAW,EAAW,GAAGb,aAAAA,WAAwB;IAClFc,OAAOX,OAAOY,OAAMhB,cAACG,oBAAoBC,OAAOC,OAAO;MAAEY,OAAOC;IAAY,CAAA,CAAA;IAC5EC,QAAQf,OAAOC,OAAO;MACpBe,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBALSR,SAAAA;AAMf,GAlBiBb,iBAAAA,eAAAA,CAAAA,EAAAA;AAoBV,IAAMsB,uBAAuBlB,OAAOmB,QACzCnB,OAAOC,OAAO;EACZmB,iBAAiBC;AACnB,CAAA,CAAA;;",
|
|
6
|
-
"names": ["Schema", "SpaceSchema", "ScriptType", "EditorInputMode", "ScriptAction", "SCRIPT_ACTION", "SCRIPT_PLUGIN", "CreateScriptSchema", "Schema", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "Create", "TaggedClass", "input", "extend", "space", "SpaceSchema", "output", "object", "ScriptType", "ScriptSettingsSchema", "mutable", "editorInputMode", "EditorInputMode"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/compiler.ts", "../../../src/compiler/compiler.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @ts-ignore\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\n\nimport { contributes } from '@dxos/app-framework';\nimport { initializeBundler } from '@dxos/functions/bundler';\n\nimport { ScriptCapabilities } from './capabilities';\nimport { Compiler } from '../compiler';\n\nexport default async () => {\n const compiler = new Compiler();\n\n await compiler.initialize();\n // TODO(wittjosiah): Fetch types for https modules.\n compiler.setFile('/src/typings.d.ts', \"declare module 'https://*';\");\n // TODO(wittjosiah): Proper function handler types.\n // TODO(wittjosiah): Remove.\n compiler.setFile(\n '/src/runtime.ts',\n `\n export const Filter: any = {};\n export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;\n export const functionHandler = (handler: FunctionHandler) => handler;\n `,\n );\n await initializeBundler({ wasmUrl });\n\n return contributes(ScriptCapabilities.Compiler, compiler);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n type VirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize(): Promise<void> {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.5.4', true, ts);\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, [], ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string): void {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string): ts.EmitOutput {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;AAKA,OAAOA,aAAa;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,yBAAyB;;;ACJlC,SACEC,yBACAC,cACAC,0CAEK;AACP,OAAOC,QAAQ;AAEf,SAASC,iBAAiB;;AAE1B,IAAMC,iBAAqC;EACzCC,KAAK;IAAC;IAAO;;EACbC,QAAQJ,GAAGK,aAAaC;AAC1B;AAEO,IAAMC,WAAN,MAAMA;EAIX,YAA6BC,WAA+BN,gBAAgB;SAA/CM,WAAAA;EAAgD;EAE7E,MAAMC,aAA4B;AAChC,QAAI,KAAKC,MAAM;AACb;IACF;AAIA,SAAKC,SAAS,MAAMd,wBAAwB,KAAKW,UAAU,SAAS,MAAMR,EAAAA;AAC1E,UAAMY,SAASd,aAAa,KAAKa,MAAM;AACvC,SAAKD,OAAOX,mCAAmCa,QAAQ,CAAA,GAAIZ,IAAI,KAAKQ,QAAQ;EAC9E;EAEA,IAAIK,cAAc;AAChBZ,cAAU,KAAKS,MAAM,yCAAA;;;;;;;;;AACrB,WAAO,KAAKA;EACd;EAEAI,QAAQC,UAAkBC,SAAuB;AAC/Cf,cAAU,KAAKU,QAAQ,oCAAA;;;;;;;;;AACvB,SAAKE,YAAYI,WAAWF,UAAUC,OAAAA;EACxC;EAEAE,QAAQH,UAAiC;AACvC,WAAO,KAAKF,YAAYM,gBAAgBC,cAAcL,QAAAA;EACxD;AACF;;;ADrCA,IAAA,mBAAe,YAAA;AACb,QAAMM,WAAW,IAAIC,SAAAA;AAErB,QAAMD,SAASE,WAAU;AAEzBF,WAASG,QAAQ,qBAAqB,6BAAA;AAGtCH,WAASG,QACP,mBACA;;;;OAIG;AAEL,QAAMC,kBAAkB;IAAEC;EAAQ,CAAA;AAElC,SAAOC,YAAYC,mBAAmBN,UAAUD,QAAAA;AAClD;",
|
|
6
|
-
"names": ["wasmUrl", "contributes", "initializeBundler", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "_options", "initialize", "_env", "_fsMap", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "compiler", "Compiler", "initialize", "setFile", "initializeBundler", "wasmUrl", "contributes", "ScriptCapabilities"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';\nimport { InvocationTraceContainer } from '@dxos/devtools';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { type DataType } from '@dxos/schema';\n\nimport { ScriptCapabilities } from './capabilities';\nimport {\n ScriptContainer,\n ScriptPluginSettings,\n ScriptObjectSettings,\n ScriptProperties,\n DeploymentDialog,\n DEPLOYMENT_DIALOG,\n TestContainer,\n} from '../components';\nimport { meta } from '../meta';\nimport { type ScriptSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ScriptSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <ScriptPluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/article`,\n role: 'article',\n filter: (data): data is { subject: ScriptType } => Obj.instanceOf(ScriptType, data.subject),\n component: ({ data, role }) => {\n const compiler = useCapability(ScriptCapabilities.Compiler);\n // TODO(dmaretskyi): Since settings store is not reactive, this would break on the script plugin being enabled without a page reload.\n const settings = useCapability(Capabilities.SettingsStore).getStore<ScriptSettingsProps>(meta.id)?.value;\n return <ScriptContainer role={role} script={data.subject} settings={settings} env={compiler.environment} />;\n },\n }),\n createSurface({\n id: `${meta.id}/companion/base-settings`,\n role: 'base-object-settings',\n filter: (data): data is { subject: ScriptType } => Obj.instanceOf(ScriptType, data.subject),\n component: ({ data }) => <ScriptProperties object={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/companion/settings`,\n role: 'object-settings',\n filter: (data): data is { subject: ScriptType } => Obj.instanceOf(ScriptType, data.subject),\n component: ({ data }) => <ScriptObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/companion/execute`,\n role: 'article',\n filter: (data): data is { companionTo: ScriptType } =>\n Obj.instanceOf(ScriptType, data.companionTo) && data.subject === 'execute',\n component: ({ data, role }) => <TestContainer script={data.companionTo} role={role} />,\n }),\n createSurface({\n id: `${meta.id}/companion/logs`,\n role: 'article',\n filter: (data): data is { companionTo: ScriptType } =>\n Obj.instanceOf(ScriptType, data.companionTo) && data.subject === 'logs',\n component: ({ data, role }) => {\n const space = getSpace(data.companionTo);\n return (\n <StackItem.Content role={role}>\n <InvocationTraceContainer space={space} target={data.companionTo} detailAxis='block' />\n </StackItem.Content>\n );\n },\n }),\n createSurface({\n id: DEPLOYMENT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: { accessToken: DataType.AccessToken; scriptTemplates: any } } =>\n data.component === DEPLOYMENT_DIALOG,\n component: ({ data }) => <DeploymentDialog {...data.props} />,\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,eAAeC,qBAAqB;AACxE,SAASC,gCAAgC;AACzC,SAASC,WAAW;AACpB,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAgB1B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN,KAAKD;IACxEQ,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,sBAAAA;MAAqBC,UAAUL,QAAQM;;EAChF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA0CQ,IAAIC,WAAWC,YAAYV,KAAKC,OAAO;IAC1FG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMa,WAAWC,cAAcC,mBAAmBC,QAAQ;AAE1D,YAAMR,WAAWM,cAAcnB,aAAaS,aAAa,EAAEa,SAA8BlB,KAAKD,EAAE,GAAGW;AACnG,aAAO,sBAAA,cAACS,iBAAAA;QAAgBlB;QAAYmB,QAAQjB,KAAKC;QAASK;QAAoBY,KAAKP,SAASQ;;IAC9F;EACF,CAAA;EACAxB,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA0CQ,IAAIC,WAAWC,YAAYV,KAAKC,OAAO;IAC1FG,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACoB,kBAAAA;MAAiBC,QAAQrB,KAAKC;;EAC1D,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA0CQ,IAAIC,WAAWC,YAAYV,KAAKC,OAAO;IAC1FG,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACsB,sBAAAA;MAAqBD,QAAQrB,KAAKC;;EAC9D,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SACPQ,IAAIC,WAAWC,YAAYV,KAAKuB,WAAW,KAAKvB,KAAKC,YAAY;IACnEG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,sBAAA,cAAC0B,eAAAA;MAAcP,QAAQjB,KAAKuB;MAAazB;;EAC1E,CAAA;EACAH,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SACPQ,IAAIC,WAAWC,YAAYV,KAAKuB,WAAW,KAAKvB,KAAKC,YAAY;IACnEG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAM2B,QAAQC,SAAS1B,KAAKuB,WAAW;AACvC,aACE,sBAAA,cAACI,UAAUC,SAAO;QAAC9B;SACjB,sBAAA,cAAC+B,0BAAAA;QAAyBJ;QAAcK,QAAQ9B,KAAKuB;QAAaQ,YAAW;;IAGnF;EACF,CAAA;EACApC,cAAc;IACZC,IAAIoC;IACJlC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKI,cAAc4B;IACrB5B,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACiC,kBAAqBjC,KAAKkC,KAAK;EAC3D,CAAA;CACD;",
|
|
6
|
-
"names": ["React", "Capabilities", "contributes", "createSurface", "useCapability", "InvocationTraceContainer", "Obj", "ScriptType", "SettingsStore", "getSpace", "StackItem", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ScriptPluginSettings", "settings", "value", "Obj", "instanceOf", "ScriptType", "compiler", "useCapability", "ScriptCapabilities", "Compiler", "getStore", "ScriptContainer", "script", "env", "environment", "ScriptProperties", "object", "ScriptObjectSettings", "companionTo", "TestContainer", "space", "getSpace", "StackItem", "Content", "InvocationTraceContainer", "target", "detailAxis", "DEPLOYMENT_DIALOG", "DeploymentDialog", "props"]
|
|
7
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var DeploymentDialog_C3EEYGRH_exports = {};
|
|
20
|
-
__export(DeploymentDialog_C3EEYGRH_exports, {
|
|
21
|
-
DEPLOYMENT_DIALOG: () => import_chunk_BUOBOT3V.DEPLOYMENT_DIALOG,
|
|
22
|
-
default: () => import_chunk_BUOBOT3V.DeploymentDialog_default
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(DeploymentDialog_C3EEYGRH_exports);
|
|
25
|
-
var import_chunk_BUOBOT3V = require("./chunk-BUOBOT3V.cjs");
|
|
26
|
-
var import_chunk_YO5W2IPQ = require("./chunk-YO5W2IPQ.cjs");
|
|
27
|
-
var import_chunk_HCRW6T3G = require("./chunk-HCRW6T3G.cjs");
|
|
28
|
-
var import_chunk_QG2X6J74 = require("./chunk-QG2X6J74.cjs");
|
|
29
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
-
0 && (module.exports = {
|
|
31
|
-
DEPLOYMENT_DIALOG
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=DeploymentDialog-C3EEYGRH.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["DeploymentDialog-C3EEYGRH.cjs"],
|
|
4
|
-
"sourcesContent": ["import {\n DEPLOYMENT_DIALOG,\n DeploymentDialog_default\n} from \"./chunk-BUOBOT3V.cjs\";\nimport \"./chunk-YO5W2IPQ.cjs\";\nimport \"./chunk-HCRW6T3G.cjs\";\nimport \"./chunk-QG2X6J74.cjs\";\nexport {\n DEPLOYMENT_DIALOG,\n DeploymentDialog_default as default\n};\n//# sourceMappingURL=DeploymentDialog-C3EEYGRH.cjs.map\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var ScriptContainer_CAC7AISY_exports = {};
|
|
30
|
-
__export(ScriptContainer_CAC7AISY_exports, {
|
|
31
|
-
ScriptContainer: () => ScriptContainer,
|
|
32
|
-
default: () => ScriptContainer_default
|
|
33
|
-
});
|
|
34
|
-
module.exports = __toCommonJS(ScriptContainer_CAC7AISY_exports);
|
|
35
|
-
var import_chunk_AU2FOE26 = require("./chunk-AU2FOE26.cjs");
|
|
36
|
-
var import_chunk_YO5W2IPQ = require("./chunk-YO5W2IPQ.cjs");
|
|
37
|
-
var import_chunk_HCRW6T3G = require("./chunk-HCRW6T3G.cjs");
|
|
38
|
-
var import_chunk_QG2X6J74 = require("./chunk-QG2X6J74.cjs");
|
|
39
|
-
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
40
|
-
var import_react = __toESM(require("react"));
|
|
41
|
-
var import_echo = require("@dxos/react-client/echo");
|
|
42
|
-
var import_halo = require("@dxos/react-client/halo");
|
|
43
|
-
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
44
|
-
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
45
|
-
var import_tracking2 = require("@preact-signals/safe-react/tracking");
|
|
46
|
-
var import_rx_react = require("@effect-rx/rx-react");
|
|
47
|
-
var import_react2 = __toESM(require("react"));
|
|
48
|
-
var import_echo2 = require("@dxos/react-client/echo");
|
|
49
|
-
var import_react_ui = require("@dxos/react-ui");
|
|
50
|
-
var import_react_ui_menu = require("@dxos/react-ui-menu");
|
|
51
|
-
var import_tracking3 = require("@preact-signals/safe-react/tracking");
|
|
52
|
-
var import_lang_javascript = require("@codemirror/lang-javascript");
|
|
53
|
-
var import_language = require("@codemirror/language");
|
|
54
|
-
var import_lint = require("@codemirror/lint");
|
|
55
|
-
var import_state = require("@codemirror/state");
|
|
56
|
-
var import_theme_one_dark = require("@codemirror/theme-one-dark");
|
|
57
|
-
var import_view = require("@codemirror/view");
|
|
58
|
-
var import_highlight = require("@lezer/highlight");
|
|
59
|
-
var import_codemirror_continue = require("@valtown/codemirror-continue");
|
|
60
|
-
var import_codemirror_ts = require("@valtown/codemirror-ts");
|
|
61
|
-
var import_react3 = __toESM(require("react"));
|
|
62
|
-
var import_react_ui2 = require("@dxos/react-ui");
|
|
63
|
-
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
64
|
-
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
65
|
-
var import_util = require("@dxos/util");
|
|
66
|
-
var createToolbar = ({ state, script, ...options }) => import_rx_react.Rx.make((get) => get((0, import_react_ui_menu.rxFromSignal)(() => {
|
|
67
|
-
const templateSelect = (0, import_chunk_AU2FOE26.createTemplateSelect)(script);
|
|
68
|
-
const format = (0, import_chunk_AU2FOE26.createFormat)(script);
|
|
69
|
-
const gap = (0, import_react_ui_menu.createGapSeparator)();
|
|
70
|
-
const deploy = (0, import_chunk_AU2FOE26.createDeploy)({
|
|
71
|
-
state,
|
|
72
|
-
script,
|
|
73
|
-
...options
|
|
74
|
-
});
|
|
75
|
-
return {
|
|
76
|
-
nodes: [
|
|
77
|
-
...templateSelect.nodes,
|
|
78
|
-
...format.nodes,
|
|
79
|
-
...gap.nodes,
|
|
80
|
-
...deploy.nodes
|
|
81
|
-
],
|
|
82
|
-
edges: [
|
|
83
|
-
...templateSelect.edges,
|
|
84
|
-
...format.edges,
|
|
85
|
-
...gap.edges,
|
|
86
|
-
...deploy.edges
|
|
87
|
-
]
|
|
88
|
-
};
|
|
89
|
-
})));
|
|
90
|
-
var ScriptToolbar = ({ script, role, state, classNames }) => {
|
|
91
|
-
var _effect = (0, import_tracking2.useSignals)();
|
|
92
|
-
try {
|
|
93
|
-
const { t } = (0, import_react_ui.useTranslation)(import_chunk_QG2X6J74.SCRIPT_PLUGIN);
|
|
94
|
-
const options = (0, import_chunk_AU2FOE26.useDeployDeps)({
|
|
95
|
-
script
|
|
96
|
-
});
|
|
97
|
-
const toolbarCreator = (0, import_react2.useMemo)(() => createToolbar({
|
|
98
|
-
state,
|
|
99
|
-
script,
|
|
100
|
-
t,
|
|
101
|
-
...options
|
|
102
|
-
}), [
|
|
103
|
-
state,
|
|
104
|
-
script,
|
|
105
|
-
options,
|
|
106
|
-
t
|
|
107
|
-
]);
|
|
108
|
-
const menu = (0, import_react_ui_menu.useMenuActions)(toolbarCreator);
|
|
109
|
-
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.ElevationProvider, {
|
|
110
|
-
elevation: role === "section" ? "positioned" : "base"
|
|
111
|
-
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_menu.MenuProvider, {
|
|
112
|
-
...menu,
|
|
113
|
-
attendableId: (0, import_echo2.fullyQualifiedId)(script)
|
|
114
|
-
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_menu.ToolbarMenu, {
|
|
115
|
-
classNames
|
|
116
|
-
})));
|
|
117
|
-
} finally {
|
|
118
|
-
_effect.f();
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
var TypescriptEditor = ({ classNames, id, inputMode = "vscode", toolbar, env, initialValue, extensions, scrollTo, selection }) => {
|
|
122
|
-
var _effect = (0, import_tracking3.useSignals)();
|
|
123
|
-
try {
|
|
124
|
-
const { themeMode } = (0, import_react_ui2.useThemeContext)();
|
|
125
|
-
const { parentRef, focusAttributes } = (0, import_react_ui_editor2.useTextEditor)(() => ({
|
|
126
|
-
id,
|
|
127
|
-
initialValue,
|
|
128
|
-
selection,
|
|
129
|
-
scrollTo,
|
|
130
|
-
extensions: [
|
|
131
|
-
extensions,
|
|
132
|
-
(0, import_react_ui_editor2.createBasicExtensions)({
|
|
133
|
-
highlightActiveLine: true,
|
|
134
|
-
indentWithTab: true,
|
|
135
|
-
lineNumbers: true,
|
|
136
|
-
lineWrapping: false,
|
|
137
|
-
monospace: true,
|
|
138
|
-
scrollPastEnd: true
|
|
139
|
-
}),
|
|
140
|
-
(0, import_react_ui_editor2.createThemeExtensions)({
|
|
141
|
-
themeMode,
|
|
142
|
-
syntaxHighlighting: true
|
|
143
|
-
}),
|
|
144
|
-
import_react_ui_editor2.InputModeExtensions[inputMode],
|
|
145
|
-
(0, import_react_ui_editor2.folding)(),
|
|
146
|
-
// Continues block comments when pressing Enter.
|
|
147
|
-
import_state.Prec.high(import_view.keymap.of(import_codemirror_continue.continueKeymap)),
|
|
148
|
-
// TODO(burdon): Factor out.
|
|
149
|
-
(0, import_lang_javascript.javascript)({
|
|
150
|
-
typescript: true
|
|
151
|
-
}),
|
|
152
|
-
// https://github.com/val-town/codemirror-ts
|
|
153
|
-
(0, import_react_ui_editor2.autocomplete)({
|
|
154
|
-
override: env ? [
|
|
155
|
-
(0, import_codemirror_ts.tsAutocomplete)()
|
|
156
|
-
] : void 0
|
|
157
|
-
}),
|
|
158
|
-
import_view.keymap.of(import_lint.lintKeymap),
|
|
159
|
-
env && [
|
|
160
|
-
import_codemirror_ts.tsFacet.of({
|
|
161
|
-
env,
|
|
162
|
-
path: `/src/${id}.ts`
|
|
163
|
-
}),
|
|
164
|
-
(0, import_codemirror_ts.tsSync)(),
|
|
165
|
-
(0, import_codemirror_ts.tsLinter)(),
|
|
166
|
-
(0, import_codemirror_ts.tsHover)({
|
|
167
|
-
renderTooltip: createTooltipRenderer(themeMode)
|
|
168
|
-
})
|
|
169
|
-
]
|
|
170
|
-
].filter(import_util.isNonNullable)
|
|
171
|
-
}), [
|
|
172
|
-
id,
|
|
173
|
-
extensions,
|
|
174
|
-
themeMode,
|
|
175
|
-
inputMode,
|
|
176
|
-
selection,
|
|
177
|
-
scrollTo
|
|
178
|
-
]);
|
|
179
|
-
return /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
180
|
-
ref: parentRef,
|
|
181
|
-
"data-toolbar": toolbar ? "enabled" : "disabled",
|
|
182
|
-
className: (0, import_react_ui_theme.mx)(classNames),
|
|
183
|
-
...focusAttributes
|
|
184
|
-
});
|
|
185
|
-
} finally {
|
|
186
|
-
_effect.f();
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
var createTooltipRenderer = (themeMode) => {
|
|
190
|
-
const theme = themeMode === "dark" ? import_theme_one_dark.oneDarkHighlightStyle : import_language.defaultHighlightStyle;
|
|
191
|
-
const classFromKind = (_kind) => {
|
|
192
|
-
const kind = _kind.endsWith("Name") ? "name" : _kind;
|
|
193
|
-
const validTag = kind in import_highlight.tags;
|
|
194
|
-
if (!validTag) {
|
|
195
|
-
return "";
|
|
196
|
-
}
|
|
197
|
-
const tag = import_highlight.tags[kind];
|
|
198
|
-
if (typeof tag === "function") {
|
|
199
|
-
return "";
|
|
200
|
-
}
|
|
201
|
-
return theme.style([
|
|
202
|
-
tag
|
|
203
|
-
]) ?? "";
|
|
204
|
-
};
|
|
205
|
-
return (info) => {
|
|
206
|
-
const div = document.createElement("div");
|
|
207
|
-
div.className = "p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg";
|
|
208
|
-
if (info.quickInfo?.displayParts) {
|
|
209
|
-
for (const part of info.quickInfo.displayParts) {
|
|
210
|
-
const span = div.appendChild(document.createElement("span"));
|
|
211
|
-
span.className = classFromKind(part.kind);
|
|
212
|
-
span.innerText = part.text;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return {
|
|
216
|
-
dom: div
|
|
217
|
-
};
|
|
218
|
-
};
|
|
219
|
-
};
|
|
220
|
-
var ScriptContainer = ({ role, script, settings = {
|
|
221
|
-
editorInputMode: "vscode"
|
|
222
|
-
}, env }) => {
|
|
223
|
-
var _effect = (0, import_tracking.useSignals)();
|
|
224
|
-
try {
|
|
225
|
-
const identity = (0, import_halo.useIdentity)();
|
|
226
|
-
const space = (0, import_echo.getSpace)(script);
|
|
227
|
-
const state = (0, import_chunk_AU2FOE26.useToolbarState)();
|
|
228
|
-
(0, import_chunk_AU2FOE26.useDeployState)({
|
|
229
|
-
state,
|
|
230
|
-
script
|
|
231
|
-
});
|
|
232
|
-
const extensions = (0, import_react.useMemo)(() => script.source.target ? [
|
|
233
|
-
(0, import_react_ui_editor.listener)({
|
|
234
|
-
onChange: (text) => {
|
|
235
|
-
if (script.source.target?.content !== text) {
|
|
236
|
-
script.changed = true;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}),
|
|
240
|
-
(0, import_react_ui_editor.createDataExtensions)({
|
|
241
|
-
id: script.id,
|
|
242
|
-
text: (0, import_echo.createDocAccessor)(script.source.target, [
|
|
243
|
-
"content"
|
|
244
|
-
]),
|
|
245
|
-
space,
|
|
246
|
-
identity
|
|
247
|
-
})
|
|
248
|
-
] : [], [
|
|
249
|
-
identity,
|
|
250
|
-
space,
|
|
251
|
-
script,
|
|
252
|
-
script.source.target
|
|
253
|
-
]);
|
|
254
|
-
return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
255
|
-
toolbar: true
|
|
256
|
-
}, /* @__PURE__ */ import_react.default.createElement(ScriptToolbar, {
|
|
257
|
-
state,
|
|
258
|
-
role,
|
|
259
|
-
script
|
|
260
|
-
}), /* @__PURE__ */ import_react.default.createElement(TypescriptEditor, {
|
|
261
|
-
id: script.id,
|
|
262
|
-
env,
|
|
263
|
-
initialValue: script.source?.target?.content,
|
|
264
|
-
extensions,
|
|
265
|
-
classNames: (0, import_react_ui_editor.stackItemContentEditorClassNames)(role),
|
|
266
|
-
inputMode: settings.editorInputMode,
|
|
267
|
-
toolbar: true
|
|
268
|
-
}));
|
|
269
|
-
} finally {
|
|
270
|
-
_effect.f();
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
var ScriptContainer_default = ScriptContainer;
|
|
274
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
275
|
-
0 && (module.exports = {
|
|
276
|
-
ScriptContainer
|
|
277
|
-
});
|
|
278
|
-
//# sourceMappingURL=ScriptContainer-CAC7AISY.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/TypescriptEditor/TypescriptEditor.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, type StackItemContentProps } from '@dxos/react-ui-stack';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = Pick<StackItemContentProps, 'role'> & {\n script: ScriptType;\n settings?: ScriptSettingsProps;\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, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } 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 { SCRIPT_PLUGIN } from '../../meta';\n\nconst createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>\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\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(SCRIPT_PLUGIN);\n const options = useDeployDeps({ script });\n const toolbarCreator = useMemo(() => createToolbar({ state, script, t, ...options }), [state, script, options, t]);\n const menu = useMenuActions(toolbarCreator);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { lintKeymap } from '@codemirror/lint';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemedClassName, type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n type EditorInputMode,\n InputModeExtensions,\n type UseTextEditorProps,\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n folding,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = ({\n classNames,\n id,\n inputMode = 'vscode',\n toolbar,\n env,\n initialValue,\n extensions,\n scrollTo,\n selection,\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n monospace: true,\n scrollPastEnd: true,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n\n // TODO(burdon): Factor out.\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : undefined }),\n keymap.of(lintKeymap),\n env && [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div\n ref={parentRef}\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={mx(classNames)}\n {...focusAttributes}\n />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_react", "import_echo", "import_react_ui", "import_react_ui_editor", "createToolbar", "state", "script", "options", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptToolbar", "role", "classNames", "t", "useTranslation", "SCRIPT_PLUGIN", "useDeployDeps", "toolbarCreator", "useMemo", "menu", "useMenuActions", "React", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "TypescriptEditor", "id", "inputMode", "toolbar", "env", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "undefined", "lintKeymap", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "div", "ref", "data-toolbar", "className", "mx", "theme", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "settings", "editorInputMode", "identity", "useIdentity", "space", "getSpace", "useToolbarState", "useDeployState", "source", "target", "listener", "onChange", "content", "changed", "createDataExtensions", "createDocAccessor", "StackItem", "Content", "stackItemContentEditorClassNames"]
|
|
7
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var app_graph_builder_25OOTBW4_exports = {};
|
|
20
|
-
__export(app_graph_builder_25OOTBW4_exports, {
|
|
21
|
-
default: () => app_graph_builder_default
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(app_graph_builder_25OOTBW4_exports);
|
|
24
|
-
var import_chunk_QG2X6J74 = require("./chunk-QG2X6J74.cjs");
|
|
25
|
-
var import_rx_react = require("@effect-rx/rx-react");
|
|
26
|
-
var import_effect = require("effect");
|
|
27
|
-
var import_app_framework = require("@dxos/app-framework");
|
|
28
|
-
var import_echo = require("@dxos/echo");
|
|
29
|
-
var import_functions = require("@dxos/functions");
|
|
30
|
-
var import_types = require("@dxos/plugin-deck/types");
|
|
31
|
-
var import_plugin_graph = require("@dxos/plugin-graph");
|
|
32
|
-
var app_graph_builder_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphBuilder, [
|
|
33
|
-
(0, import_plugin_graph.createExtension)({
|
|
34
|
-
id: `${import_chunk_QG2X6J74.meta.id}/execute`,
|
|
35
|
-
connector: (node) => import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => import_echo.Obj.instanceOf(import_functions.ScriptType, node2.data) ? import_effect.Option.some(node2) : import_effect.Option.none()), import_effect.Option.map((node2) => [
|
|
36
|
-
{
|
|
37
|
-
id: [
|
|
38
|
-
node2.id,
|
|
39
|
-
"execute"
|
|
40
|
-
].join(import_types.ATTENDABLE_PATH_SEPARATOR),
|
|
41
|
-
type: import_types.PLANK_COMPANION_TYPE,
|
|
42
|
-
data: "execute",
|
|
43
|
-
properties: {
|
|
44
|
-
label: [
|
|
45
|
-
"script test label",
|
|
46
|
-
{
|
|
47
|
-
ns: import_chunk_QG2X6J74.meta.id
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
icon: "ph--terminal--regular",
|
|
51
|
-
disposition: "hidden"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
]), import_effect.Option.getOrElse(() => [])))
|
|
55
|
-
}),
|
|
56
|
-
(0, import_plugin_graph.createExtension)({
|
|
57
|
-
id: `${import_chunk_QG2X6J74.meta.id}/logs`,
|
|
58
|
-
connector: (node) => import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => import_echo.Obj.instanceOf(import_functions.ScriptType, node2.data) ? import_effect.Option.some(node2) : import_effect.Option.none()), import_effect.Option.map((node2) => [
|
|
59
|
-
{
|
|
60
|
-
id: [
|
|
61
|
-
node2.id,
|
|
62
|
-
"logs"
|
|
63
|
-
].join(import_types.ATTENDABLE_PATH_SEPARATOR),
|
|
64
|
-
type: import_types.PLANK_COMPANION_TYPE,
|
|
65
|
-
data: "logs",
|
|
66
|
-
properties: {
|
|
67
|
-
label: [
|
|
68
|
-
"script logs label",
|
|
69
|
-
{
|
|
70
|
-
ns: import_chunk_QG2X6J74.meta.id
|
|
71
|
-
}
|
|
72
|
-
],
|
|
73
|
-
icon: "ph--clock-countdown--regular",
|
|
74
|
-
disposition: "hidden"
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
]), import_effect.Option.getOrElse(() => [])))
|
|
78
|
-
})
|
|
79
|
-
]);
|
|
80
|
-
//# sourceMappingURL=app-graph-builder-25OOTBW4.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } 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 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 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,sBAAmB;AACnB,oBAA6B;AAE7B,2BAA8D;AAC9D,kBAAoB;AACpB,uBAA2B;AAC3B,mBAAgE;AAChE,0BAAgC;AAIhC,IAAA,4BAAe,CAACA,gBACdC,kCAAYC,kCAAaC,iBAAiB;MACxCC,qCAAgB;IACdC,IAAI,GAAGC,2BAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,mBAAGC,KAAK,CAACC,YACPC,oBACED,IAAIH,IAAAA,GACJK,qBAAOC,QAAQ,CAACN,UAAUO,gBAAIC,WAAWC,6BAAYT,MAAKU,IAAI,IAAIL,qBAAOM,KAAKX,KAAAA,IAAQK,qBAAOO,KAAI,CAAA,GACjGP,qBAAOQ,IAAI,CAACb,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAWiB,KAAKC,sCAAAA;QAC9BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAItB,2BAAKD;YAAG;;UAC3CwB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACDjB,qBAAOkB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;MACA3B,qCAAgB;IACdC,IAAI,GAAGC,2BAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,mBAAGC,KAAK,CAACC,YACPC,oBACED,IAAIH,IAAAA,GACJK,qBAAOC,QAAQ,CAACN,UAAUO,gBAAIC,WAAWC,6BAAYT,MAAKU,IAAI,IAAIL,qBAAOM,KAAKX,KAAAA,IAAQK,qBAAOO,KAAI,CAAA,GACjGP,qBAAOQ,IAAI,CAACb,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAQiB,KAAKC,sCAAAA;QAC3BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAItB,2BAAKD;YAAG;;UAC3CwB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACDjB,qBAAOkB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
|
|
6
|
-
"names": ["context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "Obj", "instanceOf", "ScriptType", "data", "some", "none", "map", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "properties", "label", "ns", "icon", "disposition", "getOrElse"]
|
|
7
|
-
}
|