@dxos/plugin-script 0.8.4-main.5ea62a8 → 0.8.4-main.66e292d

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 (285) hide show
  1. package/dist/lib/browser/DeploymentDialog-5TKNGPVR.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs +817 -0
  3. package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs +148 -0
  5. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-IABOSTBK.mjs → app-graph-builder-2WR2ATTJ.mjs} +11 -9
  7. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +7 -0
  8. package/dist/lib/browser/{blueprint-definition-AR7ITBCD.mjs → blueprint-definition-6PZWZM2Y.mjs} +5 -3
  9. package/dist/lib/{node-esm/blueprint-definition-TJY4TX6S.mjs.map → browser/blueprint-definition-6PZWZM2Y.mjs.map} +1 -1
  10. package/dist/lib/browser/chunk-2G2NA6DQ.mjs +88 -0
  11. package/dist/lib/browser/chunk-2G2NA6DQ.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-ALS6X4HU.mjs +304 -0
  13. package/dist/lib/browser/chunk-ALS6X4HU.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-J5LGTIGS.mjs +10 -0
  17. package/dist/lib/browser/chunk-M6KJPUJK.mjs +111 -0
  18. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-TH7GXPE3.mjs → chunk-N5EYLQOT.mjs} +150 -59
  20. package/dist/lib/browser/chunk-N5EYLQOT.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-QIZ3BPRK.mjs +103 -0
  22. package/dist/lib/browser/chunk-QIZ3BPRK.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-YCZPTTFO.mjs → chunk-SAN5Y7FI.mjs} +23 -21
  24. package/dist/lib/browser/chunk-SAN5Y7FI.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-ULJFT73Q.mjs +513 -0
  26. package/dist/lib/browser/chunk-ULJFT73Q.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-UOQ6NCH3.mjs} +2 -2
  28. package/dist/lib/browser/{compiler-2HJH34GM.mjs → compiler-4KHRSX7J.mjs} +13 -25
  29. package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +7 -0
  30. package/dist/lib/browser/index.mjs +108 -50
  31. package/dist/lib/browser/index.mjs.map +3 -3
  32. package/dist/lib/browser/{intent-resolver-YMK5SXVC.mjs → intent-resolver-TXTBWOVD.mjs} +38 -23
  33. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-surface-FEM5WWFH.mjs → react-surface-R245YN52.mjs} +45 -21
  36. package/dist/lib/browser/react-surface-R245YN52.mjs.map +7 -0
  37. package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-MHJXRGDF.mjs} +10 -8
  38. package/dist/lib/browser/settings-MHJXRGDF.mjs.map +7 -0
  39. package/dist/lib/browser/templates/index.mjs +2 -1
  40. package/dist/lib/browser/types/index.mjs +8 -4
  41. package/dist/lib/node-esm/DeploymentDialog-2ULNOZQH.mjs +15 -0
  42. package/dist/lib/node-esm/DeploymentDialog-2ULNOZQH.mjs.map +7 -0
  43. package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs +818 -0
  44. package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs.map +7 -0
  45. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs +149 -0
  46. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-builder-CQTTAYHP.mjs → app-graph-builder-NCVLUL5R.mjs} +11 -9
  48. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +7 -0
  49. package/dist/lib/node-esm/{blueprint-definition-TJY4TX6S.mjs → blueprint-definition-5R6YCSZZ.mjs} +4 -3
  50. package/dist/lib/{browser/blueprint-definition-AR7ITBCD.mjs.map → node-esm/blueprint-definition-5R6YCSZZ.mjs.map} +1 -1
  51. package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-55JZVM6K.mjs} +2 -2
  52. package/dist/lib/node-esm/chunk-57JA6XL5.mjs +90 -0
  53. package/dist/lib/node-esm/chunk-57JA6XL5.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs +113 -0
  55. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  57. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-IBV2DR36.mjs} +8 -5
  59. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-ZA36GO4T.mjs → chunk-ND4BPYPR.mjs} +23 -21
  61. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-6M2R2FQF.mjs → chunk-UEVZP5DN.mjs} +150 -59
  63. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs +514 -0
  65. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs +305 -0
  67. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs +104 -0
  69. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs.map +7 -0
  70. package/dist/lib/node-esm/{compiler-7SP27RA6.mjs → compiler-DU5NQISX.mjs} +13 -25
  71. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +7 -0
  72. package/dist/lib/node-esm/index.mjs +108 -50
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-SKRDYQCZ.mjs → intent-resolver-D6AVAQRA.mjs} +38 -23
  75. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-surface-AOKMDJR4.mjs → react-surface-MHT3PJ6C.mjs} +45 -21
  78. package/dist/lib/node-esm/react-surface-MHT3PJ6C.mjs.map +7 -0
  79. package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-BVJORMMJ.mjs} +10 -8
  80. package/dist/lib/node-esm/settings-BVJORMMJ.mjs.map +7 -0
  81. package/dist/lib/node-esm/templates/index.mjs +2 -1
  82. package/dist/lib/node-esm/types/index.mjs +8 -4
  83. package/dist/types/src/ScriptPlugin.d.ts +1 -1
  84. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -1
  88. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  90. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +3 -3
  91. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  92. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +113 -7
  93. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  95. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  96. package/dist/types/src/components/NotebookContainer.d.ts +10 -0
  97. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  98. package/dist/types/src/components/NotebookContainer.stories.d.ts +254 -0
  99. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  100. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  101. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  102. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  103. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  104. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  105. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  106. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +248 -0
  107. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  108. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  109. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  110. package/dist/types/src/components/ScriptContainer.d.ts +4 -4
  111. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +5 -6
  113. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  114. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +240 -2
  115. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  117. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  118. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
  119. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  120. package/dist/types/src/components/TestPanel/TestContainer.d.ts +2 -2
  121. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  122. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  123. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
  124. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  125. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -3
  126. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/index.d.ts +2 -0
  128. package/dist/types/src/components/index.d.ts.map +1 -1
  129. package/dist/types/src/events.d.ts.map +1 -1
  130. package/dist/types/src/hooks/deploy.d.ts +14 -12
  131. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  132. package/dist/types/src/hooks/format.d.ts +2 -2
  133. package/dist/types/src/hooks/format.d.ts.map +1 -1
  134. package/dist/types/src/hooks/template.d.ts +4 -14
  135. package/dist/types/src/hooks/template.d.ts.map +1 -1
  136. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  137. package/dist/types/src/index.d.ts +1 -0
  138. package/dist/types/src/index.d.ts.map +1 -1
  139. package/dist/types/src/meta.d.ts +0 -1
  140. package/dist/types/src/meta.d.ts.map +1 -1
  141. package/dist/types/src/notebook/compute-graph.d.ts +45 -0
  142. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  143. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  144. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  145. package/dist/types/src/notebook/eval.d.ts +13 -0
  146. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  147. package/dist/types/src/notebook/index.d.ts +2 -0
  148. package/dist/types/src/notebook/index.d.ts.map +1 -0
  149. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  150. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  151. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  152. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  153. package/dist/types/src/templates/chess.d.ts.map +1 -1
  154. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  155. package/dist/types/src/templates/discord.d.ts.map +1 -1
  156. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  157. package/dist/types/src/templates/forex.d.ts.map +1 -1
  158. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  159. package/dist/types/src/templates/index.d.ts +43 -1
  160. package/dist/types/src/templates/index.d.ts.map +1 -1
  161. package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
  162. package/dist/types/src/templates/ping.d.ts.map +1 -0
  163. package/dist/types/src/testing/data.d.ts +3 -0
  164. package/dist/types/src/testing/data.d.ts.map +1 -0
  165. package/dist/types/src/testing/index.d.ts +2 -0
  166. package/dist/types/src/testing/index.d.ts.map +1 -0
  167. package/dist/types/src/translations.d.ts +31 -5
  168. package/dist/types/src/translations.d.ts.map +1 -1
  169. package/dist/types/src/types/Notebook.d.ts +31 -0
  170. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  171. package/dist/types/src/types/actions.d.ts +54 -0
  172. package/dist/types/src/types/actions.d.ts.map +1 -0
  173. package/dist/types/src/types/index.d.ts +3 -1
  174. package/dist/types/src/types/index.d.ts.map +1 -1
  175. package/dist/types/src/types/types.d.ts +6 -0
  176. package/dist/types/src/types/types.d.ts.map +1 -0
  177. package/dist/types/src/util/deploy.d.ts +4 -4
  178. package/dist/types/src/util/deploy.d.ts.map +1 -1
  179. package/dist/types/src/util/functions.d.ts +6 -3
  180. package/dist/types/src/util/functions.d.ts.map +1 -1
  181. package/dist/types/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +79 -69
  183. package/src/ScriptPlugin.tsx +79 -73
  184. package/src/capabilities/app-graph-builder.ts +10 -9
  185. package/src/capabilities/artifact-definition.ts +2 -3
  186. package/src/capabilities/compiler.ts +1 -1
  187. package/src/capabilities/intent-resolver.ts +20 -11
  188. package/src/capabilities/react-surface.tsx +30 -17
  189. package/src/capabilities/settings.ts +3 -3
  190. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +13 -6
  191. package/src/components/DeploymentDialog/DeploymentDialog.tsx +41 -30
  192. package/src/components/FrameContainer/FrameContainer.tsx +2 -2
  193. package/src/components/NotebookContainer.stories.tsx +83 -0
  194. package/src/components/NotebookContainer.tsx +260 -0
  195. package/src/components/NotebookStack/NotebookCell.tsx +216 -0
  196. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  197. package/src/components/NotebookStack/NotebookStack.stories.tsx +54 -0
  198. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  199. package/src/components/NotebookStack/index.ts +6 -0
  200. package/src/components/ScriptContainer.tsx +8 -7
  201. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +22 -10
  202. package/src/components/ScriptToolbar/ScriptToolbar.tsx +30 -33
  203. package/src/components/Settings/ScriptObjectSettings.tsx +115 -19
  204. package/src/components/Settings/ScriptPluginSettings.tsx +4 -19
  205. package/src/components/TestPanel/TestContainer.tsx +2 -2
  206. package/src/components/TestPanel/TestPanel.tsx +42 -19
  207. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +71 -16
  208. package/src/components/TypescriptEditor/TypescriptEditor.tsx +36 -35
  209. package/src/components/index.ts +3 -0
  210. package/src/events.ts +2 -2
  211. package/src/hooks/deploy.ts +17 -17
  212. package/src/hooks/format.ts +4 -4
  213. package/src/hooks/template.ts +6 -15
  214. package/src/hooks/useCreateAndDeployScriptTemplates.ts +10 -6
  215. package/src/index.ts +1 -0
  216. package/src/meta.ts +7 -5
  217. package/src/notebook/compute-graph.test.ts +70 -0
  218. package/src/notebook/compute-graph.ts +206 -0
  219. package/src/notebook/eval.ts +105 -0
  220. package/src/notebook/index.ts +5 -0
  221. package/src/notebook/vfs-parser.test.ts +149 -0
  222. package/src/notebook/vfs-parser.ts +451 -0
  223. package/src/templates/chess.ts +2 -0
  224. package/src/templates/data-generator.ts +2 -0
  225. package/src/templates/discord.ts +9 -1
  226. package/src/templates/forex-effect.ts +5 -1
  227. package/src/templates/forex.ts +2 -0
  228. package/src/templates/gmail.ts +22 -11
  229. package/src/templates/index.ts +6 -6
  230. package/src/testing/data.ts +72 -0
  231. package/src/testing/index.ts +5 -0
  232. package/src/translations.ts +34 -7
  233. package/src/types/Notebook.ts +42 -0
  234. package/src/types/actions.ts +53 -0
  235. package/src/types/index.ts +3 -1
  236. package/src/types/types.ts +15 -0
  237. package/src/util/deploy.ts +14 -18
  238. package/src/util/functions.ts +37 -6
  239. package/dist/lib/browser/DeploymentDialog-QZSTVNIS.mjs +0 -12
  240. package/dist/lib/browser/ScriptContainer-JUPCBUCP.mjs +0 -263
  241. package/dist/lib/browser/ScriptContainer-JUPCBUCP.mjs.map +0 -7
  242. package/dist/lib/browser/app-graph-builder-IABOSTBK.mjs.map +0 -7
  243. package/dist/lib/browser/chunk-6CAH7VIE.mjs +0 -283
  244. package/dist/lib/browser/chunk-6CAH7VIE.mjs.map +0 -7
  245. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  246. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  247. package/dist/lib/browser/chunk-NXKU3BNX.mjs +0 -222
  248. package/dist/lib/browser/chunk-NXKU3BNX.mjs.map +0 -7
  249. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  250. package/dist/lib/browser/chunk-RNGIQIEJ.mjs +0 -88
  251. package/dist/lib/browser/chunk-RNGIQIEJ.mjs.map +0 -7
  252. package/dist/lib/browser/chunk-TH7GXPE3.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-YCZPTTFO.mjs.map +0 -7
  254. package/dist/lib/browser/compiler-2HJH34GM.mjs.map +0 -7
  255. package/dist/lib/browser/intent-resolver-YMK5SXVC.mjs.map +0 -7
  256. package/dist/lib/browser/react-surface-FEM5WWFH.mjs.map +0 -7
  257. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  258. package/dist/lib/node-esm/DeploymentDialog-G6EHEPXN.mjs +0 -13
  259. package/dist/lib/node-esm/ScriptContainer-UXZUDQF6.mjs +0 -264
  260. package/dist/lib/node-esm/ScriptContainer-UXZUDQF6.mjs.map +0 -7
  261. package/dist/lib/node-esm/app-graph-builder-CQTTAYHP.mjs.map +0 -7
  262. package/dist/lib/node-esm/chunk-2GBESIHU.mjs +0 -284
  263. package/dist/lib/node-esm/chunk-2GBESIHU.mjs.map +0 -7
  264. package/dist/lib/node-esm/chunk-6M2R2FQF.mjs.map +0 -7
  265. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  266. package/dist/lib/node-esm/chunk-GWHLP5LM.mjs +0 -90
  267. package/dist/lib/node-esm/chunk-GWHLP5LM.mjs.map +0 -7
  268. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  269. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  270. package/dist/lib/node-esm/chunk-M642JUOZ.mjs +0 -223
  271. package/dist/lib/node-esm/chunk-M642JUOZ.mjs.map +0 -7
  272. package/dist/lib/node-esm/chunk-ZA36GO4T.mjs.map +0 -7
  273. package/dist/lib/node-esm/compiler-7SP27RA6.mjs.map +0 -7
  274. package/dist/lib/node-esm/intent-resolver-SKRDYQCZ.mjs.map +0 -7
  275. package/dist/lib/node-esm/react-surface-AOKMDJR4.mjs.map +0 -7
  276. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  277. package/dist/types/src/templates/echo.d.ts.map +0 -1
  278. package/dist/types/src/types/schema.d.ts +0 -38
  279. package/dist/types/src/types/schema.d.ts.map +0 -1
  280. package/src/types/schema.ts +0 -37
  281. /package/dist/lib/browser/{DeploymentDialog-QZSTVNIS.mjs.map → DeploymentDialog-5TKNGPVR.mjs.map} +0 -0
  282. /package/dist/lib/{node-esm/DeploymentDialog-G6EHEPXN.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  283. /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-UOQ6NCH3.mjs.map} +0 -0
  284. /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-55JZVM6K.mjs.map} +0 -0
  285. /package/src/templates/{echo.ts → ping.ts} +0 -0
