@dxos/plugin-script 0.6.14-staging.e15392e → 0.7.1-staging.599df14
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-MDPZ5WAC.mjs → AutomationPanel-RYJJQ5QX.mjs} +5 -5
- package/dist/lib/browser/{ScriptContainer-B3CPWXRE.mjs → ScriptContainer-RLBVHRCW.mjs} +24 -21
- package/dist/lib/browser/ScriptContainer-RLBVHRCW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-G6H56WFS.mjs → chunk-4UTRJLQ3.mjs} +11 -3
- package/dist/lib/browser/chunk-4UTRJLQ3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KHNN3F7J.mjs → chunk-5GGRYRS4.mjs} +5 -5
- package/dist/lib/browser/{chunk-KHNN3F7J.mjs.map → chunk-5GGRYRS4.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-SGQHRB4P.mjs → chunk-C7VBULMK.mjs} +4 -3
- package/dist/lib/browser/{chunk-SGQHRB4P.mjs.map → chunk-C7VBULMK.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-G66MXS4T.mjs → chunk-NCZUJKJE.mjs} +6 -18
- package/dist/lib/browser/chunk-NCZUJKJE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KXVQPS4Y.mjs → chunk-VEW5BERN.mjs} +8 -6
- package/dist/lib/browser/chunk-VEW5BERN.mjs.map +7 -0
- package/dist/lib/browser/edge/index.mjs +1 -1
- package/dist/lib/browser/index.mjs +106 -13
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/meta.mjs +1 -1
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node/{AutomationPanel-SANUE5X4.cjs → AutomationPanel-3B5AGQQV.cjs} +15 -15
- package/dist/lib/node/{ScriptContainer-BV7HMUY5.cjs → ScriptContainer-7VX44TH6.cjs} +40 -37
- package/dist/lib/node/ScriptContainer-7VX44TH6.cjs.map +7 -0
- package/dist/lib/node/{chunk-EJC55SDD.cjs → chunk-6LYX73ZT.cjs} +7 -6
- package/dist/lib/node/chunk-6LYX73ZT.cjs.map +7 -0
- package/dist/lib/node/{chunk-JWKMTYYH.cjs → chunk-BJ4WIWCP.cjs} +9 -21
- package/dist/lib/node/chunk-BJ4WIWCP.cjs.map +7 -0
- package/dist/lib/node/{chunk-ACLCRWDB.cjs → chunk-WPP65EYS.cjs} +14 -6
- package/dist/lib/node/chunk-WPP65EYS.cjs.map +7 -0
- package/dist/lib/node/{chunk-25PQE7FL.cjs → chunk-XJOH225K.cjs} +10 -8
- package/dist/lib/node/chunk-XJOH225K.cjs.map +7 -0
- package/dist/lib/node/{chunk-FY5KKL5N.cjs → chunk-XS6GEYYH.cjs} +8 -8
- package/dist/lib/node/{chunk-FY5KKL5N.cjs.map → chunk-XS6GEYYH.cjs.map} +2 -2
- package/dist/lib/node/edge/index.cjs +10 -10
- package/dist/lib/node/edge/index.cjs.map +1 -1
- package/dist/lib/node/index.cjs +123 -34
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.cjs +3 -3
- package/dist/lib/node/meta.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +5 -5
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{AutomationPanel-H2IKE53E.mjs → AutomationPanel-EEGLOILM.mjs} +5 -5
- package/dist/lib/node-esm/{ScriptContainer-HSIOGVP3.mjs → ScriptContainer-NGYXDSLQ.mjs} +24 -21
- package/dist/lib/node-esm/ScriptContainer-NGYXDSLQ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LDLNTVAK.mjs → chunk-4SRPREUK.mjs} +11 -3
- package/dist/lib/node-esm/chunk-4SRPREUK.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3QHVR4VV.mjs → chunk-DXWSRDEN.mjs} +6 -18
- package/dist/lib/node-esm/chunk-DXWSRDEN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7EDYDVQH.mjs → chunk-P7ULFJ4T.mjs} +8 -6
- package/dist/lib/node-esm/chunk-P7ULFJ4T.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GO7HYFM5.mjs → chunk-SLTZMY34.mjs} +4 -3
- package/dist/lib/node-esm/{chunk-GO7HYFM5.mjs.map → chunk-SLTZMY34.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-QMTTZYLF.mjs → chunk-V74XKPLC.mjs} +5 -5
- package/dist/lib/node-esm/{chunk-QMTTZYLF.mjs.map → chunk-V74XKPLC.mjs.map} +2 -2
- package/dist/lib/node-esm/edge/index.mjs +1 -1
- package/dist/lib/node-esm/index.mjs +106 -13
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/meta.mjs +1 -1
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/bundler/bundler.d.ts.map +1 -1
- package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +1 -4
- package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/ScriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/ScriptSettingsPanel.d.ts +7 -0
- package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/edge/functions.d.ts +4 -1
- package/dist/types/src/edge/functions.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +5 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/{script.d.ts → schema.d.ts} +4 -2
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/package.json +37 -37
- package/src/ScriptPlugin.tsx +10 -2
- package/src/bundler/bundler.ts +4 -0
- package/src/components/DebugPanel/DebugPanel.tsx +2 -29
- package/src/components/ScriptEditor.tsx +10 -18
- package/src/components/ScriptSettings/ScriptSettings.tsx +3 -3
- package/src/components/ScriptSettingsPanel.tsx +105 -0
- package/src/components/index.ts +1 -0
- package/src/edge/functions.ts +4 -1
- package/src/meta.ts +2 -1
- package/src/translations.ts +5 -0
- package/src/types/index.ts +1 -1
- package/src/types/{script.ts → schema.ts} +12 -6
- package/dist/lib/browser/ScriptContainer-B3CPWXRE.mjs.map +0 -7
- package/dist/lib/browser/chunk-G66MXS4T.mjs.map +0 -7
- package/dist/lib/browser/chunk-G6H56WFS.mjs.map +0 -7
- package/dist/lib/browser/chunk-KXVQPS4Y.mjs.map +0 -7
- package/dist/lib/node/ScriptContainer-BV7HMUY5.cjs.map +0 -7
- package/dist/lib/node/chunk-25PQE7FL.cjs.map +0 -7
- package/dist/lib/node/chunk-ACLCRWDB.cjs.map +0 -7
- package/dist/lib/node/chunk-EJC55SDD.cjs.map +0 -7
- package/dist/lib/node/chunk-JWKMTYYH.cjs.map +0 -7
- package/dist/lib/node-esm/ScriptContainer-HSIOGVP3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3QHVR4VV.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7EDYDVQH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LDLNTVAK.mjs.map +0 -7
- package/dist/types/src/types/script.d.ts.map +0 -1
- /package/dist/lib/browser/{AutomationPanel-MDPZ5WAC.mjs.map → AutomationPanel-RYJJQ5QX.mjs.map} +0 -0
- /package/dist/lib/node/{AutomationPanel-SANUE5X4.cjs.map → AutomationPanel-3B5AGQQV.cjs.map} +0 -0
- /package/dist/lib/node-esm/{AutomationPanel-H2IKE53E.mjs.map → AutomationPanel-EEGLOILM.mjs.map} +0 -0
|
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_XJOH225K_exports = {};
|
|
20
|
+
__export(chunk_XJOH225K_exports, {
|
|
21
21
|
FunctionType: () => FunctionType,
|
|
22
22
|
ScriptAction: () => ScriptAction,
|
|
23
23
|
ScriptType: () => ScriptType
|
|
24
24
|
});
|
|
25
|
-
module.exports = __toCommonJS(
|
|
26
|
-
var
|
|
25
|
+
module.exports = __toCommonJS(chunk_XJOH225K_exports);
|
|
26
|
+
var import_chunk_6LYX73ZT = require("./chunk-6LYX73ZT.cjs");
|
|
27
27
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
28
28
|
var import_types = require("@dxos/plugin-markdown/types");
|
|
29
29
|
var ScriptType = class extends (0, import_echo_schema.TypedObject)({
|
|
@@ -34,7 +34,7 @@ var ScriptType = class extends (0, import_echo_schema.TypedObject)({
|
|
|
34
34
|
name: import_echo_schema.S.optional(import_echo_schema.S.String),
|
|
35
35
|
description: import_echo_schema.S.optional(import_echo_schema.S.String),
|
|
36
36
|
source: (0, import_echo_schema.ref)(import_types.TextType),
|
|
37
|
-
// TODO(burdon): Change to
|
|
37
|
+
// TODO(burdon): Change to hash of deployed content.
|
|
38
38
|
// Whether source has changed since last deploy.
|
|
39
39
|
changed: import_echo_schema.S.optional(import_echo_schema.S.Boolean)
|
|
40
40
|
}) {
|
|
@@ -43,18 +43,20 @@ var FunctionType = class extends (0, import_echo_schema.TypedObject)({
|
|
|
43
43
|
typename: "dxos.org/type/Function",
|
|
44
44
|
version: "0.1.0"
|
|
45
45
|
})({
|
|
46
|
+
// TODO(burdon): Change to id?
|
|
46
47
|
name: import_echo_schema.S.optional(import_echo_schema.S.String),
|
|
47
48
|
version: import_echo_schema.S.Number,
|
|
48
49
|
// Local binding to a function name.
|
|
49
50
|
// TODO(burdon): Move binding to inner type.
|
|
50
51
|
binding: import_echo_schema.S.optional(import_echo_schema.S.String),
|
|
51
52
|
// Reference to a source script if it exists within ECHO.
|
|
52
|
-
source: import_echo_schema.S.optional((0, import_echo_schema.ref)(ScriptType))
|
|
53
|
+
source: import_echo_schema.S.optional((0, import_echo_schema.ref)(ScriptType)),
|
|
54
|
+
inputSchema: import_echo_schema.S.optional(import_echo_schema.JsonSchemaType)
|
|
53
55
|
}) {
|
|
54
56
|
};
|
|
55
57
|
var ScriptAction;
|
|
56
58
|
(function(ScriptAction2) {
|
|
57
|
-
ScriptAction2[ScriptAction2["CREATE"] = `${
|
|
59
|
+
ScriptAction2[ScriptAction2["CREATE"] = `${import_chunk_6LYX73ZT.SCRIPT_PLUGIN}/create`] = "CREATE";
|
|
58
60
|
})(ScriptAction || (ScriptAction = {}));
|
|
59
61
|
// Annotate the CommonJS export names for ESM import in node:
|
|
60
62
|
0 && (module.exports = {
|
|
@@ -62,4 +64,4 @@ var ScriptAction;
|
|
|
62
64
|
ScriptAction,
|
|
63
65
|
ScriptType
|
|
64
66
|
});
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
67
|
+
//# sourceMappingURL=chunk-XJOH225K.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { JsonSchemaType, ref, S, TypedObject } from '@dxos/echo-schema';\nimport { TextType } from '@dxos/plugin-markdown/types';\n\n/**\n * Source script.\n */\nexport class ScriptType extends TypedObject({\n typename: 'dxos.org/type/Script',\n version: '0.1.0',\n})({\n // TODO(burdon): Change to URI?\n name: S.optional(S.String),\n description: S.optional(S.String),\n source: ref(TextType),\n // TODO(burdon): Change to hash of deployed content.\n // Whether source has changed since last deploy.\n changed: S.optional(S.Boolean),\n}) {}\n\n/**\n * Function deployment.\n */\nexport class FunctionType extends TypedObject({\n typename: 'dxos.org/type/Function',\n version: '0.1.0',\n})({\n // TODO(burdon): Change to id?\n name: S.optional(S.String),\n version: S.Number,\n // Local binding to a function name.\n // TODO(burdon): Move binding to inner type.\n binding: S.optional(S.String),\n // Reference to a source script if it exists within ECHO.\n source: S.optional(ref(ScriptType)),\n inputSchema: S.optional(JsonSchemaType),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SettingsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { type SchemaProvides } from '@dxos/plugin-client';\nimport { type SpaceInitProvides } from '@dxos/plugin-space';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport enum ScriptAction {\n CREATE = `${SCRIPT_PLUGIN}/create`,\n}\n\nexport type ScriptSettingsProps = {};\n\nexport type ScriptPluginProvides = GraphBuilderProvides &\n IntentResolverProvides &\n MetadataRecordsProvides &\n SchemaProvides &\n SettingsProvides<ScriptSettingsProps> &\n SpaceInitProvides &\n SurfaceProvides &\n TranslationsProvides;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAoD;AACpD,mBAAyB;AAKlB,IAAMA,aAAN,kBAAyBC,gCAAY;EAC1CC,UAAU;EACVC,SAAS;AACX,CAAA,EAAG;;EAEDC,MAAMC,qBAAEC,SAASD,qBAAEE,MAAM;EACzBC,aAAaH,qBAAEC,SAASD,qBAAEE,MAAM;EAChCE,YAAQC,wBAAIC,qBAAAA;;;EAGZC,SAASP,qBAAEC,SAASD,qBAAEQ,OAAO;AAC/B,CAAA,EAAA;AAAI;AAKG,IAAMC,eAAN,kBAA2Bb,gCAAY;EAC5CC,UAAU;EACVC,SAAS;AACX,CAAA,EAAG;;EAEDC,MAAMC,qBAAEC,SAASD,qBAAEE,MAAM;EACzBJ,SAASE,qBAAEU;;;EAGXC,SAASX,qBAAEC,SAASD,qBAAEE,MAAM;;EAE5BE,QAAQJ,qBAAEC,aAASI,wBAAIV,UAAAA,CAAAA;EACvBiB,aAAaZ,qBAAEC,SAASY,iCAAAA;AAC1B,CAAA,EAAA;AAAI;;UCtBQC,eAAAA;0CACD,GAAGC,mCAAAA,SAAsB,IAAA;GADxBD,iBAAAA,eAAAA,CAAAA,EAAAA;",
|
|
6
|
+
"names": ["ScriptType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "description", "source", "ref", "TextType", "changed", "Boolean", "FunctionType", "Number", "binding", "inputSchema", "JsonSchemaType", "ScriptAction", "SCRIPT_PLUGIN"]
|
|
7
|
+
}
|
|
@@ -16,8 +16,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_XS6GEYYH_exports = {};
|
|
20
|
+
__export(chunk_XS6GEYYH_exports, {
|
|
21
21
|
HeaderCodec: () => HeaderCodec,
|
|
22
22
|
USERFUNCTIONS_PRESET_META_KEY: () => USERFUNCTIONS_PRESET_META_KEY,
|
|
23
23
|
codec: () => codec,
|
|
@@ -28,7 +28,7 @@ __export(chunk_FY5KKL5N_exports, {
|
|
|
28
28
|
setUserFunctionUrlInMetadata: () => setUserFunctionUrlInMetadata,
|
|
29
29
|
uploadWorkerFunction: () => uploadWorkerFunction
|
|
30
30
|
});
|
|
31
|
-
module.exports = __toCommonJS(
|
|
31
|
+
module.exports = __toCommonJS(chunk_XS6GEYYH_exports);
|
|
32
32
|
var import_keys = require("@dxos/keys");
|
|
33
33
|
var import_async = require("@dxos/async");
|
|
34
34
|
var import_invariant = require("@dxos/invariant");
|
|
@@ -154,7 +154,7 @@ var uploadWorkerFunction = async ({ clientConfig, halo, name, source, ownerDid,
|
|
|
154
154
|
uploadUrl: uploadUrl.toString()
|
|
155
155
|
}, {
|
|
156
156
|
F: __dxlog_file,
|
|
157
|
-
L:
|
|
157
|
+
L: 76,
|
|
158
158
|
S: void 0,
|
|
159
159
|
C: (f, a) => f(...a)
|
|
160
160
|
});
|
|
@@ -178,7 +178,7 @@ var uploadWorkerFunction = async ({ clientConfig, halo, name, source, ownerDid,
|
|
|
178
178
|
res
|
|
179
179
|
}, {
|
|
180
180
|
F: __dxlog_file,
|
|
181
|
-
L:
|
|
181
|
+
L: 87,
|
|
182
182
|
S: void 0,
|
|
183
183
|
C: (f, a) => f(...a)
|
|
184
184
|
});
|
|
@@ -227,13 +227,13 @@ var presentationForIdentity = async ({ halo, timeout }) => {
|
|
|
227
227
|
credential
|
|
228
228
|
}, {
|
|
229
229
|
F: __dxlog_file,
|
|
230
|
-
L:
|
|
230
|
+
L: 133,
|
|
231
231
|
S: void 0,
|
|
232
232
|
C: (f, a) => f(...a)
|
|
233
233
|
});
|
|
234
234
|
(0, import_invariant.invariant)(credential.id, "beta credential missing id", {
|
|
235
235
|
F: __dxlog_file,
|
|
236
|
-
L:
|
|
236
|
+
L: 135,
|
|
237
237
|
S: void 0,
|
|
238
238
|
A: [
|
|
239
239
|
"credential.id",
|
|
@@ -270,4 +270,4 @@ var getInvocationUrl = (functionUrl, edgeUrl, options = {}) => {
|
|
|
270
270
|
setUserFunctionUrlInMetadata,
|
|
271
271
|
uploadWorkerFunction
|
|
272
272
|
});
|
|
273
|
-
//# sourceMappingURL=chunk-
|
|
273
|
+
//# sourceMappingURL=chunk-XS6GEYYH.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/edge/codec.ts", "../../../src/edge/header-codec.ts", "../../../src/edge/functions.ts", "../../../src/edge/hub-protocol.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { PublicKey } from '@dxos/keys';\n\nimport { HeaderCodec, type EncodedKey } from './header-codec';\n\nexport const codec = new HeaderCodec<PublicKey>({\n isKey: (value: any): value is PublicKey => value instanceof PublicKey,\n encode: (key: PublicKey): EncodedKey => ({ __k: key.toHex() }),\n decode: (value: EncodedKey): PublicKey => PublicKey.fromHex(value.__k),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// TODO(burdon): Factor out from @dxos/hub-protocol\n\nconst ENCODING = 'base64';\n\nexport type EncodedKey = { __k: string };\n\nexport type EncodedBytes = { __b: string };\n\nexport type EncodedTimestamp = { __t: number };\n\nexport interface KeyCodec<KeyType> {\n isKey(value: any): value is KeyType;\n encode(key: KeyType): EncodedKey;\n decode(value: EncodedKey): KeyType;\n}\n\n// TODO(wittjosiah): Use deepMapValues from @dxos/util -- it handles recursion for you.\nexport class HeaderCodec<Key> {\n constructor(private readonly _keyCodec: KeyCodec<Key>) {}\n\n encode(obj: any): string {\n const objectToEncode = this._prepareForEncoding(obj);\n const encoded = Buffer.from(JSON.stringify(objectToEncode));\n return encoded.toString(ENCODING);\n }\n\n decode<Type>(buffer: string): Type {\n const json = JSON.parse(Buffer.from(buffer, ENCODING).toString());\n return this._decodeRecursive(json);\n }\n\n private _decodeRecursive(obj: any): any {\n return this._recurse(obj, (value) => {\n if (isEncodedBytes(value)) {\n return decodeBytes(value.__b);\n }\n if (isEncodedKey(value)) {\n return this._keyCodec.decode(value);\n }\n if (isEncodedDate(value)) {\n return decodeDate(value);\n }\n return null;\n });\n }\n\n private _prepareForEncoding(obj: any): any {\n return this._recurse(obj, (value) => {\n if (value instanceof Uint8Array) {\n return { __b: encodeBytes(value) };\n }\n if (this._keyCodec.isKey(value)) {\n return this._keyCodec.encode(value);\n }\n if (value instanceof Date) {\n return encodeDate(value);\n }\n return null;\n });\n }\n\n private _recurse(obj: any, handler: (obj: object) => any | null): any {\n if (typeof obj !== 'object') {\n return obj;\n }\n const handled = handler(obj);\n if (handled != null) {\n return handled;\n }\n if (Array.isArray(obj)) {\n const result = [];\n for (const elem of obj) {\n result.push(this._recurse(elem, handler));\n }\n return result;\n }\n const result: any = {};\n for (const [key, value] of Object.entries(obj)) {\n result[key] = this._recurse(value, handler);\n }\n return result;\n }\n}\n\nconst isEncodedKey = (obj: object): obj is EncodedKey => '__k' in obj && typeof obj.__k === 'string';\nconst isEncodedBytes = (obj: object): obj is EncodedBytes => '__b' in obj && typeof obj.__b === 'string';\nconst isEncodedDate = (obj: object): obj is EncodedTimestamp => '__t' in obj && typeof obj.__t === 'number';\n\nconst encodeDate = (date: Date) => ({ __t: date.getTime() });\nconst decodeDate = (timestamp: EncodedTimestamp) => new Date(timestamp.__t);\n\nconst encodeBytes = (bytes: Uint8Array) => Buffer.from(bytes).toString(ENCODING);\nconst decodeBytes = (bytes: string) => Buffer.from(bytes, ENCODING);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\n\nimport { Trigger } from '@dxos/async';\nimport { type Config } from '@dxos/client';\nimport { type Halo } from '@dxos/client-protocol';\nimport { type ObjectMeta } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport type { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { codec } from './codec';\nimport { matchServiceCredential } from './hub-protocol';\n\n// TODO: use URL scheme for source?\nconst USERFUNCTIONS_META_KEY = 'dxos.org/service/function';\nexport const USERFUNCTIONS_PRESET_META_KEY = 'dxos.org/service/function-preset';\nconst USERFUNCTIONS_CREDENTIAL_CAPABILITY = 'composer:beta';\n\n// TODO: Synchronize API types with server\nexport type UserFunctionUploadResult = {\n result: 'success' | 'error';\n errorMessage?: string;\n functionId?: string;\n functionVersionNumber?: number;\n};\n\nexport type UploadWorkerProps = {\n clientConfig: Config;\n halo: Halo;\n name?: string;\n source: string;\n functionId?: string;\n ownerDid: DID;\n credentialLoadTimeout?: number; // ms to wait for credentials to load\n};\n\n// TODO(burdon): Config.\nconst defaultUserFunctionsBaseUrl = 'https://edge-main.dxos.workers.dev/functions'; // 'http://localhost:8600';\n\nconst getBaseUrl = (config: Config) => {\n if (config.values.runtime?.services?.edge?.url) {\n const url = new URL('/functions', config.values.runtime?.services?.edge?.url);\n url.protocol = 'https';\n return url.toString();\n } else {\n return defaultUserFunctionsBaseUrl;\n }\n};\n\nexport const uploadWorkerFunction = async ({\n clientConfig,\n halo,\n name,\n source,\n ownerDid,\n functionId,\n credentialLoadTimeout,\n}: UploadWorkerProps) => {\n const identity = halo.identity.get();\n if (!identity) {\n throw new Error('Identity not available');\n }\n const userFunctionsBaseUrl = getBaseUrl(clientConfig);\n\n // TODO: codify naming convention\n const uploadUrl = `${userFunctionsBaseUrl}/${ownerDid}` + (functionId ? `/${functionId}` : '');\n\n log('Upload', { functionId, source, name, identityKey: identity.identityKey, uploadUrl: uploadUrl.toString() });\n const response = await fetch(uploadUrl, {\n method: 'PUT',\n body: JSON.stringify({ script: source, name }),\n headers: await presentationForIdentity({ halo, timeout: credentialLoadTimeout }),\n });\n if (!response.ok) {\n return (await response.json()) as UserFunctionUploadResult;\n }\n\n const res = await response.json();\n log('Upload response', { status: response.status, res });\n\n return res as UserFunctionUploadResult;\n};\n\nexport const getUserFunctionUrlInMetadata = (meta: ObjectMeta) => {\n return meta.keys.find((key) => key.source === USERFUNCTIONS_META_KEY)?.id;\n};\n\nexport const setUserFunctionUrlInMetadata = (meta: ObjectMeta, functionUrl: string) => {\n const key = meta.keys.find((key) => key.source === USERFUNCTIONS_META_KEY);\n if (key) {\n if (key.id !== functionUrl) {\n throw new Error('Metadata mismatch');\n }\n } else {\n meta.keys.push({ source: USERFUNCTIONS_META_KEY, id: functionUrl });\n }\n};\n\n// TODO: handle team owner\n\nconst presentationForIdentity = async ({ halo, timeout }: { halo: Halo; timeout?: number }) => {\n let credential: Credential | undefined;\n\n if (timeout) {\n const credentialsLoaded = new Trigger();\n halo.credentials.subscribe((c) => {\n credential = c.find(matchServiceCredential([USERFUNCTIONS_CREDENTIAL_CAPABILITY]));\n if (credential) {\n credentialsLoaded.wake();\n }\n });\n await credentialsLoaded.wait({\n timeout,\n });\n } else {\n credential = halo\n .queryCredentials()\n .toSorted((a, b) => b.issuanceDate.getTime() - a.issuanceDate.getTime())\n .find(matchServiceCredential([USERFUNCTIONS_CREDENTIAL_CAPABILITY]));\n }\n\n if (!credential) {\n throw new Error('No credential found');\n }\n log('credential found', { credential });\n // TODO(wittjosiah): If id is required to present credentials, then it should always be present for queried credentials.\n invariant(credential.id, 'beta credential missing id');\n const presentation = await halo.presentCredentials({ ids: [credential.id] });\n\n return { Authorization: `Bearer ${codec.encode(presentation)}` };\n};\n\nexport type InvocationOptions = {\n spaceId?: SpaceId;\n subjectId?: string;\n};\n\nexport const getInvocationUrl = (functionUrl: string, edgeUrl: string, options: InvocationOptions = {}) => {\n const baseUrl = new URL('functions/', edgeUrl);\n\n // Leading slashes cause the URL to be treated as an absolute path.\n const relativeUrl = functionUrl.replace(/^\\//, '');\n const url = new URL(`./${relativeUrl}`, baseUrl.toString());\n options.spaceId && url.searchParams.set('spaceId', options.spaceId);\n options.subjectId && url.searchParams.set('subjectId', options.subjectId);\n url.protocol = 'https';\n return url.toString();\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\n\nimport { type Credential } from '@dxos/client/halo';\nimport { type PublicKey } from '@dxos/keys';\n\n// TODO(burdon): Factor out to @dxos/hub-protocol.\n\nexport const matchServiceCredential =\n (capabilities: string[] = []) =>\n (credential: Credential) => {\n if (credential.subject.assertion['@type'] !== 'dxos.halo.credentials.ServiceAccess') {\n return false;\n }\n\n const { capabilities: credentialCapabilities } = credential.subject.assertion;\n return capabilities.every((capability) => credentialCapabilities.includes(capability));\n };\n\n// TODO: reconcile with @dxos/hub-protocol\n\nexport const publicKeyToDid = (key: PublicKey): DID => {\n return `did:key:${key.toHex()}`;\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { PublicKey } from '@dxos/keys';\n\nimport { HeaderCodec, type EncodedKey } from './header-codec';\n\nexport const codec = new HeaderCodec<PublicKey>({\n isKey: (value: any): value is PublicKey => value instanceof PublicKey,\n encode: (key: PublicKey): EncodedKey => ({ __k: key.toHex() }),\n decode: (value: EncodedKey): PublicKey => PublicKey.fromHex(value.__k),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// TODO(burdon): Factor out from @dxos/hub-protocol\n\nconst ENCODING = 'base64';\n\nexport type EncodedKey = { __k: string };\n\nexport type EncodedBytes = { __b: string };\n\nexport type EncodedTimestamp = { __t: number };\n\nexport interface KeyCodec<KeyType> {\n isKey(value: any): value is KeyType;\n encode(key: KeyType): EncodedKey;\n decode(value: EncodedKey): KeyType;\n}\n\n// TODO(wittjosiah): Use deepMapValues from @dxos/util -- it handles recursion for you.\nexport class HeaderCodec<Key> {\n constructor(private readonly _keyCodec: KeyCodec<Key>) {}\n\n encode(obj: any): string {\n const objectToEncode = this._prepareForEncoding(obj);\n const encoded = Buffer.from(JSON.stringify(objectToEncode));\n return encoded.toString(ENCODING);\n }\n\n decode<Type>(buffer: string): Type {\n const json = JSON.parse(Buffer.from(buffer, ENCODING).toString());\n return this._decodeRecursive(json);\n }\n\n private _decodeRecursive(obj: any): any {\n return this._recurse(obj, (value) => {\n if (isEncodedBytes(value)) {\n return decodeBytes(value.__b);\n }\n if (isEncodedKey(value)) {\n return this._keyCodec.decode(value);\n }\n if (isEncodedDate(value)) {\n return decodeDate(value);\n }\n return null;\n });\n }\n\n private _prepareForEncoding(obj: any): any {\n return this._recurse(obj, (value) => {\n if (value instanceof Uint8Array) {\n return { __b: encodeBytes(value) };\n }\n if (this._keyCodec.isKey(value)) {\n return this._keyCodec.encode(value);\n }\n if (value instanceof Date) {\n return encodeDate(value);\n }\n return null;\n });\n }\n\n private _recurse(obj: any, handler: (obj: object) => any | null): any {\n if (typeof obj !== 'object') {\n return obj;\n }\n const handled = handler(obj);\n if (handled != null) {\n return handled;\n }\n if (Array.isArray(obj)) {\n const result = [];\n for (const elem of obj) {\n result.push(this._recurse(elem, handler));\n }\n return result;\n }\n const result: any = {};\n for (const [key, value] of Object.entries(obj)) {\n result[key] = this._recurse(value, handler);\n }\n return result;\n }\n}\n\nconst isEncodedKey = (obj: object): obj is EncodedKey => '__k' in obj && typeof obj.__k === 'string';\nconst isEncodedBytes = (obj: object): obj is EncodedBytes => '__b' in obj && typeof obj.__b === 'string';\nconst isEncodedDate = (obj: object): obj is EncodedTimestamp => '__t' in obj && typeof obj.__t === 'number';\n\nconst encodeDate = (date: Date) => ({ __t: date.getTime() });\nconst decodeDate = (timestamp: EncodedTimestamp) => new Date(timestamp.__t);\n\nconst encodeBytes = (bytes: Uint8Array) => Buffer.from(bytes).toString(ENCODING);\nconst decodeBytes = (bytes: string) => Buffer.from(bytes, ENCODING);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\n\nimport { Trigger } from '@dxos/async';\nimport { type Config } from '@dxos/client';\nimport { type Halo } from '@dxos/client-protocol';\nimport { type JsonSchemaType, type ObjectMeta } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport type { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { codec } from './codec';\nimport { matchServiceCredential } from './hub-protocol';\n\n// TODO: use URL scheme for source?\nconst USERFUNCTIONS_META_KEY = 'dxos.org/service/function';\nexport const USERFUNCTIONS_PRESET_META_KEY = 'dxos.org/service/function-preset';\nconst USERFUNCTIONS_CREDENTIAL_CAPABILITY = 'composer:beta';\n\n// TODO: Synchronize API types with server\nexport type UserFunctionUploadResult = {\n result: 'success' | 'error';\n errorMessage?: string;\n functionId?: string;\n functionVersionNumber?: number;\n meta: {\n inputSchema?: JsonSchemaType;\n };\n};\n\nexport type UploadWorkerProps = {\n clientConfig: Config;\n halo: Halo;\n name?: string;\n source: string;\n functionId?: string;\n ownerDid: DID;\n credentialLoadTimeout?: number; // ms to wait for credentials to load\n};\n\n// TODO(burdon): Config.\nconst defaultUserFunctionsBaseUrl = 'https://edge-main.dxos.workers.dev/functions'; // 'http://localhost:8600';\n\nconst getBaseUrl = (config: Config) => {\n if (config.values.runtime?.services?.edge?.url) {\n const url = new URL('/functions', config.values.runtime?.services?.edge?.url);\n url.protocol = 'https';\n return url.toString();\n } else {\n return defaultUserFunctionsBaseUrl;\n }\n};\n\nexport const uploadWorkerFunction = async ({\n clientConfig,\n halo,\n name,\n source,\n ownerDid,\n functionId,\n credentialLoadTimeout,\n}: UploadWorkerProps) => {\n const identity = halo.identity.get();\n if (!identity) {\n throw new Error('Identity not available');\n }\n const userFunctionsBaseUrl = getBaseUrl(clientConfig);\n\n // TODO: codify naming convention\n const uploadUrl = `${userFunctionsBaseUrl}/${ownerDid}` + (functionId ? `/${functionId}` : '');\n\n log('Upload', { functionId, source, name, identityKey: identity.identityKey, uploadUrl: uploadUrl.toString() });\n const response = await fetch(uploadUrl, {\n method: 'PUT',\n body: JSON.stringify({ script: source, name }),\n headers: await presentationForIdentity({ halo, timeout: credentialLoadTimeout }),\n });\n if (!response.ok) {\n return (await response.json()) as UserFunctionUploadResult;\n }\n\n const res = await response.json();\n log('Upload response', { status: response.status, res });\n\n return res as UserFunctionUploadResult;\n};\n\nexport const getUserFunctionUrlInMetadata = (meta: ObjectMeta) => {\n return meta.keys.find((key) => key.source === USERFUNCTIONS_META_KEY)?.id;\n};\n\nexport const setUserFunctionUrlInMetadata = (meta: ObjectMeta, functionUrl: string) => {\n const key = meta.keys.find((key) => key.source === USERFUNCTIONS_META_KEY);\n if (key) {\n if (key.id !== functionUrl) {\n throw new Error('Metadata mismatch');\n }\n } else {\n meta.keys.push({ source: USERFUNCTIONS_META_KEY, id: functionUrl });\n }\n};\n\n// TODO: handle team owner\n\nconst presentationForIdentity = async ({ halo, timeout }: { halo: Halo; timeout?: number }) => {\n let credential: Credential | undefined;\n\n if (timeout) {\n const credentialsLoaded = new Trigger();\n halo.credentials.subscribe((c) => {\n credential = c.find(matchServiceCredential([USERFUNCTIONS_CREDENTIAL_CAPABILITY]));\n if (credential) {\n credentialsLoaded.wake();\n }\n });\n await credentialsLoaded.wait({\n timeout,\n });\n } else {\n credential = halo\n .queryCredentials()\n .toSorted((a, b) => b.issuanceDate.getTime() - a.issuanceDate.getTime())\n .find(matchServiceCredential([USERFUNCTIONS_CREDENTIAL_CAPABILITY]));\n }\n\n if (!credential) {\n throw new Error('No credential found');\n }\n log('credential found', { credential });\n // TODO(wittjosiah): If id is required to present credentials, then it should always be present for queried credentials.\n invariant(credential.id, 'beta credential missing id');\n const presentation = await halo.presentCredentials({ ids: [credential.id] });\n\n return { Authorization: `Bearer ${codec.encode(presentation)}` };\n};\n\nexport type InvocationOptions = {\n spaceId?: SpaceId;\n subjectId?: string;\n};\n\nexport const getInvocationUrl = (functionUrl: string, edgeUrl: string, options: InvocationOptions = {}) => {\n const baseUrl = new URL('functions/', edgeUrl);\n\n // Leading slashes cause the URL to be treated as an absolute path.\n const relativeUrl = functionUrl.replace(/^\\//, '');\n const url = new URL(`./${relativeUrl}`, baseUrl.toString());\n options.spaceId && url.searchParams.set('spaceId', options.spaceId);\n options.subjectId && url.searchParams.set('subjectId', options.subjectId);\n url.protocol = 'https';\n return url.toString();\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\n\nimport { type Credential } from '@dxos/client/halo';\nimport { type PublicKey } from '@dxos/keys';\n\n// TODO(burdon): Factor out to @dxos/hub-protocol.\n\nexport const matchServiceCredential =\n (capabilities: string[] = []) =>\n (credential: Credential) => {\n if (credential.subject.assertion['@type'] !== 'dxos.halo.credentials.ServiceAccess') {\n return false;\n }\n\n const { capabilities: credentialCapabilities } = credential.subject.assertion;\n return capabilities.every((capability) => credentialCapabilities.includes(capability));\n };\n\n// TODO: reconcile with @dxos/hub-protocol\n\nexport const publicKeyToDid = (key: PublicKey): DID => {\n return `did:key:${key.toHex()}`;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["ENCODING", "HeaderCodec", "constructor", "_keyCodec", "encode", "obj", "objectToEncode", "_prepareForEncoding", "encoded", "Buffer", "from", "JSON", "stringify", "toString", "decode", "buffer", "json", "parse", "_decodeRecursive", "_recurse", "value", "isEncodedBytes", "decodeBytes", "__b", "isEncodedKey", "isEncodedDate", "decodeDate", "Uint8Array", "encodeBytes", "isKey", "Date", "encodeDate", "handler", "handled", "Array", "isArray", "result", "elem", "push", "key", "Object", "entries", "__k", "__t", "date", "getTime", "timestamp", "bytes", "codec", "PublicKey", "toHex", "fromHex", "matchServiceCredential", "capabilities", "credential", "subject", "assertion", "credentialCapabilities", "every", "capability", "includes", "publicKeyToDid", "USERFUNCTIONS_META_KEY", "USERFUNCTIONS_PRESET_META_KEY", "USERFUNCTIONS_CREDENTIAL_CAPABILITY", "defaultUserFunctionsBaseUrl", "getBaseUrl", "config", "values", "runtime", "services", "edge", "url", "URL", "protocol", "uploadWorkerFunction", "clientConfig", "halo", "name", "source", "ownerDid", "functionId", "credentialLoadTimeout", "identity", "get", "Error", "userFunctionsBaseUrl", "uploadUrl", "log", "identityKey", "response", "fetch", "method", "body", "script", "headers", "presentationForIdentity", "timeout", "ok", "res", "status", "getUserFunctionUrlInMetadata", "meta", "keys", "find", "id", "setUserFunctionUrlInMetadata", "functionUrl", "credentialsLoaded", "Trigger", "credentials", "subscribe", "c", "wake", "wait", "queryCredentials", "toSorted", "a", "b", "issuanceDate", "invariant", "presentation", "presentCredentials", "ids", "Authorization", "getInvocationUrl", "edgeUrl", "options", "baseUrl", "relativeUrl", "replace", "spaceId", "searchParams", "set", "subjectId"]
|
|
7
7
|
}
|
|
@@ -18,18 +18,18 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var edge_exports = {};
|
|
20
20
|
__export(edge_exports, {
|
|
21
|
-
HeaderCodec: () =>
|
|
22
|
-
USERFUNCTIONS_PRESET_META_KEY: () =>
|
|
23
|
-
codec: () =>
|
|
24
|
-
getInvocationUrl: () =>
|
|
25
|
-
getUserFunctionUrlInMetadata: () =>
|
|
26
|
-
matchServiceCredential: () =>
|
|
27
|
-
publicKeyToDid: () =>
|
|
28
|
-
setUserFunctionUrlInMetadata: () =>
|
|
29
|
-
uploadWorkerFunction: () =>
|
|
21
|
+
HeaderCodec: () => import_chunk_XS6GEYYH.HeaderCodec,
|
|
22
|
+
USERFUNCTIONS_PRESET_META_KEY: () => import_chunk_XS6GEYYH.USERFUNCTIONS_PRESET_META_KEY,
|
|
23
|
+
codec: () => import_chunk_XS6GEYYH.codec,
|
|
24
|
+
getInvocationUrl: () => import_chunk_XS6GEYYH.getInvocationUrl,
|
|
25
|
+
getUserFunctionUrlInMetadata: () => import_chunk_XS6GEYYH.getUserFunctionUrlInMetadata,
|
|
26
|
+
matchServiceCredential: () => import_chunk_XS6GEYYH.matchServiceCredential,
|
|
27
|
+
publicKeyToDid: () => import_chunk_XS6GEYYH.publicKeyToDid,
|
|
28
|
+
setUserFunctionUrlInMetadata: () => import_chunk_XS6GEYYH.setUserFunctionUrlInMetadata,
|
|
29
|
+
uploadWorkerFunction: () => import_chunk_XS6GEYYH.uploadWorkerFunction
|
|
30
30
|
});
|
|
31
31
|
module.exports = __toCommonJS(edge_exports);
|
|
32
|
-
var
|
|
32
|
+
var import_chunk_XS6GEYYH = require("../chunk-XS6GEYYH.cjs");
|
|
33
33
|
// Annotate the CommonJS export names for ESM import in node:
|
|
34
34
|
0 && (module.exports = {
|
|
35
35
|
HeaderCodec,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["index.cjs"],
|
|
4
|
-
"sourcesContent": ["import {\n HeaderCodec,\n USERFUNCTIONS_PRESET_META_KEY,\n codec,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n matchServiceCredential,\n publicKeyToDid,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction\n} from \"../chunk-
|
|
4
|
+
"sourcesContent": ["import {\n HeaderCodec,\n USERFUNCTIONS_PRESET_META_KEY,\n codec,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n matchServiceCredential,\n publicKeyToDid,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction\n} from \"../chunk-XS6GEYYH.cjs\";\nexport {\n HeaderCodec,\n USERFUNCTIONS_PRESET_META_KEY,\n codec,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n matchServiceCredential,\n publicKeyToDid,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction\n};\n//# sourceMappingURL=index.cjs.map\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAUO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -29,21 +29,23 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
31
|
AutomationPanel: () => AutomationPanel,
|
|
32
|
-
Bundler: () =>
|
|
32
|
+
Bundler: () => import_chunk_WPP65EYS.Bundler,
|
|
33
33
|
Compiler: () => Compiler,
|
|
34
|
-
FunctionType: () =>
|
|
35
|
-
ScriptAction: () =>
|
|
34
|
+
FunctionType: () => import_chunk_XJOH225K.FunctionType,
|
|
35
|
+
ScriptAction: () => import_chunk_XJOH225K.ScriptAction,
|
|
36
36
|
ScriptContainer: () => ScriptContainer,
|
|
37
37
|
ScriptPlugin: () => ScriptPlugin,
|
|
38
38
|
ScriptSettings: () => ScriptSettings,
|
|
39
|
-
|
|
39
|
+
ScriptSettingsPanel: () => ScriptSettingsPanel,
|
|
40
|
+
ScriptType: () => import_chunk_XJOH225K.ScriptType,
|
|
40
41
|
default: () => src_default,
|
|
41
|
-
initializeBundler: () =>
|
|
42
|
+
initializeBundler: () => import_chunk_WPP65EYS.initializeBundler
|
|
42
43
|
});
|
|
43
44
|
module.exports = __toCommonJS(node_exports);
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
-
var
|
|
45
|
+
var import_chunk_WPP65EYS = require("./chunk-WPP65EYS.cjs");
|
|
46
|
+
var import_chunk_XS6GEYYH = require("./chunk-XS6GEYYH.cjs");
|
|
47
|
+
var import_chunk_XJOH225K = require("./chunk-XJOH225K.cjs");
|
|
48
|
+
var import_chunk_6LYX73ZT = require("./chunk-6LYX73ZT.cjs");
|
|
47
49
|
var import_esbuild = __toESM(require("esbuild-wasm/esbuild.wasm?url"));
|
|
48
50
|
var import_react = __toESM(require("react"));
|
|
49
51
|
var import_app_framework = require("@dxos/app-framework");
|
|
@@ -60,7 +62,11 @@ var import_react2 = require("react");
|
|
|
60
62
|
var import_react3 = __toESM(require("react"));
|
|
61
63
|
var import_react_client = require("@dxos/react-client");
|
|
62
64
|
var import_react_ui = require("@dxos/react-ui");
|
|
63
|
-
var
|
|
65
|
+
var import_react_ui_form = require("@dxos/react-ui-form");
|
|
66
|
+
var import_react4 = __toESM(require("react"));
|
|
67
|
+
var import_react_client2 = require("@dxos/react-client");
|
|
68
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
69
|
+
var import_react_ui2 = require("@dxos/react-ui");
|
|
64
70
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/compiler/compiler.ts";
|
|
65
71
|
var defaultOptions = {
|
|
66
72
|
lib: [
|
|
@@ -110,7 +116,7 @@ var Compiler = class {
|
|
|
110
116
|
}
|
|
111
117
|
};
|
|
112
118
|
var ScriptSettings = ({ settings }) => {
|
|
113
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
119
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_6LYX73ZT.SCRIPT_PLUGIN);
|
|
114
120
|
const client = (0, import_react_client.useClient)();
|
|
115
121
|
const handleAuthenticate = async () => {
|
|
116
122
|
const { identityKey } = client.halo.identity.get();
|
|
@@ -133,18 +139,86 @@ var ScriptSettings = ({ settings }) => {
|
|
|
133
139
|
}
|
|
134
140
|
]);
|
|
135
141
|
};
|
|
136
|
-
return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(
|
|
142
|
+
return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_form.DeprecatedFormInput, {
|
|
137
143
|
label: t("authenticate action label")
|
|
138
144
|
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Button, {
|
|
139
145
|
onClick: handleAuthenticate
|
|
140
146
|
}, t("authenticate button label"))));
|
|
141
147
|
};
|
|
142
|
-
var
|
|
143
|
-
|
|
148
|
+
var ScriptSettingsPanel = ({ script }) => {
|
|
149
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_6LYX73ZT.SCRIPT_PLUGIN);
|
|
150
|
+
const client = (0, import_react_client2.useClient)();
|
|
151
|
+
const space = (0, import_echo2.getSpace)(script);
|
|
152
|
+
const [fn] = (0, import_echo2.useQuery)(space, import_echo2.Filter.schema(import_chunk_XJOH225K.FunctionType, (fn2) => fn2.source === script));
|
|
153
|
+
const handleNameChange = (0, import_react4.useCallback)((event) => {
|
|
154
|
+
script.name = event.target.value;
|
|
155
|
+
}, [
|
|
156
|
+
script
|
|
157
|
+
]);
|
|
158
|
+
const [binding, setBinding] = (0, import_react_ui2.useControlledValue)(fn?.binding ?? "");
|
|
159
|
+
const handleBindingChange = (0, import_react4.useCallback)((event) => {
|
|
160
|
+
setBinding(event.target.value);
|
|
161
|
+
}, [
|
|
162
|
+
setBinding
|
|
163
|
+
]);
|
|
164
|
+
const handleBindingBlur = (0, import_react4.useCallback)(() => {
|
|
165
|
+
fn.binding = binding;
|
|
166
|
+
}, [
|
|
167
|
+
fn,
|
|
168
|
+
binding
|
|
169
|
+
]);
|
|
170
|
+
const functionPath = fn && (0, import_chunk_XS6GEYYH.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
|
|
171
|
+
const functionUrl = functionPath && (0, import_chunk_XS6GEYYH.getInvocationUrl)(functionPath, client.config.values.runtime?.services?.edge?.url ?? "", {
|
|
172
|
+
spaceId: space?.id
|
|
173
|
+
});
|
|
174
|
+
const handleCopy = (0, import_react4.useCallback)(() => functionUrl && navigator.clipboard.writeText(functionUrl), [
|
|
175
|
+
functionUrl
|
|
176
|
+
]);
|
|
177
|
+
return /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
178
|
+
role: "form",
|
|
179
|
+
className: "flex flex-col w-full p-2 gap-4"
|
|
180
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
181
|
+
role: "none",
|
|
182
|
+
className: "flex flex-col gap-1"
|
|
183
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.Label, null, t("name label")), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.TextInput, {
|
|
184
|
+
placeholder: t("object title placeholder"),
|
|
185
|
+
value: script.name ?? "",
|
|
186
|
+
onChange: handleNameChange
|
|
187
|
+
}))), fn && /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement("hr", {
|
|
188
|
+
className: "border-separator"
|
|
189
|
+
}), /* @__PURE__ */ import_react4.default.createElement("h2", null, t("remote function settings heading")), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
190
|
+
role: "none",
|
|
191
|
+
className: "flex flex-col gap-1"
|
|
192
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.Label, null, t("function url label")), /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
193
|
+
role: "none",
|
|
194
|
+
className: "flex gap-1"
|
|
195
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.TextInput, {
|
|
196
|
+
disabled: true,
|
|
197
|
+
value: functionUrl,
|
|
198
|
+
onChange: (event) => {
|
|
199
|
+
fn.name = event.target.value;
|
|
200
|
+
}
|
|
201
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
|
|
202
|
+
onClick: handleCopy
|
|
203
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
|
|
204
|
+
icon: "ph--copy--regular",
|
|
205
|
+
size: 4
|
|
206
|
+
}))))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
207
|
+
role: "none",
|
|
208
|
+
className: "flex flex-col gap-1"
|
|
209
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.Label, null, t("function binding label")), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Input.TextInput, {
|
|
210
|
+
placeholder: t("function binding placeholder"),
|
|
211
|
+
value: binding,
|
|
212
|
+
onChange: handleBindingChange,
|
|
213
|
+
onBlur: handleBindingBlur
|
|
214
|
+
})))));
|
|
215
|
+
};
|
|
216
|
+
var AutomationPanel = (0, import_react2.lazy)(() => import("./AutomationPanel-3B5AGQQV.cjs"));
|
|
217
|
+
var ScriptContainer = (0, import_react2.lazy)(() => import("./ScriptContainer-7VX44TH6.cjs"));
|
|
144
218
|
var translations_default = [
|
|
145
219
|
{
|
|
146
220
|
"en-US": {
|
|
147
|
-
[
|
|
221
|
+
[import_chunk_6LYX73ZT.SCRIPT_PLUGIN]: {
|
|
148
222
|
"plugin name": "Scripts",
|
|
149
223
|
"object title placeholder": "New script",
|
|
150
224
|
"create object label": "Create script",
|
|
@@ -158,7 +232,12 @@ var translations_default = [
|
|
|
158
232
|
"format label": "Format",
|
|
159
233
|
"toggle details label": "Toggle details panel",
|
|
160
234
|
"authenticate action label": "Authenticate functions service",
|
|
161
|
-
"authenticate button label": "Authenticate"
|
|
235
|
+
"authenticate button label": "Authenticate",
|
|
236
|
+
"name label": "Name",
|
|
237
|
+
"remote function settings heading": "Remote Function",
|
|
238
|
+
"function url label": "Invocation URL",
|
|
239
|
+
"function binding label": "Function binding",
|
|
240
|
+
"function binding placeholder": "BINDING"
|
|
162
241
|
}
|
|
163
242
|
}
|
|
164
243
|
}
|
|
@@ -166,7 +245,7 @@ var translations_default = [
|
|
|
166
245
|
var ScriptPlugin = () => {
|
|
167
246
|
const compiler = new Compiler();
|
|
168
247
|
return {
|
|
169
|
-
meta:
|
|
248
|
+
meta: import_chunk_6LYX73ZT.meta_default,
|
|
170
249
|
initialize: async () => {
|
|
171
250
|
await compiler.initialize();
|
|
172
251
|
compiler.setFile("/src/typings.d.ts", "declare module 'https://*';");
|
|
@@ -175,7 +254,7 @@ var ScriptPlugin = () => {
|
|
|
175
254
|
export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;
|
|
176
255
|
export const functionHandler = (handler: FunctionHandler) => handler;
|
|
177
256
|
`);
|
|
178
|
-
await (0,
|
|
257
|
+
await (0, import_chunk_WPP65EYS.initializeBundler)({
|
|
179
258
|
wasmUrl: import_esbuild.default
|
|
180
259
|
});
|
|
181
260
|
},
|
|
@@ -183,11 +262,11 @@ var ScriptPlugin = () => {
|
|
|
183
262
|
settings: {},
|
|
184
263
|
metadata: {
|
|
185
264
|
records: {
|
|
186
|
-
[
|
|
265
|
+
[import_chunk_XJOH225K.ScriptType.typename]: {
|
|
187
266
|
placeholder: [
|
|
188
267
|
"object title placeholder",
|
|
189
268
|
{
|
|
190
|
-
ns:
|
|
269
|
+
ns: import_chunk_6LYX73ZT.SCRIPT_PLUGIN
|
|
191
270
|
}
|
|
192
271
|
],
|
|
193
272
|
icon: "ph--code--regular",
|
|
@@ -201,8 +280,8 @@ var ScriptPlugin = () => {
|
|
|
201
280
|
translations: translations_default,
|
|
202
281
|
echo: {
|
|
203
282
|
schema: [
|
|
204
|
-
|
|
205
|
-
|
|
283
|
+
import_chunk_XJOH225K.ScriptType,
|
|
284
|
+
import_chunk_XJOH225K.FunctionType
|
|
206
285
|
]
|
|
207
286
|
},
|
|
208
287
|
space: {
|
|
@@ -210,10 +289,10 @@ var ScriptPlugin = () => {
|
|
|
210
289
|
label: [
|
|
211
290
|
"create object label",
|
|
212
291
|
{
|
|
213
|
-
ns:
|
|
292
|
+
ns: import_chunk_6LYX73ZT.SCRIPT_PLUGIN
|
|
214
293
|
}
|
|
215
294
|
],
|
|
216
|
-
action:
|
|
295
|
+
action: import_chunk_XJOH225K.ScriptAction.CREATE
|
|
217
296
|
}
|
|
218
297
|
},
|
|
219
298
|
graph: {
|
|
@@ -224,7 +303,7 @@ var ScriptPlugin = () => {
|
|
|
224
303
|
return [];
|
|
225
304
|
}
|
|
226
305
|
return (0, import_plugin_graph.createExtension)({
|
|
227
|
-
id:
|
|
306
|
+
id: import_chunk_XJOH225K.ScriptAction.CREATE,
|
|
228
307
|
filter: (node) => (0, import_plugin_graph.isActionGroup)(node) && node.id.startsWith(import_plugin_space.SpaceAction.ADD_OBJECT),
|
|
229
308
|
actions: ({ node }) => {
|
|
230
309
|
const id = node.id.split("/").at(-1);
|
|
@@ -237,12 +316,12 @@ var ScriptPlugin = () => {
|
|
|
237
316
|
}
|
|
238
317
|
return [
|
|
239
318
|
{
|
|
240
|
-
id: `${
|
|
319
|
+
id: `${import_chunk_6LYX73ZT.SCRIPT_PLUGIN}/create/${node.id}`,
|
|
241
320
|
data: async () => {
|
|
242
321
|
await dispatch([
|
|
243
322
|
{
|
|
244
|
-
plugin:
|
|
245
|
-
action:
|
|
323
|
+
plugin: import_chunk_6LYX73ZT.SCRIPT_PLUGIN,
|
|
324
|
+
action: import_chunk_XJOH225K.ScriptAction.CREATE
|
|
246
325
|
},
|
|
247
326
|
{
|
|
248
327
|
action: import_plugin_space.SpaceAction.ADD_OBJECT,
|
|
@@ -259,7 +338,7 @@ var ScriptPlugin = () => {
|
|
|
259
338
|
label: [
|
|
260
339
|
"create object label",
|
|
261
340
|
{
|
|
262
|
-
ns:
|
|
341
|
+
ns: import_chunk_6LYX73ZT.SCRIPT_PLUGIN
|
|
263
342
|
}
|
|
264
343
|
],
|
|
265
344
|
icon: "ph--code--regular",
|
|
@@ -275,12 +354,12 @@ var ScriptPlugin = () => {
|
|
|
275
354
|
component: ({ data, role }) => {
|
|
276
355
|
switch (role) {
|
|
277
356
|
case "settings": {
|
|
278
|
-
return data.plugin ===
|
|
357
|
+
return data.plugin === import_chunk_6LYX73ZT.meta_default.id ? /* @__PURE__ */ import_react.default.createElement(ScriptSettings, {
|
|
279
358
|
settings: {}
|
|
280
359
|
}) : null;
|
|
281
360
|
}
|
|
282
361
|
case "article": {
|
|
283
|
-
if (data.object instanceof
|
|
362
|
+
if (data.object instanceof import_chunk_XJOH225K.ScriptType) {
|
|
284
363
|
return /* @__PURE__ */ import_react.default.createElement(ScriptContainer, {
|
|
285
364
|
script: data.object,
|
|
286
365
|
env: compiler.environment
|
|
@@ -289,7 +368,7 @@ var ScriptPlugin = () => {
|
|
|
289
368
|
break;
|
|
290
369
|
}
|
|
291
370
|
case "complementary--automation": {
|
|
292
|
-
if (data.
|
|
371
|
+
if (data.subject instanceof import_chunk_XJOH225K.ScriptType) {
|
|
293
372
|
return {
|
|
294
373
|
node: /* @__PURE__ */ import_react.default.createElement(AutomationPanel, {
|
|
295
374
|
subject: data.subject
|
|
@@ -297,6 +376,15 @@ var ScriptPlugin = () => {
|
|
|
297
376
|
disposition: "hoist"
|
|
298
377
|
};
|
|
299
378
|
}
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
381
|
+
case "complementary--settings": {
|
|
382
|
+
if (data.subject instanceof import_chunk_XJOH225K.ScriptType) {
|
|
383
|
+
return /* @__PURE__ */ import_react.default.createElement(ScriptSettingsPanel, {
|
|
384
|
+
script: data.subject
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
break;
|
|
300
388
|
}
|
|
301
389
|
}
|
|
302
390
|
return null;
|
|
@@ -305,11 +393,11 @@ var ScriptPlugin = () => {
|
|
|
305
393
|
intent: {
|
|
306
394
|
resolver: (intent) => {
|
|
307
395
|
switch (intent.action) {
|
|
308
|
-
case
|
|
396
|
+
case import_chunk_XJOH225K.ScriptAction.CREATE: {
|
|
309
397
|
return {
|
|
310
|
-
data: (0, import_echo_schema.create)(
|
|
398
|
+
data: (0, import_echo_schema.create)(import_chunk_XJOH225K.ScriptType, {
|
|
311
399
|
source: (0, import_echo_schema.create)(import_types.TextType, {
|
|
312
|
-
content:
|
|
400
|
+
content: import_chunk_WPP65EYS.templates[0].source
|
|
313
401
|
})
|
|
314
402
|
})
|
|
315
403
|
};
|
|
@@ -331,6 +419,7 @@ var src_default = ScriptPlugin;
|
|
|
331
419
|
ScriptContainer,
|
|
332
420
|
ScriptPlugin,
|
|
333
421
|
ScriptSettings,
|
|
422
|
+
ScriptSettingsPanel,
|
|
334
423
|
ScriptType,
|
|
335
424
|
initializeBundler
|
|
336
425
|
});
|