@dxos/plugin-script 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446

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 (236) hide show
  1. package/dist/lib/browser/DeploymentDialog-AEPYJKPO.mjs +12 -0
  2. package/dist/lib/browser/{ScriptContainer-6DYV7D65.mjs → ScriptContainer-R25PRK2D.mjs} +19 -31
  3. package/dist/lib/browser/ScriptContainer-R25PRK2D.mjs.map +7 -0
  4. package/dist/lib/browser/{app-graph-builder-BFBTQPSP.mjs → app-graph-builder-RRLY67QC.mjs} +10 -10
  5. package/dist/lib/browser/app-graph-builder-RRLY67QC.mjs.map +7 -0
  6. package/dist/lib/browser/{artifact-definition-PD4UAAQZ.mjs → artifact-definition-WXFYD2V5.mjs} +38 -44
  7. package/dist/lib/browser/artifact-definition-WXFYD2V5.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-BONEXAIK.mjs → chunk-2CGZFDCR.mjs} +10 -10
  9. package/dist/lib/browser/chunk-2CGZFDCR.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-A4VOGQ2P.mjs → chunk-4VD3K3PY.mjs} +2 -2
  11. package/dist/lib/browser/{chunk-YNOCAJYT.mjs → chunk-CSZXPLYY.mjs} +3 -3
  12. package/dist/lib/browser/chunk-CSZXPLYY.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-FFDJENAN.mjs → chunk-KLEOGVXY.mjs} +156 -87
  14. package/dist/lib/browser/chunk-KLEOGVXY.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-INL55MFV.mjs → chunk-MQZQB5VD.mjs} +10 -10
  16. package/dist/lib/browser/chunk-MQZQB5VD.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-R2CHVWJ2.mjs +41 -0
  18. package/dist/lib/browser/chunk-R2CHVWJ2.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-SUCBNCEQ.mjs +87 -0
  20. package/dist/lib/browser/chunk-SUCBNCEQ.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-KJMVDGRB.mjs → chunk-WSK3YQXI.mjs} +1 -2
  22. package/dist/lib/browser/{chunk-KJMVDGRB.mjs.map → chunk-WSK3YQXI.mjs.map} +2 -2
  23. package/dist/lib/browser/{compiler-O4FJK7RR.mjs → compiler-56LTBEQB.mjs} +3 -3
  24. package/dist/lib/browser/index.mjs +15 -16
  25. package/dist/lib/browser/index.mjs.map +3 -3
  26. package/dist/lib/browser/{intent-resolver-SXO6X6XQ.mjs → intent-resolver-WCVXKRBR.mjs} +14 -14
  27. package/dist/lib/browser/intent-resolver-WCVXKRBR.mjs.map +7 -0
  28. package/dist/lib/browser/meta.json +1 -1
  29. package/dist/lib/browser/{react-surface-TZGE7EGC.mjs → react-surface-WXZVPNGI.mjs} +12 -12
  30. package/dist/lib/browser/react-surface-WXZVPNGI.mjs.map +7 -0
  31. package/dist/lib/browser/{settings-EOKSUGB6.mjs → settings-Z7B37V2I.mjs} +5 -5
  32. package/dist/lib/browser/settings-Z7B37V2I.mjs.map +7 -0
  33. package/dist/lib/browser/types.mjs +2 -2
  34. package/dist/lib/node/{DeploymentDialog-43SI7XFL.cjs → DeploymentDialog-O4MU4OMF.cjs} +10 -10
  35. package/dist/lib/node/DeploymentDialog-O4MU4OMF.cjs.map +7 -0
  36. package/dist/lib/node/{ScriptContainer-H56OW5FC.cjs → ScriptContainer-5KY6ZOQD.cjs} +22 -32
  37. package/dist/lib/node/ScriptContainer-5KY6ZOQD.cjs.map +7 -0
  38. package/dist/lib/node/{app-graph-builder-IKOX7GHW.cjs → app-graph-builder-6I2BWD46.cjs} +17 -17
  39. package/dist/lib/node/app-graph-builder-6I2BWD46.cjs.map +7 -0
  40. package/dist/lib/node/{artifact-definition-C644EAYM.cjs → artifact-definition-6NVXEHJD.cjs} +47 -53
  41. package/dist/lib/node/artifact-definition-6NVXEHJD.cjs.map +7 -0
  42. package/dist/lib/node/{chunk-VHSIOCS5.cjs → chunk-65MIJR3Q.cjs} +17 -17
  43. package/dist/lib/node/chunk-65MIJR3Q.cjs.map +7 -0
  44. package/dist/lib/node/{chunk-7NNN3IUQ.cjs → chunk-F4DP7WON.cjs} +160 -93
  45. package/dist/lib/node/chunk-F4DP7WON.cjs.map +7 -0
  46. package/dist/lib/node/{chunk-KFJQVOGS.cjs → chunk-JICWAOWZ.cjs} +6 -6
  47. package/dist/lib/node/{chunk-HPBQHRM3.cjs → chunk-SLDJM45C.cjs} +18 -18
  48. package/dist/lib/node/chunk-SLDJM45C.cjs.map +7 -0
  49. package/dist/lib/node/{chunk-K7PPLRVQ.cjs → chunk-VYBEBLDO.cjs} +14 -14
  50. package/dist/lib/node/chunk-VYBEBLDO.cjs.map +7 -0
  51. package/dist/lib/node/chunk-X7MHLHHS.cjs +91 -0
  52. package/dist/lib/node/chunk-X7MHLHHS.cjs.map +7 -0
  53. package/dist/lib/node/{chunk-SXJGHLK6.cjs → chunk-XFZPWFEG.cjs} +19 -18
  54. package/dist/lib/node/chunk-XFZPWFEG.cjs.map +7 -0
  55. package/dist/lib/node/{chunk-NO5Y74F3.cjs → chunk-YJQZHKKA.cjs} +4 -5
  56. package/dist/lib/node/{chunk-NO5Y74F3.cjs.map → chunk-YJQZHKKA.cjs.map} +2 -2
  57. package/dist/lib/node/{compiler-FBC6ELQN.cjs → compiler-W2RU3M7U.cjs} +7 -7
  58. package/dist/lib/node/index.cjs +44 -45
  59. package/dist/lib/node/index.cjs.map +3 -3
  60. package/dist/lib/node/{intent-resolver-PDSMZM2T.cjs → intent-resolver-J4NBDNFH.cjs} +21 -21
  61. package/dist/lib/node/intent-resolver-J4NBDNFH.cjs.map +7 -0
  62. package/dist/lib/node/meta.json +1 -1
  63. package/dist/lib/node/{react-surface-BHHJQZ7P.cjs → react-surface-27KTUBIZ.cjs} +38 -38
  64. package/dist/lib/node/react-surface-27KTUBIZ.cjs.map +7 -0
  65. package/dist/lib/node/{settings-425QHVGC.cjs → settings-EI6VPNKN.cjs} +9 -9
  66. package/dist/lib/node/settings-EI6VPNKN.cjs.map +7 -0
  67. package/dist/lib/node/types.cjs +5 -5
  68. package/dist/lib/node/types.cjs.map +1 -1
  69. package/dist/lib/node-esm/{DeploymentDialog-2RRUJEBC.mjs → DeploymentDialog-SSQSWLHX.mjs} +5 -5
  70. package/dist/lib/node-esm/{ScriptContainer-762FHDZ4.mjs → ScriptContainer-W2F4FGDV.mjs} +19 -31
  71. package/dist/lib/node-esm/ScriptContainer-W2F4FGDV.mjs.map +7 -0
  72. package/dist/lib/node-esm/{app-graph-builder-KZGKGSP6.mjs → app-graph-builder-H5XLRVX3.mjs} +10 -10
  73. package/dist/lib/node-esm/app-graph-builder-H5XLRVX3.mjs.map +7 -0
  74. package/dist/lib/node-esm/{artifact-definition-J6UM6BQF.mjs → artifact-definition-KQ64AYBP.mjs} +38 -44
  75. package/dist/lib/node-esm/artifact-definition-KQ64AYBP.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-A3TXZHGD.mjs → chunk-4MTPYMV2.mjs} +10 -10
  77. package/dist/lib/node-esm/chunk-4MTPYMV2.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-HKJUN636.mjs → chunk-EB5DSAD4.mjs} +2 -2
  79. package/dist/lib/node-esm/{chunk-F47OE6ZM.mjs → chunk-F4HA5C34.mjs} +10 -10
  80. package/dist/lib/node-esm/chunk-F4HA5C34.mjs.map +7 -0
  81. package/dist/lib/node-esm/{chunk-H7FRB3M7.mjs → chunk-FDEAVT67.mjs} +1 -2
  82. package/dist/lib/node-esm/{chunk-H7FRB3M7.mjs.map → chunk-FDEAVT67.mjs.map} +2 -2
  83. package/dist/lib/node-esm/{chunk-V733VFCJ.mjs → chunk-MU3JKVL2.mjs} +3 -3
  84. package/dist/lib/node-esm/chunk-MU3JKVL2.mjs.map +7 -0
  85. package/dist/lib/node-esm/{chunk-NYA7KDN6.mjs → chunk-PBGVTGL2.mjs} +156 -87
  86. package/dist/lib/node-esm/chunk-PBGVTGL2.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-QDYGTY4L.mjs +89 -0
  88. package/dist/lib/node-esm/chunk-QDYGTY4L.mjs.map +7 -0
  89. package/dist/lib/node-esm/{chunk-VMQPOPKV.mjs → chunk-RW2APVMV.mjs} +14 -13
  90. package/dist/lib/node-esm/chunk-RW2APVMV.mjs.map +7 -0
  91. package/dist/lib/node-esm/{compiler-3NG4T5LH.mjs → compiler-VT5C2Z3T.mjs} +3 -3
  92. package/dist/lib/node-esm/index.mjs +15 -16
  93. package/dist/lib/node-esm/index.mjs.map +3 -3
  94. package/dist/lib/node-esm/{intent-resolver-WSAVLQY5.mjs → intent-resolver-PDZ2A26X.mjs} +14 -14
  95. package/dist/lib/node-esm/intent-resolver-PDZ2A26X.mjs.map +7 -0
  96. package/dist/lib/node-esm/meta.json +1 -1
  97. package/dist/lib/node-esm/{react-surface-W7BM4PDK.mjs → react-surface-UCUVDVSH.mjs} +12 -12
  98. package/dist/lib/node-esm/react-surface-UCUVDVSH.mjs.map +7 -0
  99. package/dist/lib/node-esm/{settings-BWSKKIVQ.mjs → settings-HU5UEFRF.mjs} +5 -5
  100. package/dist/lib/node-esm/settings-HU5UEFRF.mjs.map +7 -0
  101. package/dist/lib/node-esm/types.mjs +2 -2
  102. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/app-graph-builder.d.ts +179 -2
  104. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/index.d.ts +177 -1
  107. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  108. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
  109. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  110. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  111. package/dist/types/src/components/ScriptContainer.d.ts +1 -1
  112. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  113. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +1 -1
  114. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  115. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +1 -1
  116. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  117. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  118. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  119. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  120. package/dist/types/src/components/index.d.ts +1 -1
  121. package/dist/types/src/hooks/deploy.d.ts +19 -22
  122. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  123. package/dist/types/src/hooks/format.d.ts +5 -2
  124. package/dist/types/src/hooks/format.d.ts.map +1 -1
  125. package/dist/types/src/hooks/index.d.ts +1 -0
  126. package/dist/types/src/hooks/index.d.ts.map +1 -1
  127. package/dist/types/src/hooks/template.d.ts +5 -2
  128. package/dist/types/src/hooks/template.d.ts.map +1 -1
  129. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  130. package/dist/types/src/hooks/useToolbarAction.d.ts +13 -0
  131. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -0
  132. package/dist/types/src/hooks/useToolbarState.d.ts +1 -1
  133. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  134. package/dist/types/src/meta.d.ts.map +1 -1
  135. package/dist/types/src/templates/chat.d.ts +1 -1
  136. package/dist/types/src/templates/chat.d.ts.map +1 -1
  137. package/dist/types/src/templates/chess.d.ts.map +1 -1
  138. package/dist/types/src/templates/data-generator.d.ts +7 -0
  139. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  140. package/dist/types/src/templates/discord.d.ts.map +1 -1
  141. package/dist/types/src/templates/echo.d.ts +1 -1
  142. package/dist/types/src/templates/echo.d.ts.map +1 -1
  143. package/dist/types/src/templates/email.d.ts +1 -1
  144. package/dist/types/src/templates/email.d.ts.map +1 -1
  145. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  146. package/dist/types/src/templates/forex.d.ts.map +1 -1
  147. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  148. package/dist/types/src/translations.d.ts +110 -2
  149. package/dist/types/src/translations.d.ts.map +1 -1
  150. package/dist/types/src/types.d.ts +26 -27
  151. package/dist/types/src/types.d.ts.map +1 -1
  152. package/dist/types/src/util/deploy.d.ts.map +1 -1
  153. package/dist/types/src/util/functions.d.ts.map +1 -1
  154. package/dist/types/tsconfig.tsbuildinfo +1 -1
  155. package/package.json +50 -56
  156. package/src/ScriptPlugin.tsx +2 -4
  157. package/src/capabilities/app-graph-builder.ts +29 -46
  158. package/src/capabilities/artifact-definition.ts +32 -35
  159. package/src/capabilities/intent-resolver.ts +7 -7
  160. package/src/capabilities/react-surface.tsx +5 -5
  161. package/src/capabilities/settings.ts +2 -2
  162. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +1 -1
  163. package/src/components/DeploymentDialog/DeploymentDialog.tsx +2 -2
  164. package/src/components/ScriptContainer.tsx +2 -2
  165. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +1 -1
  166. package/src/components/ScriptToolbar/ScriptToolbar.tsx +10 -16
  167. package/src/components/Settings/ScriptObjectSettings.tsx +5 -5
  168. package/src/hooks/deploy.ts +55 -61
  169. package/src/hooks/format.ts +26 -26
  170. package/src/hooks/index.ts +1 -0
  171. package/src/hooks/template.ts +32 -24
  172. package/src/hooks/useToolbarAction.ts +50 -0
  173. package/src/hooks/useToolbarState.ts +2 -2
  174. package/src/meta.ts +0 -1
  175. package/src/templates/chat.ts +9 -3
  176. package/src/templates/chess.ts +6 -1
  177. package/src/templates/data-generator.ts +45 -20
  178. package/src/templates/discord.ts +10 -10
  179. package/src/templates/echo.ts +12 -1
  180. package/src/templates/email.ts +14 -8
  181. package/src/templates/forex-effect.ts +6 -2
  182. package/src/templates/forex.ts +5 -1
  183. package/src/templates/gmail.ts +26 -33
  184. package/src/translations.ts +1 -1
  185. package/src/types.ts +14 -13
  186. package/src/util/deploy.ts +10 -6
  187. package/dist/lib/browser/DeploymentDialog-W7PY33VN.mjs +0 -12
  188. package/dist/lib/browser/ScriptContainer-6DYV7D65.mjs.map +0 -7
  189. package/dist/lib/browser/app-graph-builder-BFBTQPSP.mjs.map +0 -7
  190. package/dist/lib/browser/artifact-definition-PD4UAAQZ.mjs.map +0 -7
  191. package/dist/lib/browser/chunk-6MLJJI73.mjs +0 -40
  192. package/dist/lib/browser/chunk-6MLJJI73.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-BONEXAIK.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-FFDJENAN.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-INL55MFV.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-RTVU4RZW.mjs +0 -87
  197. package/dist/lib/browser/chunk-RTVU4RZW.mjs.map +0 -7
  198. package/dist/lib/browser/chunk-YNOCAJYT.mjs.map +0 -7
  199. package/dist/lib/browser/intent-resolver-SXO6X6XQ.mjs.map +0 -7
  200. package/dist/lib/browser/react-surface-TZGE7EGC.mjs.map +0 -7
  201. package/dist/lib/browser/settings-EOKSUGB6.mjs.map +0 -7
  202. package/dist/lib/node/DeploymentDialog-43SI7XFL.cjs.map +0 -7
  203. package/dist/lib/node/ScriptContainer-H56OW5FC.cjs.map +0 -7
  204. package/dist/lib/node/app-graph-builder-IKOX7GHW.cjs.map +0 -7
  205. package/dist/lib/node/artifact-definition-C644EAYM.cjs.map +0 -7
  206. package/dist/lib/node/chunk-7NNN3IUQ.cjs.map +0 -7
  207. package/dist/lib/node/chunk-HPBQHRM3.cjs.map +0 -7
  208. package/dist/lib/node/chunk-K7PPLRVQ.cjs.map +0 -7
  209. package/dist/lib/node/chunk-SXJGHLK6.cjs.map +0 -7
  210. package/dist/lib/node/chunk-VHSIOCS5.cjs.map +0 -7
  211. package/dist/lib/node/chunk-VNSZBEJW.cjs +0 -91
  212. package/dist/lib/node/chunk-VNSZBEJW.cjs.map +0 -7
  213. package/dist/lib/node/intent-resolver-PDSMZM2T.cjs.map +0 -7
  214. package/dist/lib/node/react-surface-BHHJQZ7P.cjs.map +0 -7
  215. package/dist/lib/node/settings-425QHVGC.cjs.map +0 -7
  216. package/dist/lib/node-esm/ScriptContainer-762FHDZ4.mjs.map +0 -7
  217. package/dist/lib/node-esm/app-graph-builder-KZGKGSP6.mjs.map +0 -7
  218. package/dist/lib/node-esm/artifact-definition-J6UM6BQF.mjs.map +0 -7
  219. package/dist/lib/node-esm/chunk-A3TXZHGD.mjs.map +0 -7
  220. package/dist/lib/node-esm/chunk-F47OE6ZM.mjs.map +0 -7
  221. package/dist/lib/node-esm/chunk-NYA7KDN6.mjs.map +0 -7
  222. package/dist/lib/node-esm/chunk-V733VFCJ.mjs.map +0 -7
  223. package/dist/lib/node-esm/chunk-VMQPOPKV.mjs.map +0 -7
  224. package/dist/lib/node-esm/chunk-YCTECQLY.mjs +0 -89
  225. package/dist/lib/node-esm/chunk-YCTECQLY.mjs.map +0 -7
  226. package/dist/lib/node-esm/intent-resolver-WSAVLQY5.mjs.map +0 -7
  227. package/dist/lib/node-esm/react-surface-W7BM4PDK.mjs.map +0 -7
  228. package/dist/lib/node-esm/settings-BWSKKIVQ.mjs.map +0 -7
  229. /package/dist/lib/browser/{DeploymentDialog-W7PY33VN.mjs.map → DeploymentDialog-AEPYJKPO.mjs.map} +0 -0
  230. /package/dist/lib/browser/{chunk-A4VOGQ2P.mjs.map → chunk-4VD3K3PY.mjs.map} +0 -0
  231. /package/dist/lib/browser/{compiler-O4FJK7RR.mjs.map → compiler-56LTBEQB.mjs.map} +0 -0
  232. /package/dist/lib/node/{chunk-KFJQVOGS.cjs.map → chunk-JICWAOWZ.cjs.map} +0 -0
  233. /package/dist/lib/node/{compiler-FBC6ELQN.cjs.map → compiler-W2RU3M7U.cjs.map} +0 -0
  234. /package/dist/lib/node-esm/{DeploymentDialog-2RRUJEBC.mjs.map → DeploymentDialog-SSQSWLHX.mjs.map} +0 -0
  235. /package/dist/lib/node-esm/{chunk-HKJUN636.mjs.map → chunk-EB5DSAD4.mjs.map} +0 -0
  236. /package/dist/lib/node-esm/{compiler-3NG4T5LH.mjs.map → compiler-VT5C2Z3T.mjs.map} +0 -0
