@dxos/plugin-script 0.7.4 → 0.7.5-main.9d26e3a
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/{AutomationPanel-PMTZROAZ.mjs → AutomationPanel-RFQAQ7NF.mjs} +2 -9
- package/dist/lib/browser/AutomationPanel-RFQAQ7NF.mjs.map +7 -0
- package/dist/lib/browser/{ScriptContainer-RYZFYCNK.mjs → ScriptContainer-GDVBWFI7.mjs} +16 -26
- package/dist/lib/browser/ScriptContainer-GDVBWFI7.mjs.map +7 -0
- package/dist/lib/browser/chunk-RQA3EB5K.mjs +26 -0
- package/dist/lib/browser/chunk-RQA3EB5K.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +57 -131
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types.mjs +8 -0
- package/dist/lib/node/{AutomationPanel-AAGQREH7.cjs → AutomationPanel-5CJEF4MI.cjs} +12 -13
- package/dist/lib/node/AutomationPanel-5CJEF4MI.cjs.map +7 -0
- package/dist/lib/node/{ScriptContainer-FZ44UIRC.cjs → ScriptContainer-YWXXNLG6.cjs} +27 -28
- package/dist/lib/node/ScriptContainer-YWXXNLG6.cjs.map +7 -0
- package/dist/lib/node/chunk-PK3OQP5L.cjs +45 -0
- package/dist/lib/node/chunk-PK3OQP5L.cjs.map +7 -0
- package/dist/lib/node/index.cjs +61 -132
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{types/index.cjs → types.cjs} +5 -9
- package/dist/lib/node/types.cjs.map +7 -0
- package/dist/lib/node-esm/{AutomationPanel-ETQEDY5I.mjs → AutomationPanel-7Y6REBNJ.mjs} +2 -9
- package/dist/lib/node-esm/AutomationPanel-7Y6REBNJ.mjs.map +7 -0
- package/dist/lib/node-esm/{ScriptContainer-3PKDW34A.mjs → ScriptContainer-BG2PHKEH.mjs} +16 -26
- package/dist/lib/node-esm/ScriptContainer-BG2PHKEH.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-H6BBLQ5Q.mjs +27 -0
- package/dist/lib/node-esm/chunk-H6BBLQ5Q.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +57 -131
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/types.mjs +9 -0
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +2 -2
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
- package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts +1 -1
- package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts.map +1 -1
- package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScriptEditor.d.ts +1 -1
- package/dist/types/src/components/ScriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/ScriptSettingsPanel.d.ts +1 -1
- package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +0 -43
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +22 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +39 -47
- package/src/ScriptPlugin.tsx +43 -95
- package/src/components/AutomationPanel/AutomationPanel.tsx +2 -4
- package/src/components/FrameContainer/FrameContainer.tsx +1 -1
- package/src/components/ScriptBlock/ScriptBlock.stories.tsx +6 -3
- package/src/components/ScriptBlock/ScriptBlock.tsx +2 -2
- package/src/components/ScriptEditor.tsx +20 -18
- package/src/components/ScriptSettingsPanel.tsx +1 -2
- package/src/components/Toolbar/Toolbar.tsx +1 -1
- package/src/translations.ts +0 -4
- package/src/types.ts +38 -0
- package/dist/lib/browser/AutomationPanel-PMTZROAZ.mjs.map +0 -7
- package/dist/lib/browser/ScriptContainer-RYZFYCNK.mjs.map +0 -7
- package/dist/lib/browser/chunk-QFZUFT5G.mjs +0 -48
- package/dist/lib/browser/chunk-QFZUFT5G.mjs.map +0 -7
- package/dist/lib/browser/chunk-U3OP64V4.mjs +0 -123
- package/dist/lib/browser/chunk-U3OP64V4.mjs.map +0 -7
- package/dist/lib/browser/edge/index.mjs +0 -19
- package/dist/lib/browser/types/index.mjs +0 -12
- package/dist/lib/node/AutomationPanel-AAGQREH7.cjs.map +0 -7
- package/dist/lib/node/ScriptContainer-FZ44UIRC.cjs.map +0 -7
- package/dist/lib/node/chunk-CS25QNKZ.cjs +0 -151
- package/dist/lib/node/chunk-CS25QNKZ.cjs.map +0 -7
- package/dist/lib/node/chunk-DQYAU2CJ.cjs +0 -67
- package/dist/lib/node/chunk-DQYAU2CJ.cjs.map +0 -7
- package/dist/lib/node/edge/index.cjs +0 -41
- package/dist/lib/node/edge/index.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/AutomationPanel-ETQEDY5I.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-3PKDW34A.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-36DLLQ6E.mjs +0 -125
- package/dist/lib/node-esm/chunk-36DLLQ6E.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GMVPKT6A.mjs +0 -49
- package/dist/lib/node-esm/chunk-GMVPKT6A.mjs.map +0 -7
- package/dist/lib/node-esm/edge/index.mjs +0 -20
- package/dist/lib/node-esm/edge/index.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -13
- package/dist/lib/node-esm/types/index.mjs.map +0 -7
- package/dist/types/src/edge/functions.d.ts +0 -25
- package/dist/types/src/edge/functions.d.ts.map +0 -1
- package/dist/types/src/edge/index.d.ts +0 -2
- package/dist/types/src/edge/index.d.ts.map +0 -1
- package/dist/types/src/types/index.d.ts +0 -3
- package/dist/types/src/types/index.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -71
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/dist/types/src/types/types.d.ts +0 -8
- package/dist/types/src/types/types.d.ts.map +0 -1
- package/src/edge/functions.ts +0 -116
- package/src/edge/index.ts +0 -7
- package/src/types/index.ts +0 -6
- package/src/types/schema.ts +0 -44
- package/src/types/types.ts +0 -29
- /package/dist/lib/browser/{edge/index.mjs.map → types.mjs.map} +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → node-esm/types.mjs.map} +0 -0
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DebugPanel
|
|
3
3
|
} from "./chunk-K7KY6YMG.mjs";
|
|
4
|
-
import {
|
|
5
|
-
getInvocationUrl,
|
|
6
|
-
getUserFunctionUrlInMetadata
|
|
7
|
-
} from "./chunk-U3OP64V4.mjs";
|
|
8
|
-
import {
|
|
9
|
-
FunctionType,
|
|
10
|
-
ScriptType
|
|
11
|
-
} from "./chunk-QFZUFT5G.mjs";
|
|
12
4
|
import {
|
|
13
5
|
SCRIPT_PLUGIN
|
|
14
6
|
} from "./chunk-C7VBULMK.mjs";
|
|
@@ -16,6 +8,7 @@ import {
|
|
|
16
8
|
// packages/plugins/experimental/plugin-script/src/components/AutomationPanel/AutomationPanel.tsx
|
|
17
9
|
import React, { useMemo, useState } from "react";
|
|
18
10
|
import { failUndefined } from "@dxos/debug";
|
|
11
|
+
import { FunctionType, ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
|
|
19
12
|
import { useClient } from "@dxos/react-client";
|
|
20
13
|
import { Filter, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
21
14
|
import { Select, useTranslation } from "@dxos/react-ui";
|
|
@@ -82,4 +75,4 @@ export {
|
|
|
82
75
|
AutomationPanel,
|
|
83
76
|
AutomationPanel_default as default
|
|
84
77
|
};
|
|
85
|
-
//# sourceMappingURL=AutomationPanel-
|
|
78
|
+
//# sourceMappingURL=AutomationPanel-RFQAQ7NF.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/AutomationPanel/AutomationPanel.tsx", "../../../src/components/AutomationPanel/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useMemo, useState } from 'react';\n\nimport { failUndefined } from '@dxos/debug';\nimport { FunctionType, ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getMeta, getSpace, type ReactiveEchoObject, useQuery } from '@dxos/react-client/echo';\nimport { Select, useTranslation } from '@dxos/react-ui';\n\nimport { SCRIPT_PLUGIN } from '../../meta';\nimport { DebugPanel } from '../DebugPanel';\n\nexport interface AutomationPanelProps {\n subject: ReactiveEchoObject<any>;\n}\n\nexport const AutomationPanel = ({ subject }: AutomationPanelProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const space = getSpace(subject);\n\n // TODO(dmaretskyi): Parametric query.\n const functions = useQuery(\n space ?? undefined,\n subject instanceof ScriptType\n ? Filter.schema(FunctionType, { source: subject })\n : Filter.schema(FunctionType, (fn) => fn.binding != null),\n {},\n [subject],\n );\n\n const [selectedFunction, setSelectedFunction] = useState<FunctionType | null>(null);\n const chatFunction = subject instanceof ScriptType ? functions[0] : selectedFunction;\n\n return (\n <div className='h-full flex flex-col'>\n {!(subject instanceof ScriptType) && (\n <BindingSelect\n selectedFunction={selectedFunction}\n setSelectedFunction={setSelectedFunction}\n functions={functions}\n />\n )}\n {chatFunction && <ChatPanel fn={chatFunction} subject={subject} />}\n {subject instanceof ScriptType && functions.length === 0 && <div className='p-1'>{t('not deployed')}</div>}\n </div>\n );\n};\n\nexport interface ChatPanelProps {\n fn: FunctionType;\n subject: ReactiveEchoObject<any>;\n}\n\nconst ChatPanel = ({ fn, subject }: ChatPanelProps) => {\n const client = useClient();\n const space = getSpace(fn);\n const existingFunctionUrl = getUserFunctionUrlInMetadata(getMeta(fn));\n const functionUrl = useMemo(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n return getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n subjectId: subject?.id,\n });\n }, [existingFunctionUrl, space, subject]);\n\n return <DebugPanel functionUrl={functionUrl} classNames='flex-1' />;\n};\n\nexport interface BindingSelectProps {\n selectedFunction: FunctionType | null;\n setSelectedFunction: (fn: FunctionType) => void;\n functions: FunctionType[];\n}\n\nconst BindingSelect = ({ selectedFunction, setSelectedFunction, functions }: BindingSelectProps) => {\n return (\n <Select.Root\n value={selectedFunction?.id}\n onValueChange={(id) => setSelectedFunction(functions.find((fn) => fn.id === id) ?? failUndefined())}\n >\n <Select.TriggerButton placeholder='Select value' />\n <Select.Portal>\n <Select.Content>\n <Select.ScrollUpButton />\n <Select.Viewport>\n {functions.map(({ id, binding }) => (\n <Select.Option key={id} value={id}>\n {binding}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton />\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { AutomationPanel } from './AutomationPanel';\n\nexport * from './AutomationPanel';\n\nexport default AutomationPanel;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,OAAOA,SAASC,SAASC,gBAAgB;AAEzC,SAASC,qBAAqB;AAC9B,SAASC,cAAcC,YAAYC,kBAAkBC,oCAAoC;AACzF,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,SAASC,UAAmCC,gBAAgB;AAC7E,SAASC,QAAQC,sBAAsB;AAShC,IAAMC,kBAAkB,CAAC,EAAEC,QAAO,MAAwB;AAC/D,QAAM,EAAEC,EAAC,IAAKC,eAAeC,aAAAA;AAC7B,QAAMC,QAAQC,SAASL,OAAAA;AAGvB,QAAMM,YAAYC,SAChBH,SAASI,QACTR,mBAAmBS,aACfC,OAAOC,OAAOC,cAAc;IAAEC,QAAQb;EAAQ,CAAA,IAC9CU,OAAOC,OAAOC,cAAc,CAACE,OAAOA,GAAGC,WAAW,IAAA,GACtD,CAAC,GACD;IAACf;GAAQ;AAGX,QAAM,CAACgB,kBAAkBC,mBAAAA,IAAuBC,SAA8B,IAAA;AAC9E,QAAMC,eAAenB,mBAAmBS,aAAaH,UAAU,CAAA,IAAKU;AAEpE,SACE,sBAAA,cAACI,OAAAA;IAAIC,WAAU;KACZ,EAAErB,mBAAmBS,eACpB,sBAAA,cAACa,eAAAA;IACCN;IACAC;IACAX;MAGHa,gBAAgB,sBAAA,cAACI,WAAAA;IAAUT,IAAIK;IAAcnB;MAC7CA,mBAAmBS,cAAcH,UAAUkB,WAAW,KAAK,sBAAA,cAACJ,OAAAA;IAAIC,WAAU;KAAOpB,EAAE,cAAA,CAAA,CAAA;AAG1F;AAOA,IAAMsB,YAAY,CAAC,EAAET,IAAId,QAAO,MAAkB;AAChD,QAAMyB,SAASC,UAAAA;AACf,QAAMtB,QAAQC,SAASS,EAAAA;AACvB,QAAMa,sBAAsBC,6BAA6BC,QAAQf,EAAAA,CAAAA;AACjE,QAAMgB,cAAcC,QAAQ,MAAA;AAC1B,QAAI,CAACJ,qBAAqB;AACxB;IACF;AAEA,WAAOK,iBAAiBL,qBAAqBF,OAAOQ,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,OAAO,IAAI;MACpGC,SAASnC,OAAOoC;MAChBC,WAAWzC,SAASwC;IACtB,CAAA;EACF,GAAG;IAACb;IAAqBvB;IAAOJ;GAAQ;AAExC,SAAO,sBAAA,cAAC0C,YAAAA;IAAWZ;IAA0Ba,YAAW;;AAC1D;AAQA,IAAMrB,gBAAgB,CAAC,EAAEN,kBAAkBC,qBAAqBX,UAAS,MAAsB;AAC7F,SACE,sBAAA,cAACsC,OAAOC,MAAI;IACVC,OAAO9B,kBAAkBwB;IACzBO,eAAe,CAACP,OAAOvB,oBAAoBX,UAAU0C,KAAK,CAAClC,OAAOA,GAAG0B,OAAOA,EAAAA,KAAOS,cAAAA,CAAAA;KAEnF,sBAAA,cAACL,OAAOM,eAAa;IAACC,aAAY;MAClC,sBAAA,cAACP,OAAOQ,QAAM,MACZ,sBAAA,cAACR,OAAOS,SAAO,MACb,sBAAA,cAACT,OAAOU,gBAAc,IAAA,GACtB,sBAAA,cAACV,OAAOW,UAAQ,MACbjD,UAAUkD,IAAI,CAAC,EAAEhB,IAAIzB,QAAO,MAC3B,sBAAA,cAAC6B,OAAOa,QAAM;IAACC,KAAKlB;IAAIM,OAAON;KAC5BzB,OAAAA,CAAAA,CAAAA,GAIP,sBAAA,cAAC6B,OAAOe,kBAAgB,IAAA,GACxB,sBAAA,cAACf,OAAOgB,OAAK,IAAA,CAAA,CAAA,CAAA;AAKvB;;;AC/FA,IAAA,0BAAeC;",
|
|
6
|
+
"names": ["React", "useMemo", "useState", "failUndefined", "FunctionType", "ScriptType", "getInvocationUrl", "getUserFunctionUrlInMetadata", "useClient", "Filter", "getMeta", "getSpace", "useQuery", "Select", "useTranslation", "AutomationPanel", "subject", "t", "useTranslation", "SCRIPT_PLUGIN", "space", "getSpace", "functions", "useQuery", "undefined", "ScriptType", "Filter", "schema", "FunctionType", "source", "fn", "binding", "selectedFunction", "setSelectedFunction", "useState", "chatFunction", "div", "className", "BindingSelect", "ChatPanel", "length", "client", "useClient", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "getMeta", "functionUrl", "useMemo", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "subjectId", "DebugPanel", "classNames", "Select", "Root", "value", "onValueChange", "find", "failUndefined", "TriggerButton", "placeholder", "Portal", "Content", "ScrollUpButton", "Viewport", "map", "Option", "key", "ScrollDownButton", "Arrow", "AutomationPanel"]
|
|
7
|
+
}
|
|
@@ -5,17 +5,6 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
DebugPanel
|
|
7
7
|
} from "./chunk-K7KY6YMG.mjs";
|
|
8
|
-
import {
|
|
9
|
-
FUNCTIONS_PRESET_META_KEY,
|
|
10
|
-
getInvocationUrl,
|
|
11
|
-
getUserFunctionUrlInMetadata,
|
|
12
|
-
incrementSemverPatch,
|
|
13
|
-
setUserFunctionUrlInMetadata,
|
|
14
|
-
uploadWorkerFunction
|
|
15
|
-
} from "./chunk-U3OP64V4.mjs";
|
|
16
|
-
import {
|
|
17
|
-
FunctionType
|
|
18
|
-
} from "./chunk-QFZUFT5G.mjs";
|
|
19
8
|
import {
|
|
20
9
|
SCRIPT_PLUGIN
|
|
21
10
|
} from "./chunk-C7VBULMK.mjs";
|
|
@@ -31,9 +20,10 @@ import { format } from "prettier";
|
|
|
31
20
|
import prettierPluginEstree from "prettier/plugins/estree";
|
|
32
21
|
import prettierPluginTypescript from "prettier/plugins/typescript";
|
|
33
22
|
import React3, { useCallback, useMemo, useState as useState2 } from "react";
|
|
23
|
+
import { FUNCTIONS_PRESET_META_KEY, FunctionType, getInvocationUrl, getUserFunctionUrlInMetadata, setUserFunctionUrlInMetadata, uploadWorkerFunction, incrementSemverPatch } from "@dxos/functions";
|
|
34
24
|
import { log } from "@dxos/log";
|
|
35
25
|
import { useClient } from "@dxos/react-client";
|
|
36
|
-
import { create, createDocAccessor, Filter, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
26
|
+
import { create, createDocAccessor, Filter, getMeta, getSpace, makeRef, useQuery } from "@dxos/react-client/echo";
|
|
37
27
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
38
28
|
import { useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
39
29
|
import { createDataExtensions, listener } from "@dxos/react-ui-editor";
|
|
@@ -59,7 +49,7 @@ var Toolbar = ({ classNames, deployed, error, functionUrl, view, templates: temp
|
|
|
59
49
|
}
|
|
60
50
|
};
|
|
61
51
|
return /* @__PURE__ */ React.createElement(ElevationProvider, {
|
|
62
|
-
elevation: "
|
|
52
|
+
elevation: "positioned"
|
|
63
53
|
}, /* @__PURE__ */ React.createElement(NaturalToolbar.Root, {
|
|
64
54
|
classNames: [
|
|
65
55
|
"p-1",
|
|
@@ -231,14 +221,14 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
231
221
|
const extensions = useMemo(() => [
|
|
232
222
|
listener({
|
|
233
223
|
onChange: (text) => {
|
|
234
|
-
if (script.source && script.source
|
|
224
|
+
if (script.source.target && script.source.target.content !== text) {
|
|
235
225
|
script.changed = true;
|
|
236
226
|
}
|
|
237
227
|
}
|
|
238
228
|
}),
|
|
239
229
|
createDataExtensions({
|
|
240
230
|
id: script.id,
|
|
241
|
-
text: script.source && createDocAccessor(script.source, [
|
|
231
|
+
text: script.source.target && createDocAccessor(script.source.target, [
|
|
242
232
|
"content"
|
|
243
233
|
]),
|
|
244
234
|
space,
|
|
@@ -246,7 +236,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
246
236
|
})
|
|
247
237
|
], [
|
|
248
238
|
script,
|
|
249
|
-
script.source,
|
|
239
|
+
script.source.target,
|
|
250
240
|
space,
|
|
251
241
|
identity
|
|
252
242
|
]);
|
|
@@ -258,7 +248,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
258
248
|
return;
|
|
259
249
|
}
|
|
260
250
|
try {
|
|
261
|
-
script.source.content = await format(script.source.content, {
|
|
251
|
+
script.source.target.content = await format(script.source.target.content, {
|
|
262
252
|
parser: "typescript",
|
|
263
253
|
plugins: [
|
|
264
254
|
prettierPluginEstree,
|
|
@@ -270,7 +260,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
270
260
|
} catch (err) {
|
|
271
261
|
log.catch(err, void 0, {
|
|
272
262
|
F: __dxlog_file,
|
|
273
|
-
L:
|
|
263
|
+
L: 84,
|
|
274
264
|
S: void 0,
|
|
275
265
|
C: (f, a) => f(...a)
|
|
276
266
|
});
|
|
@@ -282,7 +272,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
282
272
|
const template = templates.find((template2) => template2.id === id);
|
|
283
273
|
if (template) {
|
|
284
274
|
script.name = template.name;
|
|
285
|
-
script.source.content = template.source;
|
|
275
|
+
script.source.target.content = template.source;
|
|
286
276
|
const metaKeys = getMeta(script).keys;
|
|
287
277
|
const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
|
|
288
278
|
if (oldPresetIndex >= 0) {
|
|
@@ -308,7 +298,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
308
298
|
sandboxedModules: [],
|
|
309
299
|
remoteModules: {}
|
|
310
300
|
});
|
|
311
|
-
const buildResult = await bundler.bundle(script.source.content);
|
|
301
|
+
const buildResult = await bundler.bundle(script.source.target.content);
|
|
312
302
|
if (buildResult.error || !buildResult.bundle) {
|
|
313
303
|
throw buildResult.error;
|
|
314
304
|
}
|
|
@@ -327,7 +317,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
327
317
|
version
|
|
328
318
|
}, {
|
|
329
319
|
F: __dxlog_file,
|
|
330
|
-
L:
|
|
320
|
+
L: 131,
|
|
331
321
|
S: void 0,
|
|
332
322
|
C: (f, a) => f(...a)
|
|
333
323
|
});
|
|
@@ -337,7 +327,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
337
327
|
const deployedFunction = fn ?? space.db.add(create(FunctionType, {
|
|
338
328
|
name: functionId,
|
|
339
329
|
version,
|
|
340
|
-
source: script
|
|
330
|
+
source: makeRef(script)
|
|
341
331
|
}));
|
|
342
332
|
script.changed = false;
|
|
343
333
|
if (meta.inputSchema) {
|
|
@@ -347,7 +337,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
347
337
|
functionId
|
|
348
338
|
}, {
|
|
349
339
|
F: __dxlog_file,
|
|
350
|
-
L:
|
|
340
|
+
L: 144,
|
|
351
341
|
S: void 0,
|
|
352
342
|
C: (f, a) => f(...a)
|
|
353
343
|
});
|
|
@@ -357,7 +347,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
357
347
|
} catch (err) {
|
|
358
348
|
log.catch(err, void 0, {
|
|
359
349
|
F: __dxlog_file,
|
|
360
|
-
L:
|
|
350
|
+
L: 151,
|
|
361
351
|
S: void 0,
|
|
362
352
|
C: (f, a) => f(...a)
|
|
363
353
|
});
|
|
@@ -398,7 +388,7 @@ var ScriptEditor = ({ classNames, script, env }) => {
|
|
|
398
388
|
}), view !== "preview" && /* @__PURE__ */ React3.createElement(TypescriptEditor, {
|
|
399
389
|
id: script.id,
|
|
400
390
|
env,
|
|
401
|
-
initialValue: script.source?.content,
|
|
391
|
+
initialValue: script.source?.target?.content,
|
|
402
392
|
extensions,
|
|
403
393
|
className: "flex is-full bs-full overflow-hidden ch-focus-ring-inset-over-all"
|
|
404
394
|
}), view !== "editor" && /* @__PURE__ */ React3.createElement(DebugPanel, {
|
|
@@ -422,4 +412,4 @@ var ScriptContainer_default = ScriptContainer;
|
|
|
422
412
|
export {
|
|
423
413
|
ScriptContainer_default as default
|
|
424
414
|
};
|
|
425
|
-
//# sourceMappingURL=ScriptContainer-
|
|
415
|
+
//# sourceMappingURL=ScriptContainer-GDVBWFI7.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptEditor.tsx", "../../../src/components/Toolbar/Toolbar.tsx", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { useAttendableAttributes } from '@dxos/react-ui-attention';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { ScriptEditor, type ScriptEditorProps } from './ScriptEditor';\n\nconst ScriptContainer = ({ script, ...props }: ScriptEditorProps) => {\n const attendableAttrs = useAttendableAttributes(fullyQualifiedId(script));\n return (\n <div role='none' className={mx('flex row-span-2 w-full overflow-hidden attention-surface')} {...attendableAttrs}>\n <ScriptEditor {...props} script={script} />\n </div>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport {\n FUNCTIONS_PRESET_META_KEY,\n FunctionType,\n type ScriptType,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n incrementSemverPatch,\n} from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { create, createDocAccessor, Filter, getMeta, getSpace, makeRef, useQuery } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { createDataExtensions, listener } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { DebugPanel } from './DebugPanel';\nimport { type TemplateSelectProps, Toolbar, type ViewType } from './Toolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { Bundler } from '../bundler';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { templates } from '../templates';\n\nexport type ScriptEditorProps = ThemedClassName<{\n script: ScriptType;\n}> &\n Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptEditor = ({ classNames, script, env }: ScriptEditorProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const client = useClient();\n const identity = useIdentity();\n const space = getSpace(script);\n const [fn] = useQuery(space, Filter.schema(FunctionType, { source: script }));\n\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source.target && script.source.target.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source.target && createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source.target, space, identity],\n );\n\n const [view, setView] = useState<ViewType>('editor');\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n const [error, setError] = useState<string>();\n\n const handleFormat = useCallback(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 }, [script.source]);\n\n const handleTemplateChange: TemplateSelectProps['onTemplateSelect'] = (id) => {\n const template = templates.find((template) => template.id === id);\n if (template) {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = 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\n const handleDeploy = useCallback(async () => {\n if (!script.source || !identity || !space) {\n return;\n }\n\n setError(undefined);\n\n try {\n const existingFunctionId = existingFunctionUrl?.split('/').at(-1);\n\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle(script.source.target!.content);\n if (buildResult.error || !buildResult.bundle) {\n throw buildResult.error;\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n spaceId: space.id,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: buildResult.bundle,\n });\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: functionId=${functionId}, version=${version}`);\n }\n\n log.info('function uploaded', { functionId, version });\n if (fn) {\n fn.version = version;\n }\n\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { name: functionId, version, source: makeRef(script) }));\n\n script.changed = false;\n\n if (meta.inputSchema) {\n deployedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);\n\n setView('split');\n } catch (err: any) {\n log.catch(err);\n setError(t('upload failed label'));\n }\n }, [fn, existingFunctionUrl, script, script.name, script.source, space?.id ?? null]);\n\n const functionUrl = useMemo(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n return getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n }, [existingFunctionUrl, space]);\n\n return (\n <div role='none' className={mx('flex flex-col w-full overflow-hidden divide-y divide-separator', classNames)}>\n <Toolbar\n deployed={Boolean(existingFunctionUrl) && !script.changed}\n functionUrl={functionUrl}\n error={error}\n view={view}\n templates={templates}\n onDeploy={handleDeploy}\n onFormat={handleFormat}\n onViewChange={setView}\n onTemplateSelect={handleTemplateChange}\n />\n\n {view !== 'preview' && (\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n className='flex is-full bs-full overflow-hidden ch-focus-ring-inset-over-all'\n />\n )}\n\n {view !== 'editor' && <DebugPanel functionUrl={functionUrl} />}\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport {\n ElevationProvider,\n Icon,\n Select,\n type ThemedClassName,\n ToggleGroup,\n ToggleGroupItem,\n type ToolbarButtonProps,\n Toolbar as NaturalToolbar,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\n\nimport { SCRIPT_PLUGIN } from '../../meta';\nimport { type Template } from '../../templates';\n\nexport type ToolbarProps = ThemedClassName<\n {\n deployed?: boolean;\n error?: string;\n functionUrl?: string;\n onDeploy?: () => Promise<void>;\n onFormat?: () => Promise<void>;\n } & TemplateSelectProps &\n ViewSelectorProps\n>;\n\nexport const Toolbar = ({\n classNames,\n deployed,\n error,\n functionUrl,\n view,\n templates,\n onDeploy,\n onFormat,\n onViewChange,\n onTemplateSelect,\n}: ToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const [pending, setPending] = useState(false);\n\n const handleCopyLink = async () => {\n if (!functionUrl) {\n return;\n }\n\n await navigator.clipboard.writeText(functionUrl);\n };\n\n const handleDeploy = async () => {\n if (!pending) {\n setPending(true);\n await onDeploy?.();\n setPending(false);\n }\n };\n\n // TODO(burdon): Factor out common toolbar components with sheet/editor?\n return (\n <ElevationProvider elevation='positioned'>\n <NaturalToolbar.Root classNames={['p-1', classNames]} style={{ contain: 'layout' }}>\n {templates && <TemplateSelect templates={templates} onTemplateSelect={onTemplateSelect} />}\n {onFormat && <ToolbarIconButton icon='ph--magic-wand--regular' text={t('format label')} onClick={onFormat} />}\n\n <div role='separator' className='grow' />\n\n {error ? (\n <Tooltip.Root>\n <Tooltip.Trigger>\n <Icon icon='ph--warning-circle--regular' size={4} />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {error}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : null}\n\n {functionUrl && deployed && (\n <ToolbarIconButton icon='ph--link--regular' text={t('copy link label')} onClick={handleCopyLink} />\n )}\n\n {onDeploy && (\n <ToolbarIconButton\n icon={pending ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular'}\n classNames={[pending && 'animate-spin']}\n text={pending ? t('pending label') : t('deploy label')}\n onClick={handleDeploy}\n />\n )}\n\n <ViewSelector view={view} onViewChange={onViewChange} />\n </NaturalToolbar.Root>\n </ElevationProvider>\n );\n};\n\nconst ToolbarIconButton = ({\n icon,\n text,\n classNames,\n disabled,\n onClick,\n}: { icon: string; text: string } & Pick<ToolbarButtonProps, 'classNames' | 'disabled' | 'onClick'>) => {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' disabled={disabled} onClick={onClick}>\n <Icon icon={icon} size={4} classNames={classNames} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {text}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nexport type ViewType = 'editor' | 'split' | 'preview';\n\nexport type TemplateSelectProps = {\n templates?: Template[];\n onTemplateSelect?: (id: string) => void;\n};\n\nexport const TemplateSelect = ({ templates = [], onTemplateSelect }: TemplateSelectProps) => {\n return (\n <Select.Root value={''} onValueChange={onTemplateSelect}>\n <Select.TriggerButton />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={''}>Template</Select.Option>\n {templates.map(({ id, name }) => (\n <Select.Option key={id} value={id}>\n {name}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n};\n\nexport type ViewSelectorProps = {\n view?: ViewType;\n onViewChange?: (view: ViewType) => void;\n};\n\nexport const ViewSelector = ({ view, onViewChange }: ViewSelectorProps) => {\n return (\n <ToggleGroup type='single' value={view} onValueChange={(value) => onViewChange?.(value as ViewType)}>\n <ToggleGroupItem value='editor' classNames='bg-transparent text-subdued'>\n <Icon icon='ph--code--regular' size={4} />\n </ToggleGroupItem>\n <ToggleGroupItem value='split' classNames='bg-transparent text-subdued'>\n <Icon icon='ph--square-split-vertical--regular' size={4} />\n </ToggleGroupItem>\n <ToggleGroupItem value='preview' classNames='bg-transparent text-subdued'>\n <Icon icon='ph--eye--regular' size={4} />\n </ToggleGroupItem>\n </ToggleGroup>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { useThemeContext } from '@dxos/react-ui';\nimport {\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n editorFullWidth,\n editorGutter,\n editorMonospace,\n InputModeExtensions,\n useTextEditor,\n type UseTextEditorProps,\n} from '@dxos/react-ui-editor';\nimport { nonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = {\n id: string;\n env?: VirtualTypeScriptEnvironment;\n} & Pick<UseTextEditorProps, 'className' | 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>;\n\nexport const TypescriptEditor = ({\n id,\n env,\n className,\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 extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: {\n content: { className: editorFullWidth },\n },\n }),\n editorGutter,\n // TODO(burdon): Factor out.\n [\n editorMonospace,\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : [] }),\n env ? [tsFacet.of({ env, path: `/src/${id}.ts` }), tsSync(), tsLinter(), tsHover()] : [],\n InputModeExtensions.vscode,\n ],\n ].filter(nonNullable),\n selection,\n scrollTo,\n }),\n [id, extensions, themeMode, selection, scrollTo],\n );\n\n return <div ref={parentRef} className={className} {...focusAttributes} />;\n};\n\nexport default TypescriptEditor;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "fullyQualifiedId", "useAttendableAttributes", "mx", "format", "prettierPluginEstree", "prettierPluginTypescript", "React", "useCallback", "useMemo", "useState", "FUNCTIONS_PRESET_META_KEY", "FunctionType", "getInvocationUrl", "getUserFunctionUrlInMetadata", "setUserFunctionUrlInMetadata", "uploadWorkerFunction", "incrementSemverPatch", "log", "useClient", "create", "createDocAccessor", "Filter", "getMeta", "getSpace", "makeRef", "useQuery", "useIdentity", "useTranslation", "createDataExtensions", "listener", "mx", "React", "useState", "ElevationProvider", "Icon", "Select", "ToggleGroup", "ToggleGroupItem", "Toolbar", "NaturalToolbar", "Tooltip", "useTranslation", "Toolbar", "classNames", "deployed", "error", "functionUrl", "view", "templates", "onDeploy", "onFormat", "onViewChange", "onTemplateSelect", "t", "useTranslation", "SCRIPT_PLUGIN", "pending", "setPending", "useState", "handleCopyLink", "navigator", "clipboard", "writeText", "handleDeploy", "ElevationProvider", "elevation", "NaturalToolbar", "Root", "style", "contain", "TemplateSelect", "ToolbarIconButton", "icon", "text", "onClick", "div", "role", "className", "Tooltip", "Trigger", "Icon", "size", "Portal", "Content", "Arrow", "ViewSelector", "disabled", "asChild", "Button", "variant", "Select", "value", "onValueChange", "TriggerButton", "Viewport", "Option", "map", "id", "name", "key", "ToggleGroup", "type", "ToggleGroupItem", "javascript", "tsSync", "tsFacet", "tsLinter", "tsAutocomplete", "tsHover", "React", "useThemeContext", "autocomplete", "createBasicExtensions", "createThemeExtensions", "editorFullWidth", "editorGutter", "editorMonospace", "InputModeExtensions", "useTextEditor", "nonNullable", "TypescriptEditor", "id", "env", "className", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "editorFullWidth", "editorGutter", "editorMonospace", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "tsFacet", "of", "path", "tsSync", "tsLinter", "tsHover", "InputModeExtensions", "vscode", "filter", "nonNullable", "React", "div", "ref", "ScriptEditor", "classNames", "script", "env", "t", "useTranslation", "SCRIPT_PLUGIN", "client", "useClient", "identity", "useIdentity", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "source", "extensions", "useMemo", "listener", "onChange", "text", "target", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "view", "setView", "useState", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "getMeta", "error", "setError", "handleFormat", "useCallback", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "handleTemplateChange", "template", "templates", "find", "name", "metaKeys", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "handleDeploy", "undefined", "existingFunctionId", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "functionId", "version", "meta", "uploadWorkerFunction", "spaceId", "incrementSemverPatch", "Error", "info", "deployedFunction", "db", "add", "create", "makeRef", "inputSchema", "verbose", "setUserFunctionUrlInMetadata", "functionUrl", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "React", "div", "role", "className", "mx", "Toolbar", "deployed", "Boolean", "onDeploy", "onFormat", "onViewChange", "onTemplateSelect", "TypescriptEditor", "initialValue", "DebugPanel", "ScriptContainer", "script", "props", "attendableAttrs", "useAttendableAttributes", "fullyQualifiedId", "React", "div", "role", "className", "mx", "ScriptEditor"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SCRIPT_PLUGIN
|
|
3
|
+
} from "./chunk-C7VBULMK.mjs";
|
|
4
|
+
|
|
5
|
+
// packages/plugins/experimental/plugin-script/src/types.ts
|
|
6
|
+
import { S } from "@dxos/echo-schema";
|
|
7
|
+
import { ScriptType } from "@dxos/functions";
|
|
8
|
+
var ScriptAction;
|
|
9
|
+
(function(ScriptAction2) {
|
|
10
|
+
const SCRIPT_ACTION = `${SCRIPT_PLUGIN}/action`;
|
|
11
|
+
class Create extends S.TaggedClass()(`${SCRIPT_ACTION}/create`, {
|
|
12
|
+
input: S.Struct({
|
|
13
|
+
name: S.optional(S.String)
|
|
14
|
+
}),
|
|
15
|
+
output: S.Struct({
|
|
16
|
+
object: ScriptType
|
|
17
|
+
})
|
|
18
|
+
}) {
|
|
19
|
+
}
|
|
20
|
+
ScriptAction2.Create = Create;
|
|
21
|
+
})(ScriptAction || (ScriptAction = {}));
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
ScriptAction
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-RQA3EB5K.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n IntentResolverProvides,\n MetadataRecordsProvides,\n SettingsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { ScriptType } from '@dxos/functions';\nimport { type SchemaProvides } from '@dxos/plugin-space';\n\nimport { SCRIPT_PLUGIN } from './meta';\n\nexport namespace ScriptAction {\n const SCRIPT_ACTION = `${SCRIPT_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${SCRIPT_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: ScriptType,\n }),\n }) {}\n}\n\nexport type ScriptSettingsProps = {};\n\nexport type ScriptPluginProvides = IntentResolverProvides &\n MetadataRecordsProvides &\n SchemaProvides &\n SettingsProvides<ScriptSettingsProps> &\n SurfaceProvides &\n TranslationsProvides;\n"],
|
|
5
|
+
"mappings": ";;;;;AAWA,SAASA,SAAS;AAClB,SAASC,kBAAkB;;UAKVC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;EAElB,MAAMC,eAAeC,EAAEC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAC7EK,OAAOF,EAAEG,OAAO;MACdC,MAAMJ,EAAEK,SAASL,EAAEM,MAAM;IAC3B,CAAA;IACAC,QAAQP,EAAEG,OAAO;MACfK,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBAPSV,SAAAA;AAQf,GAXiBH,iBAAAA,eAAAA,CAAAA,EAAAA;",
|
|
6
|
+
"names": ["S", "ScriptType", "ScriptAction", "SCRIPT_ACTION", "SCRIPT_PLUGIN", "Create", "S", "TaggedClass", "input", "Struct", "name", "optional", "String", "output", "object", "ScriptType"]
|
|
7
|
+
}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ScriptAction
|
|
3
|
+
} from "./chunk-RQA3EB5K.mjs";
|
|
1
4
|
import {
|
|
2
5
|
Bundler,
|
|
3
6
|
initializeBundler,
|
|
4
7
|
templates
|
|
5
8
|
} from "./chunk-4UTRJLQ3.mjs";
|
|
6
|
-
import {
|
|
7
|
-
getInvocationUrl,
|
|
8
|
-
getUserFunctionUrlInMetadata
|
|
9
|
-
} from "./chunk-U3OP64V4.mjs";
|
|
10
|
-
import {
|
|
11
|
-
FunctionType,
|
|
12
|
-
ScriptAction,
|
|
13
|
-
ScriptType
|
|
14
|
-
} from "./chunk-QFZUFT5G.mjs";
|
|
15
9
|
import {
|
|
16
10
|
SCRIPT_PLUGIN,
|
|
17
11
|
meta_default
|
|
@@ -20,13 +14,10 @@ import {
|
|
|
20
14
|
// packages/plugins/experimental/plugin-script/src/ScriptPlugin.tsx
|
|
21
15
|
import wasmUrl from "esbuild-wasm/esbuild.wasm?url";
|
|
22
16
|
import React3 from "react";
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import { createExtension, isActionGroup } from "@dxos/plugin-graph";
|
|
17
|
+
import { createIntent, createResolver, createSurface } from "@dxos/app-framework";
|
|
18
|
+
import { FunctionType as FunctionType2, ScriptType } from "@dxos/functions";
|
|
19
|
+
import { create, makeRef, RefArray } from "@dxos/live-object";
|
|
27
20
|
import { TextType } from "@dxos/plugin-markdown/types";
|
|
28
|
-
import { SpaceAction } from "@dxos/plugin-space";
|
|
29
|
-
import { loadObjectReferences } from "@dxos/react-client/echo";
|
|
30
21
|
|
|
31
22
|
// packages/plugins/experimental/plugin-script/src/compiler/compiler.ts
|
|
32
23
|
import { createDefaultMapFromCDN, createSystem, createVirtualTypeScriptEnvironment } from "@typescript/vfs";
|
|
@@ -122,6 +113,7 @@ var ScriptSettings = ({ settings }) => {
|
|
|
122
113
|
|
|
123
114
|
// packages/plugins/experimental/plugin-script/src/components/ScriptSettingsPanel.tsx
|
|
124
115
|
import React2, { useCallback } from "react";
|
|
116
|
+
import { FunctionType, getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
|
|
125
117
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
126
118
|
import { Filter, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
127
119
|
import { Button as Button2, Icon, Input, useControlledValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
@@ -197,16 +189,13 @@ var ScriptSettingsPanel = ({ script }) => {
|
|
|
197
189
|
};
|
|
198
190
|
|
|
199
191
|
// packages/plugins/experimental/plugin-script/src/components/index.ts
|
|
200
|
-
var AutomationPanel = lazy(() => import("./AutomationPanel-
|
|
201
|
-
var ScriptContainer = lazy(() => import("./ScriptContainer-
|
|
192
|
+
var AutomationPanel = lazy(() => import("./AutomationPanel-RFQAQ7NF.mjs"));
|
|
193
|
+
var ScriptContainer = lazy(() => import("./ScriptContainer-GDVBWFI7.mjs"));
|
|
202
194
|
|
|
203
195
|
// packages/plugins/experimental/plugin-script/src/translations.ts
|
|
204
196
|
var translations_default = [
|
|
205
197
|
{
|
|
206
198
|
"en-US": {
|
|
207
|
-
[ScriptType.typename]: {
|
|
208
|
-
"typename label": "Script"
|
|
209
|
-
},
|
|
210
199
|
[SCRIPT_PLUGIN]: {
|
|
211
200
|
"plugin name": "Scripts",
|
|
212
201
|
"object title placeholder": "New script",
|
|
@@ -254,7 +243,7 @@ var ScriptPlugin = () => {
|
|
|
254
243
|
metadata: {
|
|
255
244
|
records: {
|
|
256
245
|
[ScriptType.typename]: {
|
|
257
|
-
createObject: ScriptAction.
|
|
246
|
+
createObject: (props) => createIntent(ScriptAction.Create, props),
|
|
258
247
|
placeholder: [
|
|
259
248
|
"object title placeholder",
|
|
260
249
|
{
|
|
@@ -263,8 +252,8 @@ var ScriptPlugin = () => {
|
|
|
263
252
|
],
|
|
264
253
|
icon: "ph--code--regular",
|
|
265
254
|
// TODO(wittjosiah): Move out of metadata.
|
|
266
|
-
loadReferences: (script) =>
|
|
267
|
-
|
|
255
|
+
loadReferences: async (script) => await RefArray.loadAll([
|
|
256
|
+
script.source
|
|
268
257
|
])
|
|
269
258
|
}
|
|
270
259
|
}
|
|
@@ -275,118 +264,57 @@ var ScriptPlugin = () => {
|
|
|
275
264
|
ScriptType
|
|
276
265
|
],
|
|
277
266
|
system: [
|
|
278
|
-
|
|
267
|
+
FunctionType2
|
|
279
268
|
]
|
|
280
269
|
},
|
|
281
|
-
graph: {
|
|
282
|
-
builder: (plugins) => {
|
|
283
|
-
const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
|
|
284
|
-
const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;
|
|
285
|
-
if (!client || !dispatch) {
|
|
286
|
-
return [];
|
|
287
|
-
}
|
|
288
|
-
return createExtension({
|
|
289
|
-
id: ScriptAction.CREATE,
|
|
290
|
-
filter: (node) => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),
|
|
291
|
-
actions: ({ node }) => {
|
|
292
|
-
const id = node.id.split("/").at(-1);
|
|
293
|
-
const [spaceId, objectId] = id?.split(":") ?? [];
|
|
294
|
-
const space = client.spaces.get().find((space2) => space2.id === spaceId);
|
|
295
|
-
const object = objectId && space?.db.getObjectById(objectId);
|
|
296
|
-
const target = objectId ? object : space;
|
|
297
|
-
if (!target) {
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
return [
|
|
301
|
-
{
|
|
302
|
-
id: `${SCRIPT_PLUGIN}/create/${node.id}`,
|
|
303
|
-
data: async () => {
|
|
304
|
-
await dispatch([
|
|
305
|
-
{
|
|
306
|
-
plugin: SCRIPT_PLUGIN,
|
|
307
|
-
action: ScriptAction.CREATE
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
action: SpaceAction.ADD_OBJECT,
|
|
311
|
-
data: {
|
|
312
|
-
target
|
|
313
|
-
}
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
action: NavigationAction.OPEN
|
|
317
|
-
}
|
|
318
|
-
]);
|
|
319
|
-
},
|
|
320
|
-
properties: {
|
|
321
|
-
label: [
|
|
322
|
-
"create object label",
|
|
323
|
-
{
|
|
324
|
-
ns: SCRIPT_PLUGIN
|
|
325
|
-
}
|
|
326
|
-
],
|
|
327
|
-
icon: "ph--code--regular",
|
|
328
|
-
testId: "scriptPlugin.createObject"
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
];
|
|
332
|
-
}
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
},
|
|
336
270
|
surface: {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
return null;
|
|
374
|
-
}
|
|
271
|
+
definitions: () => [
|
|
272
|
+
createSurface({
|
|
273
|
+
id: `${SCRIPT_PLUGIN}/settings`,
|
|
274
|
+
role: "settings",
|
|
275
|
+
filter: (data) => data.subject === SCRIPT_PLUGIN,
|
|
276
|
+
component: () => /* @__PURE__ */ React3.createElement(ScriptSettings, {
|
|
277
|
+
settings: {}
|
|
278
|
+
})
|
|
279
|
+
}),
|
|
280
|
+
createSurface({
|
|
281
|
+
id: `${SCRIPT_PLUGIN}/article`,
|
|
282
|
+
role: "article",
|
|
283
|
+
filter: (data) => data.subject instanceof ScriptType,
|
|
284
|
+
component: ({ data }) => /* @__PURE__ */ React3.createElement(ScriptContainer, {
|
|
285
|
+
script: data.subject,
|
|
286
|
+
env: compiler.environment
|
|
287
|
+
})
|
|
288
|
+
}),
|
|
289
|
+
createSurface({
|
|
290
|
+
id: `${SCRIPT_PLUGIN}/automation`,
|
|
291
|
+
role: "complementary--automation",
|
|
292
|
+
disposition: "hoist",
|
|
293
|
+
filter: (data) => data.subject instanceof ScriptType,
|
|
294
|
+
component: ({ data }) => /* @__PURE__ */ React3.createElement(AutomationPanel, {
|
|
295
|
+
subject: data.subject
|
|
296
|
+
})
|
|
297
|
+
}),
|
|
298
|
+
createSurface({
|
|
299
|
+
id: `${SCRIPT_PLUGIN}/settings-panel`,
|
|
300
|
+
role: "complementary--settings",
|
|
301
|
+
filter: (data) => data.subject instanceof ScriptType,
|
|
302
|
+
component: ({ data }) => /* @__PURE__ */ React3.createElement(ScriptSettingsPanel, {
|
|
303
|
+
script: data.subject
|
|
304
|
+
})
|
|
305
|
+
})
|
|
306
|
+
]
|
|
375
307
|
},
|
|
376
308
|
intent: {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
})
|
|
385
|
-
})
|
|
386
|
-
};
|
|
387
|
-
}
|
|
309
|
+
resolvers: () => createResolver(ScriptAction.Create, ({ name }) => ({
|
|
310
|
+
data: {
|
|
311
|
+
object: create(ScriptType, {
|
|
312
|
+
source: makeRef(create(TextType, {
|
|
313
|
+
content: templates[0].source
|
|
314
|
+
}))
|
|
315
|
+
})
|
|
388
316
|
}
|
|
389
|
-
}
|
|
317
|
+
}))
|
|
390
318
|
}
|
|
391
319
|
}
|
|
392
320
|
};
|
|
@@ -398,13 +326,11 @@ export {
|
|
|
398
326
|
AutomationPanel,
|
|
399
327
|
Bundler,
|
|
400
328
|
Compiler,
|
|
401
|
-
FunctionType,
|
|
402
329
|
ScriptAction,
|
|
403
330
|
ScriptContainer,
|
|
404
331
|
ScriptPlugin,
|
|
405
332
|
ScriptSettings,
|
|
406
333
|
ScriptSettingsPanel,
|
|
407
|
-
ScriptType,
|
|
408
334
|
src_default as default,
|
|
409
335
|
initializeBundler
|
|
410
336
|
};
|