@dxos/plugin-script 0.7.5-labs.5f04cf6 → 0.7.5-labs.8a82073

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 (181) hide show
  1. package/dist/lib/browser/{AutomationPanel-OOIRJFPJ.mjs → AutomationPanel-J3SZ5L3Y.mjs} +3 -3
  2. package/dist/lib/browser/{ScriptContainer-T2AOMDT3.mjs → ScriptContainer-QI4NQT7V.mjs} +92 -64
  3. package/dist/lib/browser/ScriptContainer-QI4NQT7V.mjs.map +7 -0
  4. package/dist/lib/browser/artifact-3UZZBCZ2.mjs +243 -0
  5. package/dist/lib/browser/artifact-3UZZBCZ2.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-SJ4J527G.mjs → chunk-45LXDWNF.mjs} +2 -2
  7. package/dist/lib/browser/{chunk-ZM6T4HPR.mjs → chunk-6MOQ4BP3.mjs} +2 -2
  8. package/dist/lib/browser/{chunk-SIOGRRPF.mjs → chunk-F22QPQ6G.mjs} +21 -9
  9. package/dist/lib/browser/chunk-F22QPQ6G.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-FVVCAWNP.mjs +21 -0
  11. package/dist/lib/browser/chunk-FVVCAWNP.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-XPGBHZ3L.mjs → chunk-N46LE7FS.mjs} +2 -2
  13. package/dist/lib/browser/{chunk-REL2R7SB.mjs → chunk-VIX22OMB.mjs} +11 -3
  14. package/dist/lib/browser/chunk-VIX22OMB.mjs.map +7 -0
  15. package/dist/lib/browser/{compiler-HT53ILG7.mjs → compiler-K3FNRDDN.mjs} +3 -3
  16. package/dist/lib/browser/index.mjs +20 -12
  17. package/dist/lib/browser/index.mjs.map +3 -3
  18. package/dist/lib/browser/intent-resolver-CMKQTLBG.mjs +45 -0
  19. package/dist/lib/browser/intent-resolver-CMKQTLBG.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-surface-GAWVYTJ5.mjs → react-surface-YR4YO746.mjs} +12 -14
  22. package/dist/lib/browser/react-surface-YR4YO746.mjs.map +7 -0
  23. package/dist/lib/browser/{settings-YQQEU3DF.mjs → settings-SZCDKHWO.mjs} +3 -3
  24. package/dist/lib/browser/types.mjs +2 -2
  25. package/dist/lib/node/{AutomationPanel-EPRDDR3A.cjs → AutomationPanel-4M55FURO.cjs} +8 -8
  26. package/dist/lib/node/{ScriptContainer-BV56I4OL.cjs → ScriptContainer-FSKWJR6Z.cjs} +95 -67
  27. package/dist/lib/node/ScriptContainer-FSKWJR6Z.cjs.map +7 -0
  28. package/dist/lib/node/artifact-A2QXHFGS.cjs +262 -0
  29. package/dist/lib/node/artifact-A2QXHFGS.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-EFTZN5X7.cjs → chunk-5UH3F7TA.cjs} +8 -5
  31. package/dist/lib/node/chunk-5UH3F7TA.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-A2DI2G4D.cjs → chunk-ALY3N6PW.cjs} +6 -6
  33. package/dist/lib/node/{chunk-6VKZJ4MH.cjs → chunk-DJGLGRQV.cjs} +6 -6
  34. package/dist/lib/node/{chunk-DQRAVZM7.cjs → chunk-IID7WUQS.cjs} +6 -6
  35. package/dist/lib/node/{chunk-5V3XGLTR.cjs → chunk-JSANQCTA.cjs} +24 -12
  36. package/dist/lib/node/chunk-JSANQCTA.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-TJ4BTPOS.cjs → chunk-PKT5DD3O.cjs} +12 -6
  38. package/dist/lib/node/chunk-PKT5DD3O.cjs.map +7 -0
  39. package/dist/lib/node/{compiler-457ZR24G.cjs → compiler-P2HQB22H.cjs} +7 -7
  40. package/dist/lib/node/index.cjs +38 -30
  41. package/dist/lib/node/index.cjs.map +3 -3
  42. package/dist/lib/node/{intent-resolver-SUAPE7H3.cjs → intent-resolver-V5ASU5DW.cjs} +31 -28
  43. package/dist/lib/node/intent-resolver-V5ASU5DW.cjs.map +7 -0
  44. package/dist/lib/node/meta.json +1 -1
  45. package/dist/lib/node/{react-surface-OMBMSFZT.cjs → react-surface-MFTICFI5.cjs} +23 -25
  46. package/dist/lib/node/react-surface-MFTICFI5.cjs.map +7 -0
  47. package/dist/lib/node/{settings-NGHDYAVK.cjs → settings-SZFSMSKM.cjs} +9 -9
  48. package/dist/lib/node/types.cjs +4 -4
  49. package/dist/lib/node/types.cjs.map +1 -1
  50. package/dist/lib/node-esm/{AutomationPanel-DMLAGQS5.mjs → AutomationPanel-W6SKG35R.mjs} +3 -3
  51. package/dist/lib/node-esm/{ScriptContainer-3S5VHJVR.mjs → ScriptContainer-MNETNTNQ.mjs} +92 -64
  52. package/dist/lib/node-esm/ScriptContainer-MNETNTNQ.mjs.map +7 -0
  53. package/dist/lib/node-esm/artifact-RFZQ2AJJ.mjs +245 -0
  54. package/dist/lib/node-esm/artifact-RFZQ2AJJ.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-XUWS7OTK.mjs → chunk-CGF7EOGD.mjs} +2 -2
  56. package/dist/lib/node-esm/{chunk-675XSDRN.mjs → chunk-CP5LXTK5.mjs} +2 -2
  57. package/dist/lib/node-esm/{chunk-XPIKUBGS.mjs → chunk-FGO5DVO2.mjs} +21 -9
  58. package/dist/lib/node-esm/chunk-FGO5DVO2.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-JJZYWSD7.mjs → chunk-NBAL5DXN.mjs} +11 -3
  60. package/dist/lib/node-esm/chunk-NBAL5DXN.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-BHP545D7.mjs → chunk-P2V2Y5LV.mjs} +5 -2
  62. package/dist/lib/node-esm/chunk-P2V2Y5LV.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-JHGOPQVO.mjs → chunk-UNQFIERE.mjs} +2 -2
  64. package/dist/lib/node-esm/{compiler-PEARFTFR.mjs → compiler-PDN46H4Y.mjs} +3 -3
  65. package/dist/lib/node-esm/index.mjs +20 -12
  66. package/dist/lib/node-esm/index.mjs.map +3 -3
  67. package/dist/lib/node-esm/intent-resolver-75BHFRUK.mjs +46 -0
  68. package/dist/lib/node-esm/intent-resolver-75BHFRUK.mjs.map +7 -0
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-surface-J7NLV2V4.mjs → react-surface-NAK6LMCY.mjs} +12 -14
  71. package/dist/lib/node-esm/react-surface-NAK6LMCY.mjs.map +7 -0
  72. package/dist/lib/node-esm/{settings-XGXDY4NI.mjs → settings-GR4O2WHZ.mjs} +3 -3
  73. package/dist/lib/node-esm/types.mjs +2 -2
  74. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/artifact.d.ts +11 -0
  76. package/dist/types/src/capabilities/artifact.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/index.d.ts +5 -4
  78. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  81. package/dist/types/src/components/ScriptContainer.d.ts +2 -2
  82. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  83. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
  84. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +1 -1
  85. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  86. package/dist/types/src/components/index.d.ts +1 -1
  87. package/dist/types/src/components/index.d.ts.map +1 -1
  88. package/dist/types/src/hooks/deploy.d.ts.map +1 -0
  89. package/dist/types/src/hooks/format.d.ts.map +1 -0
  90. package/dist/types/src/hooks/index.d.ts +7 -0
  91. package/dist/types/src/hooks/index.d.ts.map +1 -0
  92. package/dist/types/src/{components/ScriptToolbar/templateSelect.d.ts → hooks/template.d.ts} +1 -1
  93. package/dist/types/src/hooks/template.d.ts.map +1 -0
  94. package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarAction.d.ts +1 -1
  95. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -0
  96. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -0
  97. package/dist/types/src/hooks/view.d.ts.map +1 -0
  98. package/dist/types/src/meta.d.ts +1 -0
  99. package/dist/types/src/meta.d.ts.map +1 -1
  100. package/dist/types/src/templates/echo.d.ts.map +1 -1
  101. package/dist/types/src/templates/forex-effect.d.ts +6 -0
  102. package/dist/types/src/templates/forex-effect.d.ts.map +1 -0
  103. package/dist/types/src/templates/forex.d.ts +1 -1
  104. package/dist/types/src/templates/forex.d.ts.map +1 -1
  105. package/dist/types/src/templates/index.d.ts.map +1 -1
  106. package/dist/types/src/translations.d.ts +6 -0
  107. package/dist/types/src/translations.d.ts.map +1 -1
  108. package/dist/types/tsconfig.tsbuildinfo +1 -1
  109. package/package.json +44 -41
  110. package/src/ScriptPlugin.tsx +10 -13
  111. package/src/capabilities/artifact.ts +219 -0
  112. package/src/capabilities/index.ts +1 -0
  113. package/src/capabilities/intent-resolver.ts +25 -22
  114. package/src/capabilities/react-surface.tsx +8 -8
  115. package/src/components/ScriptContainer.tsx +10 -5
  116. package/src/components/ScriptSettings/ScriptSettings.tsx +3 -3
  117. package/src/components/ScriptSettingsPanel.tsx +16 -2
  118. package/src/components/ScriptToolbar/ScriptToolbar.tsx +8 -6
  119. package/src/components/TypescriptEditor/TypescriptEditor.tsx +1 -1
  120. package/src/{components/ScriptToolbar → hooks}/deploy.ts +14 -2
  121. package/src/{components/ScriptToolbar → hooks}/format.ts +1 -1
  122. package/src/hooks/index.ts +11 -0
  123. package/src/{components/ScriptToolbar/templateSelect.ts → hooks/template.ts} +2 -2
  124. package/src/{components/ScriptToolbar → hooks}/useToolbarAction.ts +1 -1
  125. package/src/{components/ScriptToolbar → hooks}/view.ts +1 -1
  126. package/src/meta.ts +3 -1
  127. package/src/templates/echo.ts +5 -1
  128. package/src/templates/forex-effect.ts +42 -0
  129. package/src/templates/forex.ts +21 -13
  130. package/src/templates/index.ts +7 -0
  131. package/src/translations.ts +2 -0
  132. package/dist/lib/browser/ScriptContainer-T2AOMDT3.mjs.map +0 -7
  133. package/dist/lib/browser/chunk-5BU5ERNU.mjs +0 -18
  134. package/dist/lib/browser/chunk-5BU5ERNU.mjs.map +0 -7
  135. package/dist/lib/browser/chunk-REL2R7SB.mjs.map +0 -7
  136. package/dist/lib/browser/chunk-SIOGRRPF.mjs.map +0 -7
  137. package/dist/lib/browser/intent-resolver-YPHT6HDZ.mjs +0 -42
  138. package/dist/lib/browser/intent-resolver-YPHT6HDZ.mjs.map +0 -7
  139. package/dist/lib/browser/react-surface-GAWVYTJ5.mjs.map +0 -7
  140. package/dist/lib/node/ScriptContainer-BV56I4OL.cjs.map +0 -7
  141. package/dist/lib/node/chunk-5V3XGLTR.cjs.map +0 -7
  142. package/dist/lib/node/chunk-EFTZN5X7.cjs.map +0 -7
  143. package/dist/lib/node/chunk-TJ4BTPOS.cjs.map +0 -7
  144. package/dist/lib/node/intent-resolver-SUAPE7H3.cjs.map +0 -7
  145. package/dist/lib/node/react-surface-OMBMSFZT.cjs.map +0 -7
  146. package/dist/lib/node-esm/ScriptContainer-3S5VHJVR.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-BHP545D7.mjs.map +0 -7
  148. package/dist/lib/node-esm/chunk-JJZYWSD7.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-XPIKUBGS.mjs.map +0 -7
  150. package/dist/lib/node-esm/intent-resolver-SZJXQ3CW.mjs +0 -43
  151. package/dist/lib/node-esm/intent-resolver-SZJXQ3CW.mjs.map +0 -7
  152. package/dist/lib/node-esm/react-surface-J7NLV2V4.mjs.map +0 -7
  153. package/dist/types/src/components/ScriptToolbar/deploy.d.ts.map +0 -1
  154. package/dist/types/src/components/ScriptToolbar/format.d.ts.map +0 -1
  155. package/dist/types/src/components/ScriptToolbar/templateSelect.d.ts.map +0 -1
  156. package/dist/types/src/components/ScriptToolbar/useToolbarAction.d.ts.map +0 -1
  157. package/dist/types/src/components/ScriptToolbar/useToolbarState.d.ts.map +0 -1
  158. package/dist/types/src/components/ScriptToolbar/view.d.ts.map +0 -1
  159. /package/dist/lib/browser/{AutomationPanel-OOIRJFPJ.mjs.map → AutomationPanel-J3SZ5L3Y.mjs.map} +0 -0
  160. /package/dist/lib/browser/{chunk-SJ4J527G.mjs.map → chunk-45LXDWNF.mjs.map} +0 -0
  161. /package/dist/lib/browser/{chunk-ZM6T4HPR.mjs.map → chunk-6MOQ4BP3.mjs.map} +0 -0
  162. /package/dist/lib/browser/{chunk-XPGBHZ3L.mjs.map → chunk-N46LE7FS.mjs.map} +0 -0
  163. /package/dist/lib/browser/{compiler-HT53ILG7.mjs.map → compiler-K3FNRDDN.mjs.map} +0 -0
  164. /package/dist/lib/browser/{settings-YQQEU3DF.mjs.map → settings-SZCDKHWO.mjs.map} +0 -0
  165. /package/dist/lib/node/{AutomationPanel-EPRDDR3A.cjs.map → AutomationPanel-4M55FURO.cjs.map} +0 -0
  166. /package/dist/lib/node/{chunk-A2DI2G4D.cjs.map → chunk-ALY3N6PW.cjs.map} +0 -0
  167. /package/dist/lib/node/{chunk-6VKZJ4MH.cjs.map → chunk-DJGLGRQV.cjs.map} +0 -0
  168. /package/dist/lib/node/{chunk-DQRAVZM7.cjs.map → chunk-IID7WUQS.cjs.map} +0 -0
  169. /package/dist/lib/node/{compiler-457ZR24G.cjs.map → compiler-P2HQB22H.cjs.map} +0 -0
  170. /package/dist/lib/node/{settings-NGHDYAVK.cjs.map → settings-SZFSMSKM.cjs.map} +0 -0
  171. /package/dist/lib/node-esm/{AutomationPanel-DMLAGQS5.mjs.map → AutomationPanel-W6SKG35R.mjs.map} +0 -0
  172. /package/dist/lib/node-esm/{chunk-XUWS7OTK.mjs.map → chunk-CGF7EOGD.mjs.map} +0 -0
  173. /package/dist/lib/node-esm/{chunk-675XSDRN.mjs.map → chunk-CP5LXTK5.mjs.map} +0 -0
  174. /package/dist/lib/node-esm/{chunk-JHGOPQVO.mjs.map → chunk-UNQFIERE.mjs.map} +0 -0
  175. /package/dist/lib/node-esm/{compiler-PEARFTFR.mjs.map → compiler-PDN46H4Y.mjs.map} +0 -0
  176. /package/dist/lib/node-esm/{settings-XGXDY4NI.mjs.map → settings-GR4O2WHZ.mjs.map} +0 -0
  177. /package/dist/types/src/{components/ScriptToolbar → hooks}/deploy.d.ts +0 -0
  178. /package/dist/types/src/{components/ScriptToolbar → hooks}/format.d.ts +0 -0
  179. /package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarState.d.ts +0 -0
  180. /package/dist/types/src/{components/ScriptToolbar → hooks}/view.d.ts +0 -0
  181. /package/src/{components/ScriptToolbar → hooks}/useToolbarState.ts +0 -0
