@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.
Files changed (150) hide show
  1. package/dist/lib/browser/{DeploymentDialog-RIGSJM6A.mjs → DeploymentDialog-C3XH2Z56.mjs} +4 -4
  2. package/dist/lib/browser/{ScriptContainer-BAN4WZHG.mjs → ScriptContainer-FUBR4OZE.mjs} +9 -7
  3. package/dist/lib/browser/ScriptContainer-FUBR4OZE.mjs.map +7 -0
  4. package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-IABOSTBK.mjs} +2 -2
  5. package/dist/lib/{node-esm/app-graph-builder-7EYIHWH4.mjs.map → browser/app-graph-builder-IABOSTBK.mjs.map} +3 -3
  6. package/dist/lib/browser/{chunk-7CIKV2MG.mjs → chunk-G4A2MGAL.mjs} +9 -285
  7. package/dist/lib/browser/chunk-G4A2MGAL.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-EEL5O3IC.mjs → chunk-IS4OG2UW.mjs} +4 -5
  9. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-MWZDJNCQ.mjs +283 -0
  11. package/dist/lib/browser/chunk-MWZDJNCQ.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-QHVTSNHD.mjs → chunk-OAVS36Q3.mjs} +3 -3
  13. package/dist/lib/browser/chunk-OAVS36Q3.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-QYLAH5AK.mjs → chunk-OULPWKXN.mjs} +8 -10
  15. package/dist/lib/browser/{chunk-QYLAH5AK.mjs.map → chunk-OULPWKXN.mjs.map} +3 -3
  16. package/dist/lib/browser/{chunk-OORJVKHC.mjs → chunk-SUOLJH55.mjs} +2 -2
  17. package/dist/lib/browser/{chunk-OORJVKHC.mjs.map → chunk-SUOLJH55.mjs.map} +2 -2
  18. package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-RIWQVBPX.mjs} +4 -1
  19. package/dist/lib/browser/compiler-RIWQVBPX.mjs.map +7 -0
  20. package/dist/lib/browser/index.mjs +15 -18
  21. package/dist/lib/browser/index.mjs.map +3 -3
  22. package/dist/lib/browser/{intent-resolver-HQRUYTML.mjs → intent-resolver-SAL2TM7U.mjs} +9 -10
  23. package/dist/lib/browser/intent-resolver-SAL2TM7U.mjs.map +7 -0
  24. package/dist/lib/browser/meta.json +1 -1
  25. package/dist/lib/browser/{react-surface-FNLARN5M.mjs → react-surface-E3SXU6ON.mjs} +8 -9
  26. package/dist/lib/browser/react-surface-E3SXU6ON.mjs.map +7 -0
  27. package/dist/lib/browser/{settings-XU54CGQD.mjs → settings-KCTBK5TY.mjs} +2 -2
  28. package/dist/lib/browser/templates/index.mjs +9 -0
  29. package/dist/lib/browser/types/index.mjs +10 -0
  30. package/dist/lib/node-esm/{DeploymentDialog-6Z7JH3VO.mjs → DeploymentDialog-O2XZVRLU.mjs} +4 -4
  31. package/dist/lib/node-esm/{ScriptContainer-RB5CSIZ7.mjs → ScriptContainer-VJ75TM24.mjs} +9 -7
  32. package/dist/lib/node-esm/ScriptContainer-VJ75TM24.mjs.map +7 -0
  33. package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-CQTTAYHP.mjs} +2 -2
  34. package/dist/lib/{browser/app-graph-builder-HLQ7K3BT.mjs.map → node-esm/app-graph-builder-CQTTAYHP.mjs.map} +3 -3
  35. package/dist/lib/node-esm/{chunk-ORZMINLO.mjs → chunk-3BBEM2U7.mjs} +9 -284
  36. package/dist/lib/node-esm/chunk-3BBEM2U7.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-HD6MDK3H.mjs → chunk-6WMFL3JL.mjs} +8 -10
  38. package/dist/lib/node-esm/{chunk-HD6MDK3H.mjs.map → chunk-6WMFL3JL.mjs.map} +3 -3
  39. package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs +284 -0
  40. package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-YVJGDDNV.mjs → chunk-IO6T72KY.mjs} +3 -3
  42. package/dist/lib/node-esm/chunk-IO6T72KY.mjs.map +7 -0
  43. package/dist/lib/node-esm/{chunk-OVSJYR6O.mjs → chunk-JIPFLBYA.mjs} +4 -5
  44. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +7 -0
  45. package/dist/lib/node-esm/{chunk-ABAPR7VQ.mjs → chunk-PACUN7RS.mjs} +2 -2
  46. package/dist/lib/node-esm/{chunk-ABAPR7VQ.mjs.map → chunk-PACUN7RS.mjs.map} +2 -2
  47. package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-S52P5P3F.mjs} +4 -1
  48. package/dist/lib/node-esm/compiler-S52P5P3F.mjs.map +7 -0
  49. package/dist/lib/node-esm/index.mjs +15 -18
  50. package/dist/lib/node-esm/index.mjs.map +3 -3
  51. package/dist/lib/node-esm/{intent-resolver-XLV6FPWH.mjs → intent-resolver-GO53JOPL.mjs} +9 -10
  52. package/dist/lib/{browser/intent-resolver-HQRUYTML.mjs.map → node-esm/intent-resolver-GO53JOPL.mjs.map} +3 -3
  53. package/dist/lib/node-esm/meta.json +1 -1
  54. package/dist/lib/node-esm/{react-surface-BTYC7MGG.mjs → react-surface-W3NRCS5O.mjs} +8 -9
  55. package/dist/lib/node-esm/react-surface-W3NRCS5O.mjs.map +7 -0
  56. package/dist/lib/node-esm/{settings-QCMDG2MZ.mjs → settings-DXZ334A3.mjs} +2 -2
  57. package/dist/lib/node-esm/templates/index.mjs +10 -0
  58. package/dist/lib/node-esm/templates/index.mjs.map +7 -0
  59. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -6
  60. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  61. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  64. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/index.d.ts +0 -1
  67. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  70. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  71. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  72. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  73. package/dist/types/src/components/ScriptContainer.d.ts +3 -3
  74. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  75. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  76. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  77. package/dist/types/src/components/TestPanel/TestContainer.d.ts +1 -1
  78. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  79. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  80. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  81. package/dist/types/src/hooks/deploy.d.ts +2 -2
  82. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  83. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  84. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  85. package/dist/types/src/templates/index.d.ts +2 -0
  86. package/dist/types/src/templates/index.d.ts.map +1 -1
  87. package/dist/types/src/translations.d.ts +2 -0
  88. package/dist/types/src/translations.d.ts.map +1 -1
  89. package/dist/types/src/types/index.d.ts +2 -0
  90. package/dist/types/src/types/index.d.ts.map +1 -0
  91. package/dist/types/src/{types.d.ts → types/schema.d.ts} +3 -5
  92. package/dist/types/src/types/schema.d.ts.map +1 -0
  93. package/dist/types/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +69 -58
  95. package/src/ScriptPlugin.tsx +2 -14
  96. package/src/capabilities/app-graph-builder.ts +2 -2
  97. package/src/capabilities/artifact-definition.ts +9 -12
  98. package/src/capabilities/compiler.ts +2 -1
  99. package/src/capabilities/index.ts +0 -1
  100. package/src/capabilities/intent-resolver.ts +2 -5
  101. package/src/capabilities/react-surface.tsx +4 -3
  102. package/src/compiler/compiler.ts +1 -1
  103. package/src/components/DeploymentDialog/DeploymentDialog.tsx +4 -4
  104. package/src/components/DeploymentDialog/index.ts +1 -1
  105. package/src/components/FrameContainer/frame.tsx +1 -1
  106. package/src/components/ScriptContainer.tsx +6 -4
  107. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +2 -1
  108. package/src/components/ScriptToolbar/ScriptToolbar.tsx +2 -2
  109. package/src/components/Settings/ScriptObjectSettings.tsx +2 -2
  110. package/src/components/TestPanel/TestContainer.tsx +4 -3
  111. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +2 -1
  112. package/src/components/TypescriptEditor/TypescriptEditor.tsx +3 -2
  113. package/src/hooks/deploy.ts +1 -1
  114. package/src/hooks/template.ts +1 -1
  115. package/src/hooks/useCreateAndDeployScriptTemplates.ts +1 -0
  116. package/src/templates/chess.ts +1 -1
  117. package/src/templates/data-generator.ts +8 -4
  118. package/src/templates/discord.ts +2 -2
  119. package/src/templates/forex-effect.ts +1 -1
  120. package/src/templates/forex.ts +1 -1
  121. package/src/templates/gmail.ts +4 -4
  122. package/src/templates/index.ts +2 -0
  123. package/src/translations.ts +2 -0
  124. package/src/types/index.ts +5 -0
  125. package/src/{types.ts → types/schema.ts} +2 -7
  126. package/dist/lib/browser/ScriptContainer-BAN4WZHG.mjs.map +0 -7
  127. package/dist/lib/browser/artifact-definition-KMBAZFRR.mjs +0 -249
  128. package/dist/lib/browser/artifact-definition-KMBAZFRR.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-7CIKV2MG.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-EEL5O3IC.mjs.map +0 -7
  131. package/dist/lib/browser/chunk-QHVTSNHD.mjs.map +0 -7
  132. package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
  133. package/dist/lib/browser/react-surface-FNLARN5M.mjs.map +0 -7
  134. package/dist/lib/browser/types.mjs +0 -13
  135. package/dist/lib/node-esm/ScriptContainer-RB5CSIZ7.mjs.map +0 -7
  136. package/dist/lib/node-esm/artifact-definition-EBLXG5AR.mjs +0 -250
  137. package/dist/lib/node-esm/artifact-definition-EBLXG5AR.mjs.map +0 -7
  138. package/dist/lib/node-esm/chunk-ORZMINLO.mjs.map +0 -7
  139. package/dist/lib/node-esm/chunk-OVSJYR6O.mjs.map +0 -7
  140. package/dist/lib/node-esm/chunk-YVJGDDNV.mjs.map +0 -7
  141. package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
  142. package/dist/lib/node-esm/intent-resolver-XLV6FPWH.mjs.map +0 -7
  143. package/dist/lib/node-esm/react-surface-BTYC7MGG.mjs.map +0 -7
  144. package/dist/types/src/types.d.ts.map +0 -1
  145. /package/dist/lib/browser/{DeploymentDialog-RIGSJM6A.mjs.map → DeploymentDialog-C3XH2Z56.mjs.map} +0 -0
  146. /package/dist/lib/browser/{settings-XU54CGQD.mjs.map → settings-KCTBK5TY.mjs.map} +0 -0
  147. /package/dist/lib/browser/{types.mjs.map → templates/index.mjs.map} +0 -0
  148. /package/dist/lib/{node-esm/DeploymentDialog-6Z7JH3VO.mjs.map → browser/types/index.mjs.map} +0 -0
  149. /package/dist/lib/node-esm/{types.mjs.map → DeploymentDialog-O2XZVRLU.mjs.map} +0 -0
  150. /package/dist/lib/node-esm/{settings-QCMDG2MZ.mjs.map → settings-DXZ334A3.mjs.map} +0 -0
