@dxos/plugin-script 0.6.9 → 0.6.10-main.3cfcc89
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/README.md +45 -0
- package/dist/lib/browser/ScriptEditor-WNCGR5OU.mjs +452 -0
- package/dist/lib/browser/ScriptEditor-WNCGR5OU.mjs.map +7 -0
- package/dist/lib/browser/{TypescriptEditor-PIRIDDUS.mjs → TypescriptEditor-XTGRVCMY.mjs} +2 -2
- package/dist/lib/browser/{chunk-SK3L274X.mjs → chunk-DL5XQRQM.mjs} +13 -7
- package/dist/lib/browser/{chunk-SK3L274X.mjs.map → chunk-DL5XQRQM.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-D4O723CR.mjs → chunk-DX5CSOBP.mjs} +22 -5
- package/dist/lib/browser/chunk-DX5CSOBP.mjs.map +7 -0
- package/dist/lib/browser/chunk-RHEZ5LUU.mjs +229 -0
- package/dist/lib/browser/chunk-RHEZ5LUU.mjs.map +7 -0
- package/dist/lib/browser/edge/index.mjs +1 -1
- package/dist/lib/browser/index.mjs +88 -195
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/ScriptEditor-RR7AVOQL.cjs +465 -0
- package/dist/lib/node/ScriptEditor-RR7AVOQL.cjs.map +7 -0
- package/dist/lib/node/{TypescriptEditor-OTWJUIWB.cjs → TypescriptEditor-CRONCQSI.cjs} +7 -7
- package/dist/lib/node/{TypescriptEditor-OTWJUIWB.cjs.map → TypescriptEditor-CRONCQSI.cjs.map} +2 -2
- package/dist/lib/node/chunk-4GTXIELQ.cjs +252 -0
- package/dist/lib/node/chunk-4GTXIELQ.cjs.map +7 -0
- package/dist/lib/node/{chunk-X6A3D4PD.cjs → chunk-PFH3ROEH.cjs} +16 -10
- package/dist/lib/node/{chunk-X6A3D4PD.cjs.map → chunk-PFH3ROEH.cjs.map} +3 -3
- package/dist/lib/node/{chunk-ITLHJMWP.cjs → chunk-RXI576K3.cjs} +24 -7
- package/dist/lib/node/chunk-RXI576K3.cjs.map +7 -0
- package/dist/lib/node/edge/index.cjs +8 -8
- package/dist/lib/node/edge/index.cjs.map +1 -1
- package/dist/lib/node/index.cjs +85 -194
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/ScriptPlugin.d.ts +1 -4
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/bundler/bundler.d.ts +39 -0
- package/dist/types/src/bundler/bundler.d.ts.map +1 -0
- package/dist/types/src/bundler/bundler.test.d.ts +2 -0
- package/dist/types/src/bundler/bundler.test.d.ts.map +1 -0
- package/dist/types/src/bundler/index.d.ts +2 -0
- package/dist/types/src/bundler/index.d.ts.map +1 -0
- package/dist/types/src/compiler/compiler.browser.test.d.ts +2 -0
- package/dist/types/src/compiler/compiler.browser.test.d.ts.map +1 -0
- package/dist/types/src/compiler/compiler.d.ts +9 -34
- package/dist/types/src/compiler/compiler.d.ts.map +1 -1
- package/dist/types/src/components/DetailsPanel.d.ts +9 -0
- package/dist/types/src/components/DetailsPanel.d.ts.map +1 -0
- package/dist/types/src/components/ScriptBlock/FrameContainer/FrameContainer.d.ts +2 -2
- package/dist/types/src/components/ScriptBlock/FrameContainer/FrameContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts.map +1 -1
- package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts +1 -1
- package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts +1 -1
- package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScriptEditor.d.ts +3 -2
- package/dist/types/src/components/ScriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar.d.ts +9 -7
- package/dist/types/src/components/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar.stories.d.ts +2 -2
- package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor.d.ts +3 -1
- package/dist/types/src/components/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor.stories.d.ts +2 -2
- package/dist/types/src/components/TypescriptEditor.stories.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/data/templates.md.d.ts +3 -0
- package/dist/types/src/data/templates.md.d.ts.map +1 -0
- package/dist/types/src/edge/functions.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/script.d.ts +4 -4
- package/package.json +38 -33
- package/src/ScriptPlugin.tsx +29 -10
- package/src/bundler/bundler.test.ts +44 -0
- package/src/bundler/bundler.ts +246 -0
- package/src/bundler/index.ts +5 -0
- package/src/compiler/compiler.browser.test.ts +18 -0
- package/src/compiler/compiler.ts +31 -190
- package/src/compiler/index.ts +1 -1
- package/src/components/DetailsPanel.tsx +218 -0
- package/src/components/ScriptBlock/FrameContainer/FrameContainer.tsx +2 -2
- package/src/components/ScriptBlock/ScriptBlock.stories.tsx +1 -1
- package/src/components/ScriptBlock/ScriptBlock.tsx +10 -7
- package/src/components/ScriptBlock/Splitter/Splitter.stories.tsx +1 -1
- package/src/components/ScriptEditor.tsx +71 -13
- package/src/components/Toolbar.stories.tsx +1 -1
- package/src/components/Toolbar.tsx +69 -91
- package/src/components/TypescriptEditor.stories.tsx +1 -1
- package/src/components/TypescriptEditor.tsx +18 -4
- package/src/data/templates.md.ts +44 -0
- package/src/edge/functions.ts +9 -2
- package/src/index.ts +1 -0
- package/src/translations.ts +4 -3
- package/dist/lib/browser/ScriptEditor-7XICKICQ.mjs +0 -241
- package/dist/lib/browser/ScriptEditor-7XICKICQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-D4O723CR.mjs.map +0 -7
- package/dist/lib/node/ScriptEditor-M7KZ2CRS.cjs +0 -258
- package/dist/lib/node/ScriptEditor-M7KZ2CRS.cjs.map +0 -7
- package/dist/lib/node/chunk-ITLHJMWP.cjs.map +0 -7
- package/dist/types/src/compiler/compiler.test.d.ts +0 -2
- package/dist/types/src/compiler/compiler.test.d.ts.map +0 -1
- package/src/compiler/compiler.test.ts +0 -17
- /package/dist/lib/browser/{TypescriptEditor-PIRIDDUS.mjs.map → TypescriptEditor-XTGRVCMY.mjs.map} +0 -0
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var ScriptEditor_M7KZ2CRS_exports = {};
|
|
30
|
-
__export(ScriptEditor_M7KZ2CRS_exports, {
|
|
31
|
-
ScriptEditor: () => ScriptEditor,
|
|
32
|
-
default: () => ScriptEditor_default
|
|
33
|
-
});
|
|
34
|
-
module.exports = __toCommonJS(ScriptEditor_M7KZ2CRS_exports);
|
|
35
|
-
var import_chunk_X6A3D4PD = require("./chunk-X6A3D4PD.cjs");
|
|
36
|
-
var import_chunk_VW2POILW = require("./chunk-VW2POILW.cjs");
|
|
37
|
-
var import_chunk_4VMNBXWU = require("./chunk-4VMNBXWU.cjs");
|
|
38
|
-
var import_chunk_ITLHJMWP = require("./chunk-ITLHJMWP.cjs");
|
|
39
|
-
var import_react = __toESM(require("react"));
|
|
40
|
-
var import_log = require("@dxos/log");
|
|
41
|
-
var import_react_client = require("@dxos/react-client");
|
|
42
|
-
var import_echo = require("@dxos/react-client/echo");
|
|
43
|
-
var import_halo = require("@dxos/react-client/halo");
|
|
44
|
-
var import_react_ui = require("@dxos/react-ui");
|
|
45
|
-
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
46
|
-
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
47
|
-
var import_react2 = require("@phosphor-icons/react");
|
|
48
|
-
var import_react3 = __toESM(require("react"));
|
|
49
|
-
var import_react_ui2 = require("@dxos/react-ui");
|
|
50
|
-
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
51
|
-
var Toolbar = ({ binding: _binding, onBindingChange, deployed, onDeploy, functionUrl, error }) => {
|
|
52
|
-
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_4VMNBXWU.SCRIPT_PLUGIN);
|
|
53
|
-
const [pending, setPending] = (0, import_react3.useState)(false);
|
|
54
|
-
const [editing, setEditing] = (0, import_react3.useState)(false);
|
|
55
|
-
const [binding, setBinding] = (0, import_react3.useState)(_binding);
|
|
56
|
-
const inputRef = (0, import_react3.useRef)(null);
|
|
57
|
-
(0, import_react3.useEffect)(() => {
|
|
58
|
-
if (!editing && _binding !== binding) {
|
|
59
|
-
setBinding(_binding);
|
|
60
|
-
}
|
|
61
|
-
}, [
|
|
62
|
-
_binding
|
|
63
|
-
]);
|
|
64
|
-
const handleEdit = () => {
|
|
65
|
-
setEditing(true);
|
|
66
|
-
inputRef.current?.focus();
|
|
67
|
-
};
|
|
68
|
-
const handleSave = () => {
|
|
69
|
-
setEditing(false);
|
|
70
|
-
onBindingChange(binding);
|
|
71
|
-
};
|
|
72
|
-
const handleCancel = () => {
|
|
73
|
-
setEditing(false);
|
|
74
|
-
};
|
|
75
|
-
const handleCopyLink = async () => {
|
|
76
|
-
if (!functionUrl) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
await navigator.clipboard.writeText(functionUrl);
|
|
80
|
-
};
|
|
81
|
-
const handleDeploy = async () => {
|
|
82
|
-
setPending(true);
|
|
83
|
-
await onDeploy?.();
|
|
84
|
-
setPending(false);
|
|
85
|
-
};
|
|
86
|
-
return /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.DensityProvider, {
|
|
87
|
-
density: "fine"
|
|
88
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.ElevationProvider, {
|
|
89
|
-
elevation: "chrome"
|
|
90
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Toolbar.Root, {
|
|
91
|
-
classNames: "p-1 is-full shrink-0 overflow-x-auto overflow-y-hidden",
|
|
92
|
-
style: {
|
|
93
|
-
contain: "layout"
|
|
94
|
-
}
|
|
95
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Input.Label, null, t("binding label")), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Input.TextInput, {
|
|
96
|
-
ref: inputRef,
|
|
97
|
-
classNames: "!is-auto",
|
|
98
|
-
disabled: !editing,
|
|
99
|
-
value: binding,
|
|
100
|
-
onChange: (event) => setBinding(event.target.value.toUpperCase())
|
|
101
|
-
}), editing ? /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Button, {
|
|
102
|
-
variant: "ghost",
|
|
103
|
-
onClick: handleCancel
|
|
104
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react2.X, {
|
|
105
|
-
className: (0, import_react_ui_theme2.getSize)(4)
|
|
106
|
-
})), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Button, {
|
|
107
|
-
variant: "ghost",
|
|
108
|
-
onClick: handleSave
|
|
109
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react2.Check, {
|
|
110
|
-
className: (0, import_react_ui_theme2.getSize)(4)
|
|
111
|
-
}))) : /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Root, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Trigger, {
|
|
112
|
-
asChild: true
|
|
113
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Button, {
|
|
114
|
-
variant: "ghost",
|
|
115
|
-
onClick: handleEdit
|
|
116
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react2.PencilSimple, {
|
|
117
|
-
className: (0, import_react_ui_theme2.getSize)(4)
|
|
118
|
-
}))), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Portal, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Content, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Arrow, null), t("edit binding label"))))), /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
119
|
-
role: "separator",
|
|
120
|
-
className: "grow"
|
|
121
|
-
}), error ? /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Root, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Trigger, null, /* @__PURE__ */ import_react3.default.createElement(import_react2.WarningCircle, {
|
|
122
|
-
className: (0, import_react_ui_theme2.getSize)(4)
|
|
123
|
-
})), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Portal, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Content, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Arrow, null), error))) : deployed ? /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Root, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Trigger, null, /* @__PURE__ */ import_react3.default.createElement(import_react2.Checks, {
|
|
124
|
-
className: (0, import_react_ui_theme2.getSize)(4)
|
|
125
|
-
})), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Portal, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Content, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Arrow, null), t("deployed label")))) : null, functionUrl && /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Root, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Trigger, {
|
|
126
|
-
asChild: true
|
|
127
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Toolbar.Button, {
|
|
128
|
-
variant: "ghost",
|
|
129
|
-
onClick: handleCopyLink
|
|
130
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react2.Link, {
|
|
131
|
-
className: (0, import_react_ui_theme2.getSize)(4)
|
|
132
|
-
}))), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Portal, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Content, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Arrow, null), t("copy link label")))), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Root, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Trigger, {
|
|
133
|
-
asChild: true
|
|
134
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Toolbar.Button, {
|
|
135
|
-
variant: "ghost",
|
|
136
|
-
onClick: handleDeploy,
|
|
137
|
-
disabled: pending
|
|
138
|
-
}, pending ? /* @__PURE__ */ import_react3.default.createElement(import_react2.CircleNotch, {
|
|
139
|
-
className: (0, import_react_ui_theme2.mx)("spinner", (0, import_react_ui_theme2.getSize)(4))
|
|
140
|
-
}) : /* @__PURE__ */ import_react3.default.createElement(import_react2.UploadSimple, {
|
|
141
|
-
className: (0, import_react_ui_theme2.getSize)(4)
|
|
142
|
-
}))), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Portal, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Content, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Arrow, null), pending ? t("pending label") : t("deploy label")))))));
|
|
143
|
-
};
|
|
144
|
-
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/components/ScriptEditor.tsx";
|
|
145
|
-
var ScriptEditor = ({ script, role }) => {
|
|
146
|
-
const { t } = (0, import_react_ui.useTranslation)(import_chunk_4VMNBXWU.SCRIPT_PLUGIN);
|
|
147
|
-
const client = (0, import_react_client.useClient)();
|
|
148
|
-
const identity = (0, import_halo.useIdentity)();
|
|
149
|
-
const space = (0, import_echo.getSpace)(script);
|
|
150
|
-
const [fn] = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_VW2POILW.FunctionType, (fn2) => fn2.source === script));
|
|
151
|
-
const extensions = (0, import_react.useMemo)(() => [
|
|
152
|
-
(0, import_react_ui_editor.listener)({
|
|
153
|
-
onChange: (text) => {
|
|
154
|
-
if (script.source && script.source?.content !== text) {
|
|
155
|
-
script.changed = true;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}),
|
|
159
|
-
(0, import_react_ui_editor.createDataExtensions)({
|
|
160
|
-
id: script.id,
|
|
161
|
-
text: script.source && (0, import_echo.createDocAccessor)(script.source, [
|
|
162
|
-
"content"
|
|
163
|
-
]),
|
|
164
|
-
space,
|
|
165
|
-
identity
|
|
166
|
-
})
|
|
167
|
-
], [
|
|
168
|
-
script,
|
|
169
|
-
script.source,
|
|
170
|
-
space,
|
|
171
|
-
identity
|
|
172
|
-
]);
|
|
173
|
-
const initialValue = (0, import_react.useMemo)(() => script.source?.content, [
|
|
174
|
-
script.source
|
|
175
|
-
]);
|
|
176
|
-
const existingFunctionUrl = fn && (0, import_chunk_X6A3D4PD.getUserFunctionUrlInMetadata)((0, import_echo.getMeta)(fn));
|
|
177
|
-
const [error, setError] = (0, import_react.useState)();
|
|
178
|
-
const handleBindingChange = (0, import_react.useCallback)((binding) => {
|
|
179
|
-
fn.binding = binding;
|
|
180
|
-
}, [
|
|
181
|
-
fn
|
|
182
|
-
]);
|
|
183
|
-
const handleDeploy = (0, import_react.useCallback)(async () => {
|
|
184
|
-
if (!script.source || !identity || !space) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
setError(void 0);
|
|
188
|
-
try {
|
|
189
|
-
const existingFunctionId = existingFunctionUrl?.split("/").at(-1);
|
|
190
|
-
const ownerDid = existingFunctionUrl?.split("/").at(-2) ?? (0, import_chunk_X6A3D4PD.publicKeyToDid)(identity.identityKey);
|
|
191
|
-
const { result, functionId, functionVersionNumber, errorMessage } = await (0, import_chunk_X6A3D4PD.uploadWorkerFunction)({
|
|
192
|
-
clientConfig: client.config,
|
|
193
|
-
halo: client.halo,
|
|
194
|
-
ownerDid,
|
|
195
|
-
functionId: existingFunctionId,
|
|
196
|
-
source: script.source.content
|
|
197
|
-
});
|
|
198
|
-
if (result !== "success" || functionId === void 0 || functionVersionNumber === void 0) {
|
|
199
|
-
throw new Error(errorMessage);
|
|
200
|
-
}
|
|
201
|
-
import_log.log.info("function uploaded", {
|
|
202
|
-
functionId,
|
|
203
|
-
functionVersionNumber
|
|
204
|
-
}, {
|
|
205
|
-
F: __dxlog_file,
|
|
206
|
-
L: 91,
|
|
207
|
-
S: void 0,
|
|
208
|
-
C: (f, a) => f(...a)
|
|
209
|
-
});
|
|
210
|
-
if (fn) {
|
|
211
|
-
fn.version = functionVersionNumber;
|
|
212
|
-
}
|
|
213
|
-
const deployedFunction = fn ?? space.db.add((0, import_echo.create)(import_chunk_VW2POILW.FunctionType, {
|
|
214
|
-
version: functionVersionNumber,
|
|
215
|
-
source: script
|
|
216
|
-
}));
|
|
217
|
-
const meta = (0, import_echo.getMeta)(deployedFunction);
|
|
218
|
-
(0, import_chunk_X6A3D4PD.setUserFunctionUrlInMetadata)(meta, `/${ownerDid}/${functionId}`);
|
|
219
|
-
script.changed = false;
|
|
220
|
-
} catch (err) {
|
|
221
|
-
import_log.log.catch(err, void 0, {
|
|
222
|
-
F: __dxlog_file,
|
|
223
|
-
L: 101,
|
|
224
|
-
S: void 0,
|
|
225
|
-
C: (f, a) => f(...a)
|
|
226
|
-
});
|
|
227
|
-
setError(t("upload failed label"));
|
|
228
|
-
}
|
|
229
|
-
}, [
|
|
230
|
-
fn,
|
|
231
|
-
existingFunctionUrl,
|
|
232
|
-
script,
|
|
233
|
-
script.name,
|
|
234
|
-
script.source
|
|
235
|
-
]);
|
|
236
|
-
return /* @__PURE__ */ import_react.default.createElement("div", {
|
|
237
|
-
role: "none",
|
|
238
|
-
className: (0, import_react_ui_theme.mx)(role === "article" && "row-span-2", "flex flex-col is-full bs-full overflow-hidden")
|
|
239
|
-
}, /* @__PURE__ */ import_react.default.createElement(Toolbar, {
|
|
240
|
-
binding: fn?.binding ?? "",
|
|
241
|
-
onBindingChange: handleBindingChange,
|
|
242
|
-
deployed: Boolean(existingFunctionUrl) && !script.changed,
|
|
243
|
-
onDeploy: handleDeploy,
|
|
244
|
-
functionUrl: existingFunctionUrl,
|
|
245
|
-
error
|
|
246
|
-
}), /* @__PURE__ */ import_react.default.createElement(import_chunk_ITLHJMWP.TypescriptEditor, {
|
|
247
|
-
id: script.id,
|
|
248
|
-
initialValue,
|
|
249
|
-
extensions,
|
|
250
|
-
className: "flex is-full bs-full overflow-hidden"
|
|
251
|
-
}));
|
|
252
|
-
};
|
|
253
|
-
var ScriptEditor_default = ScriptEditor;
|
|
254
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
255
|
-
0 && (module.exports = {
|
|
256
|
-
ScriptEditor
|
|
257
|
-
});
|
|
258
|
-
//# sourceMappingURL=ScriptEditor-M7KZ2CRS.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ScriptEditor.tsx", "../../../src/components/Toolbar.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { create, createDocAccessor, Filter, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createDataExtensions, listener } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { Toolbar } from './Toolbar';\nimport { TypescriptEditor } from './TypescriptEditor';\nimport {\n getUserFunctionUrlInMetadata,\n publicKeyToDid,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '../edge';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { FunctionType, type ScriptType } from '../types';\n\nexport type ScriptEditorProps = {\n script: ScriptType;\n role?: string;\n};\n\nexport const ScriptEditor = ({ script, role }: ScriptEditorProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const client = useClient();\n const identity = useIdentity();\n const space = getSpace(script);\n const [fn] = useQuery(\n space,\n Filter.schema(FunctionType, (fn) => fn.source === script),\n );\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source && script.source?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source && createDocAccessor(script.source, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source, space, identity],\n );\n const initialValue = useMemo(() => script.source?.content, [script.source]);\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n const [error, setError] = useState<string>();\n\n const handleBindingChange = useCallback(\n (binding: string) => {\n fn.binding = binding;\n },\n [fn],\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 const ownerDid = (existingFunctionUrl?.split('/').at(-2) as DID) ?? publicKeyToDid(identity.identityKey);\n\n const { result, functionId, functionVersionNumber, errorMessage } = await uploadWorkerFunction({\n clientConfig: client.config,\n halo: client.halo,\n ownerDid,\n functionId: existingFunctionId,\n source: script.source.content,\n });\n if (result !== 'success' || functionId === undefined || functionVersionNumber === undefined) {\n throw new Error(errorMessage);\n }\n log.info('function uploaded', { functionId, functionVersionNumber });\n if (fn) {\n fn.version = functionVersionNumber;\n }\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { version: functionVersionNumber, source: script }));\n const meta = getMeta(deployedFunction);\n setUserFunctionUrlInMetadata(meta, `/${ownerDid}/${functionId}`);\n script.changed = false;\n } catch (err: any) {\n log.catch(err);\n setError(t('upload failed label'));\n }\n }, [fn, existingFunctionUrl, script, script.name, script.source]);\n\n return (\n <div\n role='none'\n className={mx(role === 'article' && 'row-span-2', 'flex flex-col is-full bs-full overflow-hidden')}\n >\n <Toolbar\n binding={fn?.binding ?? ''}\n onBindingChange={handleBindingChange}\n deployed={Boolean(existingFunctionUrl) && !script.changed}\n onDeploy={handleDeploy}\n functionUrl={existingFunctionUrl}\n error={error}\n />\n <TypescriptEditor\n id={script.id}\n initialValue={initialValue}\n extensions={extensions}\n className='flex is-full bs-full overflow-hidden'\n />\n </div>\n );\n};\n\nexport default ScriptEditor;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Check, Checks, CircleNotch, Link, PencilSimple, UploadSimple, WarningCircle, X } from '@phosphor-icons/react';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport {\n Button,\n DensityProvider,\n ElevationProvider,\n Input,\n Toolbar as NaturalToolbar,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type ToolbarProps = {\n binding: string;\n onBindingChange: (binding: string) => void;\n deployed?: boolean;\n onDeploy?: () => Promise<void>;\n functionUrl?: string;\n error?: string;\n};\n\nexport const Toolbar = ({\n binding: _binding,\n onBindingChange,\n deployed,\n onDeploy,\n functionUrl,\n error,\n}: ToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const [pending, setPending] = useState(false);\n const [editing, setEditing] = useState(false);\n const [binding, setBinding] = useState(_binding);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!editing && _binding !== binding) {\n setBinding(_binding);\n }\n }, [_binding]);\n\n const handleEdit = () => {\n setEditing(true);\n inputRef.current?.focus();\n };\n\n const handleSave = () => {\n setEditing(false);\n onBindingChange(binding);\n };\n\n const handleCancel = () => {\n setEditing(false);\n };\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 setPending(true);\n await onDeploy?.();\n setPending(false);\n };\n\n return (\n <DensityProvider density='fine'>\n <ElevationProvider elevation='chrome'>\n <NaturalToolbar.Root\n classNames='p-1 is-full shrink-0 overflow-x-auto overflow-y-hidden'\n style={{ contain: 'layout' }}\n >\n {/* TODO(wittjosiah): Binding input shouldn't be in the toolbar. */}\n <Input.Root>\n <Input.Label>{t('binding label')}</Input.Label>\n <Input.TextInput\n ref={inputRef}\n classNames='!is-auto'\n disabled={!editing}\n value={binding}\n onChange={(event) => setBinding(event.target.value.toUpperCase())}\n />\n {editing ? (\n <>\n <Button variant='ghost' onClick={handleCancel}>\n <X className={getSize(4)} />\n </Button>\n <Button variant='ghost' onClick={handleSave}>\n <Check className={getSize(4)} />\n </Button>\n </>\n ) : (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button variant='ghost' onClick={handleEdit}>\n <PencilSimple className={getSize(4)} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('edit binding label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n </Input.Root>\n <div role='separator' className='grow' />\n {/* TODO(wittjosiah): Better treatment for status indicators in toolbar? */}\n {error ? (\n <Tooltip.Root>\n <Tooltip.Trigger>\n <WarningCircle className={getSize(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 ) : deployed ? (\n <Tooltip.Root>\n <Tooltip.Trigger>\n <Checks className={getSize(4)} />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('deployed label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : null}\n {functionUrl && (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={handleCopyLink}>\n <Link className={getSize(4)} />\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {t('copy link label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n )}\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' onClick={handleDeploy} disabled={pending}>\n {pending ? (\n <CircleNotch className={mx('spinner', getSize(4))} />\n ) : (\n <UploadSimple className={getSize(4)} />\n )}\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n <Tooltip.Arrow />\n {pending ? t('pending label') : t('deploy label')}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n </NaturalToolbar.Root>\n </ElevationProvider>\n </DensityProvider>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_react", "import_react_ui", "import_react_ui_theme", "Toolbar", "binding", "_binding", "onBindingChange", "deployed", "onDeploy", "functionUrl", "error", "t", "useTranslation", "SCRIPT_PLUGIN", "pending", "setPending", "useState", "editing", "setEditing", "setBinding", "inputRef", "useRef", "useEffect", "handleEdit", "current", "focus", "handleSave", "handleCancel", "handleCopyLink", "navigator", "clipboard", "writeText", "handleDeploy", "React", "DensityProvider", "density", "ElevationProvider", "elevation", "NaturalToolbar", "Root", "classNames", "style", "contain", "Input", "Label", "TextInput", "ref", "disabled", "value", "onChange", "event", "target", "toUpperCase", "Button", "variant", "onClick", "X", "className", "getSize", "Check", "Tooltip", "Trigger", "asChild", "PencilSimple", "Portal", "Content", "Arrow", "div", "role", "WarningCircle", "Checks", "Link", "CircleNotch", "mx", "UploadSimple", "ScriptEditor", "script", "client", "useClient", "identity", "useIdentity", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "source", "extensions", "useMemo", "listener", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "initialValue", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "getMeta", "setError", "handleBindingChange", "useCallback", "undefined", "existingFunctionId", "split", "at", "ownerDid", "publicKeyToDid", "identityKey", "result", "functionId", "functionVersionNumber", "errorMessage", "uploadWorkerFunction", "clientConfig", "config", "halo", "Error", "log", "info", "version", "deployedFunction", "db", "add", "create", "meta", "setUserFunctionUrlInMetadata", "err", "catch", "name", "Boolean", "TypescriptEditor"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/TypescriptEditor.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport React from 'react';\n\nimport { useThemeContext } from '@dxos/react-ui';\nimport {\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n editorContent,\n editorGutter,\n editorMonospace,\n useTextEditor,\n type UseTextEditorProps,\n} from '@dxos/react-ui-editor';\nimport { nonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = {\n id: string;\n className?: string;\n scrollPastEnd?: boolean;\n} & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>;\n\nexport const TypescriptEditor = ({\n id,\n extensions,\n initialValue,\n scrollTo,\n selection,\n className,\n scrollPastEnd,\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n extensions: [\n extensions,\n // TODO(wittjosiah): Highlight active line doesn't work.\n createBasicExtensions({ highlightActiveLine: true, indentWithTab: true, lineNumbers: true, scrollPastEnd }),\n // TODO(wittjosiah): Factor out syntax highlighting to theme extensions.\n themeMode === 'dark' ? syntaxHighlighting(oneDarkHighlightStyle) : syntaxHighlighting(defaultHighlightStyle),\n createThemeExtensions({\n themeMode,\n slots: {\n content: { className: editorContent },\n },\n }),\n editorGutter,\n editorMonospace,\n javascript({ typescript: true }),\n autocomplete(),\n ].filter(nonNullable),\n selection,\n scrollTo,\n }),\n [id, initialValue, extensions, themeMode, selection, scrollTo],\n );\n\n return <div ref={parentRef} className={className} {...focusAttributes} />;\n};\n\nexport default TypescriptEditor;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,6BAA2B;AAC3B,sBAA0D;AAC1D,4BAAsC;AACtC,mBAAkB;AAElB,sBAAgC;AAChC,6BASO;AACP,kBAA4B;AAQrB,IAAMA,mBAAmB,CAAC,EAC/BC,IACAC,YACAC,cACAC,UACAC,WACAC,WACAC,cAAa,MACS;AACtB,QAAM,EAAEC,UAAS,QAAKC,iCAAAA;AACtB,QAAM,EAAEC,WAAWC,gBAAe,QAAKC,sCACrC,OAAO;IACLX;IACAE;IACAD,YAAY;MACVA;;UAEAW,8CAAsB;QAAEC,qBAAqB;QAAMC,eAAe;QAAMC,aAAa;QAAMT;MAAc,CAAA;;MAEzGC,cAAc,aAASS,oCAAmBC,2CAAAA,QAAyBD,oCAAmBE,qCAAAA;UACtFC,8CAAsB;QACpBZ;QACAa,OAAO;UACLC,SAAS;YAAEhB,WAAWiB;UAAc;QACtC;MACF,CAAA;MACAC;MACAC;UACAC,mCAAW;QAAEC,YAAY;MAAK,CAAA;UAC9BC,qCAAAA;MACAC,OAAOC,uBAAAA;IACTzB;IACAD;EACF,IACA;IAACH;IAAIE;IAAcD;IAAYM;IAAWH;IAAWD;GAAS;AAGhE,SAAO,6BAAA2B,QAAA,cAACC,OAAAA;IAAIC,KAAKvB;IAAWJ;IAAuB,GAAGK;;AACxD;AAEA,IAAA,2BAAeX;",
|
|
6
|
-
"names": ["TypescriptEditor", "id", "extensions", "initialValue", "scrollTo", "selection", "className", "scrollPastEnd", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "syntaxHighlighting", "oneDarkHighlightStyle", "defaultHighlightStyle", "createThemeExtensions", "slots", "content", "editorContent", "editorGutter", "editorMonospace", "javascript", "typescript", "autocomplete", "filter", "nonNullable", "React", "div", "ref"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.test.d.ts","sourceRoot":"","sources":["../../../../src/compiler/compiler.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2022 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { expect } from 'chai';
|
|
6
|
-
|
|
7
|
-
import { describe, test } from '@dxos/test';
|
|
8
|
-
|
|
9
|
-
import { Compiler } from './compiler';
|
|
10
|
-
|
|
11
|
-
describe('Compiler', () => {
|
|
12
|
-
test('Basic', async () => {
|
|
13
|
-
const compiler = new Compiler({ platform: 'node', providedModules: [] });
|
|
14
|
-
const result = await compiler.compile('const x = 100'); // TODO(burdon): Test import.
|
|
15
|
-
expect(result).to.exist;
|
|
16
|
-
});
|
|
17
|
-
});
|
/package/dist/lib/browser/{TypescriptEditor-PIRIDDUS.mjs.map → TypescriptEditor-XTGRVCMY.mjs.map}
RENAMED
|
File without changes
|