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