@dxos/plugin-script 0.7.5-labs.8a82073 → 0.7.5-labs.a8b535d
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/ScriptContainer-3RFMYKTV.mjs +258 -0
- package/dist/lib/browser/ScriptContainer-3RFMYKTV.mjs.map +7 -0
- package/dist/lib/browser/{artifact-3UZZBCZ2.mjs → artifact-definition-4LWPD3DH.mjs} +28 -20
- package/dist/lib/browser/artifact-definition-4LWPD3DH.mjs.map +7 -0
- package/dist/lib/browser/{chunk-45LXDWNF.mjs → chunk-5SXOHNAK.mjs} +3 -3
- package/dist/lib/browser/chunk-5SXOHNAK.mjs.map +7 -0
- package/dist/lib/browser/{ScriptContainer-QI4NQT7V.mjs → chunk-G2FYNDU4.mjs} +20 -258
- package/dist/lib/browser/chunk-G2FYNDU4.mjs.map +7 -0
- package/dist/lib/browser/chunk-PZPYF7M4.mjs +69 -0
- package/dist/lib/browser/chunk-PZPYF7M4.mjs.map +7 -0
- package/dist/lib/browser/{chunk-F22QPQ6G.mjs → chunk-VTWBVFBK.mjs} +2 -4
- package/dist/lib/browser/{chunk-F22QPQ6G.mjs.map → chunk-VTWBVFBK.mjs.map} +3 -3
- package/dist/lib/browser/{compiler-K3FNRDDN.mjs → compiler-YY2XSKHQ.mjs} +2 -4
- package/dist/lib/browser/compiler-YY2XSKHQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +61 -36
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-CMKQTLBG.mjs → intent-resolver-D6FPY5ZA.mjs} +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-YR4YO746.mjs → react-surface-G4C2PZ2K.mjs} +23 -7
- package/dist/lib/browser/react-surface-G4C2PZ2K.mjs.map +7 -0
- package/dist/lib/node/ScriptContainer-G6FZU4AM.cjs +274 -0
- package/dist/lib/node/ScriptContainer-G6FZU4AM.cjs.map +7 -0
- package/dist/lib/node/{artifact-A2QXHFGS.cjs → artifact-definition-BXQCFPAH.cjs} +27 -22
- package/dist/lib/node/artifact-definition-BXQCFPAH.cjs.map +7 -0
- package/dist/lib/node/chunk-ITAJ3WRW.cjs +77 -0
- package/dist/lib/node/chunk-ITAJ3WRW.cjs.map +7 -0
- package/dist/lib/node/{chunk-IID7WUQS.cjs → chunk-K3ZZWVXS.cjs} +5 -5
- package/dist/lib/node/chunk-K3ZZWVXS.cjs.map +7 -0
- package/dist/lib/node/{chunk-JSANQCTA.cjs → chunk-TOXBGIEI.cjs} +5 -8
- package/dist/lib/node/{chunk-JSANQCTA.cjs.map → chunk-TOXBGIEI.cjs.map} +3 -3
- package/dist/lib/node/{ScriptContainer-FSKWJR6Z.cjs → chunk-XKYJYY3T.cjs} +64 -283
- package/dist/lib/node/chunk-XKYJYY3T.cjs.map +7 -0
- package/dist/lib/node/{compiler-P2HQB22H.cjs → compiler-UIBLKJKG.cjs} +6 -6
- package/dist/lib/node/compiler-UIBLKJKG.cjs.map +7 -0
- package/dist/lib/node/index.cjs +59 -36
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-V5ASU5DW.cjs → intent-resolver-NYJFPD5B.cjs} +6 -6
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-MFTICFI5.cjs → react-surface-EGSE3FMN.cjs} +24 -12
- package/dist/lib/node/react-surface-EGSE3FMN.cjs.map +7 -0
- package/dist/lib/node-esm/ScriptContainer-7FTCFIF3.mjs +259 -0
- package/dist/lib/node-esm/ScriptContainer-7FTCFIF3.mjs.map +7 -0
- package/dist/lib/node-esm/{artifact-RFZQ2AJJ.mjs → artifact-definition-KT4DK2LQ.mjs} +27 -20
- package/dist/lib/node-esm/artifact-definition-KT4DK2LQ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CGF7EOGD.mjs → chunk-2AFXX34U.mjs} +3 -3
- package/dist/lib/node-esm/chunk-2AFXX34U.mjs.map +7 -0
- package/dist/lib/node-esm/{ScriptContainer-MNETNTNQ.mjs → chunk-NRICF4KE.mjs} +20 -258
- package/dist/lib/node-esm/chunk-NRICF4KE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FGO5DVO2.mjs → chunk-S64WSJQK.mjs} +2 -4
- package/dist/lib/node-esm/{chunk-FGO5DVO2.mjs.map → chunk-S64WSJQK.mjs.map} +3 -3
- package/dist/lib/node-esm/chunk-YIWRJ25J.mjs +71 -0
- package/dist/lib/node-esm/chunk-YIWRJ25J.mjs.map +7 -0
- package/dist/lib/node-esm/{compiler-PDN46H4Y.mjs → compiler-XTXFGZJM.mjs} +2 -4
- package/dist/lib/node-esm/compiler-XTXFGZJM.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +61 -36
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-75BHFRUK.mjs → intent-resolver-KLBHSMW4.mjs} +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-NAK6LMCY.mjs → react-surface-7YSGHZQM.mjs} +23 -7
- package/dist/lib/node-esm/react-surface-7YSGHZQM.mjs.map +7 -0
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/{artifact.d.ts → artifact-definition.d.ts} +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +1 -2
- package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +3 -4
- package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptContainer.d.ts +1 -2
- package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +1 -2
- package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -1
- package/dist/types/src/components/ScriptSettingsPanel.d.ts +1 -2
- package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +1 -2
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +1 -2
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +4 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/template.d.ts +1 -1
- package/dist/types/src/hooks/view.d.ts +1 -1
- package/dist/types/src/hooks/view.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/templates/chess.d.ts +1 -4
- package/dist/types/src/templates/chess.d.ts.map +1 -1
- package/dist/types/src/templates/discord.d.ts +3 -0
- package/dist/types/src/templates/discord.d.ts.map +1 -0
- package/dist/types/src/templates/forex-effect.d.ts +0 -3
- package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
- package/dist/types/src/templates/forex.d.ts +0 -3
- package/dist/types/src/templates/forex.d.ts.map +1 -1
- package/dist/types/src/templates/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +1 -1
- package/package.json +43 -44
- package/src/ScriptPlugin.tsx +38 -18
- package/src/capabilities/{artifact.ts → artifact-definition.ts} +16 -11
- package/src/capabilities/compiler.ts +1 -1
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/react-surface.tsx +9 -3
- package/src/components/DebugPanel/DebugPanel.tsx +2 -2
- package/src/components/FrameContainer/FrameContainer.tsx +5 -4
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +2 -2
- package/src/components/index.ts +1 -1
- package/src/events.ts +11 -0
- package/src/hooks/deploy.ts +3 -3
- package/src/hooks/view.ts +4 -1
- package/src/index.ts +0 -1
- package/src/templates/chat.ts +4 -4
- package/src/templates/chess.ts +42 -35
- package/src/templates/discord.ts +103 -0
- package/src/templates/forex-effect.ts +16 -17
- package/src/templates/forex.ts +2 -3
- package/src/templates/index.ts +10 -2
- package/src/translations.ts +3 -0
- package/dist/lib/browser/AutomationPanel-J3SZ5L3Y.mjs +0 -78
- package/dist/lib/browser/AutomationPanel-J3SZ5L3Y.mjs.map +0 -7
- package/dist/lib/browser/ScriptContainer-QI4NQT7V.mjs.map +0 -7
- package/dist/lib/browser/artifact-3UZZBCZ2.mjs.map +0 -7
- package/dist/lib/browser/chunk-45LXDWNF.mjs.map +0 -7
- package/dist/lib/browser/chunk-SDHKTS6H.mjs +0 -237
- package/dist/lib/browser/chunk-SDHKTS6H.mjs.map +0 -7
- package/dist/lib/browser/chunk-VIX22OMB.mjs +0 -60
- package/dist/lib/browser/chunk-VIX22OMB.mjs.map +0 -7
- package/dist/lib/browser/compiler-K3FNRDDN.mjs.map +0 -7
- package/dist/lib/browser/react-surface-YR4YO746.mjs.map +0 -7
- package/dist/lib/node/AutomationPanel-4M55FURO.cjs +0 -104
- package/dist/lib/node/AutomationPanel-4M55FURO.cjs.map +0 -7
- package/dist/lib/node/ScriptContainer-FSKWJR6Z.cjs.map +0 -7
- package/dist/lib/node/artifact-A2QXHFGS.cjs.map +0 -7
- package/dist/lib/node/chunk-IID7WUQS.cjs.map +0 -7
- package/dist/lib/node/chunk-PKT5DD3O.cjs +0 -70
- package/dist/lib/node/chunk-PKT5DD3O.cjs.map +0 -7
- package/dist/lib/node/chunk-T4TXCRN5.cjs +0 -260
- package/dist/lib/node/chunk-T4TXCRN5.cjs.map +0 -7
- package/dist/lib/node/compiler-P2HQB22H.cjs.map +0 -7
- package/dist/lib/node/react-surface-MFTICFI5.cjs.map +0 -7
- package/dist/lib/node-esm/AutomationPanel-W6SKG35R.mjs +0 -79
- package/dist/lib/node-esm/AutomationPanel-W6SKG35R.mjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-MNETNTNQ.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-RFZQ2AJJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CGF7EOGD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-G76M6O46.mjs +0 -239
- package/dist/lib/node-esm/chunk-G76M6O46.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NBAL5DXN.mjs +0 -62
- package/dist/lib/node-esm/chunk-NBAL5DXN.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-PDN46H4Y.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-NAK6LMCY.mjs.map +0 -7
- package/dist/types/src/bundler/bundler.d.ts +0 -39
- package/dist/types/src/bundler/bundler.d.ts.map +0 -1
- package/dist/types/src/bundler/bundler.test.d.ts +0 -2
- package/dist/types/src/bundler/bundler.test.d.ts.map +0 -1
- package/dist/types/src/bundler/index.d.ts +0 -2
- package/dist/types/src/bundler/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/artifact.d.ts.map +0 -1
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +0 -17
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +0 -1
- package/dist/types/src/components/AutomationPanel/index.d.ts +0 -4
- package/dist/types/src/components/AutomationPanel/index.d.ts.map +0 -1
- package/src/bundler/bundler.test.ts +0 -55
- package/src/bundler/bundler.ts +0 -250
- package/src/bundler/index.ts +0 -5
- package/src/components/AutomationPanel/AutomationPanel.tsx +0 -104
- package/src/components/AutomationPanel/index.ts +0 -9
- /package/dist/lib/browser/{intent-resolver-CMKQTLBG.mjs.map → intent-resolver-D6FPY5ZA.mjs.map} +0 -0
- /package/dist/lib/node/{intent-resolver-V5ASU5DW.cjs.map → intent-resolver-NYJFPD5B.cjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-75BHFRUK.mjs.map → intent-resolver-KLBHSMW4.mjs.map} +0 -0
|
@@ -26,64 +26,45 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
var chunk_XKYJYY3T_exports = {};
|
|
30
|
+
__export(chunk_XKYJYY3T_exports, {
|
|
31
|
+
createDeploy: () => createDeploy,
|
|
32
|
+
createFormat: () => createFormat,
|
|
33
|
+
createTemplateSelect: () => createTemplateSelect,
|
|
34
|
+
createView: () => createView,
|
|
35
|
+
useDeployState: () => useDeployState,
|
|
36
|
+
useToolbarAction: () => useToolbarAction,
|
|
37
|
+
useToolbarState: () => useToolbarState
|
|
33
38
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
35
|
-
var
|
|
36
|
-
var import_chunk_PKT5DD3O = require("./chunk-PKT5DD3O.cjs");
|
|
37
|
-
var import_chunk_IID7WUQS = require("./chunk-IID7WUQS.cjs");
|
|
39
|
+
module.exports = __toCommonJS(chunk_XKYJYY3T_exports);
|
|
40
|
+
var import_chunk_ITAJ3WRW = require("./chunk-ITAJ3WRW.cjs");
|
|
38
41
|
var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
|
|
39
|
-
var import_react =
|
|
40
|
-
var import_echo = require("@dxos/react-client/echo");
|
|
41
|
-
var import_halo = require("@dxos/react-client/halo");
|
|
42
|
-
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
43
|
-
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
44
|
-
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
45
|
-
var import_react2 = __toESM(require("react"));
|
|
46
|
-
var import_echo2 = require("@dxos/react-client/echo");
|
|
47
|
-
var import_react_ui = require("@dxos/react-ui");
|
|
48
|
-
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
49
|
-
var import_react_ui_menu = require("@dxos/react-ui-menu");
|
|
50
|
-
var import_react3 = require("react");
|
|
42
|
+
var import_react = require("react");
|
|
51
43
|
var import_functions = require("@dxos/functions");
|
|
44
|
+
var import_bundler = require("@dxos/functions/bundler");
|
|
52
45
|
var import_log = require("@dxos/log");
|
|
53
46
|
var import_react_client = require("@dxos/react-client");
|
|
54
|
-
var
|
|
55
|
-
var
|
|
56
|
-
var
|
|
47
|
+
var import_echo = require("@dxos/react-client/echo");
|
|
48
|
+
var import_react_ui = require("@dxos/react-ui");
|
|
49
|
+
var import_react_ui_menu = require("@dxos/react-ui-menu");
|
|
50
|
+
var import_react2 = require("react");
|
|
51
|
+
var import_live_object = require("@dxos/live-object");
|
|
57
52
|
var import_prettier = require("prettier");
|
|
58
53
|
var import_estree = __toESM(require("prettier/plugins/estree"));
|
|
59
54
|
var import_typescript = __toESM(require("prettier/plugins/typescript"));
|
|
60
|
-
var
|
|
55
|
+
var import_react3 = require("react");
|
|
61
56
|
var import_log2 = require("@dxos/log");
|
|
62
|
-
var
|
|
63
|
-
var
|
|
57
|
+
var import_react_ui_menu2 = require("@dxos/react-ui-menu");
|
|
58
|
+
var import_react4 = require("react");
|
|
64
59
|
var import_functions2 = require("@dxos/functions");
|
|
65
|
-
var
|
|
60
|
+
var import_live_object2 = require("@dxos/live-object");
|
|
61
|
+
var import_react_ui_menu3 = require("@dxos/react-ui-menu");
|
|
66
62
|
var import_react_ui_menu4 = require("@dxos/react-ui-menu");
|
|
67
|
-
var
|
|
68
|
-
var import_react6 = require("react");
|
|
63
|
+
var import_react5 = require("react");
|
|
69
64
|
var import_log3 = require("@dxos/log");
|
|
70
|
-
var import_react7 = require("react");
|
|
71
|
-
var import_live_object2 = require("@dxos/live-object");
|
|
72
|
-
var import_lang_javascript = require("@codemirror/lang-javascript");
|
|
73
|
-
var import_language = require("@codemirror/language");
|
|
74
|
-
var import_state = require("@codemirror/state");
|
|
75
|
-
var import_theme_one_dark = require("@codemirror/theme-one-dark");
|
|
76
|
-
var import_view = require("@codemirror/view");
|
|
77
|
-
var import_highlight = require("@lezer/highlight");
|
|
78
|
-
var import_codemirror_continue = require("@valtown/codemirror-continue");
|
|
79
|
-
var import_codemirror_ts = require("@valtown/codemirror-ts");
|
|
80
|
-
var import_react8 = __toESM(require("react"));
|
|
81
|
-
var import_react_ui3 = require("@dxos/react-ui");
|
|
82
|
-
var import_react_ui_editor3 = require("@dxos/react-ui-editor");
|
|
83
|
-
var import_util = require("@dxos/util");
|
|
84
65
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/deploy.ts";
|
|
85
66
|
var createDeploy = (state) => {
|
|
86
|
-
const errorItem = (0,
|
|
67
|
+
const errorItem = (0, import_react_ui_menu.createMenuAction)("error", {
|
|
87
68
|
label: state.error ?? [
|
|
88
69
|
"no error label",
|
|
89
70
|
{
|
|
@@ -93,7 +74,7 @@ var createDeploy = (state) => {
|
|
|
93
74
|
icon: "ph--warning-circle--regular",
|
|
94
75
|
hidden: !state.error
|
|
95
76
|
});
|
|
96
|
-
const deployAction = (0,
|
|
77
|
+
const deployAction = (0, import_react_ui_menu.createMenuAction)("deploy", {
|
|
97
78
|
type: "deploy",
|
|
98
79
|
label: [
|
|
99
80
|
state.deploying ? "pending label" : "deploy label",
|
|
@@ -105,7 +86,7 @@ var createDeploy = (state) => {
|
|
|
105
86
|
disabled: state.deploying,
|
|
106
87
|
classNames: state.deploying ? "[&_svg]:animate-spin" : ""
|
|
107
88
|
});
|
|
108
|
-
const copyAction = (0,
|
|
89
|
+
const copyAction = (0, import_react_ui_menu.createMenuAction)("copy", {
|
|
109
90
|
type: "copy",
|
|
110
91
|
label: [
|
|
111
92
|
"copy link label",
|
|
@@ -139,12 +120,12 @@ var createDeploy = (state) => {
|
|
|
139
120
|
};
|
|
140
121
|
};
|
|
141
122
|
var useDeployDeps = ({ state, script }) => {
|
|
142
|
-
const space = (0,
|
|
143
|
-
const [fn] = (0,
|
|
123
|
+
const space = (0, import_echo.getSpace)(script);
|
|
124
|
+
const [fn] = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType, {
|
|
144
125
|
source: script
|
|
145
126
|
}));
|
|
146
127
|
const client = (0, import_react_client.useClient)();
|
|
147
|
-
const existingFunctionUrl = (0,
|
|
128
|
+
const existingFunctionUrl = (0, import_react.useMemo)(() => fn && (0, import_functions.getUserFunctionUrlInMetadata)((0, import_echo.getMeta)(fn)), [
|
|
148
129
|
fn
|
|
149
130
|
]);
|
|
150
131
|
return {
|
|
@@ -159,7 +140,7 @@ var useDeployState = ({ state, script }) => {
|
|
|
159
140
|
state,
|
|
160
141
|
script
|
|
161
142
|
});
|
|
162
|
-
(0,
|
|
143
|
+
(0, import_react.useEffect)(() => {
|
|
163
144
|
if (!existingFunctionUrl) {
|
|
164
145
|
return;
|
|
165
146
|
}
|
|
@@ -170,7 +151,7 @@ var useDeployState = ({ state, script }) => {
|
|
|
170
151
|
existingFunctionUrl,
|
|
171
152
|
space
|
|
172
153
|
]);
|
|
173
|
-
(0,
|
|
154
|
+
(0, import_react.useEffect)(() => {
|
|
174
155
|
state.deployed = Boolean(existingFunctionUrl) && !script.changed;
|
|
175
156
|
}, [
|
|
176
157
|
script.changed,
|
|
@@ -182,8 +163,8 @@ var useDeployHandler = ({ state, script }) => {
|
|
|
182
163
|
state,
|
|
183
164
|
script
|
|
184
165
|
});
|
|
185
|
-
const { t } = (0,
|
|
186
|
-
return (0,
|
|
166
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_5UH3F7TA.SCRIPT_PLUGIN);
|
|
167
|
+
return (0, import_react.useCallback)(async () => {
|
|
187
168
|
if (!script.source || !space) {
|
|
188
169
|
return;
|
|
189
170
|
}
|
|
@@ -191,12 +172,14 @@ var useDeployHandler = ({ state, script }) => {
|
|
|
191
172
|
state.deploying = true;
|
|
192
173
|
try {
|
|
193
174
|
const existingFunctionId = existingFunctionUrl?.split("/").at(-1);
|
|
194
|
-
const bundler = new
|
|
175
|
+
const bundler = new import_bundler.Bundler({
|
|
195
176
|
platform: "browser",
|
|
196
177
|
sandboxedModules: [],
|
|
197
178
|
remoteModules: {}
|
|
198
179
|
});
|
|
199
|
-
const buildResult = await bundler.bundle(
|
|
180
|
+
const buildResult = await bundler.bundle({
|
|
181
|
+
source: script.source.target.content
|
|
182
|
+
});
|
|
200
183
|
if (buildResult.error || !buildResult.bundle) {
|
|
201
184
|
throw buildResult.error;
|
|
202
185
|
}
|
|
@@ -222,10 +205,10 @@ var useDeployHandler = ({ state, script }) => {
|
|
|
222
205
|
if (fn) {
|
|
223
206
|
fn.version = version;
|
|
224
207
|
}
|
|
225
|
-
const deployedFunction = fn ?? space.db.add((0,
|
|
208
|
+
const deployedFunction = fn ?? space.db.add((0, import_echo.create)(import_functions.FunctionType, {
|
|
226
209
|
name: functionId,
|
|
227
210
|
version,
|
|
228
|
-
source: (0,
|
|
211
|
+
source: (0, import_echo.makeRef)(script)
|
|
229
212
|
}));
|
|
230
213
|
script.changed = false;
|
|
231
214
|
if (script.description !== void 0 && script.description.trim() !== "") {
|
|
@@ -266,7 +249,7 @@ var useDeployHandler = ({ state, script }) => {
|
|
|
266
249
|
C: (f, a) => f(...a)
|
|
267
250
|
});
|
|
268
251
|
}
|
|
269
|
-
(0, import_functions.setUserFunctionUrlInMetadata)((0,
|
|
252
|
+
(0, import_functions.setUserFunctionUrlInMetadata)((0, import_echo.getMeta)(deployedFunction), `/${space.id}/${functionId}`);
|
|
270
253
|
state.view = "split";
|
|
271
254
|
} catch (err) {
|
|
272
255
|
import_log.log.catch(err, void 0, {
|
|
@@ -289,7 +272,7 @@ var useDeployHandler = ({ state, script }) => {
|
|
|
289
272
|
space?.id ?? null
|
|
290
273
|
]);
|
|
291
274
|
};
|
|
292
|
-
var useCopyHandler = ({ state }) => (0,
|
|
275
|
+
var useCopyHandler = ({ state }) => (0, import_react.useCallback)(async () => {
|
|
293
276
|
if (!state.functionUrl) {
|
|
294
277
|
return;
|
|
295
278
|
}
|
|
@@ -297,9 +280,12 @@ var useCopyHandler = ({ state }) => (0, import_react3.useCallback)(async () => {
|
|
|
297
280
|
}, [
|
|
298
281
|
state.functionUrl
|
|
299
282
|
]);
|
|
283
|
+
var useToolbarState = (initialState = {}) => {
|
|
284
|
+
return (0, import_react2.useMemo)(() => (0, import_live_object.create)(initialState), []);
|
|
285
|
+
};
|
|
300
286
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/format.ts";
|
|
301
287
|
var createFormat = () => {
|
|
302
|
-
const formatAction = (0,
|
|
288
|
+
const formatAction = (0, import_react_ui_menu2.createMenuAction)("format", {
|
|
303
289
|
label: [
|
|
304
290
|
"format label",
|
|
305
291
|
{
|
|
@@ -320,7 +306,7 @@ var createFormat = () => {
|
|
|
320
306
|
]
|
|
321
307
|
};
|
|
322
308
|
};
|
|
323
|
-
var useFormatHandler = ({ script }) => (0,
|
|
309
|
+
var useFormatHandler = ({ script }) => (0, import_react3.useCallback)(async () => {
|
|
324
310
|
if (!script.source) {
|
|
325
311
|
return;
|
|
326
312
|
}
|
|
@@ -346,7 +332,7 @@ var useFormatHandler = ({ script }) => (0, import_react4.useCallback)(async () =
|
|
|
346
332
|
script.source
|
|
347
333
|
]);
|
|
348
334
|
var createTemplateSelectGroup = () => {
|
|
349
|
-
return (0,
|
|
335
|
+
return (0, import_react_ui_menu3.createMenuItemGroup)("template-select", {
|
|
350
336
|
label: [
|
|
351
337
|
"template select group label",
|
|
352
338
|
{
|
|
@@ -357,8 +343,8 @@ var createTemplateSelectGroup = () => {
|
|
|
357
343
|
});
|
|
358
344
|
};
|
|
359
345
|
var createTemplateSelectActions = () => {
|
|
360
|
-
return
|
|
361
|
-
return (0,
|
|
346
|
+
return import_chunk_ITAJ3WRW.templates.map((template) => {
|
|
347
|
+
return (0, import_react_ui_menu3.createMenuAction)(`template--${template.id}`, {
|
|
362
348
|
label: template.name,
|
|
363
349
|
value: template.id,
|
|
364
350
|
type: "template"
|
|
@@ -386,12 +372,12 @@ var createTemplateSelect = () => {
|
|
|
386
372
|
};
|
|
387
373
|
};
|
|
388
374
|
var useTemplateSelectHandler = ({ script }) => {
|
|
389
|
-
return (0,
|
|
390
|
-
const template =
|
|
375
|
+
return (0, import_react4.useCallback)((templateId) => {
|
|
376
|
+
const template = import_chunk_ITAJ3WRW.templates.find((template2) => template2.id === templateId);
|
|
391
377
|
if (template) {
|
|
392
378
|
script.name = template.name;
|
|
393
379
|
script.source.target.content = template.source;
|
|
394
|
-
const metaKeys = (0,
|
|
380
|
+
const metaKeys = (0, import_live_object2.getMeta)(script).keys;
|
|
395
381
|
const oldPresetIndex = metaKeys.findIndex((key) => key.source === import_functions2.FUNCTIONS_PRESET_META_KEY);
|
|
396
382
|
if (oldPresetIndex >= 0) {
|
|
397
383
|
metaKeys.splice(oldPresetIndex, 1);
|
|
@@ -413,7 +399,7 @@ var views = {
|
|
|
413
399
|
debug: "ph--bug--regular"
|
|
414
400
|
};
|
|
415
401
|
var createViewGroupItem = (state) => {
|
|
416
|
-
return (0,
|
|
402
|
+
return (0, import_react_ui_menu4.createMenuItemGroup)("view", {
|
|
417
403
|
label: [
|
|
418
404
|
"view group label",
|
|
419
405
|
{
|
|
@@ -427,7 +413,7 @@ var createViewGroupItem = (state) => {
|
|
|
427
413
|
};
|
|
428
414
|
var createViewActions = (state) => {
|
|
429
415
|
return Object.entries(views).map(([viewType, icon]) => {
|
|
430
|
-
return (0,
|
|
416
|
+
return (0, import_react_ui_menu4.createMenuAction)(`view--${viewType}`, {
|
|
431
417
|
type: "view",
|
|
432
418
|
value: viewType,
|
|
433
419
|
label: [
|
|
@@ -467,7 +453,7 @@ var useToolbarAction = (props) => {
|
|
|
467
453
|
const handleFormat = useFormatHandler(props);
|
|
468
454
|
const handleDeploy = useDeployHandler(props);
|
|
469
455
|
const handleCopy = useCopyHandler(props);
|
|
470
|
-
return (0,
|
|
456
|
+
return (0, import_react5.useCallback)((action) => {
|
|
471
457
|
switch (action.properties.type) {
|
|
472
458
|
case "template":
|
|
473
459
|
handleTemplateSelect(action.properties.value);
|
|
@@ -499,219 +485,14 @@ var useToolbarAction = (props) => {
|
|
|
499
485
|
handleCopy
|
|
500
486
|
]);
|
|
501
487
|
};
|
|
502
|
-
var useToolbarState = (initialState = {}) => {
|
|
503
|
-
return (0, import_react7.useMemo)(() => (0, import_live_object2.create)(initialState), []);
|
|
504
|
-
};
|
|
505
|
-
var createToolbar = (state) => {
|
|
506
|
-
const templateSelect = createTemplateSelect();
|
|
507
|
-
const format2 = createFormat();
|
|
508
|
-
const gap = (0, import_react_ui_menu.createGapSeparator)();
|
|
509
|
-
const deploy = createDeploy(state);
|
|
510
|
-
const view = createView(state);
|
|
511
|
-
return {
|
|
512
|
-
nodes: [
|
|
513
|
-
...templateSelect.nodes,
|
|
514
|
-
...format2.nodes,
|
|
515
|
-
...gap.nodes,
|
|
516
|
-
...deploy.nodes,
|
|
517
|
-
...view.nodes
|
|
518
|
-
],
|
|
519
|
-
edges: [
|
|
520
|
-
...templateSelect.edges,
|
|
521
|
-
...format2.edges,
|
|
522
|
-
...gap.edges,
|
|
523
|
-
...deploy.edges,
|
|
524
|
-
...view.edges
|
|
525
|
-
]
|
|
526
|
-
};
|
|
527
|
-
};
|
|
528
|
-
var ScriptToolbar = ({ script, role, state, classNames }) => {
|
|
529
|
-
const handleAction = useToolbarAction({
|
|
530
|
-
state,
|
|
531
|
-
script
|
|
532
|
-
});
|
|
533
|
-
const toolbarCreator = (0, import_react2.useCallback)(() => createToolbar(state), [
|
|
534
|
-
state
|
|
535
|
-
]);
|
|
536
|
-
const menu = (0, import_react_ui_menu.useMenuActions)(toolbarCreator);
|
|
537
|
-
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
538
|
-
role: "none",
|
|
539
|
-
className: (0, import_react_ui_editor2.stackItemContentToolbarClassNames)(role)
|
|
540
|
-
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.ElevationProvider, {
|
|
541
|
-
elevation: role === "section" ? "positioned" : "base"
|
|
542
|
-
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_menu.MenuProvider, {
|
|
543
|
-
...menu,
|
|
544
|
-
onAction: handleAction,
|
|
545
|
-
attendableId: (0, import_echo2.fullyQualifiedId)(script)
|
|
546
|
-
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_menu.ToolbarMenu, {
|
|
547
|
-
classNames
|
|
548
|
-
}))));
|
|
549
|
-
};
|
|
550
|
-
var TypescriptEditor = ({ id, env, className, initialValue, extensions, scrollTo, selection, toolbar, inputMode = "vscode" }) => {
|
|
551
|
-
const { themeMode } = (0, import_react_ui3.useThemeContext)();
|
|
552
|
-
const { parentRef, focusAttributes } = (0, import_react_ui_editor3.useTextEditor)(() => ({
|
|
553
|
-
id,
|
|
554
|
-
initialValue,
|
|
555
|
-
extensions: [
|
|
556
|
-
extensions,
|
|
557
|
-
(0, import_react_ui_editor3.createBasicExtensions)({
|
|
558
|
-
highlightActiveLine: true,
|
|
559
|
-
indentWithTab: true,
|
|
560
|
-
lineNumbers: true,
|
|
561
|
-
lineWrapping: false,
|
|
562
|
-
scrollPastEnd: true
|
|
563
|
-
}),
|
|
564
|
-
(0, import_react_ui_editor3.createThemeExtensions)({
|
|
565
|
-
themeMode,
|
|
566
|
-
syntaxHighlighting: true,
|
|
567
|
-
slots: {
|
|
568
|
-
content: {
|
|
569
|
-
className: import_react_ui_editor3.editorFullWidth
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
}),
|
|
573
|
-
// NOTE: Not using default editor gutter because folding for code works best right beside text.
|
|
574
|
-
import_react_ui_editor3.EditorView.theme({
|
|
575
|
-
".cm-gutters": {
|
|
576
|
-
// Match margin from content.
|
|
577
|
-
marginTop: "16px"
|
|
578
|
-
}
|
|
579
|
-
}),
|
|
580
|
-
import_react_ui_editor3.InputModeExtensions[inputMode],
|
|
581
|
-
(0, import_react_ui_editor3.folding)(),
|
|
582
|
-
// Continues block comments when you hit Enter.
|
|
583
|
-
import_state.Prec.high(import_view.keymap.of(import_codemirror_continue.continueKeymap)),
|
|
584
|
-
// TODO(burdon): Factor out.
|
|
585
|
-
[
|
|
586
|
-
import_react_ui_editor3.editorMonospace,
|
|
587
|
-
(0, import_lang_javascript.javascript)({
|
|
588
|
-
typescript: true
|
|
589
|
-
}),
|
|
590
|
-
// https://github.com/val-town/codemirror-ts
|
|
591
|
-
(0, import_react_ui_editor3.autocomplete)({
|
|
592
|
-
override: env ? [
|
|
593
|
-
(0, import_codemirror_ts.tsAutocomplete)()
|
|
594
|
-
] : []
|
|
595
|
-
}),
|
|
596
|
-
env ? [
|
|
597
|
-
import_codemirror_ts.tsFacet.of({
|
|
598
|
-
env,
|
|
599
|
-
path: `/src/${id}.ts`
|
|
600
|
-
}),
|
|
601
|
-
(0, import_codemirror_ts.tsSync)(),
|
|
602
|
-
(0, import_codemirror_ts.tsLinter)(),
|
|
603
|
-
(0, import_codemirror_ts.tsHover)({
|
|
604
|
-
renderTooltip: createTooltipRenderer(themeMode)
|
|
605
|
-
})
|
|
606
|
-
] : []
|
|
607
|
-
]
|
|
608
|
-
].filter(import_util.nonNullable),
|
|
609
|
-
selection,
|
|
610
|
-
scrollTo
|
|
611
|
-
}), [
|
|
612
|
-
id,
|
|
613
|
-
extensions,
|
|
614
|
-
themeMode,
|
|
615
|
-
inputMode,
|
|
616
|
-
selection,
|
|
617
|
-
scrollTo
|
|
618
|
-
]);
|
|
619
|
-
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
620
|
-
ref: parentRef,
|
|
621
|
-
"data-toolbar": toolbar ? "enabled" : "disabled",
|
|
622
|
-
className,
|
|
623
|
-
...focusAttributes
|
|
624
|
-
});
|
|
625
|
-
};
|
|
626
|
-
var createTooltipRenderer = (themeMode) => {
|
|
627
|
-
const theme = themeMode === "dark" ? import_theme_one_dark.oneDarkHighlightStyle : import_language.defaultHighlightStyle;
|
|
628
|
-
const classFromKind = (_kind) => {
|
|
629
|
-
const kind = _kind.endsWith("Name") ? "name" : _kind;
|
|
630
|
-
const validTag = kind in import_highlight.tags;
|
|
631
|
-
if (!validTag) {
|
|
632
|
-
return "";
|
|
633
|
-
}
|
|
634
|
-
const tag = import_highlight.tags[kind];
|
|
635
|
-
if (typeof tag === "function") {
|
|
636
|
-
return "";
|
|
637
|
-
}
|
|
638
|
-
return theme.style([
|
|
639
|
-
tag
|
|
640
|
-
]) ?? "";
|
|
641
|
-
};
|
|
642
|
-
return (info) => {
|
|
643
|
-
const div = document.createElement("div");
|
|
644
|
-
div.className = "p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg";
|
|
645
|
-
if (info.quickInfo?.displayParts) {
|
|
646
|
-
for (const part of info.quickInfo.displayParts) {
|
|
647
|
-
const span = div.appendChild(document.createElement("span"));
|
|
648
|
-
span.className = classFromKind(part.kind);
|
|
649
|
-
span.innerText = part.text;
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
return {
|
|
653
|
-
dom: div
|
|
654
|
-
};
|
|
655
|
-
};
|
|
656
|
-
};
|
|
657
|
-
var ScriptContainer = ({ role, classNames, script, settings = {
|
|
658
|
-
editorInputMode: "vscode"
|
|
659
|
-
}, env }) => {
|
|
660
|
-
const identity = (0, import_halo.useIdentity)();
|
|
661
|
-
const space = (0, import_echo.getSpace)(script);
|
|
662
|
-
const extensions = (0, import_react.useMemo)(() => [
|
|
663
|
-
(0, import_react_ui_editor.listener)({
|
|
664
|
-
onChange: (text) => {
|
|
665
|
-
if (script.source.target && script.source.target.content !== text) {
|
|
666
|
-
script.changed = true;
|
|
667
|
-
}
|
|
668
|
-
}
|
|
669
|
-
}),
|
|
670
|
-
(0, import_react_ui_editor.createDataExtensions)({
|
|
671
|
-
id: script.id,
|
|
672
|
-
text: script.source.target && (0, import_echo.createDocAccessor)(script.source.target, [
|
|
673
|
-
"content"
|
|
674
|
-
]),
|
|
675
|
-
space,
|
|
676
|
-
identity
|
|
677
|
-
})
|
|
678
|
-
], [
|
|
679
|
-
script,
|
|
680
|
-
script.source.target,
|
|
681
|
-
space,
|
|
682
|
-
identity
|
|
683
|
-
]);
|
|
684
|
-
const state = useToolbarState({
|
|
685
|
-
view: "editor"
|
|
686
|
-
});
|
|
687
|
-
useDeployState({
|
|
688
|
-
state,
|
|
689
|
-
script
|
|
690
|
-
});
|
|
691
|
-
return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
692
|
-
toolbar: true
|
|
693
|
-
}, /* @__PURE__ */ import_react.default.createElement(ScriptToolbar, {
|
|
694
|
-
state,
|
|
695
|
-
role,
|
|
696
|
-
script
|
|
697
|
-
}), /* @__PURE__ */ import_react.default.createElement("div", {
|
|
698
|
-
role: "none",
|
|
699
|
-
className: (0, import_react_ui_theme.mx)("flex flex-col w-full overflow-hidden divide-y divide-separator", classNames)
|
|
700
|
-
}, state.view !== "debug" && /* @__PURE__ */ import_react.default.createElement(TypescriptEditor, {
|
|
701
|
-
id: script.id,
|
|
702
|
-
env,
|
|
703
|
-
initialValue: script.source?.target?.content,
|
|
704
|
-
extensions,
|
|
705
|
-
className: (0, import_react_ui_editor.stackItemContentEditorClassNames)(role),
|
|
706
|
-
inputMode: settings.editorInputMode,
|
|
707
|
-
toolbar: true
|
|
708
|
-
}), state.view !== "editor" && /* @__PURE__ */ import_react.default.createElement(import_chunk_IID7WUQS.DebugPanel, {
|
|
709
|
-
functionUrl: state.functionUrl
|
|
710
|
-
})));
|
|
711
|
-
};
|
|
712
|
-
var ScriptContainer_default = ScriptContainer;
|
|
713
488
|
// Annotate the CommonJS export names for ESM import in node:
|
|
714
489
|
0 && (module.exports = {
|
|
715
|
-
|
|
490
|
+
createDeploy,
|
|
491
|
+
createFormat,
|
|
492
|
+
createTemplateSelect,
|
|
493
|
+
createView,
|
|
494
|
+
useDeployState,
|
|
495
|
+
useToolbarAction,
|
|
496
|
+
useToolbarState
|
|
716
497
|
});
|
|
717
|
-
//# sourceMappingURL=
|
|
498
|
+
//# sourceMappingURL=chunk-XKYJYY3T.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/deploy.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts", "../../../src/hooks/view.ts", "../../../src/hooks/useToolbarAction.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport {\n FunctionType,\n type ScriptType,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n incrementSemverPatch,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, create, getMeta, getSpace, makeRef, useQuery } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { type ViewState } from './view';\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = ViewState & {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport const createDeploy = (state: Partial<DeployState>) => {\n const errorItem = createMenuAction('error', {\n label: state.error ?? ['no error label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>('deploy', {\n type: 'deploy',\n label: [state.deploying ? 'pending label' : 'deploy label', { ns: SCRIPT_PLUGIN }],\n icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: state.deploying,\n classNames: state.deploying ? '[&_svg]:animate-spin' : '',\n });\n\n const copyAction = createMenuAction<DeployActionProperties>('copy', {\n type: 'copy',\n label: ['copy link label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n });\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nconst useDeployDeps = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const space = getSpace(script);\n const [fn] = useQuery(space, Filter.schema(FunctionType, { source: script }));\n const client = useClient();\n const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [fn]);\n return { space, fn, client, existingFunctionUrl };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, existingFunctionUrl } = useDeployDeps({ state, script });\n useEffect(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n state.functionUrl = getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n }, [existingFunctionUrl, space]);\n\n useEffect(() => {\n state.deployed = Boolean(existingFunctionUrl) && !script.changed;\n }, [script.changed, existingFunctionUrl]);\n};\n\nexport const useDeployHandler = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, fn, client, existingFunctionUrl } = useDeployDeps({ state, script });\n const { t } = useTranslation(SCRIPT_PLUGIN);\n\n return useCallback(async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\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({ source: 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 if (script.description !== undefined && script.description.trim() !== '') {\n deployedFunction.description = script.description;\n } else if (meta.description) {\n deployedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n deployedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n if (meta.outputSchema) {\n deployedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);\n\n state.view = 'split';\n } catch (err: any) {\n log.catch(err);\n state.error = t('upload failed label');\n }\n state.deploying = false;\n }, [fn, client, t, existingFunctionUrl, script, script.name, script.source, space?.id ?? null]);\n};\n\nexport const useCopyHandler = ({ state }: { state: Partial<DeployState> }) =>\n useCallback(async () => {\n if (!state.functionUrl) {\n return;\n }\n await navigator.clipboard.writeText(state.functionUrl);\n }, [state.functionUrl]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { create } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\nimport { type ViewState } from './view';\n\nexport type ScriptToolbarState = Partial<DeployState & ViewState>;\n\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => create<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = () => {\n const formatAction = createMenuAction('format', {\n label: ['format label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n });\n\n return {\n nodes: [formatAction],\n edges: [{ source: 'root', target: 'format' }],\n };\n};\n\nexport const useFormatHandler = ({ script }: { script: ScriptType }) =>\n 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// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';\nimport { getMeta } from '@dxos/live-object';\nimport { createMenuItemGroup, createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectGroup = () => {\n return createMenuItemGroup('template-select', {\n label: ['template select group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n });\n};\n\nconst createTemplateSelectActions = () => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(`template--${template.id}`, {\n label: template.name,\n value: template.id,\n type: 'template',\n });\n });\n};\n\nexport const createTemplateSelect = () => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions();\n return {\n nodes: [templateSelectGroup, ...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n\nexport const useTemplateSelectHandler = ({ script }: { script: ScriptType }) => {\n return useCallback(\n (templateId: string) => {\n const template = templates.find((template) => template.id === templateId);\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 [script],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\n// TODO(wittjosiah): Replace debug with logs.\nexport type ViewType = 'editor' | 'split' | 'debug'; // 'logs';\n\nexport type ViewState = { view: ViewType };\n\nexport type ViewActionProperties = { type: 'view'; value: ViewType };\n\nconst views: Record<ViewType, string> = {\n editor: 'ph--code--regular',\n split: 'ph--square-split-vertical--regular',\n debug: 'ph--bug--regular',\n // TODO(wittjosiah): Replace debug with logs.\n // logs: 'ph--clock-counter-clockwise--regular',\n};\n\nconst createViewGroupItem = (state: Partial<ViewState>) => {\n return createMenuItemGroup('view', {\n label: ['view group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n applyActive: true,\n value: state.view,\n });\n};\n\nconst createViewActions = (state: Partial<ViewState>) => {\n return Object.entries(views).map(([viewType, icon]) => {\n return createMenuAction<ViewActionProperties>(`view--${viewType}`, {\n type: 'view',\n value: viewType as ViewType,\n label: [`view ${viewType} label`, { ns: SCRIPT_PLUGIN }],\n icon,\n checked: state.view === viewType,\n });\n });\n};\n\nexport const createView = (state: Partial<ViewState>) => {\n const viewGroupItem = createViewGroupItem(state);\n const viewActions = createViewActions(state);\n return {\n nodes: [viewGroupItem, ...viewActions],\n edges: [\n { source: 'root', target: 'view' },\n ...viewActions.map((action) => ({ source: 'view', target: action.id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type MenuAction, type MenuActionHandler } from '@dxos/react-ui-menu';\n\nimport { type DeployActionProperties, useDeployHandler, useCopyHandler } from './deploy';\nimport { type FormatActionProperties, useFormatHandler } from './format';\nimport { type TemplateActionProperties, useTemplateSelectHandler } from './template';\nimport { type ScriptToolbarState } from './useToolbarState';\nimport { type ViewActionProperties } from './view';\n\nexport type ScriptToolbarActionProperties =\n | TemplateActionProperties\n | ViewActionProperties\n | FormatActionProperties\n | DeployActionProperties;\n\nexport type ScriptToolbarAction = MenuAction<ScriptToolbarActionProperties>;\n\nexport const useToolbarAction = (props: { state: ScriptToolbarState; script: ScriptType }) => {\n const handleTemplateSelect = useTemplateSelectHandler(props);\n const handleFormat = useFormatHandler(props);\n const handleDeploy = useDeployHandler(props);\n const handleCopy = useCopyHandler(props);\n return useCallback(\n ((action: ScriptToolbarAction) => {\n switch (action.properties.type) {\n case 'template':\n handleTemplateSelect(action.properties.value);\n break;\n case 'view':\n props.state.view = action.properties.value;\n break;\n case 'format':\n void handleFormat();\n break;\n case 'deploy':\n void handleDeploy();\n break;\n case 'copy':\n void handleCopy();\n break;\n default:\n log.error('Unknown action type', action);\n }\n }) as MenuActionHandler,\n [handleTemplateSelect, handleFormat, handleDeploy, handleCopy],\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_log", "import_react_ui_menu", "import_functions", "import_live_object", "createDeploy", "state", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "deployAction", "type", "deploying", "disabled", "classNames", "copyAction", "functionUrl", "nodes", "edges", "source", "target", "useDeployDeps", "script", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "client", "useClient", "existingFunctionUrl", "useMemo", "getUserFunctionUrlInMetadata", "getMeta", "useDeployState", "useEffect", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "deployed", "Boolean", "changed", "useDeployHandler", "t", "useTranslation", "useCallback", "undefined", "existingFunctionId", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "content", "functionId", "version", "meta", "uploadWorkerFunction", "incrementSemverPatch", "Error", "log", "info", "deployedFunction", "db", "add", "create", "name", "makeRef", "description", "trim", "verbose", "inputSchema", "outputSchema", "setUserFunctionUrlInMetadata", "view", "err", "catch", "useCopyHandler", "navigator", "clipboard", "writeText", "useToolbarState", "initialState", "createFormat", "formatAction", "useFormatHandler", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "createTemplateSelectGroup", "createMenuItemGroup", "variant", "createTemplateSelectActions", "templates", "map", "template", "value", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "action", "useTemplateSelectHandler", "templateId", "find", "metaKeys", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "views", "editor", "debug", "createViewGroupItem", "applyActive", "createViewActions", "Object", "entries", "viewType", "checked", "createView", "viewGroupItem", "viewActions", "useToolbarAction", "props", "handleTemplateSelect", "handleFormat", "handleDeploy", "handleCopy", "properties"]
|
|
7
|
+
}
|
|
@@ -26,16 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var compiler_UIBLKJKG_exports = {};
|
|
30
|
+
__export(compiler_UIBLKJKG_exports, {
|
|
31
31
|
default: () => compiler_default
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
34
|
-
var import_chunk_T4TXCRN5 = require("./chunk-T4TXCRN5.cjs");
|
|
33
|
+
module.exports = __toCommonJS(compiler_UIBLKJKG_exports);
|
|
35
34
|
var import_chunk_ALY3N6PW = require("./chunk-ALY3N6PW.cjs");
|
|
36
35
|
var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
|
|
37
36
|
var import_esbuild = __toESM(require("esbuild-wasm/esbuild.wasm?url"));
|
|
38
37
|
var import_app_framework = require("@dxos/app-framework");
|
|
38
|
+
var import_bundler = require("@dxos/functions/bundler");
|
|
39
39
|
var import_vfs = require("@typescript/vfs");
|
|
40
40
|
var import_typescript = __toESM(require("typescript"));
|
|
41
41
|
var import_invariant = require("@dxos/invariant");
|
|
@@ -96,9 +96,9 @@ var compiler_default = async () => {
|
|
|
96
96
|
export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;
|
|
97
97
|
export const functionHandler = (handler: FunctionHandler) => handler;
|
|
98
98
|
`);
|
|
99
|
-
await (0,
|
|
99
|
+
await (0, import_bundler.initializeBundler)({
|
|
100
100
|
wasmUrl: import_esbuild.default
|
|
101
101
|
});
|
|
102
102
|
return (0, import_app_framework.contributes)(import_chunk_ALY3N6PW.ScriptCapabilities.Compiler, compiler);
|
|
103
103
|
};
|
|
104
|
-
//# sourceMappingURL=compiler-
|
|
104
|
+
//# sourceMappingURL=compiler-UIBLKJKG.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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() {\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) {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string) {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,qBAAoB;AAEpB,2BAA4B;AAC5B,qBAAkC;ACJlC,iBAKO;AACP,wBAAe;AAEf,uBAA0B;;AAE1B,IAAMA,iBAAqC;EACzCC,KAAK;IAAC;IAAO;;EACbC,QAAQC,kBAAAA,QAAGC,aAAaC;AAC1B;AAEO,IAAMC,WAAN,MAAMA;EAIXC,YAA6BC,WAA+BR,gBAAgB;SAA/CQ,WAAAA;EAAgD;EAE7E,MAAMC,aAAa;AACjB,QAAI,KAAKC,MAAM;AACb;IACF;AAIA,SAAKC,SAAS,UAAMC,oCAAwB,KAAKJ,UAAU,SAAS,MAAML,kBAAAA,OAAAA;AAC1E,UAAMU,aAASC,yBAAa,KAAKH,MAAM;AACvC,SAAKD,WAAOK,+CAAmCF,QAAQ,CAAA,GAAIV,kBAAAA,SAAI,KAAKK,QAAQ;EAC9E;EAEA,IAAIQ,cAAc;AAChBC,oCAAU,KAAKP,MAAM,yCAAA;;;;;;;;;AACrB,WAAO,KAAKA;EACd;EAEAQ,QAAQC,UAAkBC,SAAiB;AACzCH,oCAAU,KAAKN,QAAQ,oCAAA;;;;;;;;;AACvB,SAAKK,YAAYK,WAAWF,UAAUC,OAAAA;EACxC;EAEAE,QAAQH,UAAkB;AACxB,WAAO,KAAKH,YAAYO,gBAAgBC,cAAcL,QAAAA;EACxD;AACF;ADrCA,IAAA,mBAAe,YAAA;AACb,QAAMM,WAAW,IAAInB,SAAAA;AAErB,QAAMmB,SAAShB,WAAU;AAEzBgB,WAASP,QAAQ,qBAAqB,6BAAA;AAGtCO,WAASP,QACP,mBACA;;;;OAIG;AAEL,YAAMQ,kCAAkB;IAAEC,wBAAAA;EAAQ,CAAA;AAElC,aAAOC,kCAAYC,yCAAmBvB,UAAUmB,QAAAA;AAClD;",
|
|
6
|
+
"names": ["defaultOptions", "lib", "target", "ts", "ScriptTarget", "ES2022", "Compiler", "constructor", "_options", "initialize", "_env", "_fsMap", "createDefaultMapFromCDN", "system", "createSystem", "createVirtualTypeScriptEnvironment", "environment", "invariant", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "compiler", "initializeBundler", "wasmUrl", "contributes", "ScriptCapabilities"]
|
|
7
|
+
}
|