@dxos/plugin-script 0.8.0 → 0.8.1-main.013e445

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 (184) hide show
  1. package/dist/lib/browser/{ScriptContainer-3RFMYKTV.mjs → ScriptContainer-DDXZNAPF.mjs} +18 -21
  2. package/dist/lib/browser/ScriptContainer-DDXZNAPF.mjs.map +7 -0
  3. package/dist/lib/browser/{artifact-definition-4LWPD3DH.mjs → artifact-definition-GYCZJGR4.mjs} +8 -7
  4. package/dist/lib/browser/artifact-definition-GYCZJGR4.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-FVVCAWNP.mjs → chunk-27LV6ARH.mjs} +1 -1
  6. package/dist/lib/browser/chunk-27LV6ARH.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-PZPYF7M4.mjs → chunk-4SSKJNMZ.mjs} +2 -2
  8. package/dist/lib/browser/chunk-4SSKJNMZ.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-N46LE7FS.mjs → chunk-AJNRPWAA.mjs} +4 -4
  10. package/dist/lib/browser/{chunk-N46LE7FS.mjs.map → chunk-AJNRPWAA.mjs.map} +1 -1
  11. package/dist/lib/browser/{chunk-6MOQ4BP3.mjs → chunk-FG66JYON.mjs} +2 -2
  12. package/dist/lib/browser/{chunk-G2FYNDU4.mjs → chunk-LJN26TSM.mjs} +100 -49
  13. package/dist/lib/browser/chunk-LJN26TSM.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-T7XG5GED.mjs +467 -0
  15. package/dist/lib/browser/chunk-T7XG5GED.mjs.map +7 -0
  16. package/dist/lib/browser/{compiler-YY2XSKHQ.mjs → compiler-ZQLHHJ5P.mjs} +3 -3
  17. package/dist/lib/browser/index.mjs +23 -28
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-D6FPY5ZA.mjs → intent-resolver-3B3Z67FP.mjs} +5 -5
  20. package/dist/lib/browser/{intent-resolver-D6FPY5ZA.mjs.map → intent-resolver-3B3Z67FP.mjs.map} +1 -1
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-surface-G4C2PZ2K.mjs → react-surface-ICXHFHN7.mjs} +14 -16
  23. package/dist/lib/browser/react-surface-ICXHFHN7.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-SZCDKHWO.mjs → settings-467GVEBU.mjs} +3 -3
  25. package/dist/lib/browser/types.mjs +2 -2
  26. package/dist/lib/node/{ScriptContainer-G6FZU4AM.cjs → ScriptContainer-DM4WSS4Y.cjs} +26 -28
  27. package/dist/lib/node/ScriptContainer-DM4WSS4Y.cjs.map +7 -0
  28. package/dist/lib/node/{artifact-definition-BXQCFPAH.cjs → artifact-definition-3SNVJ34V.cjs} +20 -19
  29. package/dist/lib/node/artifact-definition-3SNVJ34V.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-5UH3F7TA.cjs → chunk-2XX4L67K.cjs} +4 -4
  31. package/dist/lib/node/chunk-2XX4L67K.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-ALY3N6PW.cjs → chunk-AOKGOI5J.cjs} +6 -6
  33. package/dist/lib/node/{chunk-XKYJYY3T.cjs → chunk-I5Z6TRZY.cjs} +111 -61
  34. package/dist/lib/node/chunk-I5Z6TRZY.cjs.map +7 -0
  35. package/dist/lib/node/chunk-VLQUYHPB.cjs +493 -0
  36. package/dist/lib/node/chunk-VLQUYHPB.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-ITAJ3WRW.cjs → chunk-XCQNFRZ6.cjs} +5 -5
  38. package/dist/lib/node/chunk-XCQNFRZ6.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-DJGLGRQV.cjs → chunk-XFB6JL2G.cjs} +10 -10
  40. package/dist/lib/node/chunk-XFB6JL2G.cjs.map +7 -0
  41. package/dist/lib/node/{compiler-UIBLKJKG.cjs → compiler-5ALLTH2B.cjs} +7 -7
  42. package/dist/lib/node/index.cjs +49 -54
  43. package/dist/lib/node/index.cjs.map +3 -3
  44. package/dist/lib/node/{intent-resolver-NYJFPD5B.cjs → intent-resolver-CN5WMMAD.cjs} +11 -11
  45. package/dist/lib/node/intent-resolver-CN5WMMAD.cjs.map +7 -0
  46. package/dist/lib/node/meta.json +1 -1
  47. package/dist/lib/node/{react-surface-EGSE3FMN.cjs → react-surface-IER3VEZR.cjs} +28 -29
  48. package/dist/lib/node/react-surface-IER3VEZR.cjs.map +7 -0
  49. package/dist/lib/node/{settings-SZFSMSKM.cjs → settings-WLYT2XQF.cjs} +9 -9
  50. package/dist/lib/node/types.cjs +4 -4
  51. package/dist/lib/node/types.cjs.map +1 -1
  52. package/dist/lib/node-esm/{ScriptContainer-7FTCFIF3.mjs → ScriptContainer-HWCHDARL.mjs} +18 -21
  53. package/dist/lib/node-esm/ScriptContainer-HWCHDARL.mjs.map +7 -0
  54. package/dist/lib/node-esm/{artifact-definition-KT4DK2LQ.mjs → artifact-definition-VAFNV62U.mjs} +8 -7
  55. package/dist/lib/node-esm/artifact-definition-VAFNV62U.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-YIWRJ25J.mjs → chunk-4YUSGXJ2.mjs} +2 -2
  57. package/dist/lib/node-esm/chunk-4YUSGXJ2.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-P2V2Y5LV.mjs → chunk-5S2KBIMH.mjs} +1 -1
  59. package/dist/lib/node-esm/chunk-5S2KBIMH.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-BIFA5BEB.mjs +468 -0
  61. package/dist/lib/node-esm/chunk-BIFA5BEB.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-NRICF4KE.mjs → chunk-F2O475DQ.mjs} +100 -49
  63. package/dist/lib/node-esm/chunk-F2O475DQ.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-CP5LXTK5.mjs → chunk-MFXRE7ZD.mjs} +2 -2
  65. package/dist/lib/node-esm/{chunk-UNQFIERE.mjs → chunk-WQ4YIZ2L.mjs} +4 -4
  66. package/dist/lib/node-esm/{chunk-UNQFIERE.mjs.map → chunk-WQ4YIZ2L.mjs.map} +1 -1
  67. package/dist/lib/node-esm/{compiler-XTXFGZJM.mjs → compiler-K7GYROAO.mjs} +3 -3
  68. package/dist/lib/node-esm/index.mjs +23 -28
  69. package/dist/lib/node-esm/index.mjs.map +3 -3
  70. package/dist/lib/node-esm/{intent-resolver-KLBHSMW4.mjs → intent-resolver-6F7CVQEX.mjs} +5 -5
  71. package/dist/lib/node-esm/{intent-resolver-KLBHSMW4.mjs.map → intent-resolver-6F7CVQEX.mjs.map} +1 -1
  72. package/dist/lib/node-esm/meta.json +1 -1
  73. package/dist/lib/node-esm/{react-surface-7YSGHZQM.mjs → react-surface-EXSKKZNP.mjs} +14 -16
  74. package/dist/lib/node-esm/react-surface-EXSKKZNP.mjs.map +7 -0
  75. package/dist/lib/node-esm/{settings-GR4O2WHZ.mjs → settings-DR3B6GHE.mjs} +3 -3
  76. package/dist/lib/node-esm/types.mjs +2 -2
  77. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  80. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +2 -1
  81. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -1
  82. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +2 -1
  83. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  84. package/dist/types/src/components/LogsPanel/LogsPanel.d.ts +8 -0
  85. package/dist/types/src/components/LogsPanel/LogsPanel.d.ts.map +1 -0
  86. package/dist/types/src/components/LogsPanel/index.d.ts +2 -0
  87. package/dist/types/src/components/LogsPanel/index.d.ts.map +1 -0
  88. package/dist/types/src/components/ScriptContainer.d.ts +4 -2
  89. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  90. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +2 -1
  91. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -1
  92. package/dist/types/src/components/ScriptSettingsPanel.d.ts +3 -2
  93. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
  94. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +3 -2
  95. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  96. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +2 -1
  97. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  98. package/dist/types/src/components/index.d.ts +2 -1
  99. package/dist/types/src/components/index.d.ts.map +1 -1
  100. package/dist/types/src/hooks/deploy.d.ts +24 -0
  101. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  102. package/dist/types/src/hooks/format.d.ts +1 -1
  103. package/dist/types/src/hooks/format.d.ts.map +1 -1
  104. package/dist/types/src/hooks/template.d.ts +1 -1
  105. package/dist/types/src/hooks/template.d.ts.map +1 -1
  106. package/dist/types/src/hooks/useToolbarAction.d.ts +1 -1
  107. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -1
  108. package/dist/types/src/hooks/useToolbarState.d.ts +2 -8
  109. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  110. package/dist/types/src/hooks/view.d.ts +3 -15
  111. package/dist/types/src/hooks/view.d.ts.map +1 -1
  112. package/dist/types/src/meta.d.ts +2 -9
  113. package/dist/types/src/meta.d.ts.map +1 -1
  114. package/dist/types/src/templates/discord.d.ts.map +1 -1
  115. package/dist/types/src/templates/index.d.ts.map +1 -1
  116. package/dist/types/src/translations.d.ts +8 -12
  117. package/dist/types/src/translations.d.ts.map +1 -1
  118. package/dist/types/src/types.d.ts +8 -2
  119. package/dist/types/src/types.d.ts.map +1 -1
  120. package/package.json +47 -43
  121. package/src/ScriptPlugin.tsx +3 -3
  122. package/src/capabilities/artifact-definition.ts +2 -1
  123. package/src/capabilities/intent-resolver.ts +1 -1
  124. package/src/capabilities/react-surface.tsx +16 -6
  125. package/src/components/LogsPanel/LogsPanel.tsx +116 -0
  126. package/src/components/LogsPanel/index.ts +5 -0
  127. package/src/components/ScriptContainer.tsx +18 -12
  128. package/src/components/ScriptSettingsPanel.tsx +1 -1
  129. package/src/components/ScriptToolbar/ScriptToolbar.tsx +1 -1
  130. package/src/components/TypescriptEditor/TypescriptEditor.tsx +1 -0
  131. package/src/components/index.ts +1 -0
  132. package/src/hooks/deploy.ts +4 -5
  133. package/src/hooks/format.ts +1 -1
  134. package/src/hooks/template.ts +1 -1
  135. package/src/hooks/useToolbarAction.ts +13 -4
  136. package/src/hooks/useToolbarState.ts +2 -2
  137. package/src/hooks/view.ts +7 -24
  138. package/src/meta.ts +2 -2
  139. package/src/templates/discord.ts +12 -5
  140. package/src/templates/index.ts +0 -7
  141. package/src/translations.ts +4 -7
  142. package/src/types.ts +2 -2
  143. package/src/vite-env.d.ts +20 -0
  144. package/dist/lib/browser/ScriptContainer-3RFMYKTV.mjs.map +0 -7
  145. package/dist/lib/browser/artifact-definition-4LWPD3DH.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-5SXOHNAK.mjs +0 -240
  147. package/dist/lib/browser/chunk-5SXOHNAK.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-FVVCAWNP.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-G2FYNDU4.mjs.map +0 -7
  150. package/dist/lib/browser/chunk-PZPYF7M4.mjs.map +0 -7
  151. package/dist/lib/browser/chunk-VTWBVFBK.mjs +0 -234
  152. package/dist/lib/browser/chunk-VTWBVFBK.mjs.map +0 -7
  153. package/dist/lib/browser/react-surface-G4C2PZ2K.mjs.map +0 -7
  154. package/dist/lib/node/ScriptContainer-G6FZU4AM.cjs.map +0 -7
  155. package/dist/lib/node/artifact-definition-BXQCFPAH.cjs.map +0 -7
  156. package/dist/lib/node/chunk-5UH3F7TA.cjs.map +0 -7
  157. package/dist/lib/node/chunk-DJGLGRQV.cjs.map +0 -7
  158. package/dist/lib/node/chunk-ITAJ3WRW.cjs.map +0 -7
  159. package/dist/lib/node/chunk-K3ZZWVXS.cjs +0 -269
  160. package/dist/lib/node/chunk-K3ZZWVXS.cjs.map +0 -7
  161. package/dist/lib/node/chunk-TOXBGIEI.cjs +0 -261
  162. package/dist/lib/node/chunk-TOXBGIEI.cjs.map +0 -7
  163. package/dist/lib/node/chunk-XKYJYY3T.cjs.map +0 -7
  164. package/dist/lib/node/intent-resolver-NYJFPD5B.cjs.map +0 -7
  165. package/dist/lib/node/react-surface-EGSE3FMN.cjs.map +0 -7
  166. package/dist/lib/node-esm/ScriptContainer-7FTCFIF3.mjs.map +0 -7
  167. package/dist/lib/node-esm/artifact-definition-KT4DK2LQ.mjs.map +0 -7
  168. package/dist/lib/node-esm/chunk-2AFXX34U.mjs +0 -241
  169. package/dist/lib/node-esm/chunk-2AFXX34U.mjs.map +0 -7
  170. package/dist/lib/node-esm/chunk-NRICF4KE.mjs.map +0 -7
  171. package/dist/lib/node-esm/chunk-P2V2Y5LV.mjs.map +0 -7
  172. package/dist/lib/node-esm/chunk-S64WSJQK.mjs +0 -235
  173. package/dist/lib/node-esm/chunk-S64WSJQK.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-YIWRJ25J.mjs.map +0 -7
  175. package/dist/lib/node-esm/react-surface-7YSGHZQM.mjs.map +0 -7
  176. /package/dist/lib/browser/{chunk-6MOQ4BP3.mjs.map → chunk-FG66JYON.mjs.map} +0 -0
  177. /package/dist/lib/browser/{compiler-YY2XSKHQ.mjs.map → compiler-ZQLHHJ5P.mjs.map} +0 -0
  178. /package/dist/lib/browser/{settings-SZCDKHWO.mjs.map → settings-467GVEBU.mjs.map} +0 -0
  179. /package/dist/lib/node/{chunk-ALY3N6PW.cjs.map → chunk-AOKGOI5J.cjs.map} +0 -0
  180. /package/dist/lib/node/{compiler-UIBLKJKG.cjs.map → compiler-5ALLTH2B.cjs.map} +0 -0
  181. /package/dist/lib/node/{settings-SZFSMSKM.cjs.map → settings-WLYT2XQF.cjs.map} +0 -0
  182. /package/dist/lib/node-esm/{chunk-CP5LXTK5.mjs.map → chunk-MFXRE7ZD.mjs.map} +0 -0
  183. /package/dist/lib/node-esm/{compiler-XTXFGZJM.mjs.map → compiler-K7GYROAO.mjs.map} +0 -0
  184. /package/dist/lib/node-esm/{settings-GR4O2WHZ.mjs.map → settings-DR3B6GHE.mjs.map} +0 -0
