@dxos/plugin-script 0.8.4-main.67995b8 → 0.8.4-main.ae835ea

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 (304) hide show
  1. package/dist/lib/browser/DeploymentDialog-E5NXT4UQ.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs +817 -0
  3. package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs +148 -0
  5. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-LEOPGBJD.mjs} +11 -9
  7. package/dist/lib/browser/app-graph-builder-LEOPGBJD.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +30 -0
  9. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-5S5YQNJZ.mjs +304 -0
  11. package/dist/lib/browser/chunk-5S5YQNJZ.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-3U6DTUH3.mjs → chunk-A5K3TXYA.mjs} +29 -43
  13. package/dist/lib/browser/chunk-A5K3TXYA.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EB6AXFXO.mjs} +8 -5
  15. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-HCURXADW.mjs +102 -0
  17. package/dist/lib/browser/chunk-HCURXADW.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-FIM2MVNJ.mjs → chunk-HHTOAI2J.mjs} +161 -72
  19. package/dist/lib/browser/chunk-HHTOAI2J.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-P4HQKUCP.mjs → chunk-IQMYIWHG.mjs} +15 -15
  21. package/dist/lib/browser/chunk-IQMYIWHG.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  23. package/dist/lib/browser/chunk-LI4P25M5.mjs +111 -0
  24. package/dist/lib/browser/chunk-LI4P25M5.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-FMDXKOP7.mjs → chunk-Q2DGRQRN.mjs} +75 -53
  26. package/dist/lib/browser/chunk-Q2DGRQRN.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-ST3ACVUC.mjs +88 -0
  28. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +7 -0
  29. package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-UOQ6NCH3.mjs} +2 -2
  30. package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-Q4UY2COU.mjs} +9 -5
  31. package/dist/lib/browser/compiler-Q4UY2COU.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +109 -44
  33. package/dist/lib/browser/index.mjs.map +3 -3
  34. package/dist/lib/browser/{intent-resolver-S3H2SMUY.mjs → intent-resolver-AMMHATM7.mjs} +40 -24
  35. package/dist/lib/browser/intent-resolver-AMMHATM7.mjs.map +7 -0
  36. package/dist/lib/browser/meta.json +1 -1
  37. package/dist/lib/browser/{react-surface-FYYXZA7C.mjs → react-surface-X4NATU6B.mjs} +43 -19
  38. package/dist/lib/browser/react-surface-X4NATU6B.mjs.map +7 -0
  39. package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-6UXY7F7D.mjs} +10 -8
  40. package/dist/lib/browser/settings-6UXY7F7D.mjs.map +7 -0
  41. package/dist/lib/browser/templates/index.mjs +2 -1
  42. package/dist/lib/browser/types/index.mjs +8 -4
  43. package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs +15 -0
  44. package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs.map +7 -0
  45. package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs +818 -0
  46. package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs.map +7 -0
  47. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs +149 -0
  48. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs.map +7 -0
  49. package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-XJ3MY5BM.mjs} +11 -9
  50. package/dist/lib/node-esm/app-graph-builder-XJ3MY5BM.mjs.map +7 -0
  51. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +31 -0
  52. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-2GVTWESW.mjs +90 -0
  54. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-55JZVM6K.mjs} +2 -2
  56. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs +113 -0
  57. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-RT43MACC.mjs → chunk-GA27XSEY.mjs} +29 -43
  59. package/dist/lib/node-esm/chunk-GA27XSEY.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  61. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-IBV2DR36.mjs} +8 -5
  63. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs +103 -0
  65. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-XJPK3IYI.mjs → chunk-O7HXE72S.mjs} +75 -53
  67. package/dist/lib/node-esm/chunk-O7HXE72S.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-7NMI4CEU.mjs → chunk-OZ6LCME4.mjs} +161 -72
  69. package/dist/lib/node-esm/chunk-OZ6LCME4.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs +305 -0
  71. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs.map +7 -0
  72. package/dist/lib/node-esm/{chunk-QKK3NDHW.mjs → chunk-UEGPBCSF.mjs} +15 -15
  73. package/dist/lib/node-esm/chunk-UEGPBCSF.mjs.map +7 -0
  74. package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-I6A4KE6E.mjs} +9 -5
  75. package/dist/lib/node-esm/compiler-I6A4KE6E.mjs.map +7 -0
  76. package/dist/lib/node-esm/index.mjs +109 -44
  77. package/dist/lib/node-esm/index.mjs.map +3 -3
  78. package/dist/lib/node-esm/{intent-resolver-OHKNJFCC.mjs → intent-resolver-YKLZQR7U.mjs} +40 -24
  79. package/dist/lib/node-esm/intent-resolver-YKLZQR7U.mjs.map +7 -0
  80. package/dist/lib/node-esm/meta.json +1 -1
  81. package/dist/lib/node-esm/{react-surface-V32NWHKN.mjs → react-surface-LVGLBSTE.mjs} +43 -19
  82. package/dist/lib/node-esm/react-surface-LVGLBSTE.mjs.map +7 -0
  83. package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-O4EZPUE3.mjs} +10 -8
  84. package/dist/lib/node-esm/settings-O4EZPUE3.mjs.map +7 -0
  85. package/dist/lib/node-esm/templates/index.mjs +2 -1
  86. package/dist/lib/node-esm/types/index.mjs +8 -4
  87. package/dist/types/src/ScriptPlugin.d.ts +1 -1
  88. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  90. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  92. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  94. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/compiler.d.ts +1 -1
  96. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/index.d.ts +6 -6
  98. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  100. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  102. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/settings.d.ts +1 -1
  104. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  105. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
  106. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  107. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +243 -13
  108. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  110. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  111. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/NotebookContainer.d.ts +10 -0
  113. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  114. package/dist/types/src/components/NotebookContainer.stories.d.ts +251 -0
  115. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  116. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  117. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  118. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  119. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  120. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  121. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  122. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +245 -0
  123. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  124. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  125. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  126. package/dist/types/src/components/ScriptContainer.d.ts +4 -4
  127. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  128. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +5 -6
  129. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  130. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +242 -10
  131. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  132. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  133. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  134. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
  135. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  136. package/dist/types/src/components/TestPanel/TestContainer.d.ts +2 -2
  137. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  138. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
  139. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  140. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +11 -4
  141. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  142. package/dist/types/src/components/index.d.ts +3 -4
  143. package/dist/types/src/components/index.d.ts.map +1 -1
  144. package/dist/types/src/events.d.ts.map +1 -1
  145. package/dist/types/src/hooks/deploy.d.ts +17 -16
  146. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  147. package/dist/types/src/hooks/format.d.ts +2 -2
  148. package/dist/types/src/hooks/format.d.ts.map +1 -1
  149. package/dist/types/src/hooks/template.d.ts +4 -14
  150. package/dist/types/src/hooks/template.d.ts.map +1 -1
  151. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  152. package/dist/types/src/index.d.ts +1 -0
  153. package/dist/types/src/index.d.ts.map +1 -1
  154. package/dist/types/src/meta.d.ts +0 -1
  155. package/dist/types/src/meta.d.ts.map +1 -1
  156. package/dist/types/src/notebook/compute-graph.d.ts +45 -0
  157. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  158. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  159. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  160. package/dist/types/src/notebook/eval.d.ts +13 -0
  161. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  162. package/dist/types/src/notebook/index.d.ts +2 -0
  163. package/dist/types/src/notebook/index.d.ts.map +1 -0
  164. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  165. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  166. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  167. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  168. package/dist/types/src/templates/chess.d.ts.map +1 -1
  169. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  170. package/dist/types/src/templates/discord.d.ts.map +1 -1
  171. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  172. package/dist/types/src/templates/forex.d.ts.map +1 -1
  173. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  174. package/dist/types/src/templates/index.d.ts +43 -1
  175. package/dist/types/src/templates/index.d.ts.map +1 -1
  176. package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
  177. package/dist/types/src/templates/ping.d.ts.map +1 -0
  178. package/dist/types/src/testing/data.d.ts +3 -0
  179. package/dist/types/src/testing/data.d.ts.map +1 -0
  180. package/dist/types/src/testing/index.d.ts +2 -0
  181. package/dist/types/src/testing/index.d.ts.map +1 -0
  182. package/dist/types/src/translations.d.ts +30 -5
  183. package/dist/types/src/translations.d.ts.map +1 -1
  184. package/dist/types/src/types/Notebook.d.ts +31 -0
  185. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  186. package/dist/types/src/types/actions.d.ts +54 -0
  187. package/dist/types/src/types/actions.d.ts.map +1 -0
  188. package/dist/types/src/types/index.d.ts +3 -1
  189. package/dist/types/src/types/index.d.ts.map +1 -1
  190. package/dist/types/src/types/types.d.ts +6 -0
  191. package/dist/types/src/types/types.d.ts.map +1 -0
  192. package/dist/types/src/util/deploy.d.ts +7 -7
  193. package/dist/types/src/util/deploy.d.ts.map +1 -1
  194. package/dist/types/src/util/functions.d.ts +6 -3
  195. package/dist/types/src/util/functions.d.ts.map +1 -1
  196. package/dist/types/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +82 -75
  198. package/src/ScriptPlugin.tsx +90 -71
  199. package/src/capabilities/app-graph-builder.ts +9 -8
  200. package/src/capabilities/artifact-definition.ts +7 -4
  201. package/src/capabilities/blueprint-definition.ts +30 -0
  202. package/src/capabilities/compiler.ts +2 -1
  203. package/src/capabilities/index.ts +1 -1
  204. package/src/capabilities/intent-resolver.ts +21 -12
  205. package/src/capabilities/react-surface.tsx +28 -15
  206. package/src/capabilities/settings.ts +3 -3
  207. package/src/compiler/compiler.ts +1 -1
  208. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +39 -20
  209. package/src/components/DeploymentDialog/DeploymentDialog.tsx +16 -22
  210. package/src/components/DeploymentDialog/index.ts +1 -1
  211. package/src/components/FrameContainer/FrameContainer.tsx +3 -2
  212. package/src/components/NotebookContainer.stories.tsx +83 -0
  213. package/src/components/NotebookContainer.tsx +263 -0
  214. package/src/components/NotebookStack/NotebookCell.tsx +208 -0
  215. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  216. package/src/components/NotebookStack/NotebookStack.stories.tsx +54 -0
  217. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  218. package/src/components/NotebookStack/index.ts +6 -0
  219. package/src/components/ScriptContainer.tsx +7 -6
  220. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +34 -17
  221. package/src/components/ScriptToolbar/ScriptToolbar.tsx +33 -26
  222. package/src/components/Settings/ScriptObjectSettings.tsx +113 -33
  223. package/src/components/Settings/ScriptPluginSettings.tsx +37 -47
  224. package/src/components/TestPanel/TestContainer.tsx +4 -3
  225. package/src/components/TestPanel/TestPanel.tsx +7 -7
  226. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +79 -31
  227. package/src/components/TypescriptEditor/TypescriptEditor.tsx +37 -34
  228. package/src/components/index.ts +3 -0
  229. package/src/events.ts +2 -2
  230. package/src/hooks/deploy.ts +23 -24
  231. package/src/hooks/format.ts +4 -4
  232. package/src/hooks/template.ts +6 -15
  233. package/src/hooks/useCreateAndDeployScriptTemplates.ts +6 -5
  234. package/src/index.ts +1 -0
  235. package/src/meta.ts +7 -5
  236. package/src/notebook/compute-graph.test.ts +70 -0
  237. package/src/notebook/compute-graph.ts +206 -0
  238. package/src/notebook/eval.ts +105 -0
  239. package/src/notebook/index.ts +5 -0
  240. package/src/notebook/vfs-parser.test.ts +149 -0
  241. package/src/notebook/vfs-parser.ts +451 -0
  242. package/src/templates/chess.ts +3 -1
  243. package/src/templates/data-generator.ts +9 -3
  244. package/src/templates/discord.ts +12 -4
  245. package/src/templates/forex-effect.ts +7 -3
  246. package/src/templates/forex.ts +3 -1
  247. package/src/templates/gmail.ts +33 -62
  248. package/src/templates/index.ts +6 -6
  249. package/src/testing/data.ts +72 -0
  250. package/src/testing/index.ts +5 -0
  251. package/src/translations.ts +33 -7
  252. package/src/types/Notebook.ts +41 -0
  253. package/src/types/actions.ts +53 -0
  254. package/src/types/index.ts +3 -1
  255. package/src/types/types.ts +15 -0
  256. package/src/util/deploy.ts +27 -44
  257. package/src/util/functions.ts +36 -7
  258. package/dist/lib/browser/DeploymentDialog-M4QIHTDR.mjs +0 -12
  259. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs +0 -262
  260. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs.map +0 -7
  261. package/dist/lib/browser/app-graph-builder-HLQ7K3BT.mjs.map +0 -7
  262. package/dist/lib/browser/artifact-definition-CK3BIBSI.mjs +0 -247
  263. package/dist/lib/browser/artifact-definition-CK3BIBSI.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-3U6DTUH3.mjs.map +0 -7
  265. package/dist/lib/browser/chunk-FIM2MVNJ.mjs.map +0 -7
  266. package/dist/lib/browser/chunk-FMDXKOP7.mjs.map +0 -7
  267. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  268. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  269. package/dist/lib/browser/chunk-P4HQKUCP.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-R4R7VOFY.mjs +0 -88
  272. package/dist/lib/browser/chunk-R4R7VOFY.mjs.map +0 -7
  273. package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
  274. package/dist/lib/browser/intent-resolver-S3H2SMUY.mjs.map +0 -7
  275. package/dist/lib/browser/react-surface-FYYXZA7C.mjs.map +0 -7
  276. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  277. package/dist/lib/node-esm/DeploymentDialog-3KPRWFE7.mjs +0 -13
  278. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs +0 -263
  279. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs.map +0 -7
  280. package/dist/lib/node-esm/app-graph-builder-7EYIHWH4.mjs.map +0 -7
  281. package/dist/lib/node-esm/artifact-definition-YCBV4YX2.mjs +0 -248
  282. package/dist/lib/node-esm/artifact-definition-YCBV4YX2.mjs.map +0 -7
  283. package/dist/lib/node-esm/chunk-7NMI4CEU.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  285. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs +0 -90
  286. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  288. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-QKK3NDHW.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-RT43MACC.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-XJPK3IYI.mjs.map +0 -7
  292. package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
  293. package/dist/lib/node-esm/intent-resolver-OHKNJFCC.mjs.map +0 -7
  294. package/dist/lib/node-esm/react-surface-V32NWHKN.mjs.map +0 -7
  295. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  296. package/dist/types/src/templates/echo.d.ts.map +0 -1
  297. package/dist/types/src/types/schema.d.ts +0 -38
  298. package/dist/types/src/types/schema.d.ts.map +0 -1
  299. package/src/types/schema.ts +0 -37
  300. /package/dist/lib/browser/{DeploymentDialog-M4QIHTDR.mjs.map → DeploymentDialog-E5NXT4UQ.mjs.map} +0 -0
  301. /package/dist/lib/{node-esm/DeploymentDialog-3KPRWFE7.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  302. /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-UOQ6NCH3.mjs.map} +0 -0
  303. /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-55JZVM6K.mjs.map} +0 -0
  304. /package/src/templates/{echo.ts → ping.ts} +0 -0
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  useCreateAndDeployScriptTemplates
3
- } from "./chunk-FMDXKOP7.mjs";
3
+ } from "./chunk-Q2DGRQRN.mjs";
4
4
  import {
5
- SCRIPT_PLUGIN
6
- } from "./chunk-QYAREHGH.mjs";
5
+ meta
6
+ } from "./chunk-EB6AXFXO.mjs";
7
7
 