@@ -1,7 +0,0 @@
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 { SCRIPT_PLUGIN } from '../../meta';\nimport { type Template } from '../../templates';\n\nexport const DEPLOYMENT_DIALOG = `${SCRIPT_PLUGIN}/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(SCRIPT_PLUGIN);\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: `${SCRIPT_PLUGIN}/deployment-success`,\n icon: 'ph--check--regular',\n duration: Infinity,\n title: ['script deployment toast label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],\n description: ['script deployment toast description', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],\n closeLabel: ['script deployment toast close label', { ns: SCRIPT_PLUGIN, 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: `${SCRIPT_PLUGIN}/deployment-error`,\n icon: 'ph--warning--regular',\n duration: Infinity,\n title: ['script deployment error toast label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],\n description: [\n 'script deployment error toast description',\n { ns: SCRIPT_PLUGIN, count: scriptTemplates.length },\n ],\n closeLabel: [\n 'script deployment error toast close label',\n { ns: SCRIPT_PLUGIN, count: scriptTemplates.length },\n ],\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", "SCRIPT_PLUGIN", "DeploymentDialog", "accessToken", "scriptTemplates", "t", "useTranslation", "space", "useMemo", "getSpace", "handleCreateAndDeployScripts", "status", "useCreateAndDeployScriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "useEffect", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "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
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/compiler.ts", "../../../src/compiler/compiler.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @ts-ignore\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\n\nimport { contributes } from '@dxos/app-framework';\nimport { initializeBundler } from '@dxos/functions/bundler';\n\nimport { Compiler } from '../compiler';\n\nimport { ScriptCapabilities } from './capabilities';\n\nexport default async () => {\n const compiler = new Compiler();\n\n await compiler.initialize();\n // TODO(wittjosiah): Fetch types for https modules.\n compiler.setFile('/src/typings.d.ts', \"declare module 'https://*';\");\n // TODO(wittjosiah): Proper function handler types.\n // TODO(wittjosiah): Remove.\n compiler.setFile(\n '/src/runtime.ts',\n `\n export const Filter: any = {};\n export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;\n export const functionHandler = (handler: FunctionHandler) => handler;\n `,\n );\n await initializeBundler({ wasmUrl });\n\n return contributes(ScriptCapabilities.Compiler, compiler);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n type VirtualTypeScriptEnvironment,\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize(): Promise<void> {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.5.4', true, ts);\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, [], ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string): void {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string): ts.EmitOutput {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n"],
5
- "mappings": ";;;;;;AAKA,OAAOA,aAAa;AAEpB,SAASC,mBAAmB;AAC5B,SAASC,yBAAyB;;;ACJlC,SAEEC,yBACAC,cACAC,0CACK;AACP,OAAOC,QAAQ;AAEf,SAASC,iBAAiB;;;;;;;;;;;;;;;AAE1B,IAAMC,iBAAqC;EACzCC,KAAK;IAAC;IAAO;;EACbC,QAAQJ,GAAGK,aAAaC;AAC1B;AAEO,IAAMC,WAAN,MAAMA;EAMX,MAAMC,aAA4B;AAChC,QAAI,KAAKC,MAAM;AACb;IACF;AAIA,SAAKC,SAAS,MAAMb,wBAAwB,KAAKc,UAAU,SAAS,MAAMX,EAAAA;AAC1E,UAAMY,SAASd,aAAa,KAAKY,MAAM;AACvC,SAAKD,OAAOV,mCAAmCa,QAAQ,CAAA,GAAIZ,IAAI,KAAKW,QAAQ;EAC9E;EAEA,IAAIE,cAAc;AAChBZ,cAAU,KAAKQ,MAAM,yCAAA;;;;;;;;;AACrB,WAAO,KAAKA;EACd;EAEAK,QAAQC,UAAkBC,SAAuB;AAC/Cf,cAAU,KAAKS,QAAQ,oCAAA;;;;;;;;;AACvB,SAAKG,YAAYI,WAAWF,UAAUC,OAAAA;EACxC;EAEAE,QAAQH,UAAiC;AACvC,WAAO,KAAKF,YAAYM,gBAAgBC,cAAcL,QAAAA;EACxD;EA1BA,YAA6BJ,WAA+BT,gBAAgB;;AAH5E,qBAAA,MAAQO,QAAR,MAAA;AACA,qBAAA,MAAQC,UAAR,MAAA;SAE6BC,WAAAA;EAAgD;AA2B/E;;;ADpCA,IAAA,mBAAe,YAAA;AACb,QAAMU,WAAW,IAAIC,SAAAA;AAErB,QAAMD,SAASE,WAAU;AAEzBF,WAASG,QAAQ,qBAAqB,6BAAA;AAGtCH,WAASG,QACP,mBACA;;;;OAIG;AAEL,QAAMC,kBAAkB;IAAEC;EAAQ,CAAA;AAElC,SAAOC,YAAYC,mBAAmBN,UAAUD,QAAAA;AAClD;",
6
- "names": ["wasmUrl", "contributes", "initializeBundler", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "initialize", "_env", "_fsMap", "_options", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "compiler", "Compiler", "initialize", "setFile", "initializeBundler", "wasmUrl", "contributes", "ScriptCapabilities"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport { Predicate } from 'effect';\n\nimport { Capabilities, LayoutAction, contributes, createIntent, createResolver } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { TokenManagerAction } from '@dxos/plugin-token-manager/types';\nimport { DataType } from '@dxos/schema';\n\nimport { DEPLOYMENT_DIALOG } from '../components';\nimport { defaultScriptsForIntegration } from '../meta';\nimport { templates } from '../templates';\nimport { ScriptAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ScriptAction.Create,\n resolve: async ({ name, gistUrl, initialTemplateId }) => {\n let content = templates[0].source;\n\n const gistId = gistUrl?.split('/').at(-1);\n if (gistId) {\n // TODO(wittjosiah): Capability which contributes Octokit?\n // NOTE: AccessToken not needed to read public gists.\n const octokit = new Octokit();\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n const gistContent = Object.values(response.data.files ?? {})[0]?.content;\n if (gistContent) {\n content = gistContent;\n }\n }\n\n if (initialTemplateId) {\n const template = templates.find((template) => template.id === initialTemplateId);\n if (template) {\n content = template.source;\n name = template.name;\n }\n }\n\n return {\n data: {\n object: Obj.make(ScriptType, { name, source: Ref.make(DataType.makeText(content)) }),\n },\n };\n },\n }),\n createResolver({\n intent: TokenManagerAction.AccessTokenCreated,\n resolve: async ({ accessToken }) => {\n const scriptTemplates = (defaultScriptsForIntegration[accessToken.source] ?? [])\n .map((id) => templates.find((t) => t.id === id))\n .filter(Predicate.isNotNullable);\n\n if (scriptTemplates.length > 0) {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: DEPLOYMENT_DIALOG,\n options: { blockAlign: 'start', state: true, props: { accessToken, scriptTemplates } },\n }),\n ],\n };\n }\n\n return { data: undefined };\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAIA,SAASA,eAAe;AACxB,SAASC,iBAAiB;AAE1B,SAASC,cAAcC,cAAcC,aAAaC,cAAcC,sBAAsB;AACtF,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAOzB,IAAA,0BAAe,MACbC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,OAAO,EAAEC,MAAMC,SAASC,kBAAiB,MAAE;AAClD,UAAIC,UAAUC,UAAU,CAAA,EAAGC;AAE3B,YAAMC,SAASL,SAASM,MAAM,GAAA,EAAKC,GAAG,EAAC;AACvC,UAAIF,QAAQ;AAGV,cAAMG,UAAU,IAAIC,QAAAA;AACpB,cAAMC,WAAW,MAAMF,QAAQG,QAAQ,wBAAwB;UAC7DC,SAASP;QACX,CAAA;AACA,cAAMQ,cAAcC,OAAOC,OAAOL,SAASM,KAAKC,SAAS,CAAC,CAAA,EAAG,CAAA,GAAIf;AACjE,YAAIW,aAAa;AACfX,oBAAUW;QACZ;MACF;AAEA,UAAIZ,mBAAmB;AACrB,cAAMiB,WAAWf,UAAUgB,KAAK,CAACD,cAAaA,UAASE,OAAOnB,iBAAAA;AAC9D,YAAIiB,UAAU;AACZhB,oBAAUgB,SAASd;AACnBL,iBAAOmB,SAASnB;QAClB;MACF;AAEA,aAAO;QACLiB,MAAM;UACJK,QAAQC,IAAIC,KAAKC,YAAY;YAAEzB;YAAMK,QAAQqB,IAAIF,KAAKG,SAASC,SAASzB,OAAAA,CAAAA;UAAU,CAAA;QACpF;MACF;IACF;EACF,CAAA;EACAR,eAAe;IACbC,QAAQiC,mBAAmBC;IAC3B/B,SAAS,OAAO,EAAEgC,YAAW,MAAE;AAC7B,YAAMC,mBAAmBC,6BAA6BF,YAAY1B,MAAM,KAAK,CAAA,GAC1E6B,IAAI,CAACb,OAAOjB,UAAUgB,KAAK,CAACe,MAAMA,EAAEd,OAAOA,EAAAA,CAAAA,EAC3Ce,OAAOC,UAAUC,aAAa;AAEjC,UAAIN,gBAAgBO,SAAS,GAAG;AAC9B,eAAO;UACLC,SAAS;YACPC,aAAaC,aAAaC,cAAc;cACtCC,MAAM;cACNC,SAASC;cACTC,SAAS;gBAAEC,YAAY;gBAASC,OAAO;gBAAMC,OAAO;kBAAEnB;kBAAaC;gBAAgB;cAAE;YACvF,CAAA;;QAEJ;MACF;AAEA,aAAO;QAAEf,MAAMkC;MAAU;IAC3B;EACF,CAAA;CACD;",
6
- "names": ["Octokit", "Predicate", "Capabilities", "LayoutAction", "contributes", "createIntent", "createResolver", "Obj", "Ref", "ScriptType", "TokenManagerAction", "DataType", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ScriptAction", "Create", "resolve", "name", "gistUrl", "initialTemplateId", "content", "templates", "source", "gistId", "split", "at", "octokit", "Octokit", "response", "request", "gist_id", "gistContent", "Object", "values", "data", "files", "template", "find", "id", "object", "Obj", "make", "ScriptType", "Ref", "DataType", "makeText", "TokenManagerAction", "AccessTokenCreated", "accessToken", "scriptTemplates", "defaultScriptsForIntegration", "map", "t", "filter", "Predicate", "isNotNullable", "length", "intents", "createIntent", "LayoutAction", "UpdateDialog", "part", "subject", "DEPLOYMENT_DIALOG", "options", "blockAlign", "state", "props", "undefined"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';\nimport { InvocationTraceContainer } from '@dxos/devtools';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { type DataType } from '@dxos/schema';\n\nimport {\n DEPLOYMENT_DIALOG,\n DeploymentDialog,\n ScriptContainer,\n ScriptObjectSettings,\n ScriptPluginSettings,\n ScriptProperties,\n TestContainer,\n} from '../components';\nimport { meta } from '../meta';\nimport { type ScriptSettingsProps } from '../types';\n\nimport { ScriptCapabilities } from './capabilities';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ScriptSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <ScriptPluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/article`,\n role: 'article',\n filter: (data): data is { subject: ScriptType } => Obj.instanceOf(ScriptType, data.subject),\n component: ({ data, role }) => {\n const compiler = useCapability(ScriptCapabilities.Compiler);\n // TODO(dmaretskyi): Since settings store is not reactive, this would break on the script plugin being enabled without a page reload.\n const settings = useCapability(Capabilities.SettingsStore).getStore<ScriptSettingsProps>(meta.id)?.value;\n return <ScriptContainer role={role} script={data.subject} settings={settings} env={compiler.environment} />;\n },\n }),\n createSurface({\n id: `${meta.id}/companion/base-settings`,\n role: 'base-object-settings',\n filter: (data): data is { subject: ScriptType } => Obj.instanceOf(ScriptType, data.subject),\n component: ({ data }) => <ScriptProperties object={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/companion/settings`,\n role: 'object-settings',\n filter: (data): data is { subject: ScriptType } => Obj.instanceOf(ScriptType, data.subject),\n component: ({ data }) => <ScriptObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/companion/execute`,\n role: 'article',\n filter: (data): data is { companionTo: ScriptType } =>\n Obj.instanceOf(ScriptType, data.companionTo) && data.subject === 'execute',\n component: ({ data, role }) => <TestContainer script={data.companionTo} role={role} />,\n }),\n createSurface({\n id: `${meta.id}/companion/logs`,\n role: 'article',\n filter: (data): data is { companionTo: ScriptType } =>\n Obj.instanceOf(ScriptType, data.companionTo) && data.subject === 'logs',\n component: ({ data, role }) => {\n const space = getSpace(data.companionTo);\n return (\n <StackItem.Content>\n <InvocationTraceContainer space={space} target={data.companionTo} detailAxis='block' />\n </StackItem.Content>\n );\n },\n }),\n createSurface({\n id: DEPLOYMENT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: { accessToken: DataType.AccessToken; scriptTemplates: any } } =>\n data.component === DEPLOYMENT_DIALOG,\n component: ({ data }) => <DeploymentDialog {...data.props} />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,eAAeC,qBAAqB;AACxE,SAASC,gCAAgC;AACzC,SAASC,WAAW;AACpB,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAiB1B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN,KAAKD;IACxEQ,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,sBAAAA;MAAqBC,UAAUL,QAAQM;;EAChF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA0CQ,IAAIC,WAAWC,YAAYV,KAAKC,OAAO;IAC1FG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMa,WAAWC,cAAcC,mBAAmBC,QAAQ;AAE1D,YAAMR,WAAWM,cAAcnB,aAAaS,aAAa,EAAEa,SAA8BlB,KAAKD,EAAE,GAAGW;AACnG,aAAO,sBAAA,cAACS,iBAAAA;QAAgBlB;QAAYmB,QAAQjB,KAAKC;QAASK;QAAoBY,KAAKP,SAASQ;;IAC9F;EACF,CAAA;EACAxB,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA0CQ,IAAIC,WAAWC,YAAYV,KAAKC,OAAO;IAC1FG,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACoB,kBAAAA;MAAiBC,QAAQrB,KAAKC;;EAC1D,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA0CQ,IAAIC,WAAWC,YAAYV,KAAKC,OAAO;IAC1FG,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACsB,sBAAAA;MAAqBD,QAAQrB,KAAKC;;EAC9D,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SACPQ,IAAIC,WAAWC,YAAYV,KAAKuB,WAAW,KAAKvB,KAAKC,YAAY;IACnEG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,sBAAA,cAAC0B,eAAAA;MAAcP,QAAQjB,KAAKuB;MAAazB;;EAC1E,CAAA;EACAH,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SACPQ,IAAIC,WAAWC,YAAYV,KAAKuB,WAAW,KAAKvB,KAAKC,YAAY;IACnEG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAM2B,QAAQC,SAAS1B,KAAKuB,WAAW;AACvC,aACE,sBAAA,cAACI,UAAUC,SAAO,MAChB,sBAAA,cAACC,0BAAAA;QAAyBJ;QAAcK,QAAQ9B,KAAKuB;QAAaQ,YAAW;;IAGnF;EACF,CAAA;EACApC,cAAc;IACZC,IAAIoC;IACJlC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKI,cAAc4B;IACrB5B,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACiC,kBAAqBjC,KAAKkC,KAAK;EAC3D,CAAA;CACD;",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "useCapability", "InvocationTraceContainer", "Obj", "ScriptType", "SettingsStore", "getSpace", "StackItem", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ScriptPluginSettings", "settings", "value", "Obj", "instanceOf", "ScriptType", "compiler", "useCapability", "ScriptCapabilities", "Compiler", "getStore", "ScriptContainer", "script", "env", "environment", "ScriptProperties", "object", "ScriptObjectSettings", "companionTo", "TestContainer", "space", "getSpace", "StackItem", "Content", "InvocationTraceContainer", "target", "detailAxis", "DEPLOYMENT_DIALOG", "DeploymentDialog", "props"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { meta } from '../meta';\nimport { ScriptSettingsSchema } from '../types';\n\nexport default () => {\n const settings = live(ScriptSettingsSchema, {\n editorInputMode: 'vscode',\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: ScriptSettingsSchema,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,KAAKC,sBAAsB;IAC1CC,iBAAiB;EACnB,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQR;IACRS,OAAOX;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "live", "settings", "live", "ScriptSettingsSchema", "editorInputMode", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "value"]
7
- }
@@ -1,13 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- DEPLOYMENT_DIALOG,
4
- DeploymentDialog_default
5
- } from "./chunk-ZA36GO4T.mjs";
6
- import "./chunk-M642JUOZ.mjs";
7
- import "./chunk-JIPFLBYA.mjs";
8
- import "./chunk-AHXJ6NQU.mjs";
9
- export {
10
- DEPLOYMENT_DIALOG,
11
- DeploymentDialog_default as default
12
- };
13
- //# sourceMappingURL=DeploymentDialog-G6EHEPXN.mjs.map
@@ -1,264 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- createDeploy,
4
- createFormat,
5
- createTemplateSelect,
6
- useDeployDeps,
7
- useDeployState,
8
- useToolbarState
9
- } from "./chunk-2GBESIHU.mjs";
10
- import "./chunk-GWHLP5LM.mjs";
11
- import "./chunk-M642JUOZ.mjs";
12
- import "./chunk-JIPFLBYA.mjs";
13
- import {
14
- SCRIPT_PLUGIN
15
- } from "./chunk-AHXJ6NQU.mjs";
16
-
17
- // src/components/ScriptContainer.tsx
18
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
19
- import React3, { useMemo as useMemo2 } from "react";
20
- import { createDocAccessor, getSpace } from "@dxos/react-client/echo";
21
- import { useIdentity } from "@dxos/react-client/halo";
22
- import { createDataExtensions, listener, stackItemContentEditorClassNames } from "@dxos/react-ui-editor";
23
- import { StackItem } from "@dxos/react-ui-stack";
24
-
25
- // src/components/ScriptToolbar/ScriptToolbar.tsx
26
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
27
- import { Rx } from "@effect-rx/rx-react";
28
- import React, { useMemo } from "react";
29
- import { fullyQualifiedId } from "@dxos/react-client/echo";
30
- import { ElevationProvider, useTranslation } from "@dxos/react-ui";
31
- import { MenuProvider, ToolbarMenu, createGapSeparator, rxFromSignal, useMenuActions } from "@dxos/react-ui-menu";
32
- var createToolbarActions = ({ state, script, ...options }) => Rx.make((get) => get(rxFromSignal(() => {
33
- const templateSelect = createTemplateSelect(script);
34
- const format = createFormat(script);
35
- const gap = createGapSeparator();
36
- const deploy = createDeploy({
37
- state,
38
- script,
39
- ...options
40
- });
41
- return {
42
- nodes: [
43
- ...templateSelect.nodes,
44
- ...format.nodes,
45
- ...gap.nodes,
46
- ...deploy.nodes
47
- ],
48
- edges: [
49
- ...templateSelect.edges,
50
- ...format.edges,
51
- ...gap.edges,
52
- ...deploy.edges
53
- ]
54
- };
55
- })));
56
- var ScriptToolbar = ({ script, role, state, classNames }) => {
57
- var _effect = _useSignals();
58
- try {
59
- const { t } = useTranslation(SCRIPT_PLUGIN);
60
- const options = useDeployDeps({
61
- script
62
- });
63
- const toolbarCreator = useMemo(() => createToolbarActions({
64
- state,
65
- script,
66
- t,
67
- ...options
68
- }), [
69
- state,
70
- script,
71
- options,
72
- t
73
- ]);
74
- const menu = useMenuActions(toolbarCreator);
75
- return /* @__PURE__ */ React.createElement(ElevationProvider, {
76
- elevation: role === "section" ? "positioned" : "base"
77
- }, /* @__PURE__ */ React.createElement(MenuProvider, {
78
- ...menu,
79
- attendableId: fullyQualifiedId(script)
80
- }, /* @__PURE__ */ React.createElement(ToolbarMenu, {
81
- classNames
82
- })));
83
- } finally {
84
- _effect.f();
85
- }
86
- };
87
-
88
- // src/components/TypescriptEditor/TypescriptEditor.tsx
89
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
90
- import { javascript } from "@codemirror/lang-javascript";
91
- import { defaultHighlightStyle } from "@codemirror/language";
92
- import { lintKeymap } from "@codemirror/lint";
93
- import { Prec } from "@codemirror/state";
94
- import { oneDarkHighlightStyle } from "@codemirror/theme-one-dark";
95
- import { keymap } from "@codemirror/view";
96
- import { tags } from "@lezer/highlight";
97
- import { continueKeymap } from "@valtown/codemirror-continue";
98
- import { tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from "@valtown/codemirror-ts";
99
- import React2 from "react";
100
- import { useThemeContext } from "@dxos/react-ui";
101
- import { InputModeExtensions, autocomplete, createBasicExtensions, createThemeExtensions, folding, useTextEditor } from "@dxos/react-ui-editor";
102
- import { mx } from "@dxos/react-ui-theme";
103
- import { isNonNullable } from "@dxos/util";
104
- var TypescriptEditor = ({ classNames, id, inputMode = "vscode", toolbar, env, initialValue, extensions, scrollTo, selection }) => {
105
- var _effect = _useSignals2();
106
- try {
107
- const { themeMode } = useThemeContext();
108
- const { parentRef, focusAttributes } = useTextEditor(() => ({
109
- id,
110
- initialValue,
111
- selection,
112
- scrollTo,
113
- extensions: [
114
- extensions,
115
- createBasicExtensions({
116
- highlightActiveLine: true,
117
- indentWithTab: true,
118
- lineNumbers: true,
119
- lineWrapping: false,
120
- monospace: true,
121
- scrollPastEnd: true,
122
- search: true
123
- }),
124
- createThemeExtensions({
125
- themeMode,
126
- syntaxHighlighting: true
127
- }),
128
- InputModeExtensions[inputMode],
129
- folding(),
130
- // Continues block comments when pressing Enter.
131
- Prec.high(keymap.of(continueKeymap)),
132
- // TODO(burdon): Factor out.
133
- javascript({
134
- typescript: true
135
- }),
136
- // https://github.com/val-town/codemirror-ts
137
- autocomplete({
138
- override: env ? [
139
- tsAutocomplete()
140
- ] : void 0
141
- }),
142
- keymap.of(lintKeymap),
143
- env && [
144
- tsFacet.of({
145
- env,
146
- path: `/src/${id}.ts`
147
- }),
148
- tsSync(),
149
- tsLinter(),
150
- tsHover({
151
- renderTooltip: createTooltipRenderer(themeMode)
152
- })
153
- ]
154
- ].filter(isNonNullable)
155
- }), [
156
- id,
157
- extensions,
158
- themeMode,
159
- inputMode,
160
- selection,
161
- scrollTo
162
- ]);
163
- return /* @__PURE__ */ React2.createElement("div", {
164
- ref: parentRef,
165
- "data-toolbar": toolbar ? "enabled" : "disabled",
166
- className: mx(classNames),
167
- ...focusAttributes
168
- });
169
- } finally {
170
- _effect.f();
171
- }
172
- };
173
- var createTooltipRenderer = (themeMode) => {
174
- const theme = themeMode === "dark" ? oneDarkHighlightStyle : defaultHighlightStyle;
175
- const classFromKind = (_kind) => {
176
- const kind = _kind.endsWith("Name") ? "name" : _kind;
177
- const validTag = kind in tags;
178
- if (!validTag) {
179
- return "";
180
- }
181
- const tag = tags[kind];
182
- if (typeof tag === "function") {
183
- return "";
184
- }
185
- return theme.style([
186
- tag
187
- ]) ?? "";
188
- };
189
- return (info) => {
190
- const div = document.createElement("div");
191
- div.className = "p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg";
192
- if (info.quickInfo?.displayParts) {
193
- for (const part of info.quickInfo.displayParts) {
194
- const span = div.appendChild(document.createElement("span"));
195
- span.className = classFromKind(part.kind);
196
- span.innerText = part.text;
197
- }
198
- }
199
- return {
200
- dom: div
201
- };
202
- };
203
- };
204
-
205
- // src/components/ScriptContainer.tsx
206
- var ScriptContainer = ({ role, script, settings = {
207
- editorInputMode: "vscode"
208
- }, env }) => {
209
- var _effect = _useSignals3();
210
- try {
211
- const identity = useIdentity();
212
- const space = getSpace(script);
213
- const state = useToolbarState();
214
- useDeployState({
215
- state,
216
- script
217
- });
218
- const extensions = useMemo2(() => script.source.target ? [
219
- listener({
220
- onChange: (text) => {
221
- if (script.source.target?.content !== text) {
222
- script.changed = true;
223
- }
224
- }
225
- }),
226
- createDataExtensions({
227
- id: script.id,
228
- text: createDocAccessor(script.source.target, [
229
- "content"
230
- ]),
231
- space,
232
- identity
233
- })
234
- ] : [], [
235
- identity,
236
- space,
237
- script,
238
- script.source.target
239
- ]);
240
- return /* @__PURE__ */ React3.createElement(StackItem.Content, {
241
- toolbar: true
242
- }, /* @__PURE__ */ React3.createElement(ScriptToolbar, {
243
- state,
244
- role,
245
- script
246
- }), /* @__PURE__ */ React3.createElement(TypescriptEditor, {
247
- id: script.id,
248
- env,
249
- initialValue: script.source?.target?.content,
250
- extensions,
251
- classNames: stackItemContentEditorClassNames(role),
252
- inputMode: settings.editorInputMode,
253
- toolbar: true
254
- }));
255
- } finally {
256
- _effect.f();
257
- }
258
- };
259
- var ScriptContainer_default = ScriptContainer;
260
- export {
261
- ScriptContainer,
262
- ScriptContainer_default as default
263
- };
264
- //# sourceMappingURL=ScriptContainer-UXZUDQF6.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\n\nexport type ScriptEditorProps = {\n role: string;\n script: ScriptType;\n settings?: ScriptSettingsProps;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ state, script });\n\n const extensions = useMemo(\n () =>\n script.source.target\n ? [\n listener({\n onChange: (text) => {\n if (script.source.target?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ]\n : [],\n [identity, space, script, script.source.target],\n );\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport {\n type ActionGraphProps,\n MenuProvider,\n ToolbarMenu,\n createGapSeparator,\n rxFromSignal,\n useMenuActions,\n} from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '../../hooks';\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nconst createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Rx.Rx<ActionGraphProps> =>\n Rx.make((get) =>\n get(\n rxFromSignal(() => {\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n }),\n ),\n );\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const options = useDeployDeps({ script });\n const toolbarCreator = useMemo(\n () => createToolbarActions({ state, script, t, ...options }),\n [state, script, options, t],\n );\n const menu = useMenuActions(toolbarCreator);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { lintKeymap } from '@codemirror/lint';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { type HoverInfo, tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemeMode, type ThemedClassName, useThemeContext } from '@dxos/react-ui';\nimport {\n type EditorInputMode,\n InputModeExtensions,\n type UseTextEditorProps,\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n folding,\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 inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = ({\n classNames,\n id,\n inputMode = 'vscode',\n toolbar,\n env,\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 monospace: true,\n scrollPastEnd: true,\n search: true,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n\n // TODO(burdon): Factor out.\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : undefined }),\n keymap.of(lintKeymap),\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 return (\n <div\n ref={parentRef}\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={mx(classNames)}\n {...focusAttributes}\n />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAIA,OAAOA,UAASC,WAAAA,gBAAe;AAG/B,SAASC,mBAAmBC,gBAAgB;AAC5C,SAASC,mBAAmB;AAC5B,SAASC,sBAAsBC,UAAUC,wCAAwC;AACjF,SAASC,iBAAiB;;;;ACN1B,SAASC,UAAU;AACnB,OAAOC,SAASC,eAAe;AAG/B,SAASC,wBAAwB;AACjC,SAASC,mBAAyCC,sBAAsB;AACxE,SAEEC,cACAC,aACAC,oBACAC,cACAC,sBACK;AAYP,IAAMC,uBAAuB,CAAC,EAAEC,OAAOC,QAAQ,GAAGC,QAAAA,MAChDC,GAAGC,KAAK,CAACC,QACPA,IACEC,aAAa,MAAA;AACX,QAAMC,iBAAiBC,qBAAqBP,MAAAA;AAC5C,QAAMQ,SAASC,aAAaT,MAAAA;AAC5B,QAAMU,MAAMC,mBAAAA;AACZ,QAAMC,SAASC,aAAa;IAAEd;IAAOC;IAAQ,GAAGC;EAAQ,CAAA;AACxD,SAAO;IACLa,OAAO;SAAIR,eAAeQ;SAAUN,OAAOM;SAAUJ,IAAII;SAAUF,OAAOE;;IAC1EC,OAAO;SAAIT,eAAeS;SAAUP,OAAOO;SAAUL,IAAIK;SAAUH,OAAOG;;EAC5E;AACF,CAAA,CAAA,CAAA;AAUC,IAAMC,gBAAgB,CAAC,EAAEhB,QAAQiB,MAAMlB,OAAOmB,WAAU,MAAsB;;;AACnF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,aAAAA;AAC7B,UAAMpB,UAAUqB,cAAc;MAAEtB;IAAO,CAAA;AACvC,UAAMuB,iBAAiBC,QACrB,MAAM1B,qBAAqB;MAAEC;MAAOC;MAAQmB;MAAG,GAAGlB;IAAQ,CAAA,GAC1D;MAACF;MAAOC;MAAQC;MAASkB;KAAE;AAE7B,UAAMM,OAAOC,eAAeH,cAAAA;AAE5B,WACE,sBAAA,cAACI,mBAAAA;MAAkBC,WAAWX,SAAS,YAAY,eAAe;OAChE,sBAAA,cAACY,cAAAA;MAAc,GAAGJ;MAAMK,cAAcC,iBAAiB/B,MAAAA;OACrD,sBAAA,cAACgC,aAAAA;MAAYd;;;;;AAIrB;;;;AC/DA,SAASe,kBAAkB;AAC3B,SAASC,6BAA6B;AACtC,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AACrB,SAASC,6BAA6B;AACtC,SAASC,cAAc;AACvB,SAASC,YAAY;AAErB,SAASC,sBAAsB;AAC/B,SAAyBC,gBAAgBC,SAASC,SAASC,UAAUC,cAAc;AACnF,OAAOC,YAAW;AAElB,SAA+CC,uBAAuB;AACtE,SAEEC,qBAEAC,cACAC,uBACAC,uBACAC,SACAC,qBACK;AACP,SAASC,UAAU;AACnB,SAASC,qBAAqB;AAWvB,IAAMC,mBAAmB,CAAC,EAC/BC,YACAC,IACAC,YAAY,UACZC,SACAC,KACAC,cACAC,YACAC,UACAC,UAAS,MACa;;;AACtB,UAAM,EAAEC,UAAS,IAAKC,gBAAAA;AACtB,UAAM,EAAEC,WAAWC,gBAAe,IAAKC,cACrC,OAAO;MACLZ;MACAI;MACAG;MACAD;MACAD,YAAY;QACVA;QACAQ,sBAAsB;UACpBC,qBAAqB;UACrBC,eAAe;UACfC,aAAa;UACbC,cAAc;UACdC,WAAW;UACXC,eAAe;UACfC,QAAQ;QACV,CAAA;QACAC,sBAAsB;UAAEb;UAAWc,oBAAoB;QAAK,CAAA;QAC5DC,oBAAoBtB,SAAAA;QACpBuB,QAAAA;;QAEAC,KAAKC,KAAKC,OAAOC,GAAGC,cAAAA,CAAAA;;QAGpBC,WAAW;UAAEC,YAAY;QAAK,CAAA;;QAE9BC,aAAa;UAAEC,UAAU9B,MAAM;YAAC+B,eAAAA;cAAoBC;QAAU,CAAA;QAC9DR,OAAOC,GAAGQ,UAAAA;QACVjC,OAAO;UACLkC,QAAQT,GAAG;YAAEzB;YAAKmC,MAAM,QAAQtC,EAAAA;UAAQ,CAAA;UACxCuC,OAAAA;UACAC,SAAAA;UACAC,QAAQ;YAAEC,eAAeC,sBAAsBnC,SAAAA;UAAW,CAAA;;QAE5DoC,OAAOC,aAAAA;IACX,IACA;MAAC7C;MAAIK;MAAYG;MAAWP;MAAWM;MAAWD;KAAS;AAG7D,WACE,gBAAAwC,OAAA,cAACC,OAAAA;MACCC,KAAKtC;MACLuC,gBAAc/C,UAAU,YAAY;MACpCgD,WAAWC,GAAGpD,UAAAA;MACb,GAAGY;;;;;AAGV;AAEA,IAAMgC,wBAAwB,CAACnC,cAAAA;AAC7B,QAAM4C,QAAQ5C,cAAc,SAAS6C,wBAAwBC;AAE7D,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,WAAOT,MAAMU,MAAM;MAACD;KAAI,KAAK;EAC/B;AAEA,SAAO,CAACE,SAAAA;AACN,UAAMhB,MAAMiB,SAASC,cAAc,KAAA;AACnClB,QAAIG,YAAY;AAEhB,QAAIa,KAAKG,WAAWC,cAAc;AAChC,iBAAWC,QAAQL,KAAKG,UAAUC,cAAc;AAC9C,cAAME,OAAOtB,IAAIuB,YAAYN,SAASC,cAAc,MAAA,CAAA;AACpDI,aAAKnB,YAAYK,cAAca,KAAKX,IAAI;AACxCY,aAAKE,YAAYH,KAAKI;MACxB;IACF;AAEA,WAAO;MAAEC,KAAK1B;IAAI;EACpB;AACF;;;AF7GO,IAAM2B,kBAAkB,CAAC,EAAEC,MAAMC,QAAQC,WAAW;EAAEC,iBAAiB;AAAS,GAAGC,IAAG,MAAqB;;;AAChH,UAAMC,WAAWC,YAAAA;AACjB,UAAMC,QAAQC,SAASP,MAAAA;AACvB,UAAMQ,QAAQC,gBAAAA;AACdC,mBAAe;MAAEF;MAAOR;IAAO,CAAA;AAE/B,UAAMW,aAAaC,SACjB,MACEZ,OAAOa,OAAOC,SACV;MACEC,SAAS;QACPC,UAAU,CAACC,SAAAA;AACT,cAAIjB,OAAOa,OAAOC,QAAQI,YAAYD,MAAM;AAC1CjB,mBAAOmB,UAAU;UACnB;QACF;MACF,CAAA;MACAC,qBAAqB;QACnBC,IAAIrB,OAAOqB;QACXJ,MAAMK,kBAAkBtB,OAAOa,OAAOC,QAAQ;UAAC;SAAU;QACzDR;QACAF;MACF,CAAA;QAEF,CAAA,GACN;MAACA;MAAUE;MAAON;MAAQA,OAAOa,OAAOC;KAAO;AAGjD,WACE,gBAAAS,OAAA,cAACC,UAAUC,SAAO;MAACC,SAAAA;OACjB,gBAAAH,OAAA,cAACI,eAAAA;MAAcnB;MAAcT;MAAYC;QACzC,gBAAAuB,OAAA,cAACK,kBAAAA;MACCP,IAAIrB,OAAOqB;MACXlB;MACA0B,cAAc7B,OAAOa,QAAQC,QAAQI;MACrCP;MACAmB,YAAYC,iCAAiChC,IAAAA;MAC7CiC,WAAW/B,SAASC;MACpBwB,SAAAA;;;;;AAIR;AAEA,IAAA,0BAAe5B;",
6
- "names": ["React", "useMemo", "createDocAccessor", "getSpace", "useIdentity", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "StackItem", "Rx", "React", "useMemo", "fullyQualifiedId", "ElevationProvider", "useTranslation", "MenuProvider", "ToolbarMenu", "createGapSeparator", "rxFromSignal", "useMenuActions", "createToolbarActions", "state", "script", "options", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptToolbar", "role", "classNames", "t", "useTranslation", "SCRIPT_PLUGIN", "useDeployDeps", "toolbarCreator", "useMemo", "menu", "useMenuActions", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "javascript", "defaultHighlightStyle", "lintKeymap", "Prec", "oneDarkHighlightStyle", "keymap", "tags", "continueKeymap", "tsAutocomplete", "tsFacet", "tsHover", "tsLinter", "tsSync", "React", "useThemeContext", "InputModeExtensions", "autocomplete", "createBasicExtensions", "createThemeExtensions", "folding", "useTextEditor", "mx", "isNonNullable", "TypescriptEditor", "classNames", "id", "inputMode", "toolbar", "env", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "search", "createThemeExtensions", "syntaxHighlighting", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "undefined", "lintKeymap", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "React", "div", "ref", "data-toolbar", "className", "mx", "theme", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "role", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "listener", "onChange", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "React", "StackItem", "Content", "toolbar", "ScriptToolbar", "TypescriptEditor", "initialValue", "classNames", "stackItemContentEditorClassNames", "inputMode"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/execute`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'execute'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'execute',\n properties: {\n label: ['script test label', { ns: meta.id }],\n icon: 'ph--terminal--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/logs`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'logs',\n properties: {\n label: ['script logs label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,WAAW;AACpB,SAASC,kBAAkB;AAC3B,SAASC,2BAA2BC,4BAA4B;AAChE,SAASC,uBAAuB;AAIhC,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUO,IAAIC,WAAWC,YAAYT,MAAKU,IAAI,IAAIL,OAAOM,KAAKX,KAAAA,IAAQK,OAAOO,KAAI,CAAA,GACjGP,OAAOQ,IAAI,CAACb,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAWiB,KAAKC,yBAAAA;QAC9BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAItB,KAAKD;YAAG;;UAC3CwB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACDjB,OAAOkB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACA3B,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUO,IAAIC,WAAWC,YAAYT,MAAKU,IAAI,IAAIL,OAAOM,KAAKX,KAAAA,IAAQK,OAAOO,KAAI,CAAA,GACjGP,OAAOQ,IAAI,CAACb,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAQiB,KAAKC,yBAAAA;QAC3BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAItB,KAAKD;YAAG;;UAC3CwB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACDjB,OAAOkB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "Obj", "ScriptType", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "createExtension", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "Obj", "instanceOf", "ScriptType", "data", "some", "none", "map", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "properties", "label", "ns", "icon", "disposition", "getOrElse"]
7
- }