@@ -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 { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';\nimport { type AccessTokenType } 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\ntype DeploymentDialogProps = {\n accessToken: AccessTokenType;\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 { DeploymentDialog, DEPLOYMENT_DIALOG } from './DeploymentDialog';\n\nexport { DEPLOYMENT_DIALOG };\n\nexport default DeploymentDialog;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useEffect", "useMemo", "createIntent", "LayoutAction", "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,27 +1,27 @@
1
1
  import {
2
2
  templates
3
- } from "./chunk-RTVU4RZW.mjs";
3
+ } from "./chunk-SUCBNCEQ.mjs";
4
4
  import {
5
5
  deployScript,
6
6
  getFunctionUrl,
7
7
  isScriptDeployed
8
- } from "./chunk-INL55MFV.mjs";
8
+ } from "./chunk-MQZQB5VD.mjs";
9
9
  import {
10
10
  SCRIPT_PLUGIN
11
- } from "./chunk-KJMVDGRB.mjs";
11
+ } from "./chunk-WSK3YQXI.mjs";
12
12
 
13
13
  // packages/plugins/plugin-script/src/hooks/deploy.ts
14
- import { useEffect, useMemo } from "react";
14
+ import { useCallback, useEffect, useMemo } from "react";
15
15
  import { FunctionType, getUserFunctionUrlInMetadata } from "@dxos/functions";
