@dxos/plugin-script 0.8.4-main.f9ba587 → 0.8.4-main.fd6878d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{DeploymentDialog-RIGSJM6A.mjs → DeploymentDialog-C3XH2Z56.mjs} +4 -4
- package/dist/lib/browser/{ScriptContainer-BAN4WZHG.mjs → ScriptContainer-FUBR4OZE.mjs} +9 -7
- package/dist/lib/browser/ScriptContainer-FUBR4OZE.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-IABOSTBK.mjs} +2 -2
- package/dist/lib/{node-esm/app-graph-builder-7EYIHWH4.mjs.map → browser/app-graph-builder-IABOSTBK.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-7CIKV2MG.mjs → chunk-G4A2MGAL.mjs} +9 -285
- package/dist/lib/browser/chunk-G4A2MGAL.mjs.map +7 -0
- package/dist/lib/browser/{chunk-EEL5O3IC.mjs → chunk-IS4OG2UW.mjs} +4 -5
- package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +7 -0
- package/dist/lib/browser/chunk-MWZDJNCQ.mjs +283 -0
- package/dist/lib/browser/chunk-MWZDJNCQ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QHVTSNHD.mjs → chunk-OAVS36Q3.mjs} +3 -3
- package/dist/lib/browser/chunk-OAVS36Q3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QYLAH5AK.mjs → chunk-OULPWKXN.mjs} +8 -10
- package/dist/lib/browser/{chunk-QYLAH5AK.mjs.map → chunk-OULPWKXN.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-OORJVKHC.mjs → chunk-SUOLJH55.mjs} +2 -2
- package/dist/lib/browser/{chunk-OORJVKHC.mjs.map → chunk-SUOLJH55.mjs.map} +2 -2
- package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-RIWQVBPX.mjs} +4 -1
- package/dist/lib/browser/compiler-RIWQVBPX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +15 -18
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-HQRUYTML.mjs → intent-resolver-SAL2TM7U.mjs} +9 -10
- package/dist/lib/browser/intent-resolver-SAL2TM7U.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-FNLARN5M.mjs → react-surface-E3SXU6ON.mjs} +8 -9
- package/dist/lib/browser/react-surface-E3SXU6ON.mjs.map +7 -0
- package/dist/lib/browser/{settings-XU54CGQD.mjs → settings-KCTBK5TY.mjs} +2 -2
- package/dist/lib/browser/templates/index.mjs +9 -0
- package/dist/lib/browser/types/index.mjs +10 -0
- package/dist/lib/node-esm/{DeploymentDialog-6Z7JH3VO.mjs → DeploymentDialog-O2XZVRLU.mjs} +4 -4
- package/dist/lib/node-esm/{ScriptContainer-RB5CSIZ7.mjs → ScriptContainer-VJ75TM24.mjs} +9 -7
- package/dist/lib/node-esm/ScriptContainer-VJ75TM24.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-CQTTAYHP.mjs} +2 -2
- package/dist/lib/{browser/app-graph-builder-HLQ7K3BT.mjs.map → node-esm/app-graph-builder-CQTTAYHP.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-ORZMINLO.mjs → chunk-3BBEM2U7.mjs} +9 -284
- package/dist/lib/node-esm/chunk-3BBEM2U7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HD6MDK3H.mjs → chunk-6WMFL3JL.mjs} +8 -10
- package/dist/lib/node-esm/{chunk-HD6MDK3H.mjs.map → chunk-6WMFL3JL.mjs.map} +3 -3
- package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs +284 -0
- package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-YVJGDDNV.mjs → chunk-IO6T72KY.mjs} +3 -3
- package/dist/lib/node-esm/chunk-IO6T72KY.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OVSJYR6O.mjs → chunk-JIPFLBYA.mjs} +4 -5
- package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ABAPR7VQ.mjs → chunk-PACUN7RS.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-ABAPR7VQ.mjs.map → chunk-PACUN7RS.mjs.map} +2 -2
- package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-S52P5P3F.mjs} +4 -1
- package/dist/lib/node-esm/compiler-S52P5P3F.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +15 -18
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-XLV6FPWH.mjs → intent-resolver-GO53JOPL.mjs} +9 -10
- package/dist/lib/{browser/intent-resolver-HQRUYTML.mjs.map → node-esm/intent-resolver-GO53JOPL.mjs.map} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-BTYC7MGG.mjs → react-surface-W3NRCS5O.mjs} +8 -9
- package/dist/lib/node-esm/react-surface-W3NRCS5O.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-QCMDG2MZ.mjs → settings-DXZ334A3.mjs} +2 -2
- package/dist/lib/node-esm/templates/index.mjs +10 -0
- package/dist/lib/node-esm/templates/index.mjs.map +7 -0
- package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -6
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +0 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/compiler/compiler.d.ts.map +1 -1
- package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
- package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
- package/dist/types/src/components/ScriptContainer.d.ts +3 -3
- package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
- package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/TestPanel/TestContainer.d.ts +1 -1
- package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
- package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
- package/dist/types/src/hooks/deploy.d.ts +2 -2
- package/dist/types/src/hooks/deploy.d.ts.map +1 -1
- package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
- package/dist/types/src/templates/data-generator.d.ts.map +1 -1
- package/dist/types/src/templates/index.d.ts +2 -0
- package/dist/types/src/templates/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/{types.d.ts → types/schema.d.ts} +3 -5
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +69 -58
- package/src/ScriptPlugin.tsx +2 -14
- package/src/capabilities/app-graph-builder.ts +2 -2
- package/src/capabilities/artifact-definition.ts +9 -12
- package/src/capabilities/compiler.ts +2 -1
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +2 -5
- package/src/capabilities/react-surface.tsx +4 -3
- package/src/compiler/compiler.ts +1 -1
- package/src/components/DeploymentDialog/DeploymentDialog.tsx +4 -4
- package/src/components/DeploymentDialog/index.ts +1 -1
- package/src/components/FrameContainer/frame.tsx +1 -1
- package/src/components/ScriptContainer.tsx +6 -4
- package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +2 -1
- package/src/components/ScriptToolbar/ScriptToolbar.tsx +2 -2
- package/src/components/Settings/ScriptObjectSettings.tsx +2 -2
- package/src/components/TestPanel/TestContainer.tsx +4 -3
- package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +2 -1
- package/src/components/TypescriptEditor/TypescriptEditor.tsx +3 -2
- package/src/hooks/deploy.ts +1 -1
- package/src/hooks/template.ts +1 -1
- package/src/hooks/useCreateAndDeployScriptTemplates.ts +1 -0
- package/src/templates/chess.ts +1 -1
- package/src/templates/data-generator.ts +8 -4
- package/src/templates/discord.ts +2 -2
- package/src/templates/forex-effect.ts +1 -1
- package/src/templates/forex.ts +1 -1
- package/src/templates/gmail.ts +4 -4
- package/src/templates/index.ts +2 -0
- package/src/translations.ts +2 -0
- package/src/types/index.ts +5 -0
- package/src/{types.ts → types/schema.ts} +2 -7
- package/dist/lib/browser/ScriptContainer-BAN4WZHG.mjs.map +0 -7
- package/dist/lib/browser/artifact-definition-KMBAZFRR.mjs +0 -249
- package/dist/lib/browser/artifact-definition-KMBAZFRR.mjs.map +0 -7
- package/dist/lib/browser/chunk-7CIKV2MG.mjs.map +0 -7
- package/dist/lib/browser/chunk-EEL5O3IC.mjs.map +0 -7
- package/dist/lib/browser/chunk-QHVTSNHD.mjs.map +0 -7
- package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-FNLARN5M.mjs.map +0 -7
- package/dist/lib/browser/types.mjs +0 -13
- package/dist/lib/node-esm/ScriptContainer-RB5CSIZ7.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-definition-EBLXG5AR.mjs +0 -250
- package/dist/lib/node-esm/artifact-definition-EBLXG5AR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ORZMINLO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OVSJYR6O.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YVJGDDNV.mjs.map +0 -7
- package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-XLV6FPWH.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-BTYC7MGG.mjs.map +0 -7
- package/dist/types/src/types.d.ts.map +0 -1
- /package/dist/lib/browser/{DeploymentDialog-RIGSJM6A.mjs.map → DeploymentDialog-C3XH2Z56.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-XU54CGQD.mjs.map → settings-KCTBK5TY.mjs.map} +0 -0
- /package/dist/lib/browser/{types.mjs.map → templates/index.mjs.map} +0 -0
- /package/dist/lib/{node-esm/DeploymentDialog-6Z7JH3VO.mjs.map → browser/types/index.mjs.map} +0 -0
- /package/dist/lib/node-esm/{types.mjs.map → DeploymentDialog-O2XZVRLU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-QCMDG2MZ.mjs.map → settings-DXZ334A3.mjs.map} +0 -0
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
meta
|
|
3
3
|
} from "./chunk-QYAREHGH.mjs";
|
|
4
4
|
|
|
5
|
-
// src/types.ts
|
|
5
|
+
// src/types/schema.ts
|
|
6
6
|
import { Schema } from "effect";
|
|
7
7
|
import { SpaceSchema } from "@dxos/client/echo";
|
|
8
8
|
import { ScriptType } from "@dxos/functions";
|
|
9
9
|
import { EditorInputMode } from "@dxos/react-ui-editor";
|
|
10
10
|
(function(ScriptAction2) {
|
|
11
|
-
const SCRIPT_ACTION = `${SCRIPT_PLUGIN}/action`;
|
|
12
11
|
ScriptAction2.CreateScriptSchema = Schema.Struct({
|
|
13
12
|
name: Schema.optional(Schema.String),
|
|
14
13
|
// TODO(wittjosiah): Placeholder annotation?
|
|
@@ -17,7 +16,7 @@ import { EditorInputMode } from "@dxos/react-ui-editor";
|
|
|
17
16
|
})),
|
|
18
17
|
initialTemplateId: Schema.optional(Schema.String)
|
|
19
18
|
});
|
|
20
|
-
class Create extends Schema.TaggedClass()(`${
|
|
19
|
+
class Create extends Schema.TaggedClass()(`${meta.id}/action/create`, {
|
|
21
20
|
input: Schema.extend(ScriptAction2.CreateScriptSchema, Schema.Struct({
|
|
22
21
|
space: SpaceSchema
|
|
23
22
|
})),
|
|
@@ -37,4 +36,4 @@ export {
|
|
|
37
36
|
ScriptSettingsSchema,
|
|
38
37
|
ScriptAction
|
|
39
38
|
};
|
|
40
|
-
//# sourceMappingURL=chunk-
|
|
39
|
+
//# sourceMappingURL=chunk-IS4OG2UW.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/schema.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { EditorInputMode } from '@dxos/react-ui-editor';\n\nimport { meta } from '../meta';\n\nexport namespace ScriptAction {\n export const CreateScriptSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),\n initialTemplateId: Schema.optional(Schema.String),\n });\n\n export type CreateScriptProps = Schema.Schema.Type<typeof CreateScriptSchema>;\n\n export class Create extends Schema.TaggedClass<Create>()(`${meta.id}/action/create`, {\n input: Schema.extend(CreateScriptSchema, Schema.Struct({ space: SpaceSchema })),\n output: Schema.Struct({\n object: ScriptType,\n }),\n }) {}\n}\n\nexport const ScriptSettingsSchema = Schema.mutable(\n Schema.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettingsProps = Schema.Schema.Type<typeof ScriptSettingsSchema>;\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;UAIfC,eAAAA;gBACFC,qBAAqBC,OAAOC,OAAO;IAC9CC,MAAMF,OAAOG,SAASH,OAAOI,MAAM;;IAEnCC,SAASL,OAAOG,SAASH,OAAOI,OAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAAmBR,OAAOG,SAASH,OAAOI,MAAM;EAClD,CAAA;EAIO,MAAMK,eAAeT,OAAOU,YAAW,EAAW,GAAGC,KAAKC,EAAE,kBAAkB;IACnFC,OAAOb,OAAOc,OAAMhB,cAACC,oBAAoBC,OAAOC,OAAO;MAAEc,OAAOC;IAAY,CAAA,CAAA;IAC5EC,QAAQjB,OAAOC,OAAO;MACpBiB,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBALSV,SAAAA;AAMf,GAhBiBX,iBAAAA,eAAAA,CAAAA,EAAAA;AAkBV,IAAMsB,uBAAuBpB,OAAOqB,QACzCrB,OAAOC,OAAO;EACZqB,iBAAiBC;AACnB,CAAA,CAAA;;",
|
|
6
|
+
"names": ["Schema", "SpaceSchema", "ScriptType", "EditorInputMode", "ScriptAction", "CreateScriptSchema", "Schema", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "Create", "TaggedClass", "meta", "id", "input", "extend", "space", "SpaceSchema", "output", "object", "ScriptType", "ScriptSettingsSchema", "mutable", "editorInputMode", "EditorInputMode"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import {
|
|
2
|
+
templates
|
|
3
|
+
} from "./chunk-G4A2MGAL.mjs";
|
|
4
|
+
import {
|
|
5
|
+
deployScript,
|
|
6
|
+
getFunctionUrl,
|
|
7
|
+
isScriptDeployed
|
|
8
|
+
} from "./chunk-SUOLJH55.mjs";
|
|
9
|
+
import {
|
|
10
|
+
SCRIPT_PLUGIN
|
|
11
|
+
} from "./chunk-QYAREHGH.mjs";
|
|
12
|
+
|
|
13
|
+
// src/hooks/deploy.ts
|
|
14
|
+
import { useEffect, useMemo } from "react";
|
|
15
|
+
import { FunctionType, getUserFunctionUrlInMetadata } from "@dxos/functions";
|
|
16
|
+
import { log } from "@dxos/log";
|
|
17
|
+
import { useClient } from "@dxos/react-client";
|
|
18
|
+
import { Query, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
19
|
+
import { createMenuAction } from "@dxos/react-ui-menu";
|
|
20
|
+
import { errorMessageColors } from "@dxos/react-ui-theme";
|
|
21
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/hooks/deploy.ts";
|
|
22
|
+
var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }) => {
|
|
23
|
+
const errorItem = createMenuAction("error", () => {
|
|
24
|
+
}, {
|
|
25
|
+
label: state.error ?? [
|
|
26
|
+
"no error label",
|
|
27
|
+
{
|
|
28
|
+
ns: SCRIPT_PLUGIN
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
icon: "ph--warning-circle--regular",
|
|
32
|
+
hidden: !state.error,
|
|
33
|
+
classNames: state.error && errorMessageColors
|
|
34
|
+
});
|
|
35
|
+
const deployAction = createMenuAction("deploy", async () => {
|
|
36
|
+
if (!script.source || !space) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
state.error = void 0;
|
|
40
|
+
state.deploying = true;
|
|
41
|
+
const result = await deployScript({
|
|
42
|
+
script,
|
|
43
|
+
client,
|
|
44
|
+
space,
|
|
45
|
+
fn,
|
|
46
|
+
existingFunctionUrl
|
|
47
|
+
});
|
|
48
|
+
if (!result.success) {
|
|
49
|
+
log.catch(result.error, void 0, {
|
|
50
|
+
F: __dxlog_file,
|
|
51
|
+
L: 59,
|
|
52
|
+
S: void 0,
|
|
53
|
+
C: (f, a) => f(...a)
|
|
54
|
+
});
|
|
55
|
+
state.error = t("upload failed label");
|
|
56
|
+
}
|
|
57
|
+
state.deploying = false;
|
|
58
|
+
}, {
|
|
59
|
+
type: "deploy",
|
|
60
|
+
label: [
|
|
61
|
+
state.deploying ? "pending label" : "deploy label",
|
|
62
|
+
{
|
|
63
|
+
ns: SCRIPT_PLUGIN
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
|
|
67
|
+
disabled: state.deploying,
|
|
68
|
+
classNames: state.deploying ? "[&_svg]:animate-spin" : ""
|
|
69
|
+
});
|
|
70
|
+
const copyAction = createMenuAction("copy", async () => {
|
|
71
|
+
if (!state.functionUrl) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
await navigator.clipboard.writeText(state.functionUrl);
|
|
75
|
+
}, {
|
|
76
|
+
type: "copy",
|
|
77
|
+
label: [
|
|
78
|
+
"copy link label",
|
|
79
|
+
{
|
|
80
|
+
ns: SCRIPT_PLUGIN
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
icon: "ph--link--regular",
|
|
84
|
+
disabled: !state.functionUrl
|
|
85
|
+
});
|
|
86
|
+
return {
|
|
87
|
+
nodes: [
|
|
88
|
+
errorItem,
|
|
89
|
+
deployAction,
|
|
90
|
+
copyAction
|
|
91
|
+
],
|
|
92
|
+
edges: [
|
|
93
|
+
{
|
|
94
|
+
source: "root",
|
|
95
|
+
target: "error"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
source: "root",
|
|
99
|
+
target: "deploy"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
source: "root",
|
|
103
|
+
target: "copy"
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
var useDeployState = ({ state, script }) => {
|
|
109
|
+
const { space, client, fn, existingFunctionUrl } = useDeployDeps({
|
|
110
|
+
script
|
|
111
|
+
});
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
if (!existingFunctionUrl) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
state.functionUrl = getFunctionUrl({
|
|
117
|
+
script,
|
|
118
|
+
fn,
|
|
119
|
+
edgeUrl: client.config.values.runtime?.services?.edge?.url ?? ""
|
|
120
|
+
});
|
|
121
|
+
}, [
|
|
122
|
+
existingFunctionUrl,
|
|
123
|
+
space,
|
|
124
|
+
fn,
|
|
125
|
+
script,
|
|
126
|
+
client.config.values.runtime?.services?.edge?.url
|
|
127
|
+
]);
|
|
128
|
+
useEffect(() => {
|
|
129
|
+
state.deployed = isScriptDeployed({
|
|
130
|
+
script,
|
|
131
|
+
fn
|
|
132
|
+
});
|
|
133
|
+
}, [
|
|
134
|
+
script.changed,
|
|
135
|
+
existingFunctionUrl,
|
|
136
|
+
fn,
|
|
137
|
+
script
|
|
138
|
+
]);
|
|
139
|
+
};
|
|
140
|
+
var useDeployDeps = ({ script }) => {
|
|
141
|
+
const space = getSpace(script);
|
|
142
|
+
const [fn] = useQuery(space, Query.type(FunctionType, {
|
|
143
|
+
source: Ref.make(script)
|
|
144
|
+
}));
|
|
145
|
+
const client = useClient();
|
|
146
|
+
const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [
|
|
147
|
+
fn
|
|
148
|
+
]);
|
|
149
|
+
return {
|
|
150
|
+
space,
|
|
151
|
+
fn,
|
|
152
|
+
client,
|
|
153
|
+
existingFunctionUrl
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
// src/hooks/useToolbarState.ts
|
|
158
|
+
import { useMemo as useMemo2 } from "react";
|
|
159
|
+
import { live } from "@dxos/live-object";
|
|
160
|
+
var useToolbarState = (initialState = {}) => {
|
|
161
|
+
return useMemo2(() => live(initialState), []);
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
// src/hooks/format.ts
|
|
165
|
+
import { format } from "prettier";
|
|
166
|
+
import prettierPluginEstree from "prettier/plugins/estree";
|
|
167
|
+
import prettierPluginTypescript from "prettier/plugins/typescript";
|
|
168
|
+
import { log as log2 } from "@dxos/log";
|
|
169
|
+
import { createMenuAction as createMenuAction2 } from "@dxos/react-ui-menu";
|
|
170
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/hooks/format.ts";
|
|
171
|
+
var createFormat = (script) => {
|
|
172
|
+
const formatAction = createMenuAction2("format", async () => {
|
|
173
|
+
if (!script.source) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
try {
|
|
177
|
+
script.source.target.content = await format(script.source.target.content, {
|
|
178
|
+
parser: "typescript",
|
|
179
|
+
plugins: [
|
|
180
|
+
prettierPluginEstree,
|
|
181
|
+
prettierPluginTypescript
|
|
182
|
+
],
|
|
183
|
+
semi: true,
|
|
184
|
+
singleQuote: true
|
|
185
|
+
});
|
|
186
|
+
} catch (err) {
|
|
187
|
+
log2.catch(err, void 0, {
|
|
188
|
+
F: __dxlog_file2,
|
|
189
|
+
L: 34,
|
|
190
|
+
S: void 0,
|
|
191
|
+
C: (f, a) => f(...a)
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}, {
|
|
195
|
+
label: [
|
|
196
|
+
"format label",
|
|
197
|
+
{
|
|
198
|
+
ns: SCRIPT_PLUGIN
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
icon: "ph--magic-wand--regular"
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
204
|
+
nodes: [
|
|
205
|
+
formatAction
|
|
206
|
+
],
|
|
207
|
+
edges: [
|
|
208
|
+
{
|
|
209
|
+
source: "root",
|
|
210
|
+
target: "format"
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
// src/hooks/template.ts
|
|
217
|
+
import { Obj } from "@dxos/echo";
|
|
218
|
+
import { FUNCTIONS_PRESET_META_KEY } from "@dxos/functions";
|
|
219
|
+
import { createMenuAction as createMenuAction3, createMenuItemGroup } from "@dxos/react-ui-menu";
|
|
220
|
+
var createTemplateSelectGroup = () => {
|
|
221
|
+
return createMenuItemGroup("template-select", {
|
|
222
|
+
label: [
|
|
223
|
+
"template select group label",
|
|
224
|
+
{
|
|
225
|
+
ns: SCRIPT_PLUGIN
|
|
226
|
+
}
|
|
227
|
+
],
|
|
228
|
+
variant: "dropdownMenu"
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
var createTemplateSelectActions = (script) => {
|
|
232
|
+
return templates.map((template) => {
|
|
233
|
+
return createMenuAction3(`template--${template.id}`, () => {
|
|
234
|
+
script.name = template.name;
|
|
235
|
+
script.source.target.content = template.source;
|
|
236
|
+
const metaKeys = Obj.getMeta(script).keys;
|
|
237
|
+
const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
|
|
238
|
+
if (oldPresetIndex >= 0) {
|
|
239
|
+
metaKeys.splice(oldPresetIndex, 1);
|
|
240
|
+
}
|
|
241
|
+
if (template.presetId) {
|
|
242
|
+
metaKeys.push({
|
|
243
|
+
source: FUNCTIONS_PRESET_META_KEY,
|
|
244
|
+
id: template.presetId
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}, {
|
|
248
|
+
label: template.name,
|
|
249
|
+
value: template.id,
|
|
250
|
+
type: "template"
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
var createTemplateSelect = (script) => {
|
|
255
|
+
const templateSelectGroup = createTemplateSelectGroup();
|
|
256
|
+
const templateSelectActions = createTemplateSelectActions(script);
|
|
257
|
+
return {
|
|
258
|
+
nodes: [
|
|
259
|
+
templateSelectGroup,
|
|
260
|
+
...templateSelectActions
|
|
261
|
+
],
|
|
262
|
+
edges: [
|
|
263
|
+
{
|
|
264
|
+
source: "root",
|
|
265
|
+
target: "template-select"
|
|
266
|
+
},
|
|
267
|
+
...templateSelectActions.map((action) => ({
|
|
268
|
+
source: "template-select",
|
|
269
|
+
target: action.id
|
|
270
|
+
}))
|
|
271
|
+
]
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
export {
|
|
276
|
+
createDeploy,
|
|
277
|
+
useDeployState,
|
|
278
|
+
useDeployDeps,
|
|
279
|
+
createFormat,
|
|
280
|
+
createTemplateSelect,
|
|
281
|
+
useToolbarState
|
|
282
|
+
};
|
|
283
|
+
//# sourceMappingURL=chunk-MWZDJNCQ.mjs.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"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { FunctionType, type ScriptType, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { Query, Ref, type Space, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { type TFunction } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\nimport { errorMessageColors } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { deployScript, getFunctionUrl, isScriptDeployed } from '../util';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport type CreateDeployOptions = {\n state: Partial<DeployState>;\n script: ScriptType;\n fn: FunctionType;\n space?: Space;\n existingFunctionUrl?: string;\n client: Client;\n t: TFunction;\n};\n\nexport const createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }: CreateDeployOptions) => {\n // TODO(wittjosiah): Should this be an action?\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 classNames: state.error && errorMessageColors,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>(\n 'deploy',\n async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n const result = await deployScript({ script, client, space, fn, existingFunctionUrl });\n\n if (!result.success) {\n log.catch(result.error);\n state.error = t('upload failed label');\n }\n\n state.deploying = false;\n },\n {\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\n const copyAction = createMenuAction<DeployActionProperties>(\n 'copy',\n async () => {\n if (!state.functionUrl) {\n return;\n }\n await navigator.clipboard.writeText(state.functionUrl);\n },\n {\n type: 'copy',\n label: ['copy link label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n },\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\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, fn, existingFunctionUrl } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n state.functionUrl = getFunctionUrl({\n script,\n fn,\n edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',\n });\n }, [existingFunctionUrl, space, fn, script, client.config.values.runtime?.services?.edge?.url]);\n\n useEffect(() => {\n state.deployed = isScriptDeployed({ script, fn });\n }, [script.changed, existingFunctionUrl, fn, script]);\n};\n\nexport const useDeployDeps = ({ script }: { script: ScriptType }) => {\n const space = getSpace(script);\n const [fn] = useQuery(space, Query.type(FunctionType, { source: Ref.make(script) }));\n const client = useClient();\n const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [fn]);\n return { space, fn, client, existingFunctionUrl };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { live } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\n\nexport type ScriptToolbarState = Partial<DeployState>;\n\n// TODO(burdon): Replace with context provider?\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => live<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';\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 = (script: ScriptType) => {\n const formatAction = createMenuAction(\n 'format',\n 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 },\n {\n label: ['format label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n },\n );\n\n return {\n nodes: [formatAction],\n edges: [\n {\n source: 'root',\n target: 'format',\n },\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';\nimport { createMenuAction, createMenuItemGroup } 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 = (script: ScriptType) => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(\n `template--${template.id}`,\n () => {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = Obj.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 label: template.name,\n value: template.id,\n type: 'template',\n },\n );\n });\n};\n\nexport const createTemplateSelect = (script: ScriptType) => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions(script);\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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useEffect", "useMemo", "FunctionType", "getUserFunctionUrlInMetadata", "log", "useClient", "Query", "Ref", "getMeta", "getSpace", "useQuery", "createMenuAction", "errorMessageColors", "createDeploy", "state", "script", "space", "fn", "client", "existingFunctionUrl", "t", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "classNames", "errorMessageColors", "deployAction", "source", "undefined", "deploying", "result", "deployScript", "success", "log", "catch", "type", "disabled", "copyAction", "functionUrl", "navigator", "clipboard", "writeText", "nodes", "edges", "target", "useDeployState", "useDeployDeps", "useEffect", "getFunctionUrl", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "deployed", "isScriptDeployed", "changed", "getSpace", "useQuery", "Query", "FunctionType", "Ref", "make", "useClient", "useMemo", "getUserFunctionUrlInMetadata", "getMeta", "useMemo", "live", "useToolbarState", "initialState", "useMemo", "live", "format", "prettierPluginEstree", "prettierPluginTypescript", "log", "createMenuAction", "createFormat", "script", "formatAction", "createMenuAction", "source", "target", "content", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "label", "ns", "SCRIPT_PLUGIN", "icon", "nodes", "edges", "Obj", "FUNCTIONS_PRESET_META_KEY", "createMenuAction", "createMenuItemGroup", "createTemplateSelectGroup", "createMenuItemGroup", "label", "ns", "SCRIPT_PLUGIN", "variant", "createTemplateSelectActions", "script", "templates", "map", "template", "createMenuAction", "id", "name", "source", "target", "content", "metaKeys", "Obj", "getMeta", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "value", "type", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "nodes", "edges", "action"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCreateAndDeployScriptTemplates
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SUOLJH55.mjs";
|
|
4
4
|
import {
|
|
5
5
|
SCRIPT_PLUGIN
|
|
6
6
|
} from "./chunk-QYAREHGH.mjs";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
// src/components/DeploymentDialog/DeploymentDialog.tsx
|
|
9
9
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
10
10
|
import React, { useEffect, useMemo } from "react";
|
|
11
|
-
import {
|
|
11
|
+
import { LayoutAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
12
12
|
import { getSpace } from "@dxos/react-client/echo";
|
|
13
13
|
import { Button, Dialog, Icon, useTranslation } from "@dxos/react-ui";
|
|
14
14
|
var DEPLOYMENT_DIALOG = `${SCRIPT_PLUGIN}/deployment/dialog`;
|
|
@@ -150,4 +150,4 @@ export {
|
|
|
150
150
|
DEPLOYMENT_DIALOG,
|
|
151
151
|
DeploymentDialog_default
|
|
152
152
|
};
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-OAVS36Q3.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/DeploymentDialog/DeploymentDialog.tsx", "../../../src/components/DeploymentDialog/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';\nimport { type DataType } from '@dxos/schema';\n\nimport { useCreateAndDeployScriptTemplates } from '../../hooks/useCreateAndDeployScriptTemplates';\nimport { SCRIPT_PLUGIN } from '../../meta';\nimport { type Template } from '../../templates';\n\nexport const DEPLOYMENT_DIALOG = `${SCRIPT_PLUGIN}/deployment/dialog`;\n\n// TODO(ZaymonFC):\n// - Show activity and feedback to the user.\n// - Only take an array of templateIds and get the name from the data.\n// - Pending / onError states.\n\ntype DeploymentDialogProps = {\n accessToken: DataType.AccessToken;\n scriptTemplates: Template[];\n};\n\nexport const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const space = useMemo(() => getSpace(accessToken), [accessToken]);\n\n // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.\n // Deployment shouldn't be tied to the lifecycle of the dialogue component.\n const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n useEffect(() => {\n if (status === 'success') {\n // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${SCRIPT_PLUGIN}/deployment-success`,\n icon: 'ph--check--regular',\n duration: Infinity,\n title: ['script deployment toast label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],\n description: ['script deployment toast description', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],\n closeLabel: ['script deployment toast close label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],\n },\n }),\n );\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n }\n if (status === 'error') {\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${SCRIPT_PLUGIN}/deployment-error`,\n icon: 'ph--warning--regular',\n duration: Infinity,\n title: ['script deployment error toast label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],\n description: [\n 'script deployment error toast description',\n { ns: SCRIPT_PLUGIN, count: scriptTemplates.length },\n ],\n closeLabel: [\n 'script deployment error toast close label',\n { ns: SCRIPT_PLUGIN, count: scriptTemplates.length },\n ],\n },\n }),\n );\n }\n }, [status, dispatch]);\n\n return (\n <Dialog.Content>\n <div className='flex justify-between items-center'>\n <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Button density='fine' variant='ghost'>\n <Icon icon='ph--x--regular' size={4} />\n </Button>\n </Dialog.Close>\n </div>\n <div role='none' className='plb-4'>\n {/* TODO: Implement deployment logic and UI. */}\n <p>{t('deployment dialog scripts found message', { count: scriptTemplates.length })}</p>\n <ul className='pbs-2'>\n {scriptTemplates.map((template) => {\n return <li key={template.id}>{template.name}</li>;\n })}\n </ul>\n </div>\n <div role='none' className='flex flex-row-reverse gap-1'>\n <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>\n {status === 'pending'\n ? t('deployment dialog deploy functions pending button label', { count: scriptTemplates.length })\n : t('deployment dialog deploy functions button label', { count: scriptTemplates.length })}\n </Button>\n <Dialog.Close asChild disabled={status === 'pending'}>\n <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>\n </Dialog.Close>\n </div>\n </Dialog.Content>\n );\n};\n\nexport default DeploymentDialog;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DEPLOYMENT_DIALOG, DeploymentDialog } from './DeploymentDialog';\n\nexport { DEPLOYMENT_DIALOG };\n\nexport default DeploymentDialog;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useEffect", "useMemo", "LayoutAction", "createIntent", "useIntentDispatcher", "getSpace", "Button", "Dialog", "Icon", "useTranslation", "DEPLOYMENT_DIALOG", "SCRIPT_PLUGIN", "DeploymentDialog", "accessToken", "scriptTemplates", "t", "useTranslation", "space", "useMemo", "getSpace", "handleCreateAndDeployScripts", "status", "useCreateAndDeployScriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "useEffect", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "icon", "duration", "Infinity", "title", "ns", "count", "length", "description", "closeLabel", "UpdateDialog", "options", "state", "Dialog", "Content", "div", "className", "Title", "Close", "asChild", "Button", "density", "variant", "Icon", "size", "role", "p", "ul", "map", "template", "li", "key", "name", "onClick", "disabled", "DeploymentDialog"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useDeployState,
|
|
3
3
|
useToolbarState
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MWZDJNCQ.mjs";
|
|
5
5
|
import {
|
|
6
6
|
SCRIPT_PLUGIN,
|
|
7
7
|
meta
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
12
12
|
import { Octokit } from "@octokit/core";
|
|
13
13
|
import React, { useCallback, useEffect, useState } from "react";
|
|
14
|
-
import {
|
|
14
|
+
import { SettingsAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
15
15
|
import { FunctionType, getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
|
|
16
16
|
import { log } from "@dxos/log";
|
|
17
17
|
import { useClient } from "@dxos/react-client";
|
|
18
|
-
import { Filter, getMeta, getSpace,
|
|
18
|
+
import { Filter, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
19
19
|
import { Button, Clipboard, Input, useControlledState, useTranslation } from "@dxos/react-ui";
|
|
20
20
|
import { DataType } from "@dxos/schema";
|
|
21
21
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
|
|
@@ -522,7 +522,7 @@ var RobotAvatar = () => {
|
|
|
522
522
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
523
523
|
import React4 from "react";
|
|
524
524
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
525
|
-
var TestContainer = ({ script
|
|
525
|
+
var TestContainer = ({ script }) => {
|
|
526
526
|
var _effect = _useSignals4();
|
|
527
527
|
try {
|
|
528
528
|
const state = useToolbarState();
|
|
@@ -530,9 +530,7 @@ var TestContainer = ({ script, role }) => {
|
|
|
530
530
|
state,
|
|
531
531
|
script
|
|
532
532
|
});
|
|
533
|
-
return /* @__PURE__ */ React4.createElement(StackItem.Content, {
|
|
534
|
-
role
|
|
535
|
-
}, /* @__PURE__ */ React4.createElement(TestPanel, {
|
|
533
|
+
return /* @__PURE__ */ React4.createElement(StackItem.Content, null, /* @__PURE__ */ React4.createElement(TestPanel, {
|
|
536
534
|
functionUrl: state.functionUrl
|
|
537
535
|
}));
|
|
538
536
|
} finally {
|
|
@@ -542,8 +540,8 @@ var TestContainer = ({ script, role }) => {
|
|
|
542
540
|
|
|
543
541
|
// src/components/index.ts
|
|
544
542
|
import { lazy } from "react";
|
|
545
|
-
var ScriptContainer = lazy(() => import("./ScriptContainer-
|
|
546
|
-
var DeploymentDialog = lazy(() => import("./DeploymentDialog-
|
|
543
|
+
var ScriptContainer = lazy(() => import("./ScriptContainer-FUBR4OZE.mjs"));
|
|
544
|
+
var DeploymentDialog = lazy(() => import("./DeploymentDialog-C3XH2Z56.mjs"));
|
|
547
545
|
|
|
548
546
|
export {
|
|
549
547
|
ScriptObjectSettings,
|
|
@@ -554,4 +552,4 @@ export {
|
|
|
554
552
|
ScriptContainer,
|
|
555
553
|
DeploymentDialog
|
|
556
554
|
};
|
|
557
|
-
//# sourceMappingURL=chunk-
|
|
555
|
+
//# sourceMappingURL=chunk-OULPWKXN.mjs.map
|