8
8
  // src/components/DeploymentDialog/DeploymentDialog.tsx
9
9
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
10
10
  import React, { useEffect, useMemo } from "react";
11
- import { createIntent, LayoutAction, useIntentDispatcher } from "@dxos/app-framework";
11
+ import { LayoutAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
12
12
  import { getSpace } from "@dxos/react-client/echo";
13
13
  import { Button, Dialog, Icon, useTranslation } from "@dxos/react-ui";
14
- var DEPLOYMENT_DIALOG = `${SCRIPT_PLUGIN}/deployment/dialog`;
14
+ var DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;
15
15
  var DeploymentDialog = ({ accessToken, scriptTemplates }) => {
16
16
  var _effect = _useSignals();
17
17
  try {
18
- const { t } = useTranslation(SCRIPT_PLUGIN);
18
+ const { t } = useTranslation(meta.id);
19
19
  const space = useMemo(() => getSpace(accessToken), [
20
20
  accessToken
21
21
  ]);
@@ -26,27 +26,27 @@ var DeploymentDialog = ({ accessToken, scriptTemplates }) => {
26
26
  void dispatch(createIntent(LayoutAction.AddToast, {
27
27
  part: "toast",
28
28
  subject: {
29
- id: `${SCRIPT_PLUGIN}/deployment-success`,
29
+ id: `${meta.id}/deployment-success`,
30
30
  icon: "ph--check--regular",
31
31
  duration: Infinity,
32
32
  title: [
33
33
  "script deployment toast label",
34
34
  {
35
- ns: SCRIPT_PLUGIN,
35
+ ns: meta.id,
36
36
  count: scriptTemplates.length
37
37
  }
38
38
  ],
39
39
  description: [
40
40
  "script deployment toast description",
41
41
  {
42
- ns: SCRIPT_PLUGIN,
42
+ ns: meta.id,
43
43
  count: scriptTemplates.length
44
44
  }
45
45
  ],
46
46
  closeLabel: [
47
47
  "script deployment toast close label",
48
48
  {
49
- ns: SCRIPT_PLUGIN,
49
+ ns: meta.id,
50
50
  count: scriptTemplates.length
51
51
  }
52
52
  ]
@@ -69,27 +69,27 @@ var DeploymentDialog = ({ accessToken, scriptTemplates }) => {
69
69
  void dispatch(createIntent(LayoutAction.AddToast, {
70
70
  part: "toast",
71
71
  subject: {
72
- id: `${SCRIPT_PLUGIN}/deployment-error`,
72
+ id: `${meta.id}/deployment-error`,
73
73
  icon: "ph--warning--regular",
74
74
  duration: Infinity,
75
75
  title: [
76
76
  "script deployment error toast label",
77
77
  {
78
- ns: SCRIPT_PLUGIN,
78
+ ns: meta.id,
79
79
  count: scriptTemplates.length
80
80
  }
81
81
  ],
82
82
  description: [
83
83
  "script deployment error toast description",
84
84
  {
85
- ns: SCRIPT_PLUGIN,
85
+ ns: meta.id,
86
86
  count: scriptTemplates.length
87
87
  }
88
88
  ],
89
89
  closeLabel: [
90
90
  "script deployment error toast close label",
91
91
  {
92
- ns: SCRIPT_PLUGIN,
92
+ ns: meta.id,
93
93
  count: scriptTemplates.length
94
94
  }
95
95
  ]
@@ -150,4 +150,4 @@ export {
150
150
  DEPLOYMENT_DIALOG,
151
151
  DeploymentDialog_default
152
152
  };
153
- //# sourceMappingURL=chunk-P4HQKUCP.mjs.map
153
+ //# sourceMappingURL=chunk-IQMYIWHG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/DeploymentDialog/DeploymentDialog.tsx", "../../../src/components/DeploymentDialog/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';\nimport { type DataType } from '@dxos/schema';\n\nimport { useCreateAndDeployScriptTemplates } from '../../hooks/useCreateAndDeployScriptTemplates';\nimport { meta } from '../../meta';\nimport { type Template } from '../../templates';\n\nexport const DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;\n\n// TODO(ZaymonFC):\n// - Show activity and feedback to the user.\n// - Only take an array of templateIds and get the name from the data.\n// - Pending / onError states.\n\nexport type DeploymentDialogProps = {\n accessToken: DataType.AccessToken;\n scriptTemplates: Template[];\n};\n\nexport const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {\n const { t } = useTranslation(meta.id);\n const space = useMemo(() => getSpace(accessToken), [accessToken]);\n\n // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.\n // Deployment shouldn't be tied to the lifecycle of the dialogue component.\n const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n useEffect(() => {\n if (status === 'success') {\n // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/deployment-success`,\n icon: 'ph--check--regular',\n duration: Infinity,\n title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],\n },\n }),\n );\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n }\n if (status === 'error') {\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/deployment-error`,\n icon: 'ph--warning--regular',\n duration: Infinity,\n title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],\n },\n }),\n );\n }\n }, [status, dispatch]);\n\n return (\n <Dialog.Content>\n <div className='flex justify-between items-center'>\n <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Button density='fine' variant='ghost'>\n <Icon icon='ph--x--regular' size={4} />\n </Button>\n </Dialog.Close>\n </div>\n <div role='none' className='plb-4'>\n {/* TODO: Implement deployment logic and UI. */}\n <p>{t('deployment dialog scripts found message', { count: scriptTemplates.length })}</p>\n <ul className='pbs-2'>\n {scriptTemplates.map((template) => {\n return <li key={template.id}>{template.name}</li>;\n })}\n </ul>\n </div>\n <div role='none' className='flex flex-row-reverse gap-1'>\n <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>\n {status === 'pending'\n ? t('deployment dialog deploy functions pending button label', { count: scriptTemplates.length })\n : t('deployment dialog deploy functions button label', { count: scriptTemplates.length })}\n </Button>\n <Dialog.Close asChild disabled={status === 'pending'}>\n <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>\n </Dialog.Close>\n </div>\n </Dialog.Content>\n );\n};\n\nexport default DeploymentDialog;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DEPLOYMENT_DIALOG, DeploymentDialog } from './DeploymentDialog';\n\nexport { DEPLOYMENT_DIALOG };\n\nexport default DeploymentDialog;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useEffect", "useMemo", "LayoutAction", "createIntent", "useIntentDispatcher", "getSpace", "Button", "Dialog", "Icon", "useTranslation", "DEPLOYMENT_DIALOG", "meta", "id", "DeploymentDialog", "accessToken", "scriptTemplates", "t", "useTranslation", "space", "useMemo", "getSpace", "handleCreateAndDeployScripts", "status", "useCreateAndDeployScriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "useEffect", "createIntent", "LayoutAction", "AddToast", "part", "subject", "icon", "duration", "Infinity", "title", "ns", "count", "length", "description", "closeLabel", "UpdateDialog", "options", "state", "Dialog", "Content", "div", "className", "Title", "Close", "asChild", "Button", "density", "variant", "Icon", "size", "role", "p", "ul", "map", "template", "li", "key", "name", "onClick", "disabled", "DeploymentDialog"]
7
+ }
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-J5LGTIGS.mjs.map
@@ -0,0 +1,111 @@
1
+ // src/components/TypescriptEditor/TypescriptEditor.tsx
2
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
3
+ import { autocompletion, completionKeymap } from "@codemirror/autocomplete";
4
+ import { javascript } from "@codemirror/lang-javascript";
5
+ import { HighlightStyle } from "@codemirror/language";
6
+ import { lintKeymap } from "@codemirror/lint";
7
+ import { Prec } from "@codemirror/state";
8
+ import { keymap } from "@codemirror/view";
9
+ import { tags } from "@lezer/highlight";
10
+ import { continueKeymap } from "@valtown/codemirror-continue";
11
+ import { tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from "@valtown/codemirror-ts";
12
+ import React from "react";
13
+ import { Domino, useThemeContext } from "@dxos/react-ui";
14
+ import { InputModeExtensions, createBasicExtensions, createThemeExtensions, defaultStyles, useTextEditor } from "@dxos/react-ui-editor";
15
+ import { mx } from "@dxos/react-ui-theme";
16
+ import { isNonNullable } from "@dxos/util";
17
+ var TypescriptEditor = ({ classNames, id, role = "article", inputMode = "vscode", toolbar, env, options, initialValue, extensions, scrollTo, selection }) => {
18
+ var _effect = _useSignals();
19
+ try {
20
+ const { themeMode } = useThemeContext();
21
+ const { parentRef, focusAttributes } = useTextEditor(() => ({
22
+ id,
23
+ initialValue,
24
+ selection,
25
+ scrollTo,
26
+ extensions: [
27
+ extensions,
28
+ createBasicExtensions({
29
+ highlightActiveLine: true,
30
+ indentWithTab: true,
31
+ lineNumbers: true,
32
+ lineWrapping: false,
33
+ scrollPastEnd: role !== "section",
34
+ search: true,
35
+ ...options
36
+ }),
37
+ createThemeExtensions({
38
+ monospace: true,
39
+ themeMode,
40
+ syntaxHighlighting: true
41
+ }),
42
+ InputModeExtensions[inputMode],
43
+ javascript({
44
+ typescript: true
45
+ }),
46
+ autocompletion({
47
+ override: env ? [
48
+ tsAutocomplete()
49
+ ] : void 0
50
+ }),
51
+ // Continues block comments when pressing Enter.
52
+ Prec.high(keymap.of(continueKeymap)),
53
+ keymap.of(completionKeymap),
54
+ keymap.of(lintKeymap),
55
+ // https://github.com/val-town/codemirror-ts
56
+ env && [
57
+ tsFacet.of({
58
+ env,
59
+ path: `/src/${id}.ts`
60
+ }),
61
+ tsSync(),
62
+ tsLinter(),
63
+ tsHover({
64
+ renderTooltip: createTooltipRenderer(themeMode)
65
+ })
66
+ ]
67
+ ].filter(isNonNullable)
68
+ }), [
69
+ id,
70
+ extensions,
71
+ themeMode,
72
+ inputMode,
73
+ selection,
74
+ scrollTo
75
+ ]);
76
+ return /* @__PURE__ */ React.createElement("div", {
77
+ ref: parentRef,
78
+ className: mx(classNames),
79
+ ...focusAttributes
80
+ });
81
+ } finally {
82
+ _effect.f();
83
+ }
84
+ };
85
+ var createTooltipRenderer = (themeMode) => {
86
+ const theme = HighlightStyle.define(themeMode === "dark" ? defaultStyles.dark : defaultStyles.light);
87
+ const classFromKind = (_kind) => {
88
+ const kind = _kind.endsWith("Name") ? "name" : _kind;
89
+ const validTag = kind in tags;
90
+ if (!validTag) {
91
+ return "";
92
+ }
93
+ const tag = tags[kind];
94
+ if (typeof tag === "function") {
95
+ return "";
96
+ }
97
+ return theme.style([
98
+ tag
99
+ ]) ?? "";
100
+ };
101
+ return (info) => {
102
+ return {
103
+ dom: Domino.of("div").classNames("xs:max-is-80 max-is-lg p-1 bg-baseSurface rounded border border-separator").children(...info.quickInfo?.displayParts?.map(({ kind, text }) => Domino.of("span").classNames(classFromKind(kind)).text(text)) ?? []).build()
104
+ };
105
+ };
106
+ };
107
+
108
+ export {
109
+ TypescriptEditor
110
+ };
111
+ //# sourceMappingURL=chunk-LI4P25M5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { autocompletion, completionKeymap } from '@codemirror/autocomplete';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { HighlightStyle } from '@codemirror/language';\nimport { lintKeymap } from '@codemirror/lint';\nimport { Prec } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { type HoverInfo, tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { Domino, type ThemeMode, type ThemedClassName, useThemeContext } from '@dxos/react-ui';\nimport {\n type BasicExtensionsOptions,\n type EditorInputMode,\n InputModeExtensions,\n type UseTextEditorProps,\n createBasicExtensions,\n createThemeExtensions,\n defaultStyles,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n role?: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n options?: BasicExtensionsOptions;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = ({\n classNames,\n id,\n role = 'article',\n inputMode = 'vscode',\n toolbar,\n env,\n options,\n initialValue,\n extensions,\n scrollTo,\n selection,\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: role !== 'section',\n search: true,\n ...options,\n }),\n createThemeExtensions({\n monospace: true,\n themeMode,\n syntaxHighlighting: true,\n }),\n InputModeExtensions[inputMode],\n\n javascript({ typescript: true }),\n autocompletion({ override: env ? [tsAutocomplete()] : undefined }),\n\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n keymap.of(completionKeymap),\n keymap.of(lintKeymap),\n\n // https://github.com/val-town/codemirror-ts\n env && [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n // TODO(brudon): Use react-ui-editor's Editor component.\n return <div ref={parentRef} className={mx(classNames)} {...focusAttributes} />;\n};\n\n// TODO(burdon): Factor out (react-ui-editor).\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = HighlightStyle.define(themeMode === 'dark' ? defaultStyles.dark : defaultStyles.light);\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n return {\n dom: Domino.of('div')\n .classNames('xs:max-is-80 max-is-lg p-1 bg-baseSurface rounded border border-separator')\n .children(\n ...(info.quickInfo?.displayParts?.map(({ kind, text }) =>\n Domino.of('span').classNames(classFromKind(kind)).text(text),\n ) ?? []),\n )\n .build(),\n };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
+ "mappings": ";;AAIA,SAASA,gBAAgBC,wBAAwB;AACjD,SAASC,kBAAkB;AAC3B,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,YAAY;AAErB,SAASC,sBAAsB;AAC/B,SAAyBC,gBAAgBC,SAASC,SAASC,UAAUC,cAAc;AACnF,OAAOC,WAAW;AAElB,SAASC,QAA8CC,uBAAuB;AAC9E,SAGEC,qBAEAC,uBACAC,uBACAC,eACAC,qBACK;AACP,SAASC,UAAU;AACnB,SAASC,qBAAqB;AAavB,IAAMC,mBAAmB,CAAC,EAC/BC,YACAC,IACAC,OAAO,WACPC,YAAY,UACZC,SACAC,KACAC,SACAC,cACAC,YACAC,UACAC,UAAS,MACa;;;AACtB,UAAM,EAAEC,UAAS,IAAKC,gBAAAA;AACtB,UAAM,EAAEC,WAAWC,gBAAe,IAAKC,cACrC,OAAO;MACLd;MACAM;MACAG;MACAD;MACAD,YAAY;QACVA;QACAQ,sBAAsB;UACpBC,qBAAqB;UACrBC,eAAe;UACfC,aAAa;UACbC,cAAc;UACdC,eAAenB,SAAS;UACxBoB,QAAQ;UACR,GAAGhB;QACL,CAAA;QACAiB,sBAAsB;UACpBC,WAAW;UACXb;UACAc,oBAAoB;QACtB,CAAA;QACAC,oBAAoBvB,SAAAA;QAEpBwB,WAAW;UAAEC,YAAY;QAAK,CAAA;QAC9BC,eAAe;UAAEC,UAAUzB,MAAM;YAAC0B,eAAAA;cAAoBC;QAAU,CAAA;;QAGhEC,KAAKC,KAAKC,OAAOC,GAAGC,cAAAA,CAAAA;QACpBF,OAAOC,GAAGE,gBAAAA;QACVH,OAAOC,GAAGG,UAAAA;;QAGVlC,OAAO;UACLmC,QAAQJ,GAAG;YAAE/B;YAAKoC,MAAM,QAAQxC,EAAAA;UAAQ,CAAA;UACxCyC,OAAAA;UACAC,SAAAA;UACAC,QAAQ;YAAEC,eAAeC,sBAAsBnC,SAAAA;UAAW,CAAA;;QAE5DoC,OAAOC,aAAAA;IACX,IACA;MAAC/C;MAAIO;MAAYG;MAAWR;MAAWO;MAAWD;KAAS;AAI7D,WAAO,sBAAA,cAACwC,OAAAA;MAAIC,KAAKrC;MAAWsC,WAAWC,GAAGpD,UAAAA;MAAc,GAAGc;;;;;AAC7D;AAGA,IAAMgC,wBAAwB,CAACnC,cAAAA;AAC7B,QAAM0C,QAAQC,eAAeC,OAAO5C,cAAc,SAAS6C,cAAcC,OAAOD,cAAcE,KAAK;AAEnG,QAAMC,gBAAgB,CAACC,UAAAA;AAErB,UAAMC,OAAOD,MAAME,SAAS,MAAA,IAAU,SAASF;AAC/C,UAAMG,WAAWF,QAAQG;AACzB,QAAI,CAACD,UAAU;AACb,aAAO;IACT;AAEA,UAAME,MAAMD,KAAKH,IAAAA;AACjB,QAAI,OAAOI,QAAQ,YAAY;AAC7B,aAAO;IACT;AAEA,WAAOZ,MAAMa,MAAM;MAACD;KAAI,KAAK;EAC/B;AAEA,SAAO,CAACE,SAAAA;AACN,WAAO;MACLC,KAAKC,OAAOjC,GAAG,KAAA,EACZpC,WAAW,2EAAA,EACXsE,SAAQ,GACHH,KAAKI,WAAWC,cAAcC,IAAI,CAAC,EAAEZ,MAAMa,KAAI,MACjDL,OAAOjC,GAAG,MAAA,EAAQpC,WAAW2D,cAAcE,IAAAA,CAAAA,EAAOa,KAAKA,IAAAA,CAAAA,KACpD,CAAA,CAAE,EAERC,MAAK;IACV;EACF;AACF;",
6
+ "names": ["autocompletion", "completionKeymap", "javascript", "HighlightStyle", "lintKeymap", "Prec", "keymap", "tags", "continueKeymap", "tsAutocomplete", "tsFacet", "tsHover", "tsLinter", "tsSync", "React", "Domino", "useThemeContext", "InputModeExtensions", "createBasicExtensions", "createThemeExtensions", "defaultStyles", "useTextEditor", "mx", "isNonNullable", "TypescriptEditor", "classNames", "id", "role", "inputMode", "toolbar", "env", "options", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "search", "createThemeExtensions", "monospace", "syntaxHighlighting", "InputModeExtensions", "javascript", "typescript", "autocompletion", "override", "tsAutocomplete", "undefined", "Prec", "high", "keymap", "of", "continueKeymap", "completionKeymap", "lintKeymap", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "div", "ref", "className", "mx", "theme", "HighlightStyle", "define", "defaultStyles", "dark", "light", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "dom", "Domino", "children", "quickInfo", "displayParts", "map", "text", "build"]
7
+ }
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  ScriptAction
3
- } from "./chunk-IS4OG2UW.mjs";
3
+ } from "./chunk-HCURXADW.mjs";
4
4
 
5
5
  // src/util/functions.ts
6
- import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
6
+ import { getInvocationUrl, getUserFunctionIdInMetadata } from "@dxos/functions";
7
7
  import { log } from "@dxos/log";
8
8
  import { getMeta, getSpace } from "@dxos/react-client/echo";
9
9
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/functions.ts";
10
10
  var getFunctionUrl = ({ script, fn, edgeUrl }) => {
11
11
  const space = getSpace(script);
12
- const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));
13
- if (!existingFunctionUrl) {
12
+ const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
13
+ if (!existingFunctionId) {
14
14
  return void 0;
15
15
  }
16
- return getInvocationUrl(existingFunctionUrl, edgeUrl, {
16
+ return getInvocationUrl(existingFunctionId, edgeUrl, {
17
17
  spaceId: space?.id
18
18
  });
19
19
  };
@@ -27,7 +27,7 @@ var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
27
27
  functionId
28
28
  }, {
29
29
  F: __dxlog_file,
30
- L: 39,
30
+ L: 45,
31
31
  S: void 0,
32
32
  C: (f, a) => f(...a)
33
33
  });
@@ -39,7 +39,7 @@ var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
39
39
  functionId
40
40
  }, {
41
41
  F: __dxlog_file,
42
- L: 45,
42
+ L: 51,
43
43
  S: void 0,
44
44
  C: (f, a) => f(...a)
45
45
  });
@@ -51,25 +51,56 @@ var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
51
51
  functionId
52
52
  }, {
53
53
  F: __dxlog_file,
54
- L: 51,
54
+ L: 57,
55
55
  S: void 0,
56
56
  C: (f, a) => f(...a)
57
57
  });
58
58
  }
59
+ if (meta.key) {
60
+ storedFunction.key = meta.key;
61
+ } else {
62
+ log.verbose("no key in function metadata", {
63
+ functionId
64
+ }, {
65
+ F: __dxlog_file,
66
+ L: 63,
67
+ S: void 0,
68
+ C: (f, a) => f(...a)
69
+ });
70
+ }
71
+ };
72
+ var getAccessCredential = (identityKey) => {
73
+ return {
74
+ issuer: identityKey,
75
+ issuanceDate: /* @__PURE__ */ new Date(),
76
+ subject: {
77
+ id: identityKey,
78
+ assertion: {
79
+ "@type": "dxos.halo.credentials.ServiceAccess",
80
+ serverName: "hub.dxos.network",
81
+ serverKey: identityKey,
82
+ identityKey,
83
+ capabilities: [
84
+ "composer:beta"
85
+ ]
86
+ }
87
+ }
88
+ };
59
89
  };
60
90
 
61
91
  // src/util/deploy.ts
62
92
  import { Obj, Ref } from "@dxos/echo";
63
- import { FunctionType, getUserFunctionUrlInMetadata as getUserFunctionUrlInMetadata2, makeFunctionUrl, setUserFunctionUrlInMetadata } from "@dxos/functions";
93
+ import { Function, getUserFunctionIdInMetadata as getUserFunctionIdInMetadata2, setUserFunctionIdInMetadata } from "@dxos/functions";
64
94
  import { Bundler } from "@dxos/functions/bundler";
65
95
  import { incrementSemverPatch, uploadWorkerFunction } from "@dxos/functions/edge";
66
96
  import { log as log2 } from "@dxos/log";
97
+ import { isNode } from "@dxos/util";
67
98
  var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/deploy.ts";
68
99
  var isScriptDeployed = ({ script, fn }) => {
69
- const existingFunctionUrl = fn && getUserFunctionUrlInMetadata2(Obj.getMeta(fn));
70
- return Boolean(existingFunctionUrl) && !script.changed;
100
+ const existingFunctionId = fn && getUserFunctionIdInMetadata2(Obj.getMeta(fn));
101
+ return Boolean(existingFunctionId) && !script.changed;
71
102
  };
72
- var deployScript = async ({ script, client, space, fn, existingFunctionUrl }) => {
103
+ var deployScript = async ({ script, client, space, fn, existingFunctionId }) => {
73
104
  const validationError = validateDeployInputs(script, space);
74
105
  if (validationError) {
75
106
  return {
@@ -78,17 +109,26 @@ var deployScript = async ({ script, client, space, fn, existingFunctionUrl }) =>
78
109
  };
79
110
  }
80
111
  try {
81
- const existingFunctionId = extractFunctionId(existingFunctionUrl);
82
- const { bundle, error } = await bundleScript(script.source.target.content);
83
- if (error || !bundle) {
84
- throw error || new Error("Bundle creation failed");
112
+ const bundler = new Bundler({
113
+ platform: isNode() ? "node" : "browser",
114
+ sandboxedModules: [],
115
+ remoteModules: {}
116
+ });
117
+ const buildResult = await bundler.bundle({
118
+ source: script.source.target.content
119
+ });
120
+ if ("error" in buildResult) {
121
+ throw buildResult.error || new Error("Bundle creation failed");
85
122
  }
86
123
  const { functionId, version, meta } = await uploadWorkerFunction({
87
124
  client,
88
125
  ownerPublicKey: space.key,
89
126
  version: fn ? incrementSemverPatch(fn.version) : "0.0.1",
90
127
  functionId: existingFunctionId,
91
- source: bundle
128
+ entryPoint: buildResult.entryPoint,
129
+ assets: {
130
+ [buildResult.entryPoint]: buildResult.asset
131
+ }
92
132
  });
93
133
  if (functionId === void 0 || version === void 0) {
94
134
  throw new Error(`Upload didn't return expected data: ${JSON.stringify({
@@ -99,18 +139,15 @@ var deployScript = async ({ script, client, space, fn, existingFunctionUrl }) =>
99
139
  const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);
100
140
  script.changed = false;
101
141
  updateFunctionMetadata(script, storedFunction, meta, functionId);
102
- const functionUrl = makeFunctionUrl({
103
- functionId
104
- });
105
- setUserFunctionUrlInMetadata(Obj.getMeta(storedFunction), functionUrl);
142
+ setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);
106
143
  return {
107
144
  success: true,
108
- functionUrl
145
+ functionId
109
146
  };
110
147
  } catch (err) {
111
148
  log2.catch(err, void 0, {
112
149
  F: __dxlog_file2,
113
- L: 80,
150
+ L: 74,
114
151
  S: void 0,
115
152
  C: (f, a) => f(...a)
116
153
  });
@@ -126,46 +163,29 @@ var validateDeployInputs = (script, space) => {
126
163
  }
127
164
  return null;
128
165
  };
129
- var extractFunctionId = (functionUrl) => {
130
- return functionUrl?.split("/").at(-1);
131
- };
132
- var bundleScript = async (source) => {
133
- const bundler = new Bundler({
134
- platform: "browser",
135
- sandboxedModules: [],
136
- remoteModules: {}
137
- });
138
- const buildResult = await bundler.bundle({
139
- source
140
- });
141
- if (buildResult.error || !buildResult.bundle) {
142
- return {
143
- error: buildResult.error || new Error("Bundle creation failed")
144
- };
145
- }
146
- return {
147
- bundle: buildResult.bundle
148
- };
149
- };
150
166
  var createOrUpdateFunctionInSpace = (space, fn, script, functionId, version) => {
151
167
  if (fn) {
168
+ fn.name = script.name ?? "New Function";
152
169
  fn.version = version;
153
170
  return fn;
154
171
  } else {
155
- return space.db.add(Obj.make(FunctionType, {
156
- name: functionId,
172
+ const fn2 = Function.make({
173
+ name: script.name ?? "New Function",
157
174
  version,
158
175
  source: Ref.make(script)
159
- }));
176
+ });
177
+ space.db.add(fn2);
178
+ setUserFunctionIdInMetadata(Obj.getMeta(fn2), functionId);
179
+ return fn2;
160
180
  }
161
181
  };
162
182
 
163
183
  // src/hooks/useCreateAndDeployScriptTemplates.ts
164
- import { pipe } from "effect/Function";
184
+ import * as Function2 from "effect/Function";
165
185
  import { useCallback, useState } from "react";
166
186
  import { chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
167
187
  import { Obj as Obj2 } from "@dxos/echo";
168
- import { ScriptType } from "@dxos/functions";
188
+ import { Script } from "@dxos/functions";
169
189
  import { invariant } from "@dxos/invariant";
170
190
  import { SpaceAction } from "@dxos/plugin-space/types";
171
191
  import { useClient } from "@dxos/react-client";
@@ -188,18 +208,18 @@ var useCreateAndDeployScriptTemplates = (space, scriptTemplates) => {
188
208
  setStatus("pending");
189
209
  setError(void 0);
190
210
  const deploymentResults = await Promise.all(scriptTemplates.map(async (template) => {
191
- const result = await dispatch(pipe(createIntent(ScriptAction.Create, {
211
+ const result = await dispatch(Function2.pipe(createIntent(ScriptAction.CreateScript, {
192
212
  space,
193
213
  initialTemplateId: template.id
194
214
  }), chain(SpaceAction.AddObject, {
195
215
  target: space
196
216
  })));
197
- invariant(Obj2.instanceOf(ScriptType, result.data?.object), void 0, {
217
+ invariant(Obj2.instanceOf(Script.Script, result.data?.object), void 0, {
198
218
  F: __dxlog_file3,
199
219
  L: 48,
200
220
  S: void 0,
201
221
  A: [
202
- "Obj.instanceOf(ScriptType, result.data?.object)",
222
+ "Obj.instanceOf(Script.Script, result.data?.object)",
203
223
  ""
204
224
  ]
205
225
  });
@@ -226,8 +246,10 @@ var useCreateAndDeployScriptTemplates = (space, scriptTemplates) => {
226
246
 
227
247
  export {
228
248
  getFunctionUrl,
249
+ updateFunctionMetadata,
250
+ getAccessCredential,
229
251
  isScriptDeployed,
230
252
  deployScript,
231
253
  useCreateAndDeployScriptTemplates
232
254
  };
233
- //# sourceMappingURL=chunk-FMDXKOP7.mjs.map
255
+ //# sourceMappingURL=chunk-Q2DGRQRN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/functions.ts", "../../../src/util/deploy.ts", "../../../src/hooks/useCreateAndDeployScriptTemplates.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Function, type Script, getInvocationUrl, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { getMeta, getSpace } from '@dxos/react-client/echo';\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: Script.Script;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));\n\n if (!existingFunctionId) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionId, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (\n script: Script.Script,\n storedFunction: Function.Function,\n meta: any,\n functionId: string,\n) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n storedFunction.description = script.description;\n } else if (meta.description) {\n storedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n storedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n storedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n if (meta.key) {\n storedFunction.key = meta.key;\n } else {\n log.verbose('no key in function metadata', { functionId });\n }\n};\n\nexport const getAccessCredential = (identityKey: PublicKey): Credential => {\n return {\n issuer: identityKey,\n issuanceDate: new Date(),\n subject: {\n id: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.ServiceAccess',\n serverName: 'hub.dxos.network',\n serverKey: identityKey,\n identityKey,\n capabilities: ['composer:beta'],\n },\n },\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata, setUserFunctionIdInMetadata } from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\nimport { isNode } from '@dxos/util';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionId) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: Script.Script;\n client: Client;\n space: Space;\n fn?: Function.Function;\n existingFunctionId?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionId?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionId,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const bundler = new Bundler({ platform: isNode() ? 'node' : 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source: script.source!.target!.content });\n if ('error' in buildResult) {\n throw buildResult.error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: { [buildResult.entryPoint]: buildResult.asset },\n });\n\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);\n }\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);\n script.changed = false;\n updateFunctionMetadata(script, storedFunction, meta, functionId);\n\n setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);\n\n return { success: true, functionId };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: Script.Script, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: Function.Function | undefined,\n script: Script.Script,\n functionId: string,\n version: string,\n): Function.Function => {\n if (fn) {\n fn.name = script.name ?? 'New Function';\n fn.version = version;\n return fn;\n } else {\n const fn = Function.make({ name: script.name ?? 'New Function', version, source: Ref.make(script) });\n space.db.add(fn);\n setUserFunctionIdInMetadata(Obj.getMeta(fn), functionId);\n return fn;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type Template } from '../templates';\nimport { ScriptAction } from '../types';\nimport { deployScript } from '../util';\n\ntype DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * Hook for creating and deploying multiple script templates concurrently.\n *\n * Takes a space and an array of script template IDs, then provides a callback\n * function that creates each script from its template and deploys it to the space.\n * All creation / deployment operations run concurrently for improved performance.\n */\nexport const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const [status, setStatus] = useState<DeploymentStatus>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n\n const handleCreateAndDeployScripts = useCallback(async () => {\n invariant(space);\n setStatus('pending');\n setError(undefined);\n\n const deploymentResults = await Promise.all(\n scriptTemplates.map(async (template) => {\n const result = await dispatch(\n Function.pipe(\n createIntent(ScriptAction.CreateScript, { space, initialTemplateId: template.id as any }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(Obj.instanceOf(Script.Script, result.data?.object));\n\n return deployScript({ space, client, script: result.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, dispatch, client, scriptTemplates]);\n\n // TODO(burdon): Return onCreateAndDeployScripts.\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["getInvocationUrl", "getUserFunctionIdInMetadata", "log", "getMeta", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionId", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "description", "trim", "verbose", "inputSchema", "outputSchema", "key", "getAccessCredential", "identityKey", "issuer", "issuanceDate", "Date", "subject", "assertion", "serverName", "serverKey", "capabilities", "Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "setUserFunctionIdInMetadata", "Bundler", "incrementSemverPatch", "uploadWorkerFunction", "log", "isNode", "isScriptDeployed", "script", "fn", "existingFunctionId", "getUserFunctionIdInMetadata", "Obj", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "bundler", "Bundler", "platform", "isNode", "sandboxedModules", "remoteModules", "buildResult", "bundle", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "ownerPublicKey", "key", "incrementSemverPatch", "entryPoint", "assets", "asset", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "setUserFunctionIdInMetadata", "err", "log", "catch", "name", "Function", "make", "Ref", "db", "add", "Function", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "Obj", "Script", "invariant", "SpaceAction", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "result", "pipe", "createIntent", "ScriptAction", "CreateScript", "initialTemplateId", "id", "chain", "SpaceAction", "AddObject", "target", "Obj", "instanceOf", "Script", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
7
+ }