16
16
  import { log } from "@dxos/log";
17
17
  import { useClient } from "@dxos/react-client";
18
- import { getMeta, getSpace, Query, Ref, useQuery } from "@dxos/react-client/echo";
18
+ import { Filter, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
19
+ import { useTranslation } from "@dxos/react-ui";
19
20
  import { createMenuAction } from "@dxos/react-ui-menu";
20
21
  import { errorMessageColors } from "@dxos/react-ui-theme";
21
22
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-script/src/hooks/deploy.ts";
22
- var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }) => {
23
- const errorItem = createMenuAction("error", () => {
24
- }, {
23
+ var createDeploy = (state) => {
24
+ const errorItem = createMenuAction("error", {
25
25
  label: state.error ?? [
26
26
  "no error label",
27
27
  {
@@ -32,30 +32,7 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }
32
32
  hidden: !state.error,
33
33
  classNames: state.error && errorMessageColors
34
34
  });
35
- const deployAction = createMenuAction("deploy", async () => {
36
- if (!script.source || !space) {
37
- return;
38
- }
39
- state.error = void 0;
40
- state.deploying = true;
41
- const result = await deployScript({
42
- script,
43
- client,
44
- space,
45
- fn,
46
- existingFunctionUrl
47
- });
48
- if (!result.success) {
49
- log.catch(result.error, void 0, {
50
- F: __dxlog_file,
51
- L: 59,
52
- S: void 0,
53
- C: (f, a) => f(...a)
54
- });
55
- state.error = t("upload failed label");
56
- }
57
- state.deploying = false;
58
- }, {
35
+ const deployAction = createMenuAction("deploy", {
59
36
  type: "deploy",
60
37
  label: [
61
38
  state.deploying ? "pending label" : "deploy label",
@@ -67,12 +44,7 @@ var createDeploy = ({ state, script, space, fn, client, existingFunctionUrl, t }
67
44
  disabled: state.deploying,
68
45
  classNames: state.deploying ? "[&_svg]:animate-spin" : ""
69
46
  });
70
- const copyAction = createMenuAction("copy", async () => {
71
- if (!state.functionUrl) {
72
- return;
73
- }
74
- await navigator.clipboard.writeText(state.functionUrl);
75
- }, {
47
+ const copyAction = createMenuAction("copy", {
76
48
  type: "copy",
77
49
  label: [
78
50
  "copy link label",
@@ -139,8 +111,8 @@ var useDeployState = ({ state, script }) => {
139
111
  };
140
112
  var useDeployDeps = ({ script }) => {
141
113
  const space = getSpace(script);
142
- const [fn] = useQuery(space, Query.type(FunctionType, {
143
- source: Ref.make(script)
114
+ const [fn] = useQuery(space, Filter.schema(FunctionType, {
115
+ source: script
144
116
  }));
145
117
  const client = useClient();
146
118
  const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [
@@ -153,45 +125,69 @@ var useDeployDeps = ({ script }) => {
153
125
  existingFunctionUrl
154
126
  };
155
127
  };
128
+ var useDeployHandler = ({ state, script }) => {
129
+ const { space, fn, client, existingFunctionUrl } = useDeployDeps({
130
+ script
131
+ });
132
+ const { t } = useTranslation(SCRIPT_PLUGIN);
133
+ return useCallback(async () => {
134
+ if (!script.source || !space) {
135
+ return;
136
+ }
137
+ state.error = void 0;
138
+ state.deploying = true;
139
+ const result = await deployScript({
140
+ script,
141
+ client,
142
+ space,
143
+ fn,
144
+ existingFunctionUrl
145
+ });
146
+ if (!result.success) {
147
+ log.catch(result.error, void 0, {
148
+ F: __dxlog_file,
149
+ L: 105,
150
+ S: void 0,
151
+ C: (f, a) => f(...a)
152
+ });
153
+ state.error = t("upload failed label");
154
+ }
155
+ state.deploying = false;
156
+ }, [
157
+ fn,
158
+ client,
159
+ t,
160
+ existingFunctionUrl,
161
+ script,
162
+ space
163
+ ]);
164
+ };
165
+ var useCopyHandler = ({ state }) => useCallback(async () => {
166
+ if (!state.functionUrl) {
167
+ return;
168
+ }
169
+ await navigator.clipboard.writeText(state.functionUrl);
170
+ }, [
171
+ state.functionUrl
172
+ ]);
156
173
 
157
174
  // packages/plugins/plugin-script/src/hooks/useToolbarState.ts
158
175
  import { useMemo as useMemo2 } from "react";
159
- import { live } from "@dxos/live-object";
176
+ import { create } from "@dxos/live-object";
160
177
  var useToolbarState = (initialState = {}) => {
161
- return useMemo2(() => live(initialState), []);
178
+ return useMemo2(() => create(initialState), []);
162
179
  };
163
180
 
164
181
  // packages/plugins/plugin-script/src/hooks/format.ts
165
182
  import { format } from "prettier";
166
183
  import prettierPluginEstree from "prettier/plugins/estree";
167
184
  import prettierPluginTypescript from "prettier/plugins/typescript";
185
+ import { useCallback as useCallback2 } from "react";
168
186
  import { log as log2 } from "@dxos/log";
169
187
  import { createMenuAction as createMenuAction2 } from "@dxos/react-ui-menu";
170
188
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-script/src/hooks/format.ts";
171
- var createFormat = (script) => {
172
- const formatAction = createMenuAction2("format", async () => {
173
- if (!script.source) {
174
- return;
175
- }
176
- try {
177
- script.source.target.content = await format(script.source.target.content, {
178
- parser: "typescript",
179
- plugins: [
180
- prettierPluginEstree,
181
- prettierPluginTypescript
182
- ],
183
- semi: true,
184
- singleQuote: true
185
- });
186
- } catch (err) {
187
- log2.catch(err, void 0, {
188
- F: __dxlog_file2,
189
- L: 34,
190
- S: void 0,
191
- C: (f, a) => f(...a)
192
- });
193
- }
194
- }, {
189
+ var createFormat = () => {
190
+ const formatAction = createMenuAction2("format", {
195
191
  label: [
196
192
  "format label",
197
193
  {
@@ -212,9 +208,35 @@ var createFormat = (script) => {
212
208
  ]
213
209
  };
214
210
  };
211
+ var useFormatHandler = ({ script }) => useCallback2(async () => {
212
+ if (!script.source) {
213
+ return;
214
+ }
215
+ try {
216
+ script.source.target.content = await format(script.source.target.content, {
217
+ parser: "typescript",
218
+ plugins: [
219
+ prettierPluginEstree,
220
+ prettierPluginTypescript
221
+ ],
222
+ semi: true,
223
+ singleQuote: true
224
+ });
225
+ } catch (err) {
226
+ log2.catch(err, void 0, {
227
+ F: __dxlog_file2,
228
+ L: 45,
229
+ S: void 0,
230
+ C: (f, a) => f(...a)
231
+ });
232
+ }
233
+ }, [
234
+ script.source
235
+ ]);
215
236
 
216
237
  // packages/plugins/plugin-script/src/hooks/template.ts
217
- import { FUNCTIONS_PRESET_META_KEY } from "@dxos/functions";
238
+ import { useCallback as useCallback3 } from "react";
239
+ import { FUNCTIONS_PRESET_META_KEY } from "@dxos/functions/types";
218
240
  import { getMeta as getMeta2 } from "@dxos/live-object";
219
241
  import { createMenuItemGroup, createMenuAction as createMenuAction3 } from "@dxos/react-ui-menu";
220
242
  var createTemplateSelectGroup = () => {
@@ -228,32 +250,18 @@ var createTemplateSelectGroup = () => {
228
250
  variant: "dropdownMenu"
229
251
  });
230
252
  };
231
- var createTemplateSelectActions = (script) => {
253
+ var createTemplateSelectActions = () => {
232
254
  return templates.map((template) => {
233
- return createMenuAction3(`template--${template.id}`, () => {
234
- script.name = template.name;
235
- script.source.target.content = template.source;
236
- const metaKeys = getMeta2(script).keys;
237
- const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
238
- if (oldPresetIndex >= 0) {
239
- metaKeys.splice(oldPresetIndex, 1);
240
- }
241
- if (template.presetId) {
242
- metaKeys.push({
243
- source: FUNCTIONS_PRESET_META_KEY,
244
- id: template.presetId
245
- });
246
- }
247
- }, {
255
+ return createMenuAction3(`template--${template.id}`, {
248
256
  label: template.name,
249
257
  value: template.id,
250
258
  type: "template"
251
259
  });
252
260
  });
253
261
  };
254
- var createTemplateSelect = (script) => {
262
+ var createTemplateSelect = () => {
255
263
  const templateSelectGroup = createTemplateSelectGroup();
256
- const templateSelectActions = createTemplateSelectActions(script);
264
+ const templateSelectActions = createTemplateSelectActions();
257
265
  return {
258
266
  nodes: [
259
267
  templateSelectGroup,
@@ -271,13 +279,74 @@ var createTemplateSelect = (script) => {
271
279
  ]
272
280
  };
273
281
  };
282
+ var useTemplateSelectHandler = ({ script }) => {
283
+ return useCallback3((templateId) => {
284
+ const template = templates.find((template2) => template2.id === templateId);
285
+ if (template) {
286
+ script.name = template.name;
287
+ script.source.target.content = template.source;
288
+ const metaKeys = getMeta2(script).keys;
289
+ const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
290
+ if (oldPresetIndex >= 0) {
291
+ metaKeys.splice(oldPresetIndex, 1);
292
+ }
293
+ if (template.presetId) {
294
+ metaKeys.push({
295
+ source: FUNCTIONS_PRESET_META_KEY,
296
+ id: template.presetId
297
+ });
298
+ }
299
+ }
300
+ }, [
301
+ script
302
+ ]);
303
+ };
304
+
305
+ // packages/plugins/plugin-script/src/hooks/useToolbarAction.ts
306
+ import { useCallback as useCallback4 } from "react";
307
+ import { log as log3 } from "@dxos/log";
308
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-script/src/hooks/useToolbarAction.ts";
309
+ var useToolbarAction = (props) => {
310
+ const handleTemplateSelect = useTemplateSelectHandler(props);
311
+ const handleFormat = useFormatHandler(props);
312
+ const handleDeploy = useDeployHandler(props);
313
+ const handleCopy = useCopyHandler(props);
314
+ return useCallback4((action) => {
315
+ switch (action.properties.type) {
316
+ case "template":
317
+ handleTemplateSelect(action.properties.value);
318
+ break;
319
+ case "format":
320
+ void handleFormat();
321
+ break;
322
+ case "deploy":
323
+ void handleDeploy();
324
+ break;
325
+ case "copy":
326
+ void handleCopy();
327
+ break;
328
+ default:
329
+ log3.error("Unknown action type", action, {
330
+ F: __dxlog_file3,
331
+ L: 45,
332
+ S: void 0,
333
+ C: (f, a) => f(...a)
334
+ });
335
+ }
336
+ }, [
337
+ handleTemplateSelect,
338
+ handleFormat,
339
+ handleDeploy,
340
+ handleCopy
341
+ ]);
342
+ };
274
343
 
275
344
  export {
276
345
  createDeploy,
277
346
  useDeployState,
278
- useDeployDeps,
279
347
  createFormat,
280
348
  createTemplateSelect,
349
+ useToolbarAction,
281
350
  useToolbarState
282
351
  };
283
- //# sourceMappingURL=chunk-FFDJENAN.mjs.map
352
+ //# sourceMappingURL=chunk-KLEOGVXY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/deploy.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts", "../../../src/hooks/useToolbarAction.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport { FunctionType, type ScriptType, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\nimport { errorMessageColors } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { deployScript, getFunctionUrl, isScriptDeployed } from '../util';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport const createDeploy = (state: Partial<DeployState>) => {\n const errorItem = createMenuAction('error', {\n label: state.error ?? ['no error label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n classNames: state.error && errorMessageColors,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>('deploy', {\n type: 'deploy',\n label: [state.deploying ? 'pending label' : 'deploy label', { ns: SCRIPT_PLUGIN }],\n icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: state.deploying,\n classNames: state.deploying ? '[&_svg]:animate-spin' : '',\n });\n\n const copyAction = createMenuAction<DeployActionProperties>('copy', {\n type: 'copy',\n label: ['copy link label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n });\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, fn, existingFunctionUrl } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n state.functionUrl = getFunctionUrl({\n script,\n fn,\n edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',\n });\n }, [existingFunctionUrl, space, fn, script, client.config.values.runtime?.services?.edge?.url]);\n\n useEffect(() => {\n state.deployed = isScriptDeployed({ script, fn });\n }, [script.changed, existingFunctionUrl, fn, script]);\n};\n\nexport const useDeployDeps = ({ script }: { script: ScriptType }) => {\n const space = getSpace(script);\n const [fn] = useQuery(space, Filter.schema(FunctionType, { source: script }));\n const client = useClient();\n const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [fn]);\n return { space, fn, client, existingFunctionUrl };\n};\n\n/**\n * Manage EDGE function deployment.\n */\nexport const useDeployHandler = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, fn, client, existingFunctionUrl } = useDeployDeps({ script });\n const { t } = useTranslation(SCRIPT_PLUGIN);\n\n return useCallback(async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n const result = await deployScript({ script, client, space, fn, existingFunctionUrl });\n\n if (!result.success) {\n log.catch(result.error);\n state.error = t('upload failed label');\n }\n\n state.deploying = false;\n }, [fn, client, t, existingFunctionUrl, script, space]);\n};\n\nexport const useCopyHandler = ({ state }: { state: Partial<DeployState> }) =>\n useCallback(async () => {\n if (!state.functionUrl) {\n return;\n }\n await navigator.clipboard.writeText(state.functionUrl);\n }, [state.functionUrl]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { create } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\n\nexport type ScriptToolbarState = Partial<DeployState>;\n\n// TODO(burdon): Replace with context provider?\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => create<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions/types';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = () => {\n const formatAction = createMenuAction('format', {\n label: ['format label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n });\n\n return {\n nodes: [formatAction],\n edges: [{ source: 'root', target: 'format' }],\n };\n};\n\nexport const useFormatHandler = ({ script }: { script: ScriptType }) =>\n useCallback(async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.target!.content = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n }, [script.source]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions/types';\nimport { getMeta } from '@dxos/live-object';\nimport { createMenuItemGroup, createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectGroup = () => {\n return createMenuItemGroup('template-select', {\n label: ['template select group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n });\n};\n\nconst createTemplateSelectActions = () => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(`template--${template.id}`, {\n label: template.name,\n value: template.id,\n type: 'template',\n });\n });\n};\n\nexport const createTemplateSelect = () => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions();\n return {\n nodes: [templateSelectGroup, ...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n\nexport const useTemplateSelectHandler = ({ script }: { script: ScriptType }) => {\n return useCallback(\n (templateId: string) => {\n const template = templates.find((template) => template.id === templateId);\n if (template) {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = getMeta(script).keys;\n const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n metaKeys.splice(oldPresetIndex, 1);\n }\n if (template.presetId) {\n metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n }\n },\n [script],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions/types';\nimport { log } from '@dxos/log';\nimport { type MenuAction, type MenuActionHandler } from '@dxos/react-ui-menu';\n\nimport { type DeployActionProperties, useDeployHandler, useCopyHandler } from './deploy';\nimport { type FormatActionProperties, useFormatHandler } from './format';\nimport { type TemplateActionProperties, useTemplateSelectHandler } from './template';\nimport { type ScriptToolbarState } from './useToolbarState';\n\nexport type ScriptToolbarActionProperties = TemplateActionProperties | FormatActionProperties | DeployActionProperties;\n\nexport type ScriptToolbarAction = MenuAction<ScriptToolbarActionProperties>;\n\nexport const useToolbarAction = (props: {\n state: ScriptToolbarState;\n script: ScriptType;\n}): MenuActionHandler<ScriptToolbarAction> => {\n const handleTemplateSelect = useTemplateSelectHandler(props);\n const handleFormat = useFormatHandler(props);\n const handleDeploy = useDeployHandler(props);\n const handleCopy = useCopyHandler(props);\n\n return useCallback<MenuActionHandler<ScriptToolbarAction>>(\n (action: ScriptToolbarAction) => {\n switch (action.properties.type) {\n case 'template':\n handleTemplateSelect(action.properties.value);\n break;\n case 'format':\n void handleFormat();\n break;\n case 'deploy':\n void handleDeploy();\n break;\n case 'copy':\n void handleCopy();\n break;\n default:\n log.error('Unknown action type', action);\n }\n },\n [handleTemplateSelect, handleFormat, handleDeploy, handleCopy],\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useCallback", "useEffect", "useMemo", "FunctionType", "getUserFunctionUrlInMetadata", "log", "useClient", "Filter", "getMeta", "getSpace", "useQuery", "useTranslation", "createMenuAction", "errorMessageColors", "createDeploy", "state", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "classNames", "errorMessageColors", "deployAction", "type", "deploying", "disabled", "copyAction", "functionUrl", "nodes", "edges", "source", "target", "useDeployState", "script", "space", "client", "fn", "existingFunctionUrl", "useDeployDeps", "useEffect", "getFunctionUrl", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "deployed", "isScriptDeployed", "changed", "getSpace", "useQuery", "Filter", "schema", "FunctionType", "useClient", "useMemo", "getUserFunctionUrlInMetadata", "getMeta", "useDeployHandler", "t", "useTranslation", "useCallback", "undefined", "result", "deployScript", "success", "log", "catch", "useCopyHandler", "navigator", "clipboard", "writeText", "useMemo", "create", "useToolbarState", "initialState", "useMemo", "create", "format", "prettierPluginEstree", "prettierPluginTypescript", "useCallback", "log", "createMenuAction", "createFormat", "formatAction", "createMenuAction", "label", "ns", "SCRIPT_PLUGIN", "icon", "nodes", "edges", "source", "target", "useFormatHandler", "script", "useCallback", "content", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "useCallback", "FUNCTIONS_PRESET_META_KEY", "getMeta", "createMenuItemGroup", "createMenuAction", "createTemplateSelectGroup", "createMenuItemGroup", "label", "ns", "SCRIPT_PLUGIN", "variant", "createTemplateSelectActions", "templates", "map", "template", "createMenuAction", "id", "name", "value", "type", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "nodes", "edges", "source", "target", "action", "useTemplateSelectHandler", "script", "useCallback", "templateId", "find", "content", "metaKeys", "getMeta", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "useCallback", "log", "useToolbarAction", "props", "handleTemplateSelect", "useTemplateSelectHandler", "handleFormat", "useFormatHandler", "handleDeploy", "useDeployHandler", "handleCopy", "useCopyHandler", "useCallback", "action", "properties", "type", "value", "log", "error"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ScriptAction
3
- } from "./chunk-6MLJJI73.mjs";
3
+ } from "./chunk-R2CHVWJ2.mjs";
4
4
 
5
5
  // packages/plugins/plugin-script/src/util/functions.ts
6
6
  import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
@@ -59,11 +59,10 @@ var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
59
59
  };
60
60
 
61
61
  // packages/plugins/plugin-script/src/util/deploy.ts
62
- import { FunctionType, getUserFunctionUrlInMetadata as getUserFunctionUrlInMetadata2, makeFunctionUrl, setUserFunctionUrlInMetadata } from "@dxos/functions";
62
+ import { FunctionType, getUserFunctionUrlInMetadata as getUserFunctionUrlInMetadata2, incrementSemverPatch, setUserFunctionUrlInMetadata, uploadWorkerFunction } from "@dxos/functions";
63
63
  import { Bundler } from "@dxos/functions/bundler";
64
- import { incrementSemverPatch, uploadWorkerFunction } from "@dxos/functions/edge";
65
64
  import { log as log2 } from "@dxos/log";
66
- import { live, getMeta as getMeta2, makeRef } from "@dxos/react-client/echo";
65
+ import { create, getMeta as getMeta2, makeRef } from "@dxos/react-client/echo";
67
66
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-script/src/util/deploy.ts";
68
67
  var isScriptDeployed = ({ script, fn }) => {
69
68
  const existingFunctionUrl = fn && getUserFunctionUrlInMetadata2(getMeta2(fn));
@@ -85,7 +84,7 @@ var deployScript = async ({ script, client, space, fn, existingFunctionUrl }) =>
85
84
  }
86
85
  const { functionId, version, meta } = await uploadWorkerFunction({
87
86
  client,
88
- ownerPublicKey: space.key,
87
+ spaceId: space.id,
89
88
  version: fn ? incrementSemverPatch(fn.version) : "0.0.1",
90
89
  functionId: existingFunctionId,
91
90
  source: bundle
@@ -99,9 +98,7 @@ var deployScript = async ({ script, client, space, fn, existingFunctionUrl }) =>
99
98
  const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);
100
99
  script.changed = false;
101
100
  updateFunctionMetadata(script, storedFunction, meta, functionId);
102
- const functionUrl = makeFunctionUrl({
103
- functionId
104
- });
101
+ const functionUrl = makeFunctionUrl(space.id, functionId);
105
102
  setUserFunctionUrlInMetadata(getMeta2(storedFunction), functionUrl);
106
103
  return {
107
104
  success: true,
@@ -152,13 +149,16 @@ var createOrUpdateFunctionInSpace = (space, fn, script, functionId, version) =>
152
149
  fn.version = version;
153
150
  return fn;
154
151
  } else {
155
- return space.db.add(live(FunctionType, {
152
+ return space.db.add(create(FunctionType, {
156
153
  name: functionId,
157
154
  version,
158
155
  source: makeRef(script)
159
156
  }));
160
157
  }
161
158
  };
159
+ var makeFunctionUrl = (spaceId, functionId) => {
160
+ return `/${spaceId}/${functionId}`;
161
+ };
162
162
 
163
163
  // packages/plugins/plugin-script/src/hooks/useCreateAndDeployScriptTemplates.ts
164
164
  import { pipe } from "effect/Function";
@@ -230,4 +230,4 @@ export {
230
230
  deployScript,
231
231
  useCreateAndDeployScriptTemplates
232
232
  };
233
- //# sourceMappingURL=chunk-INL55MFV.mjs.map
233
+ //# sourceMappingURL=chunk-MQZQB5VD.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 ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { getMeta, getSpace } from '@dxos/react-client/echo';\n\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: ScriptType;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n\n if (!existingFunctionUrl) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionUrl, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (script: ScriptType, storedFunction: any, meta: any, functionId: string) => {\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", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport {\n FunctionType,\n type ScriptType,\n getUserFunctionUrlInMetadata,\n incrementSemverPatch,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { log } from '@dxos/log';\nimport { create, getMeta, makeRef, type Space } from '@dxos/react-client/echo';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n return Boolean(existingFunctionUrl) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: ScriptType;\n client: Client;\n space: Space;\n fn?: FunctionType;\n existingFunctionUrl?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionUrl?: 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 existingFunctionUrl,\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 existingFunctionId = extractFunctionId(existingFunctionUrl);\n\n const { bundle, error } = await bundleScript(script.source!.target!.content);\n if (error || !bundle) {\n throw error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n spaceId: space.id,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: bundle,\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 const functionUrl = makeFunctionUrl(space.id, functionId);\n setUserFunctionUrlInMetadata(getMeta(storedFunction), functionUrl);\n\n return { success: true, functionUrl };\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: ScriptType, 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 extractFunctionId = (functionUrl?: string): string | undefined => {\n return functionUrl?.split('/').at(-1);\n};\n\nconst bundleScript = async (source: string): Promise<{ bundle?: string; error?: Error }> => {\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source });\n\n if (buildResult.error || !buildResult.bundle) {\n return { error: buildResult.error || new Error('Bundle creation failed') };\n }\n\n return { bundle: buildResult.bundle };\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: FunctionType | undefined,\n script: ScriptType,\n functionId: string,\n version: string,\n): FunctionType => {\n if (fn) {\n fn.version = version;\n return fn;\n } else {\n return space.db.add(create(FunctionType, { name: functionId, version, source: makeRef(script) }));\n }\n};\n\nconst makeFunctionUrl = (spaceId: string, functionId: string): string => {\n return `/${spaceId}/${functionId}`;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { ScriptType } 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 pipe(\n createIntent(ScriptAction.Create, { space, initialTemplateId: template.id }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(isInstanceOf(ScriptType, 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 return { handleCreateAndDeployScripts, status, error };\n};\n"],
5
+ "mappings": ";;;;;AAIA,SAA0BA,kBAAkBC,oCAAoC;AAChF,SAASC,WAAW;AACpB,SAASC,SAASC,gBAAgB;;AAK3B,IAAMC,iBAAiB,CAAC,EAC7BC,QACAC,IACAC,QAAO,MAKR;AACC,QAAMC,QAAQL,SAASE,MAAAA;AACvB,QAAMI,sBAAsBH,MAAMN,6BAA6BE,QAAQI,EAAAA,CAAAA;AAEvE,MAAI,CAACG,qBAAqB;AACxB,WAAOC;EACT;AAEA,SAAOX,iBAAiBU,qBAAqBF,SAAS;IACpDI,SAASH,OAAOI;EAClB,CAAA;AACF;AAEO,IAAMC,yBAAyB,CAACR,QAAoBS,gBAAqBC,MAAWC,eAAAA;AACzF,MAAIX,OAAOY,gBAAgBP,UAAaL,OAAOY,YAAYC,KAAI,MAAO,IAAI;AACxEJ,mBAAeG,cAAcZ,OAAOY;EACtC,WAAWF,KAAKE,aAAa;AAC3BH,mBAAeG,cAAcF,KAAKE;EACpC,OAAO;AACLhB,QAAIkB,QAAQ,uCAAuC;MAAEH;IAAW,GAAA;;;;;;EAClE;AAEA,MAAID,KAAKK,aAAa;AACpBN,mBAAeM,cAAcL,KAAKK;EACpC,OAAO;AACLnB,QAAIkB,QAAQ,wCAAwC;MAAEH;IAAW,GAAA;;;;;;EACnE;AAEA,MAAID,KAAKM,cAAc;AACrBP,mBAAeO,eAAeN,KAAKM;EACrC,OAAO;AACLpB,QAAIkB,QAAQ,yCAAyC;MAAEH;IAAW,GAAA;;;;;;EACpE;AACF;;;AC/CA,SACEM,cAEAC,gCAAAA,+BACAC,sBACAC,8BACAC,4BACK;AACP,SAASC,eAAe;AACxB,SAASC,OAAAA,YAAW;AACpB,SAASC,QAAQC,WAAAA,UAASC,eAA2B;;AAI9C,IAAMC,mBAAmB,CAAC,EAAEC,QAAQC,GAAE,MAAmC;AAC9E,QAAMC,sBAAsBD,MAAME,8BAA6BC,SAAQH,EAAAA,CAAAA;AACvE,SAAOI,QAAQH,mBAAAA,KAAwB,CAACF,OAAOM;AACjD;AAeO,IAAMC,eAAe,OAAO,EACjCP,QACAQ,QACAC,OACAR,IACAC,oBAAmB,MACD;AAClB,QAAMQ,kBAAkBC,qBAAqBX,QAAQS,KAAAA;AACrD,MAAIC,iBAAiB;AACnB,WAAO;MAAEE,SAAS;MAAOC,OAAOH;IAAgB;EAClD;AAEA,MAAI;AACF,UAAMI,qBAAqBC,kBAAkBb,mBAAAA;AAE7C,UAAM,EAAEc,QAAQH,MAAK,IAAK,MAAMI,aAAajB,OAAOkB,OAAQC,OAAQC,OAAO;AAC3E,QAAIP,SAAS,CAACG,QAAQ;AACpB,YAAMH,SAAS,IAAIQ,MAAM,wBAAA;IAC3B;AAEA,UAAM,EAAEC,YAAYC,SAASC,KAAI,IAAK,MAAMC,qBAAqB;MAC/DjB;MACAkB,SAASjB,MAAMkB;MACfJ,SAAStB,KAAK2B,qBAAqB3B,GAAGsB,OAAO,IAAI;MACjDD,YAAYR;MACZI,QAAQF;IACV,CAAA;AAEA,QAAIM,eAAeO,UAAaN,YAAYM,QAAW;AACrD,YAAM,IAAIR,MAAM,uCAAuCS,KAAKC,UAAU;QAAET;QAAYC;MAAQ,CAAA,CAAA,EAAI;IAClG;AAEA,UAAMS,iBAAiBC,8BAA8BxB,OAAOR,IAAID,QAAQsB,YAAYC,OAAAA;AACpFvB,WAAOM,UAAU;AACjB4B,2BAAuBlC,QAAQgC,gBAAgBR,MAAMF,UAAAA;AAErD,UAAMa,cAAcC,gBAAgB3B,MAAMkB,IAAIL,UAAAA;AAC9Ce,iCAA6BjC,SAAQ4B,cAAAA,GAAiBG,WAAAA;AAEtD,WAAO;MAAEvB,SAAS;MAAMuB;IAAY;EACtC,SAASG,KAAU;AACjBC,IAAAA,KAAIC,MAAMF,KAAAA,QAAAA;;;;;;AACV,WAAO;MAAE1B,SAAS;MAAOC,OAAOyB;IAAI;EACtC;AACF;AAKA,IAAM3B,uBAAuB,CAACX,QAAoBS,UAAAA;AAChD,MAAI,CAACT,OAAOkB,UAAU,CAACT,OAAO;AAC5B,WAAO,IAAIY,MAAM,sCAAA;EACnB;AACA,SAAO;AACT;AAEA,IAAMN,oBAAoB,CAACoB,gBAAAA;AACzB,SAAOA,aAAaM,MAAM,GAAA,EAAKC,GAAG,EAAC;AACrC;AAEA,IAAMzB,eAAe,OAAOC,WAAAA;AAC1B,QAAMyB,UAAU,IAAIC,QAAQ;IAAEC,UAAU;IAAWC,kBAAkB,CAAA;IAAIC,eAAe,CAAC;EAAE,CAAA;AAC3F,QAAMC,cAAc,MAAML,QAAQ3B,OAAO;IAAEE;EAAO,CAAA;AAElD,MAAI8B,YAAYnC,SAAS,CAACmC,YAAYhC,QAAQ;AAC5C,WAAO;MAAEH,OAAOmC,YAAYnC,SAAS,IAAIQ,MAAM,wBAAA;IAA0B;EAC3E;AAEA,SAAO;IAAEL,QAAQgC,YAAYhC;EAAO;AACtC;AAEA,IAAMiB,gCAAgC,CACpCxB,OACAR,IACAD,QACAsB,YACAC,YAAAA;AAEA,MAAItB,IAAI;AACNA,OAAGsB,UAAUA;AACb,WAAOtB;EACT,OAAO;AACL,WAAOQ,MAAMwC,GAAGC,IAAIC,OAAOC,cAAc;MAAEC,MAAM/B;MAAYC;MAASL,QAAQoC,QAAQtD,MAAAA;IAAQ,CAAA,CAAA;EAChG;AACF;AAEA,IAAMoC,kBAAkB,CAACV,SAAiBJ,eAAAA;AACxC,SAAO,IAAII,OAAAA,IAAWJ,UAAAA;AACxB;;;ACzHA,SAASiC,YAAY;AACrB,SAASC,aAAaC,gBAAgB;AAEtC,SAASC,OAAOC,cAAcC,2BAA2B;AACzD,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,mBAAmB;AAC5B,SAASC,iBAAiB;;AAgBnB,IAAMC,oCAAoC,CAACC,OAA0BC,oBAAAA;AAC1E,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,QAAMC,SAASC,UAAAA;AACf,QAAM,CAACC,QAAQC,SAAAA,IAAaC,SAA2B,MAAA;AACvD,QAAM,CAACC,OAAOC,QAAAA,IAAYF,SAA4BG,MAAAA;AAEtD,QAAMC,+BAA+BC,YAAY,YAAA;AAC/CC,cAAUf,OAAAA,QAAAA;;;;;;;;;AACVQ,cAAU,SAAA;AACVG,aAASC,MAAAA;AAET,UAAMI,oBAAoB,MAAMC,QAAQC,IACtCjB,gBAAgBkB,IAAI,OAAOC,aAAAA;AACzB,YAAMC,SAAS,MAAMlB,SACnBmB,KACEC,aAAaC,aAAaC,QAAQ;QAAEzB;QAAO0B,mBAAmBN,SAASO;MAAG,CAAA,GAC1EC,MAAMC,YAAYC,WAAW;QAAEC,QAAQ/B;MAAM,CAAA,CAAA,CAAA;AAGjDe,gBAAUiB,aAAaC,YAAYZ,OAAOa,MAAMC,MAAAA,GAAAA,QAAAA;;;;;;;;;AAEhD,aAAOC,aAAa;QAAEpC;QAAOK;QAAQgC,QAAQhB,OAAOa,KAAKC;MAAO,CAAA;IAClE,CAAA,CAAA;AAGF,UAAMG,YAAYtB,kBAAkBuB,KAAK,CAAClB,WAAW,CAACA,OAAOmB,OAAO;AACpEhC,cAAU8B,YAAY,UAAU,SAAA;EAClC,GAAG;IAACtC;IAAOG;IAAUE;IAAQJ;GAAgB;AAE7C,SAAO;IAAEY;IAA8BN;IAAQG;EAAM;AACvD;",
6
+ "names": ["getInvocationUrl", "getUserFunctionUrlInMetadata", "log", "getMeta", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionUrl", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "description", "trim", "verbose", "inputSchema", "outputSchema", "FunctionType", "getUserFunctionUrlInMetadata", "incrementSemverPatch", "setUserFunctionUrlInMetadata", "uploadWorkerFunction", "Bundler", "log", "create", "getMeta", "makeRef", "isScriptDeployed", "script", "fn", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "existingFunctionId", "extractFunctionId", "bundle", "bundleScript", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "spaceId", "id", "incrementSemverPatch", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "functionUrl", "makeFunctionUrl", "setUserFunctionUrlInMetadata", "err", "log", "catch", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "db", "add", "create", "FunctionType", "name", "makeRef", "pipe", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "isInstanceOf", "ScriptType", "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", "Create", "initialTemplateId", "id", "chain", "SpaceAction", "AddObject", "target", "isInstanceOf", "ScriptType", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
7
+ }
@@ -0,0 +1,41 @@
1
+ import {
2
+ SCRIPT_PLUGIN
3
+ } from "./chunk-WSK3YQXI.mjs";
4
+
5
+ // packages/plugins/plugin-script/src/types.ts
6
+ import { TitleAnnotationId } from "effect/SchemaAST";
7
+ import { SpaceSchema } from "@dxos/client/echo";
8
+ import { S } from "@dxos/echo-schema";
9
+ import { ScriptType } from "@dxos/functions/types";
10
+ import { EditorInputMode } from "@dxos/react-ui-editor";
11
+ var ScriptAction;
12
+ (function(ScriptAction2) {
13
+ const SCRIPT_ACTION = `${SCRIPT_PLUGIN}/action`;
14
+ ScriptAction2.CreateScriptSchema = S.Struct({
15
+ name: S.optional(S.String),
16
+ // TODO(wittjosiah): Placeholder annotation?
17
+ gistUrl: S.optional(S.String.annotations({
18
+ [TitleAnnotationId]: "Import from Gist (url)"
19
+ })),
20
+ initialTemplateId: S.optional(S.String)
21
+ });
22
+ class Create extends S.TaggedClass()(`${SCRIPT_ACTION}/create`, {
23
+ input: S.extend(ScriptAction2.CreateScriptSchema, S.Struct({
24
+ space: SpaceSchema
25
+ })),
26
+ output: S.Struct({
27
+ object: ScriptType
28
+ })
29
+ }) {
30
+ }
31
+ ScriptAction2.Create = Create;
32
+ })(ScriptAction || (ScriptAction = {}));
33
+ var ScriptSettingsSchema = S.mutable(S.Struct({
34
+ editorInputMode: EditorInputMode
35
+ }));
36
+
37
+ export {
38
+ ScriptAction,
39
+ ScriptSettingsSchema
40
+ };
41
+ //# sourceMappingURL=chunk-R2CHVWJ2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { TitleAnnotationId } from 'effect/SchemaAST';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { S } from '@dxos/echo-schema';\nimport { ScriptType } from '@dxos/functions/types';\nimport { EditorInputMode } from '@dxos/react-ui-editor';\n\nimport { SCRIPT_PLUGIN } from './meta';\n\n// TODO(burdon): Standardize export (e.g., @dxos/plugin-script/meta)?\nexport { SCRIPT_PLUGIN };\n\nexport namespace ScriptAction {\n const SCRIPT_ACTION = `${SCRIPT_PLUGIN}/action`;\n\n export const CreateScriptSchema = S.Struct({\n name: S.optional(S.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: S.optional(S.String.annotations({ [TitleAnnotationId]: 'Import from Gist (url)' })),\n initialTemplateId: S.optional(S.String),\n });\n\n export type CreateScriptProps = S.Schema.Type<typeof CreateScriptSchema>;\n\n export class Create extends S.TaggedClass<Create>()(`${SCRIPT_ACTION}/create`, {\n input: S.extend(CreateScriptSchema, S.Struct({ space: SpaceSchema })),\n output: S.Struct({\n object: ScriptType,\n }),\n }) {}\n}\n\nexport const ScriptSettingsSchema = S.mutable(\n S.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettingsProps = S.Schema.Type<typeof ScriptSettingsSchema>;\n"],
5
+ "mappings": ";;;;;AAIA,SAASA,yBAAyB;AAElC,SAASC,mBAAmB;AAC5B,SAASC,SAAS;AAClB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;;UAOfC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;gBAEZC,qBAAqBC,EAAEC,OAAO;IACzCC,MAAMF,EAAEG,SAASH,EAAEI,MAAM;;IAEzBC,SAASL,EAAEG,SAASH,EAAEI,OAAOE,YAAY;MAAE,CAACC,iBAAAA,GAAoB;IAAyB,CAAA,CAAA;IACzFC,mBAAmBR,EAAEG,SAASH,EAAEI,MAAM;EACxC,CAAA;EAIO,MAAMK,eAAeT,EAAEU,YAAW,EAAW,GAAGb,aAAAA,WAAwB;IAC7Ec,OAAOX,EAAEY,OAAMhB,cAACG,oBAAoBC,EAAEC,OAAO;MAAEY,OAAOC;IAAY,CAAA,CAAA;IAClEC,QAAQf,EAAEC,OAAO;MACfe,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBALSR,SAAAA;AAMf,GAlBiBb,iBAAAA,eAAAA,CAAAA,EAAAA;AAoBV,IAAMsB,uBAAuBlB,EAAEmB,QACpCnB,EAAEC,OAAO;EACPmB,iBAAiBC;AACnB,CAAA,CAAA;",
6
+ "names": ["TitleAnnotationId", "SpaceSchema", "S", "ScriptType", "EditorInputMode", "ScriptAction", "SCRIPT_ACTION", "SCRIPT_PLUGIN", "CreateScriptSchema", "S", "Struct", "name", "optional", "String", "gistUrl", "annotations", "TitleAnnotationId", "initialTemplateId", "Create", "TaggedClass", "input", "extend", "space", "SpaceSchema", "output", "object", "ScriptType", "ScriptSettingsSchema", "mutable", "editorInputMode", "EditorInputMode"]
7
+ }