@@ -26,8 +26,9 @@ 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 chunk_XKYJYY3T_exports = {};
30
- __export(chunk_XKYJYY3T_exports, {
29
+ var chunk_I5Z6TRZY_exports = {};
30
+ __export(chunk_I5Z6TRZY_exports, {
31
+ LogsPanel: () => LogsPanel,
31
32
  createDeploy: () => createDeploy,
32
33
  createFormat: () => createFormat,
33
34
  createTemplateSelect: () => createTemplateSelect,
@@ -36,9 +37,9 @@ __export(chunk_XKYJYY3T_exports, {
36
37
  useToolbarAction: () => useToolbarAction,
37
38
  useToolbarState: () => useToolbarState
38
39
  });
39
- module.exports = __toCommonJS(chunk_XKYJYY3T_exports);
40
- var import_chunk_ITAJ3WRW = require("./chunk-ITAJ3WRW.cjs");
41
- var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
40
+ module.exports = __toCommonJS(chunk_I5Z6TRZY_exports);
41
+ var import_chunk_XCQNFRZ6 = require("./chunk-XCQNFRZ6.cjs");
42
+ var import_chunk_2XX4L67K = require("./chunk-2XX4L67K.cjs");
42
43
  var import_react = require("react");
43
44
  var import_functions = require("@dxos/functions");
44
45
  var import_bundler = require("@dxos/functions/bundler");
@@ -56,19 +57,28 @@ var import_react3 = require("react");
56
57
  var import_log2 = require("@dxos/log");
57
58
  var import_react_ui_menu2 = require("@dxos/react-ui-menu");
58
59
  var import_react4 = require("react");
59
- var import_functions2 = require("@dxos/functions");
60
+ var import_types = require("@dxos/functions/types");
60
61
  var import_live_object2 = require("@dxos/live-object");
61
62
  var import_react_ui_menu3 = require("@dxos/react-ui-menu");
62
63
  var import_react_ui_menu4 = require("@dxos/react-ui-menu");
63
64
  var import_react5 = require("react");
65
+ var import_app_framework = require("@dxos/app-framework");
64
66
  var import_log3 = require("@dxos/log");
67
+ var import_types2 = require("@dxos/plugin-deck/types");
68
+ var import_echo2 = require("@dxos/react-client/echo");
69
+ var import_react6 = __toESM(require("react"));
70
+ var import_echo_protocol = require("@dxos/echo-protocol");
71
+ var import_types3 = require("@dxos/functions/types");
72
+ var import_echo3 = require("@dxos/react-client/echo");
73
+ var import_react_ui2 = require("@dxos/react-ui");
74
+ var import_react_ui_theme = require("@dxos/react-ui-theme");
65
75
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/deploy.ts";
66
76
  var createDeploy = (state) => {
67
77
  const errorItem = (0, import_react_ui_menu.createMenuAction)("error", {
68
78
  label: state.error ?? [
69
79
  "no error label",
70
80
  {
71
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
81
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
72
82
  }
73
83
  ],
74
84
  icon: "ph--warning-circle--regular",
@@ -79,7 +89,7 @@ var createDeploy = (state) => {
79
89
  label: [
80
90
  state.deploying ? "pending label" : "deploy label",
81
91
  {
82
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
92
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
83
93
  }
84
94
  ],
85
95
  icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
@@ -91,7 +101,7 @@ var createDeploy = (state) => {
91
101
  label: [
92
102
  "copy link label",
93
103
  {
94
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
104
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
95
105
  }
96
106
  ],
97
107
  icon: "ph--link--regular",
@@ -119,7 +129,7 @@ var createDeploy = (state) => {
119
129
  ]
120
130
  };
121
131
  };
122
- var useDeployDeps = ({ state, script }) => {
132
+ var useDeployDeps = ({ script }) => {
123
133
  const space = (0, import_echo.getSpace)(script);
124
134
  const [fn] = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType, {
125
135
  source: script
@@ -137,7 +147,6 @@ var useDeployDeps = ({ state, script }) => {
137
147
  };
138
148
  var useDeployState = ({ state, script }) => {
139
149
  const { space, client, existingFunctionUrl } = useDeployDeps({
140
- state,
141
150
  script
142
151
  });
143
152
  (0, import_react.useEffect)(() => {
@@ -160,10 +169,9 @@ var useDeployState = ({ state, script }) => {
160
169
  };
161
170
  var useDeployHandler = ({ state, script }) => {
162
171
  const { space, fn, client, existingFunctionUrl } = useDeployDeps({
163
- state,
164
172
  script
165
173
  });
166
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_5UH3F7TA.SCRIPT_PLUGIN);
174
+ const { t } = (0, import_react_ui.useTranslation)(import_chunk_2XX4L67K.SCRIPT_PLUGIN);
167
175
  return (0, import_react.useCallback)(async () => {
168
176
  if (!script.source || !space) {
169
177
  return;
@@ -244,17 +252,16 @@ var useDeployHandler = ({ state, script }) => {
244
252
  functionId
245
253
  }, {
246
254
  F: __dxlog_file,
247
- L: 149,
255
+ L: 150,
248
256
  S: void 0,
249
257
  C: (f, a) => f(...a)
250
258
  });
251
259
  }
252
260
  (0, import_functions.setUserFunctionUrlInMetadata)((0, import_echo.getMeta)(deployedFunction), `/${space.id}/${functionId}`);
253
- state.view = "split";
254
261
  } catch (err) {
255
262
  import_log.log.catch(err, void 0, {
256
263
  F: __dxlog_file,
257
- L: 156,
264
+ L: 155,
258
265
  S: void 0,
259
266
  C: (f, a) => f(...a)
260
267
  });
@@ -289,7 +296,7 @@ var createFormat = () => {
289
296
  label: [
290
297
  "format label",
291
298
  {
292
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
299
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
293
300
  }
294
301
  ],
295
302
  icon: "ph--magic-wand--regular"
@@ -336,14 +343,14 @@ var createTemplateSelectGroup = () => {
336
343
  label: [
337
344
  "template select group label",
338
345
  {
339
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
346
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
340
347
  }
341
348
  ],
342
349
  variant: "dropdownMenu"
343
350
  });
344
351
  };
345
352
  var createTemplateSelectActions = () => {
346
- return import_chunk_ITAJ3WRW.templates.map((template) => {
353
+ return import_chunk_XCQNFRZ6.templates.map((template) => {
347
354
  return (0, import_react_ui_menu3.createMenuAction)(`template--${template.id}`, {
348
355
  label: template.name,
349
356
  value: template.id,
@@ -373,18 +380,18 @@ var createTemplateSelect = () => {
373
380
  };
374
381
  var useTemplateSelectHandler = ({ script }) => {
375
382
  return (0, import_react4.useCallback)((templateId) => {
376
- const template = import_chunk_ITAJ3WRW.templates.find((template2) => template2.id === templateId);
383
+ const template = import_chunk_XCQNFRZ6.templates.find((template2) => template2.id === templateId);
377
384
  if (template) {
378
385
  script.name = template.name;
379
386
  script.source.target.content = template.source;
380
387
  const metaKeys = (0, import_live_object2.getMeta)(script).keys;
381
- const oldPresetIndex = metaKeys.findIndex((key) => key.source === import_functions2.FUNCTIONS_PRESET_META_KEY);
388
+ const oldPresetIndex = metaKeys.findIndex((key) => key.source === import_types.FUNCTIONS_PRESET_META_KEY);
382
389
  if (oldPresetIndex >= 0) {
383
390
  metaKeys.splice(oldPresetIndex, 1);
384
391
  }
385
392
  if (template.presetId) {
386
393
  metaKeys.push({
387
- source: import_functions2.FUNCTIONS_PRESET_META_KEY,
394
+ source: import_types.FUNCTIONS_PRESET_META_KEY,
388
395
  id: template.presetId
389
396
  });
390
397
  }
@@ -394,22 +401,9 @@ var useTemplateSelectHandler = ({ script }) => {
394
401
  ]);
395
402
  };
396
403
  var views = {
397
- editor: "ph--code--regular",
398
- split: "ph--square-split-vertical--regular",
399
- debug: "ph--bug--regular"
400
- };
401
- var createViewGroupItem = (state) => {
402
- return (0, import_react_ui_menu4.createMenuItemGroup)("view", {
403
- label: [
404
- "view group label",
405
- {
406
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
407
- }
408
- ],
409
- variant: "dropdownMenu",
410
- applyActive: true,
411
- value: state.view
412
- });
404
+ // editor: 'ph--code--regular',
405
+ // split: 'ph--square-split-vertical--regular',
406
+ logs: "ph--clock-counter-clockwise--regular"
413
407
  };
414
408
  var createViewActions = (state) => {
415
409
  return Object.entries(views).map(([viewType, icon]) => {
@@ -419,32 +413,21 @@ var createViewActions = (state) => {
419
413
  label: [
420
414
  `view ${viewType} label`,
421
415
  {
422
- ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
416
+ ns: import_chunk_2XX4L67K.SCRIPT_PLUGIN
423
417
  }
424
418
  ],
425
- icon,
426
- checked: state.view === viewType
419
+ icon
427
420
  });
428
421
  });
429
422
  };
430
423
  var createView = (state) => {
431
- const viewGroupItem = createViewGroupItem(state);
432
424
  const viewActions = createViewActions(state);
433
425
  return {
434
- nodes: [
435
- viewGroupItem,
436
- ...viewActions
437
- ],
438
- edges: [
439
- {
440
- source: "root",
441
- target: "view"
442
- },
443
- ...viewActions.map((action) => ({
444
- source: "view",
445
- target: action.id
446
- }))
447
- ]
426
+ nodes: viewActions,
427
+ edges: viewActions.map((action) => ({
428
+ source: "root",
429
+ target: action.id
430
+ }))
448
431
  };
449
432
  };
450
433
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/useToolbarAction.ts";
@@ -453,14 +436,18 @@ var useToolbarAction = (props) => {
453
436
  const handleFormat = useFormatHandler(props);
454
437
  const handleDeploy = useDeployHandler(props);
455
438
  const handleCopy = useCopyHandler(props);
439
+ const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
456
440
  return (0, import_react5.useCallback)((action) => {
457
441
  switch (action.properties.type) {
442
+ case "view":
443
+ void dispatch((0, import_app_framework.createIntent)(import_types2.DeckAction.ChangeCompanion, {
444
+ primary: (0, import_echo2.fullyQualifiedId)(props.script),
445
+ companion: (0, import_types2.surfaceVariant)("logs")
446
+ }));
447
+ break;
458
448
  case "template":
459
449
  handleTemplateSelect(action.properties.value);
460
450
  break;
461
- case "view":
462
- props.state.view = action.properties.value;
463
- break;
464
451
  case "format":
465
452
  void handleFormat();
466
453
  break;
@@ -473,7 +460,7 @@ var useToolbarAction = (props) => {
473
460
  default:
474
461
  import_log3.log.error("Unknown action type", action, {
475
462
  F: __dxlog_file3,
476
- L: 49,
463
+ L: 58,
477
464
  S: void 0,
478
465
  C: (f, a) => f(...a)
479
466
  });
@@ -485,8 +472,71 @@ var useToolbarAction = (props) => {
485
472
  handleCopy
486
473
  ]);
487
474
  };
475
+ var LogsPanel = ({ script, classNames }) => {
476
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_2XX4L67K.SCRIPT_PLUGIN);
477
+ const { space, existingFunctionUrl } = useDeployDeps({
478
+ script
479
+ });
480
+ const invocationTraceQueue = (0, import_echo3.useQueue)(space?.properties.invocationTraceQueue?.dxn, {
481
+ pollInterval: 500
482
+ });
483
+ const invocationSpans = (0, import_react6.useMemo)(() => (0, import_types3.createInvocationSpans)(invocationTraceQueue?.items), [
484
+ invocationTraceQueue?.items ?? []
485
+ ]);
486
+ const [selected, setSelected] = (0, import_react6.useState)();
487
+ const workerDxn = `dxn:worker:${existingFunctionUrl?.split("/").at(-1)}`;
488
+ if (!invocationTraceQueue) {
489
+ return /* @__PURE__ */ import_react6.default.createElement("div", null, t("no invocations message"));
490
+ }
491
+ const handleOpenChange = (0, import_react6.useCallback)((trace, open) => {
492
+ setSelected(open ? trace : void 0);
493
+ }, []);
494
+ return /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.List, {
495
+ classNames: (0, import_react_ui_theme.mx)("overflow-y-auto", classNames)
496
+ }, invocationSpans.filter((trace) => (0, import_echo_protocol.decodeReference)(trace.invocationTarget).dxn?.toString() === workerDxn).map((trace) => /* @__PURE__ */ import_react6.default.createElement(InvocationTraceItem, {
497
+ key: trace.id,
498
+ trace,
499
+ open: selected?.id === trace.id,
500
+ setOpen: handleOpenChange
501
+ })));
502
+ };
503
+ var InvocationTraceItem = ({ trace, open, setOpen }) => {
504
+ const eventQueue = (0, import_echo3.useQueue)(open ? (0, import_echo_protocol.decodeReference)(trace.invocationTraceQueue).dxn : void 0);
505
+ const handleOpenChange = (0, import_react6.useCallback)((open2) => {
506
+ setOpen?.(trace, open2);
507
+ }, [
508
+ trace,
509
+ setOpen
510
+ ]);
511
+ const logs = (0, import_react6.useMemo)(() => eventQueue?.items.flatMap((event) => event.logs), [
512
+ eventQueue?.items
513
+ ]);
514
+ const heading = "bodyText" in trace.input && typeof trace.input.bodyText === "string" ? trace.input.bodyText : JSON.stringify(trace.input);
515
+ return /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.ListItem.Root, {
516
+ key: trace.id,
517
+ collapsible: true,
518
+ open,
519
+ onOpenChange: handleOpenChange
520
+ }, /* @__PURE__ */ import_react6.default.createElement("div", {
521
+ className: "flex items-center gap-2"
522
+ }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.ListItem.OpenTrigger, null), /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.ListItem.Endcap, {
523
+ classNames: "flex items-center justify-center"
524
+ }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.Icon, {
525
+ icon: trace.outcome === "success" ? "ph--check--regular" : "ph--x--regular",
526
+ size: 5
527
+ })), /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.ListItem.Heading, {
528
+ classNames: "flex-1 flex items-center gap-2 truncate"
529
+ }, /* @__PURE__ */ import_react6.default.createElement("span", null, new Date(trace.timestampMs).toLocaleString()), /* @__PURE__ */ import_react6.default.createElement("span", null, heading))), logs && /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.ListItem.CollapsibleContent, null, /* @__PURE__ */ import_react6.default.createElement("div", {
530
+ className: "flex items-center gap-2"
531
+ }, /* @__PURE__ */ import_react6.default.createElement("span", null, "Duration:"), /* @__PURE__ */ import_react6.default.createElement("span", null, trace.durationMs, "ms")), /* @__PURE__ */ import_react6.default.createElement("pre", null, /* @__PURE__ */ import_react6.default.createElement("div", null, JSON.stringify(trace.input, null, 2)), logs.map((log4, index) => {
532
+ return /* @__PURE__ */ import_react6.default.createElement("div", {
533
+ key: index
534
+ }, JSON.stringify(log4, null, 2));
535
+ }))));
536
+ };
488
537
  // Annotate the CommonJS export names for ESM import in node:
489
538
  0 && (module.exports = {
539
+ LogsPanel,
490
540
  createDeploy,
491
541
  createFormat,
492
542
  createTemplateSelect,
@@ -495,4 +545,4 @@ var useToolbarAction = (props) => {
495
545
  useToolbarAction,
496
546
  useToolbarState
497
547
  });
498
- //# sourceMappingURL=chunk-XKYJYY3T.cjs.map
548
+ //# sourceMappingURL=chunk-I5Z6TRZY.cjs.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", "../../../src/hooks/view.ts", "../../../src/hooks/useToolbarAction.ts", "../../../src/components/LogsPanel/LogsPanel.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport {\n FunctionType,\n type ScriptType,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n incrementSemverPatch,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\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 { 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\nexport const useDeployDeps = ({ script }: { 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({ 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({ 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({ source: 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\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 } 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 { useMemo } from 'react';\n\nimport { create } 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(() => create<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';\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions/types';\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/types';\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 } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type ViewType = /* 'editor' | 'split' | */ 'logs';\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 logs: 'ph--clock-counter-clockwise--regular',\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 });\n });\n};\n\nexport const createView = (state: Partial<ViewState>) => {\n const viewActions = createViewActions(state);\n return {\n nodes: viewActions,\n edges: viewActions.map((action) => ({ source: 'root', target: action.id })),\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { type ScriptType } from '@dxos/functions/types';\nimport { log } from '@dxos/log';\nimport { DeckAction, surfaceVariant } from '@dxos/plugin-deck/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\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 const { dispatchPromise: dispatch } = useIntentDispatcher();\n return useCallback(\n ((action: ScriptToolbarAction) => {\n switch (action.properties.type) {\n case 'view':\n void dispatch(\n createIntent(DeckAction.ChangeCompanion, {\n primary: fullyQualifiedId(props.script),\n companion: surfaceVariant('logs'),\n }),\n );\n break;\n case 'template':\n handleTemplateSelect(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 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { decodeReference } from '@dxos/echo-protocol';\nimport {\n type InvocationTraceEvent,\n type ScriptType,\n type TraceEvent,\n type InvocationSpan,\n createInvocationSpans,\n} from '@dxos/functions/types';\nimport { useQueue } from '@dxos/react-client/echo';\nimport { Icon, List, ListItem, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useDeployDeps } from '../../hooks';\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nexport type LogsPanelProps = ThemedClassName<{\n script: ScriptType;\n}>;\n\nexport const LogsPanel = ({ script, classNames }: LogsPanelProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n // TODO(wittjosiah): Refactor these hooks.\n const { space, existingFunctionUrl } = useDeployDeps({ script });\n const invocationTraceQueue = useQueue<InvocationTraceEvent>(space?.properties.invocationTraceQueue?.dxn, {\n pollInterval: 500,\n });\n const invocationSpans = useMemo(\n () => createInvocationSpans(invocationTraceQueue?.items),\n [invocationTraceQueue?.items ?? []],\n );\n const [selected, setSelected] = useState<InvocationSpan>();\n const workerDxn = `dxn:worker:${existingFunctionUrl?.split('/').at(-1)}`;\n\n if (!invocationTraceQueue) {\n return <div>{t('no invocations message')}</div>;\n }\n\n const handleOpenChange = useCallback((trace: InvocationSpan, open: boolean) => {\n setSelected(open ? trace : undefined);\n }, []);\n\n return (\n <List classNames={mx('overflow-y-auto', classNames)}>\n {invocationSpans\n .filter((trace) => decodeReference(trace.invocationTarget).dxn?.toString() === workerDxn)\n .map((trace) => (\n <InvocationTraceItem\n key={trace.id}\n trace={trace}\n open={selected?.id === trace.id}\n setOpen={handleOpenChange}\n />\n ))}\n </List>\n );\n};\n\nconst InvocationTraceItem = ({\n trace,\n open,\n setOpen,\n}: {\n trace: InvocationSpan;\n open?: boolean;\n setOpen?: (trace: InvocationSpan, open: boolean) => void;\n}) => {\n const eventQueue = useQueue<TraceEvent>(open ? decodeReference(trace.invocationTraceQueue).dxn : undefined);\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setOpen?.(trace, open);\n },\n [trace, setOpen],\n );\n\n const logs = useMemo(() => eventQueue?.items.flatMap((event) => event.logs), [eventQueue?.items]);\n const heading =\n 'bodyText' in trace.input && typeof trace.input.bodyText === 'string'\n ? trace.input.bodyText\n : JSON.stringify(trace.input);\n\n return (\n <ListItem.Root key={trace.id} collapsible open={open} onOpenChange={handleOpenChange}>\n <div className='flex items-center gap-2'>\n <ListItem.OpenTrigger />\n <ListItem.Endcap classNames='flex items-center justify-center'>\n <Icon icon={trace.outcome === 'success' ? 'ph--check--regular' : 'ph--x--regular'} size={5} />\n </ListItem.Endcap>\n <ListItem.Heading classNames='flex-1 flex items-center gap-2 truncate'>\n <span>{new Date(trace.timestampMs).toLocaleString()}</span>\n <span>{heading}</span>\n </ListItem.Heading>\n </div>\n {logs && (\n <ListItem.CollapsibleContent>\n <div className='flex items-center gap-2'>\n <span>Duration:</span>\n <span>{trace.durationMs}ms</span>\n </div>\n <pre>\n <div>{JSON.stringify(trace.input, null, 2)}</div>\n {logs.map((log, index) => {\n return <div key={index}>{JSON.stringify(log, null, 2)}</div>;\n })}\n </pre>\n </ListItem.CollapsibleContent>\n )}\n </ListItem.Root>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_log", "import_react_ui_menu", "import_live_object", "import_types", "import_echo", "import_react_ui", "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", "err", "catch", "useCopyHandler", "navigator", "clipboard", "writeText", "useToolbarState", "initialState", "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", "logs", "createViewActions", "Object", "entries", "viewType", "createView", "viewActions", "useToolbarAction", "props", "handleTemplateSelect", "handleFormat", "handleDeploy", "handleCopy", "dispatchPromise", "dispatch", "useIntentDispatcher", "properties", "createIntent", "DeckAction", "ChangeCompanion", "primary", "fullyQualifiedId", "companion", "surfaceVariant", "LogsPanel", "invocationTraceQueue", "useQueue", "dxn", "pollInterval", "invocationSpans", "createInvocationSpans", "items", "selected", "setSelected", "useState", "workerDxn", "React", "div", "handleOpenChange", "trace", "open", "List", "mx", "filter", "decodeReference", "invocationTarget", "toString", "InvocationTraceItem", "setOpen", "eventQueue", "flatMap", "event", "heading", "input", "bodyText", "JSON", "stringify", "ListItem", "Root", "collapsible", "onOpenChange", "className", "OpenTrigger", "Endcap", "Icon", "outcome", "size", "Heading", "span", "Date", "timestampMs", "toLocaleString", "CollapsibleContent", "durationMs", "pre", "index"]
7
+ }