@@ -1,14 +1,13 @@
1
1
  import {
2
- SCRIPT_PLUGIN
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()(`${SCRIPT_ACTION}/create`, {
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-EEL5O3IC.mjs.map
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": ";;;;;;;;;;;;;AAIA,SAASA,WAAWC,eAAe;AAEnC,SAASC,cAA+BC,oCAAoC;AAC5E,SAASC,WAAW;AACpB,SAAsBC,iBAAiB;AACvC,SAASC,OAAOC,KAAiBC,SAASC,UAAUC,gBAAgB;AAEpE,SAASC,wBAAwB;AACjC,SAASC,0BAA0B;;AAwB5B,IAAMC,eAAe,CAAC,EAAEC,OAAOC,QAAQC,OAAOC,IAAIC,QAAQC,qBAAqBC,EAAC,MAAuB;AAE5G,QAAMC,YAAYC,iBAAiB,SAAS,MAAA;EAAO,GAAG;IACpDC,OAAOT,MAAMU,SAAS;MAAC;MAAkB;QAAEC,IAAIC;MAAc;;IAC7DC,MAAM;IACNC,QAAQ,CAACd,MAAMU;IACfK,YAAYf,MAAMU,SAASM;EAC7B,CAAA;AAEA,QAAMC,eAAeT,iBACnB,UACA,YAAA;AACE,QAAI,CAACP,OAAOiB,UAAU,CAAChB,OAAO;AAC5B;IACF;AAEAF,UAAMU,QAAQS;AACdnB,UAAMoB,YAAY;AAElB,UAAMC,SAAS,MAAMC,aAAa;MAAErB;MAAQG;MAAQF;MAAOC;MAAIE;IAAoB,CAAA;AAEnF,QAAI,CAACgB,OAAOE,SAAS;AACnBC,UAAIC,MAAMJ,OAAOX,OAAK,QAAA;;;;;;AACtBV,YAAMU,QAAQJ,EAAE,qBAAA;IAClB;AAEAN,UAAMoB,YAAY;EACpB,GACA;IACEM,MAAM;IACNjB,OAAO;MAACT,MAAMoB,YAAY,kBAAkB;MAAgB;QAAET,IAAIC;MAAc;;IAChFC,MAAMb,MAAMoB,YAAY,6BAA6B;IACrDO,UAAU3B,MAAMoB;IAChBL,YAAYf,MAAMoB,YAAY,yBAAyB;EACzD,CAAA;AAGF,QAAMQ,aAAapB,iBACjB,QACA,YAAA;AACE,QAAI,CAACR,MAAM6B,aAAa;AACtB;IACF;AACA,UAAMC,UAAUC,UAAUC,UAAUhC,MAAM6B,WAAW;EACvD,GACA;IACEH,MAAM;IACNjB,OAAO;MAAC;MAAmB;QAAEE,IAAIC;MAAc;;IAC/CC,MAAM;IACNc,UAAU,CAAC3B,MAAM6B;EACnB,CAAA;AAGF,SAAO;IACLI,OAAO;MAAC1B;MAAWU;MAAcW;;IACjCM,OAAO;MACL;QAAEhB,QAAQ;QAAQiB,QAAQ;MAAQ;MAClC;QAAEjB,QAAQ;QAAQiB,QAAQ;MAAS;MACnC;QAAEjB,QAAQ;QAAQiB,QAAQ;MAAO;;EAErC;AACF;AAEO,IAAMC,iBAAiB,CAAC,EAAEpC,OAAOC,OAAM,MAAuD;AACnG,QAAM,EAAEC,OAAOE,QAAQD,IAAIE,oBAAmB,IAAKgC,cAAc;IAAEpC;EAAO,CAAA;AAC1EqC,YAAU,MAAA;AACR,QAAI,CAACjC,qBAAqB;AACxB;IACF;AAEAL,UAAM6B,cAAcU,eAAe;MACjCtC;MACAE;MACAqC,SAASpC,OAAOqC,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,OAAO;IAChE,CAAA;EACF,GAAG;IAACzC;IAAqBH;IAAOC;IAAIF;IAAQG,OAAOqC,OAAOC,OAAOC,SAASC,UAAUC,MAAMC;GAAI;AAE9FR,YAAU,MAAA;AACRtC,UAAM+C,WAAWC,iBAAiB;MAAE/C;MAAQE;IAAG,CAAA;EACjD,GAAG;IAACF,OAAOgD;IAAS5C;IAAqBF;IAAIF;GAAO;AACtD;AAEO,IAAMoC,gBAAgB,CAAC,EAAEpC,OAAM,MAA0B;AAC9D,QAAMC,QAAQgD,SAASjD,MAAAA;AACvB,QAAM,CAACE,EAAAA,IAAMgD,SAASjD,OAAOkD,MAAM1B,KAAK2B,cAAc;IAAEnC,QAAQoC,IAAIC,KAAKtD,MAAAA;EAAQ,CAAA,CAAA;AACjF,QAAMG,SAASoD,UAAAA;AACf,QAAMnD,sBAAsBoD,QAAQ,MAAMtD,MAAMuD,6BAA6BC,QAAQxD,EAAAA,CAAAA,GAAM;IAACA;GAAG;AAC/F,SAAO;IAAED;IAAOC;IAAIC;IAAQC;EAAoB;AAClD;;;ACxHA,SAASuD,WAAAA,gBAAe;AAExB,SAASC,YAAY;AAOd,IAAMC,kBAAkB,CAACC,eAAmC,CAAC,MAAC;AACnE,SAAOC,SAAQ,MAAMC,KAAyBF,YAAAA,GAAe,CAAA,CAAE;AACjE;;;ACXA,SAASG,cAAc;AACvB,OAAOC,0BAA0B;AACjC,OAAOC,8BAA8B;AAGrC,SAASC,OAAAA,YAAW;AACpB,SAASC,oBAAAA,yBAAwB;;AAM1B,IAAMC,eAAe,CAACC,WAAAA;AAC3B,QAAMC,eAAeC,kBACnB,UACA,YAAA;AACE,QAAI,CAACF,OAAOG,QAAQ;AAClB;IACF;AAEA,QAAI;AACFH,aAAOG,OAAOC,OAAQC,UAAU,MAAMC,OAAON,OAAOG,OAAOC,OAAQC,SAAS;QAC1EE,QAAQ;QACRC,SAAS;UAACC;UAAsBC;;QAChCC,MAAM;QACNC,aAAa;MACf,CAAA;IACF,SAASC,KAAU;AAEjBC,MAAAA,KAAIC,MAAMF,KAAAA,QAAAA;;;;;;IACZ;EACF,GACA;IACEG,OAAO;MAAC;MAAgB;QAAEC,IAAIC;MAAc;;IAC5CC,MAAM;EACR,CAAA;AAGF,SAAO;IACLC,OAAO;MAACnB;;IACRoB,OAAO;MACL;QACElB,QAAQ;QACRC,QAAQ;MACV;;EAEJ;AACF;;;AC/CA,SAASkB,WAAW;AACpB,SAASC,iCAAkD;AAC3D,SAASC,oBAAAA,mBAAkBC,2BAA2B;AAOtD,IAAMC,4BAA4B,MAAA;AAChC,SAAOC,oBAAoB,mBAAmB;IAC5CC,OAAO;MAAC;MAA+B;QAAEC,IAAIC;MAAc;;IAC3DC,SAAS;EACX,CAAA;AACF;AAEA,IAAMC,8BAA8B,CAACC,WAAAA;AACnC,SAAOC,UAAUC,IAAI,CAACC,aAAAA;AACpB,WAAOC,kBACL,aAAaD,SAASE,EAAE,IACxB,MAAA;AACEL,aAAOM,OAAOH,SAASG;AACvBN,aAAOO,OAAQC,OAAQC,UAAUN,SAASI;AAC1C,YAAMG,WAAWC,IAAIC,QAAQZ,MAAAA,EAAQa;AACrC,YAAMC,iBAAiBJ,SAASK,UAAU,CAACC,QAAQA,IAAIT,WAAWU,yBAAAA;AAClE,UAAIH,kBAAkB,GAAG;AACvBJ,iBAASQ,OAAOJ,gBAAgB,CAAA;MAClC;AACA,UAAIX,SAASgB,UAAU;AACrBT,iBAASU,KAAK;UAAEb,QAAQU;UAA2BZ,IAAIF,SAASgB;QAAS,CAAA;MAC3E;IACF,GACA;MACExB,OAAOQ,SAASG;MAChBe,OAAOlB,SAASE;MAChBiB,MAAM;IACR,CAAA;EAEJ,CAAA;AACF;AAEO,IAAMC,uBAAuB,CAACvB,WAAAA;AACnC,QAAMwB,sBAAsB/B,0BAAAA;AAC5B,QAAMgC,wBAAwB1B,4BAA4BC,MAAAA;AAC1D,SAAO;IACL0B,OAAO;MAACF;SAAwBC;;IAChCE,OAAO;MACL;QAAEpB,QAAQ;QAAQC,QAAQ;MAAkB;SACzCiB,sBAAsBvB,IAAI,CAAC0B,YAAY;QAAErB,QAAQ;QAAmBC,QAAQoB,OAAOvB;MAAG,EAAA;;EAE7F;AACF;",
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-OORJVKHC.mjs";
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 { createIntent, LayoutAction, useIntentDispatcher } from "@dxos/app-framework";
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-QHVTSNHD.mjs.map
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-7CIKV2MG.mjs";
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 { createIntent, SettingsAction, useIntentDispatcher } from "@dxos/app-framework";
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, Ref, useQuery } from "@dxos/react-client/echo";
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, role }) => {
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-BAN4WZHG.mjs"));
546
- var DeploymentDialog = lazy(() => import("./DeploymentDialog-RIGSJM6A.mjs"));
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-QYLAH5AK.mjs.map
555
+ //# sourceMappingURL=chunk-OULPWKXN.mjs.map