@@ -26,16 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ScriptContainer_BV56I4OL_exports = {};
30
- __export(ScriptContainer_BV56I4OL_exports, {
29
+ var ScriptContainer_FSKWJR6Z_exports = {};
30
+ __export(ScriptContainer_FSKWJR6Z_exports, {
31
31
  ScriptContainer: () => ScriptContainer,
32
32
  default: () => ScriptContainer_default
33
33
  });
34
- module.exports = __toCommonJS(ScriptContainer_BV56I4OL_exports);
34
+ module.exports = __toCommonJS(ScriptContainer_FSKWJR6Z_exports);
35
35
  var import_chunk_T4TXCRN5 = require("./chunk-T4TXCRN5.cjs");
36
- var import_chunk_TJ4BTPOS = require("./chunk-TJ4BTPOS.cjs");
37
- var import_chunk_DQRAVZM7 = require("./chunk-DQRAVZM7.cjs");
38
- var import_chunk_EFTZN5X7 = require("./chunk-EFTZN5X7.cjs");
36
+ var import_chunk_PKT5DD3O = require("./chunk-PKT5DD3O.cjs");
37
+ var import_chunk_IID7WUQS = require("./chunk-IID7WUQS.cjs");
38
+ var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
39
39
  var import_react = __toESM(require("react"));
40
40
  var import_echo = require("@dxos/react-client/echo");
41
41
  var import_halo = require("@dxos/react-client/halo");
@@ -64,9 +64,9 @@ var import_react5 = require("react");
64
64
  var import_functions2 = require("@dxos/functions");
65
65
  var import_live_object = require("@dxos/live-object");
66
66
  var import_react_ui_menu4 = require("@dxos/react-ui-menu");
67
+ var import_react_ui_menu5 = require("@dxos/react-ui-menu");
67
68
  var import_react6 = require("react");
68
69
  var import_log3 = require("@dxos/log");
69
- var import_react_ui_menu5 = require("@dxos/react-ui-menu");
70
70
  var import_react7 = require("react");
71
71
  var import_live_object2 = require("@dxos/live-object");
72
72
  var import_lang_javascript = require("@codemirror/lang-javascript");
@@ -81,13 +81,13 @@ var import_react8 = __toESM(require("react"));
81
81
  var import_react_ui3 = require("@dxos/react-ui");
82
82
  var import_react_ui_editor3 = require("@dxos/react-ui-editor");
83
83
  var import_util = require("@dxos/util");
84
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/deploy.ts";
84
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/deploy.ts";
85
85
  var createDeploy = (state) => {
86
86
  const errorItem = (0, import_react_ui_menu2.createMenuAction)("error", {
87
87
  label: state.error ?? [
88
88
  "no error label",
89
89
  {
90
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
90
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
91
91
  }
92
92
  ],
93
93
  icon: "ph--warning-circle--regular",
@@ -98,7 +98,7 @@ var createDeploy = (state) => {
98
98
  label: [
99
99
  state.deploying ? "pending label" : "deploy label",
100
100
  {
101
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
101
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
102
102
  }
103
103
  ],
104
104
  icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
@@ -110,7 +110,7 @@ var createDeploy = (state) => {
110
110
  label: [
111
111
  "copy link label",
112
112
  {
113
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
113
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
114
114
  }
115
115
  ],
116
116
  icon: "ph--link--regular",
@@ -182,7 +182,7 @@ var useDeployHandler = ({ state, script }) => {
182
182
  state,
183
183
  script
184
184
  });
185
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_EFTZN5X7.SCRIPT_PLUGIN);
185
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_5UH3F7TA.SCRIPT_PLUGIN);
186
186
  return (0, import_react3.useCallback)(async () => {
187
187
  if (!script.source || !space) {
188
188
  return;
@@ -228,6 +228,20 @@ var useDeployHandler = ({ state, script }) => {
228
228
  source: (0, import_echo3.makeRef)(script)
229
229
  }));
230
230
  script.changed = false;
231
+ if (script.description !== void 0 && script.description.trim() !== "") {
232
+ deployedFunction.description = script.description;
233
+ } else if (meta.description) {
234
+ deployedFunction.description = meta.description;
235
+ } else {
236
+ import_log.log.verbose("no description in function metadata", {
237
+ functionId
238
+ }, {
239
+ F: __dxlog_file,
240
+ L: 138,
241
+ S: void 0,
242
+ C: (f, a) => f(...a)
243
+ });
244
+ }
231
245
  if (meta.inputSchema) {
232
246
  deployedFunction.inputSchema = meta.inputSchema;
233
247
  } else {
@@ -235,7 +249,19 @@ var useDeployHandler = ({ state, script }) => {
235
249
  functionId
236
250
  }, {
237
251
  F: __dxlog_file,
238
- L: 137,
252
+ L: 144,
253
+ S: void 0,
254
+ C: (f, a) => f(...a)
255
+ });
256
+ }
257
+ if (meta.outputSchema) {
258
+ deployedFunction.outputSchema = meta.outputSchema;
259
+ } else {
260
+ import_log.log.verbose("no output schema in function metadata", {
261
+ functionId
262
+ }, {
263
+ F: __dxlog_file,
264
+ L: 149,
239
265
  S: void 0,
240
266
  C: (f, a) => f(...a)
241
267
  });
@@ -245,7 +271,7 @@ var useDeployHandler = ({ state, script }) => {
245
271
  } catch (err) {
246
272
  import_log.log.catch(err, void 0, {
247
273
  F: __dxlog_file,
248
- L: 144,
274
+ L: 156,
249
275
  S: void 0,
250
276
  C: (f, a) => f(...a)
251
277
  });
@@ -271,13 +297,13 @@ var useCopyHandler = ({ state }) => (0, import_react3.useCallback)(async () => {
271
297
  }, [
272
298
  state.functionUrl
273
299
  ]);
274
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/format.ts";
300
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/format.ts";
275
301
  var createFormat = () => {
276
302
  const formatAction = (0, import_react_ui_menu3.createMenuAction)("format", {
277
303
  label: [
278
304
  "format label",
279
305
  {
280
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
306
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
281
307
  }
282
308
  ],
283
309
  icon: "ph--magic-wand--regular"
@@ -324,14 +350,14 @@ var createTemplateSelectGroup = () => {
324
350
  label: [
325
351
  "template select group label",
326
352
  {
327
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
353
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
328
354
  }
329
355
  ],
330
356
  variant: "dropdownMenu"
331
357
  });
332
358
  };
333
359
  var createTemplateSelectActions = () => {
334
- return import_chunk_TJ4BTPOS.templates.map((template) => {
360
+ return import_chunk_PKT5DD3O.templates.map((template) => {
335
361
  return (0, import_react_ui_menu4.createMenuAction)(`template--${template.id}`, {
336
362
  label: template.name,
337
363
  value: template.id,
@@ -361,7 +387,7 @@ var createTemplateSelect = () => {
361
387
  };
362
388
  var useTemplateSelectHandler = ({ script }) => {
363
389
  return (0, import_react5.useCallback)((templateId) => {
364
- const template = import_chunk_TJ4BTPOS.templates.find((template2) => template2.id === templateId);
390
+ const template = import_chunk_PKT5DD3O.templates.find((template2) => template2.id === templateId);
365
391
  if (template) {
366
392
  script.name = template.name;
367
393
  script.source.target.content = template.source;
@@ -381,44 +407,6 @@ var useTemplateSelectHandler = ({ script }) => {
381
407
  script
382
408
  ]);
383
409
  };
384
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/useToolbarAction.ts";
385
- var useToolbarAction = (props) => {
386
- const handleTemplateSelect = useTemplateSelectHandler(props);
387
- const handleFormat = useFormatHandler(props);
388
- const handleDeploy = useDeployHandler(props);
389
- const handleCopy = useCopyHandler(props);
390
- return (0, import_react6.useCallback)((action) => {
391
- switch (action.properties.type) {
392
- case "template":
393
- handleTemplateSelect(action.properties.value);
394
- break;
395
- case "view":
396
- props.state.view = action.properties.value;
397
- break;
398
- case "format":
399
- void handleFormat();
400
- break;
401
- case "deploy":
402
- void handleDeploy();
403
- break;
404
- case "copy":
405
- void handleCopy();
406
- break;
407
- default:
408
- import_log3.log.error("Unknown action type", action, {
409
- F: __dxlog_file3,
410
- L: 49,
411
- S: void 0,
412
- C: (f, a) => f(...a)
413
- });
414
- }
415
- }, [
416
- handleTemplateSelect,
417
- handleFormat,
418
- handleDeploy,
419
- handleCopy
420
- ]);
421
- };
422
410
  var views = {
423
411
  editor: "ph--code--regular",
424
412
  split: "ph--square-split-vertical--regular",
@@ -429,7 +417,7 @@ var createViewGroupItem = (state) => {
429
417
  label: [
430
418
  "view group label",
431
419
  {
432
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
420
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
433
421
  }
434
422
  ],
435
423
  variant: "dropdownMenu",
@@ -445,7 +433,7 @@ var createViewActions = (state) => {
445
433
  label: [
446
434
  `view ${viewType} label`,
447
435
  {
448
- ns: import_chunk_EFTZN5X7.SCRIPT_PLUGIN
436
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
449
437
  }
450
438
  ],
451
439
  icon,
@@ -473,6 +461,47 @@ var createView = (state) => {
473
461
  ]
474
462
  };
475
463
  };
464
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/useToolbarAction.ts";
465
+ var useToolbarAction = (props) => {
466
+ const handleTemplateSelect = useTemplateSelectHandler(props);
467
+ const handleFormat = useFormatHandler(props);
468
+ const handleDeploy = useDeployHandler(props);
469
+ const handleCopy = useCopyHandler(props);
470
+ return (0, import_react6.useCallback)((action) => {
471
+ switch (action.properties.type) {
472
+ case "template":
473
+ handleTemplateSelect(action.properties.value);
474
+ break;
475
+ case "view":
476
+ props.state.view = action.properties.value;
477
+ break;
478
+ case "format":
479
+ void handleFormat();
480
+ break;
481
+ case "deploy":
482
+ void handleDeploy();
483
+ break;
484
+ case "copy":
485
+ void handleCopy();
486
+ break;
487
+ default:
488
+ import_log3.log.error("Unknown action type", action, {
489
+ F: __dxlog_file3,
490
+ L: 49,
491
+ S: void 0,
492
+ C: (f, a) => f(...a)
493
+ });
494
+ }
495
+ }, [
496
+ handleTemplateSelect,
497
+ handleFormat,
498
+ handleDeploy,
499
+ handleCopy
500
+ ]);
501
+ };
502
+ var useToolbarState = (initialState = {}) => {
503
+ return (0, import_react7.useMemo)(() => (0, import_live_object2.create)(initialState), []);
504
+ };
476
505
  var createToolbar = (state) => {
477
506
  const templateSelect = createTemplateSelect();
478
507
  const format2 = createFormat();
@@ -518,9 +547,6 @@ var ScriptToolbar = ({ script, role, state, classNames }) => {
518
547
  classNames
519
548
  }))));
520
549
  };
521
- var useToolbarState = (initialState = {}) => {
522
- return (0, import_react7.useMemo)(() => (0, import_live_object2.create)(initialState), []);
523
- };
524
550
  var TypescriptEditor = ({ id, env, className, initialValue, extensions, scrollTo, selection, toolbar, inputMode = "vscode" }) => {
525
551
  const { themeMode } = (0, import_react_ui3.useThemeContext)();
526
552
  const { parentRef, focusAttributes } = (0, import_react_ui_editor3.useTextEditor)(() => ({
@@ -615,7 +641,7 @@ var createTooltipRenderer = (themeMode) => {
615
641
  };
616
642
  return (info) => {
617
643
  const div = document.createElement("div");
618
- div.className = "p-1 rounded border border-separator bg-base xs:max-w-80 max-w-lg";
644
+ div.className = "p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg";
619
645
  if (info.quickInfo?.displayParts) {
620
646
  for (const part of info.quickInfo.displayParts) {
621
647
  const span = div.appendChild(document.createElement("span"));
@@ -628,7 +654,9 @@ var createTooltipRenderer = (themeMode) => {
628
654
  };
629
655
  };
630
656
  };
631
- var ScriptContainer = ({ role, classNames, script, settings, env }) => {
657
+ var ScriptContainer = ({ role, classNames, script, settings = {
658
+ editorInputMode: "vscode"
659
+ }, env }) => {
632
660
  const identity = (0, import_halo.useIdentity)();
633
661
  const space = (0, import_echo.getSpace)(script);
634
662
  const extensions = (0, import_react.useMemo)(() => [
@@ -654,7 +682,7 @@ var ScriptContainer = ({ role, classNames, script, settings, env }) => {
654
682
  identity
655
683
  ]);
656
684
  const state = useToolbarState({
657
- view: "split"
685
+ view: "editor"
658
686
  });
659
687
  useDeployState({
660
688
  state,
@@ -677,7 +705,7 @@ var ScriptContainer = ({ role, classNames, script, settings, env }) => {
677
705
  className: (0, import_react_ui_editor.stackItemContentEditorClassNames)(role),
678
706
  inputMode: settings.editorInputMode,
679
707
  toolbar: true
680
- }), state.view !== "editor" && /* @__PURE__ */ import_react.default.createElement(import_chunk_DQRAVZM7.DebugPanel, {
708
+ }), state.view !== "editor" && /* @__PURE__ */ import_react.default.createElement(import_chunk_IID7WUQS.DebugPanel, {
681
709
  functionUrl: state.functionUrl
682
710
  })));
683
711
  };
@@ -686,4 +714,4 @@ var ScriptContainer_default = ScriptContainer;
686
714
  0 && (module.exports = {
687
715
  ScriptContainer
688
716
  });
689
- //# sourceMappingURL=ScriptContainer-BV56I4OL.cjs.map
717
+ //# sourceMappingURL=ScriptContainer-FSKWJR6Z.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/hooks/deploy.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts", "../../../src/hooks/view.ts", "../../../src/hooks/useToolbarAction.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { DebugPanel } from './DebugPanel';\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = ThemedClassName<{\n script: ScriptType;\n settings?: ScriptSettingsProps;\n role?: string;\n}> &\n Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({\n role,\n classNames,\n script,\n settings = { editorInputMode: 'vscode' },\n env,\n}: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source.target && script.source.target.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source.target && createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source.target, space, identity],\n );\n\n const state = useToolbarState({ view: 'editor' });\n useDeployState({ state, script });\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <div role='none' className={mx('flex flex-col w-full overflow-hidden divide-y divide-separator', classNames)}>\n {state.view !== 'debug' && (\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n className={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n )}\n\n {state.view !== 'editor' && <DebugPanel functionUrl={state.functionUrl} />}\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName } from '@dxos/react-ui';\nimport { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';\nimport { createGapSeparator, MenuProvider, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n createView,\n useToolbarAction,\n} from '../../hooks';\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nconst createToolbar = (state: ScriptToolbarState) => {\n const templateSelect = createTemplateSelect();\n const format = createFormat();\n const gap = createGapSeparator();\n const deploy = createDeploy(state);\n const view = createView(state);\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes, ...view.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges, ...view.edges],\n };\n};\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const handleAction = useToolbarAction({ state, script });\n const toolbarCreator = useCallback(() => createToolbar(state), [state]);\n const menu = useMenuActions(toolbarCreator);\n return (\n <div role='none' className={stackItemContentToolbarClassNames(role)}>\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} onAction={handleAction} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport {\n FunctionType,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n incrementSemverPatch,\n type ScriptType,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, create, getMeta, getSpace, makeRef, useQuery } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { type ViewState } from './view';\nimport { Bundler } from '../bundler';\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = ViewState & {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport const createDeploy = (state: Partial<DeployState>) => {\n const errorItem = createMenuAction('error', {\n label: state.error ?? ['no error label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>('deploy', {\n type: 'deploy',\n label: [state.deploying ? 'pending label' : 'deploy label', { ns: SCRIPT_PLUGIN }],\n icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: state.deploying,\n classNames: state.deploying ? '[&_svg]:animate-spin' : '',\n });\n\n const copyAction = createMenuAction<DeployActionProperties>('copy', {\n type: 'copy',\n label: ['copy link label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n });\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nconst useDeployDeps = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const space = getSpace(script);\n const [fn] = useQuery(space, Filter.schema(FunctionType, { source: script }));\n const client = useClient();\n const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [fn]);\n return { space, fn, client, existingFunctionUrl };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, existingFunctionUrl } = useDeployDeps({ state, script });\n useEffect(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n state.functionUrl = getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n }, [existingFunctionUrl, space]);\n\n useEffect(() => {\n state.deployed = Boolean(existingFunctionUrl) && !script.changed;\n }, [script.changed, existingFunctionUrl]);\n};\n\nexport const useDeployHandler = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, fn, client, existingFunctionUrl } = useDeployDeps({ state, script });\n const { t } = useTranslation(SCRIPT_PLUGIN);\n\n return useCallback(async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n try {\n const existingFunctionId = existingFunctionUrl?.split('/').at(-1);\n\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle(script.source.target!.content);\n if (buildResult.error || !buildResult.bundle) {\n throw buildResult.error;\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n spaceId: space.id,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: buildResult.bundle,\n });\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: functionId=${functionId}, version=${version}`);\n }\n\n log.info('function uploaded', { functionId, version });\n if (fn) {\n fn.version = version;\n }\n\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { name: functionId, version, source: makeRef(script) }));\n\n script.changed = false;\n if (script.description !== undefined && script.description.trim() !== '') {\n deployedFunction.description = script.description;\n } else if (meta.description) {\n deployedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n deployedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n if (meta.outputSchema) {\n deployedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);\n\n state.view = 'split';\n } catch (err: any) {\n log.catch(err);\n state.error = t('upload failed label');\n }\n state.deploying = false;\n }, [fn, client, t, existingFunctionUrl, script, script.name, script.source, space?.id ?? null]);\n};\n\nexport const useCopyHandler = ({ state }: { state: Partial<DeployState> }) =>\n useCallback(async () => {\n if (!state.functionUrl) {\n return;\n }\n await navigator.clipboard.writeText(state.functionUrl);\n }, [state.functionUrl]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = () => {\n const formatAction = createMenuAction('format', {\n label: ['format label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n });\n\n return {\n nodes: [formatAction],\n edges: [{ source: 'root', target: 'format' }],\n };\n};\n\nexport const useFormatHandler = ({ script }: { script: ScriptType }) =>\n useCallback(async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.target!.content = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n }, [script.source]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';\nimport { getMeta } from '@dxos/live-object';\nimport { createMenuItemGroup, createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectGroup = () => {\n return createMenuItemGroup('template-select', {\n label: ['template select group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n });\n};\n\nconst createTemplateSelectActions = () => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(`template--${template.id}`, {\n label: template.name,\n value: template.id,\n type: 'template',\n });\n });\n};\n\nexport const createTemplateSelect = () => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions();\n return {\n nodes: [templateSelectGroup, ...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n\nexport const useTemplateSelectHandler = ({ script }: { script: ScriptType }) => {\n return useCallback(\n (templateId: string) => {\n const template = templates.find((template) => template.id === templateId);\n if (template) {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = getMeta(script).keys;\n const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n metaKeys.splice(oldPresetIndex, 1);\n }\n if (template.presetId) {\n metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n }\n },\n [script],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type ViewType = 'editor' | 'split' | 'debug';\n\nexport type ViewState = { view: ViewType };\n\nexport type ViewActionProperties = { type: 'view'; value: ViewType };\n\nconst views: Record<ViewType, string> = {\n editor: 'ph--code--regular',\n split: 'ph--square-split-vertical--regular',\n debug: 'ph--bug--regular',\n};\n\nconst createViewGroupItem = (state: Partial<ViewState>) => {\n return createMenuItemGroup('view', {\n label: ['view group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n applyActive: true,\n value: state.view,\n });\n};\n\nconst createViewActions = (state: Partial<ViewState>) => {\n return Object.entries(views).map(([viewType, icon]) => {\n return createMenuAction<ViewActionProperties>(`view--${viewType}`, {\n type: 'view',\n value: viewType as ViewType,\n label: [`view ${viewType} label`, { ns: SCRIPT_PLUGIN }],\n icon,\n checked: state.view === viewType,\n });\n });\n};\n\nexport const createView = (state: Partial<ViewState>) => {\n const viewGroupItem = createViewGroupItem(state);\n const viewActions = createViewActions(state);\n return {\n nodes: [viewGroupItem, ...viewActions],\n edges: [\n { source: 'root', target: 'view' },\n ...viewActions.map((action) => ({ source: 'view', target: action.id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type MenuAction, type MenuActionHandler } from '@dxos/react-ui-menu';\n\nimport { type DeployActionProperties, useDeployHandler, useCopyHandler } from './deploy';\nimport { type FormatActionProperties, useFormatHandler } from './format';\nimport { type TemplateActionProperties, useTemplateSelectHandler } from './template';\nimport { type ScriptToolbarState } from './useToolbarState';\nimport { type ViewActionProperties } from './view';\n\nexport type ScriptToolbarActionProperties =\n | TemplateActionProperties\n | ViewActionProperties\n | FormatActionProperties\n | DeployActionProperties;\n\nexport type ScriptToolbarAction = MenuAction<ScriptToolbarActionProperties>;\n\nexport const useToolbarAction = (props: { state: ScriptToolbarState; script: ScriptType }) => {\n const handleTemplateSelect = useTemplateSelectHandler(props);\n const handleFormat = useFormatHandler(props);\n const handleDeploy = useDeployHandler(props);\n const handleCopy = useCopyHandler(props);\n return useCallback(\n ((action: ScriptToolbarAction) => {\n switch (action.properties.type) {\n case 'template':\n handleTemplateSelect(action.properties.value);\n break;\n case 'view':\n props.state.view = action.properties.value;\n break;\n case 'format':\n void handleFormat();\n break;\n case 'deploy':\n void handleDeploy();\n break;\n case 'copy':\n void handleCopy();\n break;\n default:\n log.error('Unknown action type', action);\n }\n }) as MenuActionHandler,\n [handleTemplateSelect, handleFormat, handleDeploy, handleCopy],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { create } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\nimport { type ViewState } from './view';\n\nexport type ScriptToolbarState = Partial<DeployState & ViewState>;\n\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => create<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n editorFullWidth,\n type EditorInputMode,\n editorMonospace,\n EditorView,\n folding,\n InputModeExtensions,\n useTextEditor,\n type UseTextEditorProps,\n} from '@dxos/react-ui-editor';\nimport { nonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = {\n id: string;\n inputMode?: EditorInputMode;\n env?: VirtualTypeScriptEnvironment;\n toolbar?: boolean;\n} & Pick<UseTextEditorProps, 'className' | 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>;\n\nexport const TypescriptEditor = ({\n id,\n env,\n className,\n initialValue,\n extensions,\n scrollTo,\n selection,\n toolbar,\n inputMode = 'vscode',\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: {\n content: { className: editorFullWidth },\n },\n }),\n // NOTE: Not using default editor gutter because folding for code works best right beside text.\n EditorView.theme({\n '.cm-gutters': {\n // Match margin from content.\n marginTop: '16px',\n },\n }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when you hit Enter.\n Prec.high(keymap.of(continueKeymap)),\n // TODO(burdon): Factor out.\n [\n editorMonospace,\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : [] }),\n env\n ? [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ]\n : [],\n ],\n ].filter(nonNullable),\n selection,\n scrollTo,\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div ref={parentRef} data-toolbar={toolbar ? 'enabled' : 'disabled'} className={className} {...focusAttributes} />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_echo", "import_react_ui_editor", "import_react_ui", "import_react_ui_menu", "import_log", "import_functions", "import_live_object", "createDeploy", "state", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "deployAction", "type", "deploying", "disabled", "classNames", "copyAction", "functionUrl", "nodes", "edges", "source", "target", "useDeployDeps", "script", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "client", "useClient", "existingFunctionUrl", "useMemo", "getUserFunctionUrlInMetadata", "getMeta", "useDeployState", "useEffect", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "deployed", "Boolean", "changed", "useDeployHandler", "t", "useTranslation", "useCallback", "undefined", "existingFunctionId", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "content", "functionId", "version", "meta", "uploadWorkerFunction", "incrementSemverPatch", "Error", "log", "info", "deployedFunction", "db", "add", "create", "name", "makeRef", "description", "trim", "verbose", "inputSchema", "outputSchema", "setUserFunctionUrlInMetadata", "view", "err", "catch", "useCopyHandler", "navigator", "clipboard", "writeText", "createFormat", "formatAction", "useFormatHandler", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "createTemplateSelectGroup", "createMenuItemGroup", "variant", "createTemplateSelectActions", "templates", "map", "template", "value", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "action", "useTemplateSelectHandler", "templateId", "find", "metaKeys", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "views", "editor", "debug", "createViewGroupItem", "applyActive", "createViewActions", "Object", "entries", "viewType", "checked", "createView", "viewGroupItem", "viewActions", "useToolbarAction", "props", "handleTemplateSelect", "handleFormat", "handleDeploy", "handleCopy", "properties", "useToolbarState", "initialState", "createToolbar", "templateSelect", "gap", "createGapSeparator", "deploy", "ScriptToolbar", "role", "handleAction", "toolbarCreator", "menu", "useMenuActions", "React", "div", "className", "stackItemContentToolbarClassNames", "ElevationProvider", "elevation", "MenuProvider", "onAction", "attendableId", "fullyQualifiedId", "ToolbarMenu", "TypescriptEditor", "env", "initialValue", "extensions", "scrollTo", "selection", "toolbar", "inputMode", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "slots", "editorFullWidth", "EditorView", "theme", "marginTop", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "editorMonospace", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "nonNullable", "ref", "data-toolbar", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "settings", "editorInputMode", "identity", "useIdentity", "listener", "onChange", "createDataExtensions", "createDocAccessor", "StackItem", "Content", "mx", "stackItemContentEditorClassNames", "DebugPanel"]
7
+ }