@dxos/plugin-script 0.7.5-main.9d26e3a → 0.7.5-main.b19bfc8

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 (265) hide show
  1. package/dist/lib/browser/{AutomationPanel-RFQAQ7NF.mjs → AutomationPanel-6HFRNRWV.mjs} +3 -3
  2. package/dist/lib/browser/ScriptContainer-U3BFT76B.mjs +713 -0
  3. package/dist/lib/browser/ScriptContainer-U3BFT76B.mjs.map +7 -0
  4. package/dist/lib/browser/artifact-definition-NAWYXFF5.mjs +243 -0
  5. package/dist/lib/browser/artifact-definition-NAWYXFF5.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-K7KY6YMG.mjs → chunk-5SXOHNAK.mjs} +4 -4
  7. package/dist/lib/browser/chunk-5SXOHNAK.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-6MOQ4BP3.mjs +15 -0
  9. package/dist/lib/browser/chunk-6MOQ4BP3.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-HJNS3BBK.mjs +236 -0
  13. package/dist/lib/browser/chunk-HJNS3BBK.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-N46LE7FS.mjs +40 -0
  15. package/dist/lib/browser/chunk-N46LE7FS.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-PZPYF7M4.mjs +69 -0
  17. package/dist/lib/browser/chunk-PZPYF7M4.mjs.map +7 -0
  18. package/dist/lib/browser/compiler-YY2XSKHQ.mjs +82 -0
  19. package/dist/lib/browser/compiler-YY2XSKHQ.mjs.map +7 -0
  20. package/dist/lib/browser/index.mjs +129 -288
  21. package/dist/lib/browser/index.mjs.map +4 -4
  22. package/dist/lib/browser/intent-resolver-D6FPY5ZA.mjs +45 -0
  23. package/dist/lib/browser/intent-resolver-D6FPY5ZA.mjs.map +7 -0
  24. package/dist/lib/browser/meta.json +1 -1
  25. package/dist/lib/browser/react-surface-DIXYM2HA.mjs +65 -0
  26. package/dist/lib/browser/react-surface-DIXYM2HA.mjs.map +7 -0
  27. package/dist/lib/browser/settings-SZCDKHWO.mjs +24 -0
  28. package/dist/lib/browser/settings-SZCDKHWO.mjs.map +7 -0
  29. package/dist/lib/browser/types.mjs +6 -4
  30. package/dist/lib/node/{AutomationPanel-5CJEF4MI.cjs → AutomationPanel-RBQ4DODN.cjs} +8 -8
  31. package/dist/lib/node/ScriptContainer-PSLB34RX.cjs +719 -0
  32. package/dist/lib/node/ScriptContainer-PSLB34RX.cjs.map +7 -0
  33. package/dist/lib/node/artifact-definition-7AANUS3X.cjs +262 -0
  34. package/dist/lib/node/artifact-definition-7AANUS3X.cjs.map +7 -0
  35. package/dist/lib/node/chunk-2UNNYU2C.cjs +264 -0
  36. package/dist/lib/node/chunk-2UNNYU2C.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-6LYX73ZT.cjs → chunk-5UH3F7TA.cjs} +11 -8
  38. package/dist/lib/node/chunk-5UH3F7TA.cjs.map +7 -0
  39. package/dist/lib/node/{meta.cjs → chunk-ALY3N6PW.cjs} +12 -8
  40. package/dist/lib/node/chunk-ALY3N6PW.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-PK3OQP5L.cjs → chunk-DJGLGRQV.cjs} +26 -11
  42. package/dist/lib/node/chunk-DJGLGRQV.cjs.map +7 -0
  43. package/dist/lib/node/chunk-ITAJ3WRW.cjs +77 -0
  44. package/dist/lib/node/chunk-ITAJ3WRW.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-4INUJLXL.cjs → chunk-K3ZZWVXS.cjs} +7 -7
  46. package/dist/lib/node/chunk-K3ZZWVXS.cjs.map +7 -0
  47. package/dist/lib/node/compiler-UIBLKJKG.cjs +104 -0
  48. package/dist/lib/node/compiler-UIBLKJKG.cjs.map +7 -0
  49. package/dist/lib/node/index.cjs +122 -277
  50. package/dist/lib/node/index.cjs.map +4 -4
  51. package/dist/lib/node/intent-resolver-NYJFPD5B.cjs +59 -0
  52. package/dist/lib/node/intent-resolver-NYJFPD5B.cjs.map +7 -0
  53. package/dist/lib/node/meta.json +1 -1
  54. package/dist/lib/node/react-surface-JOMWTFI2.cjs +84 -0
  55. package/dist/lib/node/react-surface-JOMWTFI2.cjs.map +7 -0
  56. package/dist/lib/node/settings-SZFSMSKM.cjs +38 -0
  57. package/dist/lib/node/settings-SZFSMSKM.cjs.map +7 -0
  58. package/dist/lib/node/types.cjs +6 -4
  59. package/dist/lib/node/types.cjs.map +2 -2
  60. package/dist/lib/node-esm/{AutomationPanel-7Y6REBNJ.mjs → AutomationPanel-WTVVVMRH.mjs} +3 -3
  61. package/dist/lib/node-esm/ScriptContainer-E4J6XXE6.mjs +714 -0
  62. package/dist/lib/node-esm/ScriptContainer-E4J6XXE6.mjs.map +7 -0
  63. package/dist/lib/node-esm/artifact-definition-KBASPVMM.mjs +245 -0
  64. package/dist/lib/node-esm/artifact-definition-KBASPVMM.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-OFYGBUNI.mjs → chunk-2AFXX34U.mjs} +4 -4
  66. package/dist/lib/node-esm/chunk-2AFXX34U.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-4OCRARHP.mjs +237 -0
  68. package/dist/lib/node-esm/chunk-4OCRARHP.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-CP5LXTK5.mjs +16 -0
  70. package/dist/lib/node-esm/chunk-CP5LXTK5.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-SLTZMY34.mjs → chunk-P2V2Y5LV.mjs} +7 -4
  72. package/dist/lib/node-esm/chunk-P2V2Y5LV.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-UNQFIERE.mjs +41 -0
  74. package/dist/lib/node-esm/chunk-UNQFIERE.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-YIWRJ25J.mjs +71 -0
  76. package/dist/lib/node-esm/chunk-YIWRJ25J.mjs.map +7 -0
  77. package/dist/lib/node-esm/compiler-XTXFGZJM.mjs +83 -0
  78. package/dist/lib/node-esm/compiler-XTXFGZJM.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +129 -288
  80. package/dist/lib/node-esm/index.mjs.map +4 -4
  81. package/dist/lib/node-esm/intent-resolver-KLBHSMW4.mjs +46 -0
  82. package/dist/lib/node-esm/intent-resolver-KLBHSMW4.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/react-surface-OLH7N3DK.mjs +66 -0
  85. package/dist/lib/node-esm/react-surface-OLH7N3DK.mjs.map +7 -0
  86. package/dist/lib/node-esm/settings-GR4O2WHZ.mjs +25 -0
  87. package/dist/lib/node-esm/settings-GR4O2WHZ.mjs.map +7 -0
  88. package/dist/lib/node-esm/types.mjs +6 -4
  89. package/dist/types/src/ScriptPlugin.d.ts +1 -3
  90. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/artifact-definition.d.ts +11 -0
  92. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/capabilities.d.ts +5 -0
  94. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/compiler.d.ts +4 -0
  96. package/dist/types/src/capabilities/compiler.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/index.d.ts +7 -0
  98. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
  100. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/react-surface.d.ts +4 -0
  102. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/settings.d.ts +4 -0
  104. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  105. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -2
  106. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  107. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +1 -2
  108. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -1
  109. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +3 -4
  110. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  111. package/dist/types/src/components/ScriptContainer.d.ts +10 -3
  112. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  113. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +1 -2
  114. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -1
  115. package/dist/types/src/components/ScriptSettingsPanel.d.ts +1 -2
  116. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
  117. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +10 -0
  118. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -0
  119. package/dist/types/src/components/{Toolbar/Toolbar.stories.d.ts → ScriptToolbar/ScriptToolbar.stories.d.ts} +1 -1
  120. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -0
  121. package/dist/types/src/components/ScriptToolbar/index.d.ts +2 -0
  122. package/dist/types/src/components/ScriptToolbar/index.d.ts.map +1 -0
  123. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -3
  124. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  125. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  126. package/dist/types/src/components/index.d.ts +2 -2
  127. package/dist/types/src/components/index.d.ts.map +1 -1
  128. package/dist/types/src/events.d.ts +4 -0
  129. package/dist/types/src/events.d.ts.map +1 -0
  130. package/dist/types/src/hooks/deploy.d.ts +48 -0
  131. package/dist/types/src/hooks/deploy.d.ts.map +1 -0
  132. package/dist/types/src/hooks/format.d.ts +25 -0
  133. package/dist/types/src/hooks/format.d.ts.map +1 -0
  134. package/dist/types/src/hooks/index.d.ts +7 -0
  135. package/dist/types/src/hooks/index.d.ts.map +1 -0
  136. package/dist/types/src/hooks/template.d.ts +31 -0
  137. package/dist/types/src/hooks/template.d.ts.map +1 -0
  138. package/dist/types/src/hooks/useToolbarAction.d.ts +14 -0
  139. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -0
  140. package/dist/types/src/hooks/useToolbarState.d.ts +10 -0
  141. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -0
  142. package/dist/types/src/hooks/view.d.ts +33 -0
  143. package/dist/types/src/hooks/view.d.ts.map +1 -0
  144. package/dist/types/src/index.d.ts +2 -5
  145. package/dist/types/src/index.d.ts.map +1 -1
  146. package/dist/types/src/meta.d.ts +2 -2
  147. package/dist/types/src/meta.d.ts.map +1 -1
  148. package/dist/types/src/templates/chess.d.ts +1 -4
  149. package/dist/types/src/templates/chess.d.ts.map +1 -1
  150. package/dist/types/src/templates/discord.d.ts +3 -0
  151. package/dist/types/src/templates/discord.d.ts.map +1 -0
  152. package/dist/types/src/templates/echo.d.ts.map +1 -1
  153. package/dist/types/src/templates/email.d.ts +2 -1
  154. package/dist/types/src/templates/email.d.ts.map +1 -1
  155. package/dist/types/src/templates/forex-effect.d.ts +3 -0
  156. package/dist/types/src/templates/forex-effect.d.ts.map +1 -0
  157. package/dist/types/src/templates/forex.d.ts +1 -4
  158. package/dist/types/src/templates/forex.d.ts.map +1 -1
  159. package/dist/types/src/{templates.d.ts → templates/index.d.ts} +1 -1
  160. package/dist/types/src/templates/index.d.ts.map +1 -0
  161. package/dist/types/src/translations.d.ts +97 -0
  162. package/dist/types/src/translations.d.ts.map +1 -1
  163. package/dist/types/src/types.d.ts +14 -6
  164. package/dist/types/src/types.d.ts.map +1 -1
  165. package/dist/types/tsconfig.tsbuildinfo +1 -1
  166. package/package.json +45 -46
  167. package/src/ScriptPlugin.tsx +70 -90
  168. package/src/capabilities/artifact-definition.ts +219 -0
  169. package/src/capabilities/capabilities.ts +12 -0
  170. package/src/capabilities/compiler.ts +33 -0
  171. package/src/capabilities/index.ts +13 -0
  172. package/src/capabilities/intent-resolver.ts +46 -0
  173. package/src/capabilities/react-surface.tsx +54 -0
  174. package/src/capabilities/settings.ts +14 -0
  175. package/src/compiler/compiler.browser.test.ts +1 -1
  176. package/src/components/DebugPanel/DebugPanel.tsx +2 -2
  177. package/src/components/FrameContainer/FrameContainer.tsx +5 -4
  178. package/src/components/ScriptContainer.tsx +69 -9
  179. package/src/components/ScriptSettings/ScriptSettings.tsx +28 -4
  180. package/src/components/ScriptSettingsPanel.tsx +139 -51
  181. package/src/components/{Toolbar/Toolbar.stories.tsx → ScriptToolbar/ScriptToolbar.stories.tsx} +2 -2
  182. package/src/components/ScriptToolbar/ScriptToolbar.tsx +53 -0
  183. package/src/{bundler → components/ScriptToolbar}/index.ts +1 -1
  184. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +2 -0
  185. package/src/components/TypescriptEditor/TypescriptEditor.tsx +75 -10
  186. package/src/events.ts +11 -0
  187. package/src/hooks/deploy.ts +169 -0
  188. package/src/hooks/format.ts +47 -0
  189. package/src/hooks/index.ts +11 -0
  190. package/src/hooks/template.ts +64 -0
  191. package/src/hooks/useToolbarAction.ts +54 -0
  192. package/src/hooks/useToolbarState.ts +16 -0
  193. package/src/hooks/view.ts +52 -0
  194. package/src/index.ts +2 -7
  195. package/src/meta.ts +4 -2
  196. package/src/templates/chat.ts +4 -4
  197. package/src/templates/chess.ts +42 -35
  198. package/src/templates/discord.ts +103 -0
  199. package/src/templates/echo.ts +5 -1
  200. package/src/templates/email.ts +26 -23
  201. package/src/templates/forex-effect.ts +41 -0
  202. package/src/templates/forex.ts +23 -16
  203. package/src/{templates.ts → templates/index.ts} +20 -5
  204. package/src/translations.ts +23 -0
  205. package/src/types.ts +19 -18
  206. package/dist/lib/browser/ScriptContainer-GDVBWFI7.mjs +0 -415
  207. package/dist/lib/browser/ScriptContainer-GDVBWFI7.mjs.map +0 -7
  208. package/dist/lib/browser/chunk-4UTRJLQ3.mjs +0 -286
  209. package/dist/lib/browser/chunk-4UTRJLQ3.mjs.map +0 -7
  210. package/dist/lib/browser/chunk-C7VBULMK.mjs +0 -18
  211. package/dist/lib/browser/chunk-C7VBULMK.mjs.map +0 -7
  212. package/dist/lib/browser/chunk-K7KY6YMG.mjs.map +0 -7
  213. package/dist/lib/browser/chunk-RQA3EB5K.mjs +0 -26
  214. package/dist/lib/browser/chunk-RQA3EB5K.mjs.map +0 -7
  215. package/dist/lib/browser/meta.mjs +0 -9
  216. package/dist/lib/browser/meta.mjs.map +0 -7
  217. package/dist/lib/node/ScriptContainer-YWXXNLG6.cjs +0 -426
  218. package/dist/lib/node/ScriptContainer-YWXXNLG6.cjs.map +0 -7
  219. package/dist/lib/node/chunk-4INUJLXL.cjs.map +0 -7
  220. package/dist/lib/node/chunk-6LYX73ZT.cjs.map +0 -7
  221. package/dist/lib/node/chunk-PK3OQP5L.cjs.map +0 -7
  222. package/dist/lib/node/chunk-WPP65EYS.cjs +0 -298
  223. package/dist/lib/node/chunk-WPP65EYS.cjs.map +0 -7
  224. package/dist/lib/node/meta.cjs.map +0 -7
  225. package/dist/lib/node-esm/ScriptContainer-BG2PHKEH.mjs +0 -416
  226. package/dist/lib/node-esm/ScriptContainer-BG2PHKEH.mjs.map +0 -7
  227. package/dist/lib/node-esm/chunk-4SRPREUK.mjs +0 -288
  228. package/dist/lib/node-esm/chunk-4SRPREUK.mjs.map +0 -7
  229. package/dist/lib/node-esm/chunk-H6BBLQ5Q.mjs +0 -27
  230. package/dist/lib/node-esm/chunk-H6BBLQ5Q.mjs.map +0 -7
  231. package/dist/lib/node-esm/chunk-OFYGBUNI.mjs.map +0 -7
  232. package/dist/lib/node-esm/chunk-SLTZMY34.mjs.map +0 -7
  233. package/dist/lib/node-esm/meta.mjs +0 -10
  234. package/dist/lib/node-esm/meta.mjs.map +0 -7
  235. package/dist/types/src/bundler/bundler.d.ts +0 -39
  236. package/dist/types/src/bundler/bundler.d.ts.map +0 -1
  237. package/dist/types/src/bundler/bundler.test.d.ts +0 -2
  238. package/dist/types/src/bundler/bundler.test.d.ts.map +0 -1
  239. package/dist/types/src/bundler/index.d.ts +0 -2
  240. package/dist/types/src/bundler/index.d.ts.map +0 -1
  241. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts +0 -12
  242. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts.map +0 -1
  243. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts +0 -6
  244. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts.map +0 -1
  245. package/dist/types/src/components/ScriptBlock/index.d.ts +0 -2
  246. package/dist/types/src/components/ScriptBlock/index.d.ts.map +0 -1
  247. package/dist/types/src/components/ScriptEditor.d.ts +0 -9
  248. package/dist/types/src/components/ScriptEditor.d.ts.map +0 -1
  249. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -23
  250. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  251. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +0 -1
  252. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  253. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  254. package/dist/types/src/templates.d.ts.map +0 -1
  255. package/src/bundler/bundler.test.ts +0 -54
  256. package/src/bundler/bundler.ts +0 -250
  257. package/src/components/ScriptBlock/ScriptBlock.stories.tsx +0 -55
  258. package/src/components/ScriptBlock/ScriptBlock.tsx +0 -102
  259. package/src/components/ScriptBlock/index.ts +0 -5
  260. package/src/components/ScriptEditor.tsx +0 -193
  261. package/src/components/Toolbar/Toolbar.tsx +0 -177
  262. package/src/components/Toolbar/index.ts +0 -5
  263. /package/dist/lib/browser/{AutomationPanel-RFQAQ7NF.mjs.map → AutomationPanel-6HFRNRWV.mjs.map} +0 -0
  264. /package/dist/lib/node/{AutomationPanel-5CJEF4MI.cjs.map → AutomationPanel-RBQ4DODN.cjs.map} +0 -0
  265. /package/dist/lib/node-esm/{AutomationPanel-7Y6REBNJ.mjs.map → AutomationPanel-WTVVVMRH.mjs.map} +0 -0
@@ -0,0 +1,714 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ templates
4
+ } from "./chunk-YIWRJ25J.mjs";
5
+ import {
6
+ DebugPanel
7
+ } from "./chunk-2AFXX34U.mjs";
8
+ import {
9
+ SCRIPT_PLUGIN
10
+ } from "./chunk-P2V2Y5LV.mjs";
11
+
12
+ // packages/plugins/experimental/plugin-script/src/components/ScriptContainer.tsx
13
+ import React3, { useMemo as useMemo3 } from "react";
14
+ import { createDocAccessor, getSpace as getSpace2 } from "@dxos/react-client/echo";
15
+ import { useIdentity } from "@dxos/react-client/halo";
16
+ import { createDataExtensions, listener, stackItemContentEditorClassNames } from "@dxos/react-ui-editor";
17
+ import { StackItem } from "@dxos/react-ui-stack";
18
+ import { mx } from "@dxos/react-ui-theme";
19
+
20
+ // packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/ScriptToolbar.tsx
21
+ import React, { useCallback as useCallback5 } from "react";
22
+ import { fullyQualifiedId } from "@dxos/react-client/echo";
23
+ import { ElevationProvider } from "@dxos/react-ui";
24
+ import { stackItemContentToolbarClassNames } from "@dxos/react-ui-editor";
25
+ import { createGapSeparator, MenuProvider, ToolbarMenu, useMenuActions } from "@dxos/react-ui-menu";
26
+
27
+ // packages/plugins/experimental/plugin-script/src/hooks/deploy.ts
28
+ import { useCallback, useEffect, useMemo } from "react";
29
+ import { FunctionType, getInvocationUrl, getUserFunctionUrlInMetadata, incrementSemverPatch, setUserFunctionUrlInMetadata, uploadWorkerFunction } from "@dxos/functions";
30
+ import { Bundler } from "@dxos/functions/bundler";
31
+ import { log } from "@dxos/log";
32
+ import { useClient } from "@dxos/react-client";
33
+ import { Filter, create, getMeta, getSpace, makeRef, useQuery } from "@dxos/react-client/echo";
34
+ import { useTranslation } from "@dxos/react-ui";
35
+ import { createMenuAction } from "@dxos/react-ui-menu";
36
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/deploy.ts";
37
+ var createDeploy = (state) => {
38
+ const errorItem = createMenuAction("error", {
39
+ label: state.error ?? [
40
+ "no error label",
41
+ {
42
+ ns: SCRIPT_PLUGIN
43
+ }
44
+ ],
45
+ icon: "ph--warning-circle--regular",
46
+ hidden: !state.error
47
+ });
48
+ const deployAction = createMenuAction("deploy", {
49
+ type: "deploy",
50
+ label: [
51
+ state.deploying ? "pending label" : "deploy label",
52
+ {
53
+ ns: SCRIPT_PLUGIN
54
+ }
55
+ ],
56
+ icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
57
+ disabled: state.deploying,
58
+ classNames: state.deploying ? "[&_svg]:animate-spin" : ""
59
+ });
60
+ const copyAction = createMenuAction("copy", {
61
+ type: "copy",
62
+ label: [
63
+ "copy link label",
64
+ {
65
+ ns: SCRIPT_PLUGIN
66
+ }
67
+ ],
68
+ icon: "ph--link--regular",
69
+ disabled: !state.functionUrl
70
+ });
71
+ return {
72
+ nodes: [
73
+ errorItem,
74
+ deployAction,
75
+ copyAction
76
+ ],
77
+ edges: [
78
+ {
79
+ source: "root",
80
+ target: "error"
81
+ },
82
+ {
83
+ source: "root",
84
+ target: "deploy"
85
+ },
86
+ {
87
+ source: "root",
88
+ target: "copy"
89
+ }
90
+ ]
91
+ };
92
+ };
93
+ var useDeployDeps = ({ state, script }) => {
94
+ const space = getSpace(script);
95
+ const [fn] = useQuery(space, Filter.schema(FunctionType, {
96
+ source: script
97
+ }));
98
+ const client = useClient();
99
+ const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [
100
+ fn
101
+ ]);
102
+ return {
103
+ space,
104
+ fn,
105
+ client,
106
+ existingFunctionUrl
107
+ };
108
+ };
109
+ var useDeployState = ({ state, script }) => {
110
+ const { space, client, existingFunctionUrl } = useDeployDeps({
111
+ state,
112
+ script
113
+ });
114
+ useEffect(() => {
115
+ if (!existingFunctionUrl) {
116
+ return;
117
+ }
118
+ state.functionUrl = getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? "", {
119
+ spaceId: space?.id
120
+ });
121
+ }, [
122
+ existingFunctionUrl,
123
+ space
124
+ ]);
125
+ useEffect(() => {
126
+ state.deployed = Boolean(existingFunctionUrl) && !script.changed;
127
+ }, [
128
+ script.changed,
129
+ existingFunctionUrl
130
+ ]);
131
+ };
132
+ var useDeployHandler = ({ state, script }) => {
133
+ const { space, fn, client, existingFunctionUrl } = useDeployDeps({
134
+ state,
135
+ script
136
+ });
137
+ const { t } = useTranslation(SCRIPT_PLUGIN);
138
+ return useCallback(async () => {
139
+ if (!script.source || !space) {
140
+ return;
141
+ }
142
+ state.error = void 0;
143
+ state.deploying = true;
144
+ try {
145
+ const existingFunctionId = existingFunctionUrl?.split("/").at(-1);
146
+ const bundler = new Bundler({
147
+ platform: "browser",
148
+ sandboxedModules: [],
149
+ remoteModules: {}
150
+ });
151
+ const buildResult = await bundler.bundle({
152
+ source: script.source.target.content
153
+ });
154
+ if (buildResult.error || !buildResult.bundle) {
155
+ throw buildResult.error;
156
+ }
157
+ const { functionId, version, meta } = await uploadWorkerFunction({
158
+ client,
159
+ spaceId: space.id,
160
+ version: fn ? incrementSemverPatch(fn.version) : "0.0.1",
161
+ functionId: existingFunctionId,
162
+ source: buildResult.bundle
163
+ });
164
+ if (functionId === void 0 || version === void 0) {
165
+ throw new Error(`Upload didn't return expected data: functionId=${functionId}, version=${version}`);
166
+ }
167
+ log.info("function uploaded", {
168
+ functionId,
169
+ version
170
+ }, {
171
+ F: __dxlog_file,
172
+ L: 124,
173
+ S: void 0,
174
+ C: (f, a) => f(...a)
175
+ });
176
+ if (fn) {
177
+ fn.version = version;
178
+ }
179
+ const deployedFunction = fn ?? space.db.add(create(FunctionType, {
180
+ name: functionId,
181
+ version,
182
+ source: makeRef(script)
183
+ }));
184
+ script.changed = false;
185
+ if (script.description !== void 0 && script.description.trim() !== "") {
186
+ deployedFunction.description = script.description;
187
+ } else if (meta.description) {
188
+ deployedFunction.description = meta.description;
189
+ } else {
190
+ log.verbose("no description in function metadata", {
191
+ functionId
192
+ }, {
193
+ F: __dxlog_file,
194
+ L: 138,
195
+ S: void 0,
196
+ C: (f, a) => f(...a)
197
+ });
198
+ }
199
+ if (meta.inputSchema) {
200
+ deployedFunction.inputSchema = meta.inputSchema;
201
+ } else {
202
+ log.verbose("no input schema in function metadata", {
203
+ functionId
204
+ }, {
205
+ F: __dxlog_file,
206
+ L: 144,
207
+ S: void 0,
208
+ C: (f, a) => f(...a)
209
+ });
210
+ }
211
+ if (meta.outputSchema) {
212
+ deployedFunction.outputSchema = meta.outputSchema;
213
+ } else {
214
+ log.verbose("no output schema in function metadata", {
215
+ functionId
216
+ }, {
217
+ F: __dxlog_file,
218
+ L: 149,
219
+ S: void 0,
220
+ C: (f, a) => f(...a)
221
+ });
222
+ }
223
+ setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);
224
+ state.view = "split";
225
+ } catch (err) {
226
+ log.catch(err, void 0, {
227
+ F: __dxlog_file,
228
+ L: 156,
229
+ S: void 0,
230
+ C: (f, a) => f(...a)
231
+ });
232
+ state.error = t("upload failed label");
233
+ }
234
+ state.deploying = false;
235
+ }, [
236
+ fn,
237
+ client,
238
+ t,
239
+ existingFunctionUrl,
240
+ script,
241
+ script.name,
242
+ script.source,
243
+ space?.id ?? null
244
+ ]);
245
+ };
246
+ var useCopyHandler = ({ state }) => useCallback(async () => {
247
+ if (!state.functionUrl) {
248
+ return;
249
+ }
250
+ await navigator.clipboard.writeText(state.functionUrl);
251
+ }, [
252
+ state.functionUrl
253
+ ]);
254
+
255
+ // packages/plugins/experimental/plugin-script/src/hooks/format.ts
256
+ import { format } from "prettier";
257
+ import prettierPluginEstree from "prettier/plugins/estree";
258
+ import prettierPluginTypescript from "prettier/plugins/typescript";
259
+ import { useCallback as useCallback2 } from "react";
260
+ import { log as log2 } from "@dxos/log";
261
+ import { createMenuAction as createMenuAction2 } from "@dxos/react-ui-menu";
262
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/format.ts";
263
+ var createFormat = () => {
264
+ const formatAction = createMenuAction2("format", {
265
+ label: [
266
+ "format label",
267
+ {
268
+ ns: SCRIPT_PLUGIN
269
+ }
270
+ ],
271
+ icon: "ph--magic-wand--regular"
272
+ });
273
+ return {
274
+ nodes: [
275
+ formatAction
276
+ ],
277
+ edges: [
278
+ {
279
+ source: "root",
280
+ target: "format"
281
+ }
282
+ ]
283
+ };
284
+ };
285
+ var useFormatHandler = ({ script }) => useCallback2(async () => {
286
+ if (!script.source) {
287
+ return;
288
+ }
289
+ try {
290
+ script.source.target.content = await format(script.source.target.content, {
291
+ parser: "typescript",
292
+ plugins: [
293
+ prettierPluginEstree,
294
+ prettierPluginTypescript
295
+ ],
296
+ semi: true,
297
+ singleQuote: true
298
+ });
299
+ } catch (err) {
300
+ log2.catch(err, void 0, {
301
+ F: __dxlog_file2,
302
+ L: 45,
303
+ S: void 0,
304
+ C: (f, a) => f(...a)
305
+ });
306
+ }
307
+ }, [
308
+ script.source
309
+ ]);
310
+
311
+ // packages/plugins/experimental/plugin-script/src/hooks/template.ts
312
+ import { useCallback as useCallback3 } from "react";
313
+ import { FUNCTIONS_PRESET_META_KEY } from "@dxos/functions";
314
+ import { getMeta as getMeta2 } from "@dxos/live-object";
315
+ import { createMenuItemGroup, createMenuAction as createMenuAction3 } from "@dxos/react-ui-menu";
316
+ var createTemplateSelectGroup = () => {
317
+ return createMenuItemGroup("template-select", {
318
+ label: [
319
+ "template select group label",
320
+ {
321
+ ns: SCRIPT_PLUGIN
322
+ }
323
+ ],
324
+ variant: "dropdownMenu"
325
+ });
326
+ };
327
+ var createTemplateSelectActions = () => {
328
+ return templates.map((template) => {
329
+ return createMenuAction3(`template--${template.id}`, {
330
+ label: template.name,
331
+ value: template.id,
332
+ type: "template"
333
+ });
334
+ });
335
+ };
336
+ var createTemplateSelect = () => {
337
+ const templateSelectGroup = createTemplateSelectGroup();
338
+ const templateSelectActions = createTemplateSelectActions();
339
+ return {
340
+ nodes: [
341
+ templateSelectGroup,
342
+ ...templateSelectActions
343
+ ],
344
+ edges: [
345
+ {
346
+ source: "root",
347
+ target: "template-select"
348
+ },
349
+ ...templateSelectActions.map((action) => ({
350
+ source: "template-select",
351
+ target: action.id
352
+ }))
353
+ ]
354
+ };
355
+ };
356
+ var useTemplateSelectHandler = ({ script }) => {
357
+ return useCallback3((templateId) => {
358
+ const template = templates.find((template2) => template2.id === templateId);
359
+ if (template) {
360
+ script.name = template.name;
361
+ script.source.target.content = template.source;
362
+ const metaKeys = getMeta2(script).keys;
363
+ const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
364
+ if (oldPresetIndex >= 0) {
365
+ metaKeys.splice(oldPresetIndex, 1);
366
+ }
367
+ if (template.presetId) {
368
+ metaKeys.push({
369
+ source: FUNCTIONS_PRESET_META_KEY,
370
+ id: template.presetId
371
+ });
372
+ }
373
+ }
374
+ }, [
375
+ script
376
+ ]);
377
+ };
378
+
379
+ // packages/plugins/experimental/plugin-script/src/hooks/view.ts
380
+ import { createMenuAction as createMenuAction4, createMenuItemGroup as createMenuItemGroup2 } from "@dxos/react-ui-menu";
381
+ var views = {
382
+ editor: "ph--code--regular",
383
+ split: "ph--square-split-vertical--regular",
384
+ debug: "ph--bug--regular"
385
+ };
386
+ var createViewGroupItem = (state) => {
387
+ return createMenuItemGroup2("view", {
388
+ label: [
389
+ "view group label",
390
+ {
391
+ ns: SCRIPT_PLUGIN
392
+ }
393
+ ],
394
+ variant: "dropdownMenu",
395
+ applyActive: true,
396
+ value: state.view
397
+ });
398
+ };
399
+ var createViewActions = (state) => {
400
+ return Object.entries(views).map(([viewType, icon]) => {
401
+ return createMenuAction4(`view--${viewType}`, {
402
+ type: "view",
403
+ value: viewType,
404
+ label: [
405
+ `view ${viewType} label`,
406
+ {
407
+ ns: SCRIPT_PLUGIN
408
+ }
409
+ ],
410
+ icon,
411
+ checked: state.view === viewType
412
+ });
413
+ });
414
+ };
415
+ var createView = (state) => {
416
+ const viewGroupItem = createViewGroupItem(state);
417
+ const viewActions = createViewActions(state);
418
+ return {
419
+ nodes: [
420
+ viewGroupItem,
421
+ ...viewActions
422
+ ],
423
+ edges: [
424
+ {
425
+ source: "root",
426
+ target: "view"
427
+ },
428
+ ...viewActions.map((action) => ({
429
+ source: "view",
430
+ target: action.id
431
+ }))
432
+ ]
433
+ };
434
+ };
435
+
436
+ // packages/plugins/experimental/plugin-script/src/hooks/useToolbarAction.ts
437
+ import { useCallback as useCallback4 } from "react";
438
+ import { log as log3 } from "@dxos/log";
439
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/useToolbarAction.ts";
440
+ var useToolbarAction = (props) => {
441
+ const handleTemplateSelect = useTemplateSelectHandler(props);
442
+ const handleFormat = useFormatHandler(props);
443
+ const handleDeploy = useDeployHandler(props);
444
+ const handleCopy = useCopyHandler(props);
445
+ return useCallback4((action) => {
446
+ switch (action.properties.type) {
447
+ case "template":
448
+ handleTemplateSelect(action.properties.value);
449
+ break;
450
+ case "view":
451
+ props.state.view = action.properties.value;
452
+ break;
453
+ case "format":
454
+ void handleFormat();
455
+ break;
456
+ case "deploy":
457
+ void handleDeploy();
458
+ break;
459
+ case "copy":
460
+ void handleCopy();
461
+ break;
462
+ default:
463
+ log3.error("Unknown action type", action, {
464
+ F: __dxlog_file3,
465
+ L: 49,
466
+ S: void 0,
467
+ C: (f, a) => f(...a)
468
+ });
469
+ }
470
+ }, [
471
+ handleTemplateSelect,
472
+ handleFormat,
473
+ handleDeploy,
474
+ handleCopy
475
+ ]);
476
+ };
477
+
478
+ // packages/plugins/experimental/plugin-script/src/hooks/useToolbarState.ts
479
+ import { useMemo as useMemo2 } from "react";
480
+ import { create as create2 } from "@dxos/live-object";
481
+ var useToolbarState = (initialState = {}) => {
482
+ return useMemo2(() => create2(initialState), []);
483
+ };
484
+
485
+ // packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/ScriptToolbar.tsx
486
+ var createToolbar = (state) => {
487
+ const templateSelect = createTemplateSelect();
488
+ const format2 = createFormat();
489
+ const gap = createGapSeparator();
490
+ const deploy = createDeploy(state);
491
+ const view = createView(state);
492
+ return {
493
+ nodes: [
494
+ ...templateSelect.nodes,
495
+ ...format2.nodes,
496
+ ...gap.nodes,
497
+ ...deploy.nodes,
498
+ ...view.nodes
499
+ ],
500
+ edges: [
501
+ ...templateSelect.edges,
502
+ ...format2.edges,
503
+ ...gap.edges,
504
+ ...deploy.edges,
505
+ ...view.edges
506
+ ]
507
+ };
508
+ };
509
+ var ScriptToolbar = ({ script, role, state, classNames }) => {
510
+ const handleAction = useToolbarAction({
511
+ state,
512
+ script
513
+ });
514
+ const toolbarCreator = useCallback5(() => createToolbar(state), [
515
+ state
516
+ ]);
517
+ const menu = useMenuActions(toolbarCreator);
518
+ return /* @__PURE__ */ React.createElement("div", {
519
+ role: "none",
520
+ className: stackItemContentToolbarClassNames(role)
521
+ }, /* @__PURE__ */ React.createElement(ElevationProvider, {
522
+ elevation: role === "section" ? "positioned" : "base"
523
+ }, /* @__PURE__ */ React.createElement(MenuProvider, {
524
+ ...menu,
525
+ onAction: handleAction,
526
+ attendableId: fullyQualifiedId(script)
527
+ }, /* @__PURE__ */ React.createElement(ToolbarMenu, {
528
+ classNames
529
+ }))));
530
+ };
531
+
532
+ // packages/plugins/experimental/plugin-script/src/components/TypescriptEditor/TypescriptEditor.tsx
533
+ import { javascript } from "@codemirror/lang-javascript";
534
+ import { defaultHighlightStyle } from "@codemirror/language";
535
+ import { Prec } from "@codemirror/state";
536
+ import { oneDarkHighlightStyle } from "@codemirror/theme-one-dark";
537
+ import { keymap } from "@codemirror/view";
538
+ import { tags } from "@lezer/highlight";
539
+ import { continueKeymap } from "@valtown/codemirror-continue";
540
+ import { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover } from "@valtown/codemirror-ts";
541
+ import React2 from "react";
542
+ import { useThemeContext } from "@dxos/react-ui";
543
+ import { autocomplete, createBasicExtensions, createThemeExtensions, editorFullWidth, editorMonospace, EditorView, folding, InputModeExtensions, useTextEditor } from "@dxos/react-ui-editor";
544
+ import { isNonNullable } from "@dxos/util";
545
+ var TypescriptEditor = ({ id, env, className, initialValue, extensions, scrollTo, selection, toolbar, inputMode = "vscode" }) => {
546
+ const { themeMode } = useThemeContext();
547
+ const { parentRef, focusAttributes } = useTextEditor(() => ({
548
+ id,
549
+ initialValue,
550
+ extensions: [
551
+ extensions,
552
+ createBasicExtensions({
553
+ highlightActiveLine: true,
554
+ indentWithTab: true,
555
+ lineNumbers: true,
556
+ lineWrapping: false,
557
+ scrollPastEnd: true
558
+ }),
559
+ createThemeExtensions({
560
+ themeMode,
561
+ syntaxHighlighting: true,
562
+ slots: {
563
+ content: {
564
+ className: editorFullWidth
565
+ }
566
+ }
567
+ }),
568
+ // NOTE: Not using default editor gutter because folding for code works best right beside text.
569
+ EditorView.theme({
570
+ ".cm-gutters": {
571
+ // Match margin from content.
572
+ marginTop: "16px"
573
+ }
574
+ }),
575
+ InputModeExtensions[inputMode],
576
+ folding(),
577
+ // Continues block comments when you hit Enter.
578
+ Prec.high(keymap.of(continueKeymap)),
579
+ // TODO(burdon): Factor out.
580
+ [
581
+ editorMonospace,
582
+ javascript({
583
+ typescript: true
584
+ }),
585
+ // https://github.com/val-town/codemirror-ts
586
+ autocomplete({
587
+ override: env ? [
588
+ tsAutocomplete()
589
+ ] : []
590
+ }),
591
+ env ? [
592
+ tsFacet.of({
593
+ env,
594
+ path: `/src/${id}.ts`
595
+ }),
596
+ tsSync(),
597
+ tsLinter(),
598
+ tsHover({
599
+ renderTooltip: createTooltipRenderer(themeMode)
600
+ })
601
+ ] : []
602
+ ]
603
+ ].filter(isNonNullable),
604
+ selection,
605
+ scrollTo
606
+ }), [
607
+ id,
608
+ extensions,
609
+ themeMode,
610
+ inputMode,
611
+ selection,
612
+ scrollTo
613
+ ]);
614
+ return /* @__PURE__ */ React2.createElement("div", {
615
+ ref: parentRef,
616
+ "data-toolbar": toolbar ? "enabled" : "disabled",
617
+ className,
618
+ ...focusAttributes
619
+ });
620
+ };
621
+ var createTooltipRenderer = (themeMode) => {
622
+ const theme = themeMode === "dark" ? oneDarkHighlightStyle : defaultHighlightStyle;
623
+ const classFromKind = (_kind) => {
624
+ const kind = _kind.endsWith("Name") ? "name" : _kind;
625
+ const validTag = kind in tags;
626
+ if (!validTag) {
627
+ return "";
628
+ }
629
+ const tag = tags[kind];
630
+ if (typeof tag === "function") {
631
+ return "";
632
+ }
633
+ return theme.style([
634
+ tag
635
+ ]) ?? "";
636
+ };
637
+ return (info) => {
638
+ const div = document.createElement("div");
639
+ div.className = "p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg";
640
+ if (info.quickInfo?.displayParts) {
641
+ for (const part of info.quickInfo.displayParts) {
642
+ const span = div.appendChild(document.createElement("span"));
643
+ span.className = classFromKind(part.kind);
644
+ span.innerText = part.text;
645
+ }
646
+ }
647
+ return {
648
+ dom: div
649
+ };
650
+ };
651
+ };
652
+
653
+ // packages/plugins/experimental/plugin-script/src/components/ScriptContainer.tsx
654
+ var ScriptContainer = ({ role, classNames, script, settings = {
655
+ editorInputMode: "vscode"
656
+ }, env }) => {
657
+ const identity = useIdentity();
658
+ const space = getSpace2(script);
659
+ const extensions = useMemo3(() => [
660
+ listener({
661
+ onChange: (text) => {
662
+ if (script.source.target && script.source.target.content !== text) {
663
+ script.changed = true;
664
+ }
665
+ }
666
+ }),
667
+ createDataExtensions({
668
+ id: script.id,
669
+ text: script.source.target && createDocAccessor(script.source.target, [
670
+ "content"
671
+ ]),
672
+ space,
673
+ identity
674
+ })
675
+ ], [
676
+ script,
677
+ script.source.target,
678
+ space,
679
+ identity
680
+ ]);
681
+ const state = useToolbarState({
682
+ view: "editor"
683
+ });
684
+ useDeployState({
685
+ state,
686
+ script
687
+ });
688
+ return /* @__PURE__ */ React3.createElement(StackItem.Content, {
689
+ toolbar: true
690
+ }, /* @__PURE__ */ React3.createElement(ScriptToolbar, {
691
+ state,
692
+ role,
693
+ script
694
+ }), /* @__PURE__ */ React3.createElement("div", {
695
+ role: "none",
696
+ className: mx("flex flex-col w-full overflow-hidden divide-y divide-separator", classNames)
697
+ }, state.view !== "debug" && /* @__PURE__ */ React3.createElement(TypescriptEditor, {
698
+ id: script.id,
699
+ env,
700
+ initialValue: script.source?.target?.content,
701
+ extensions,
702
+ className: stackItemContentEditorClassNames(role),
703
+ inputMode: settings.editorInputMode,
704
+ toolbar: true
705
+ }), state.view !== "editor" && /* @__PURE__ */ React3.createElement(DebugPanel, {
706
+ functionUrl: state.functionUrl
707
+ })));
708
+ };
709
+ var ScriptContainer_default = ScriptContainer;
710
+ export {
711
+ ScriptContainer,
712
+ ScriptContainer_default as default
713
+ };
714
+ //# sourceMappingURL=ScriptContainer-E4J6XXE6.mjs.map