@dxos/plugin-script 0.8.3 → 0.8.4-main.1f223c7

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 (233) hide show
  1. package/dist/lib/browser/DeploymentDialog-QZSTVNIS.mjs +12 -0
  2. package/dist/lib/browser/{ScriptContainer-RSN52NH7.mjs → ScriptContainer-DNNA6XC6.mjs} +20 -16
  3. package/dist/lib/browser/ScriptContainer-DNNA6XC6.mjs.map +7 -0
  4. package/dist/lib/browser/{app-graph-builder-5Z3MUX4N.mjs → app-graph-builder-IABOSTBK.mjs} +4 -4
  5. package/dist/lib/{node-esm/app-graph-builder-IOOUTHV2.mjs.map → browser/app-graph-builder-IABOSTBK.mjs.map} +3 -3
  6. package/dist/lib/browser/blueprint-definition-AR7ITBCD.mjs +28 -0
  7. package/dist/lib/browser/blueprint-definition-AR7ITBCD.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-YSQMXTYO.mjs → chunk-5TVBECWH.mjs} +3 -3
  9. package/dist/lib/browser/chunk-6CAH7VIE.mjs +283 -0
  10. package/dist/lib/browser/chunk-6CAH7VIE.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-3JLR2SHJ.mjs → chunk-GZKWMME3.mjs} +52 -53
  12. package/dist/lib/browser/chunk-GZKWMME3.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-WB3X5Z7Q.mjs → chunk-IS4OG2UW.mjs} +5 -6
  14. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-QJH7I2UV.mjs → chunk-NXKU3BNX.mjs} +40 -51
  16. package/dist/lib/browser/chunk-NXKU3BNX.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-6ZHHWU6S.mjs → chunk-QYAREHGH.mjs} +2 -2
  18. package/dist/lib/browser/chunk-RNGIQIEJ.mjs +88 -0
  19. package/dist/lib/browser/chunk-RNGIQIEJ.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-LA66DQGU.mjs → chunk-YCZPTTFO.mjs} +6 -6
  21. package/dist/lib/browser/chunk-YCZPTTFO.mjs.map +7 -0
  22. package/dist/lib/browser/{compiler-W4BYJYTL.mjs → compiler-2HJH34GM.mjs} +26 -10
  23. package/dist/lib/browser/compiler-2HJH34GM.mjs.map +7 -0
  24. package/dist/lib/browser/index.mjs +34 -31
  25. package/dist/lib/browser/index.mjs.map +3 -3
  26. package/dist/lib/browser/{intent-resolver-JOJNH4UX.mjs → intent-resolver-F4YSRPJI.mjs} +11 -12
  27. package/dist/lib/browser/intent-resolver-F4YSRPJI.mjs.map +7 -0
  28. package/dist/lib/browser/meta.json +1 -1
  29. package/dist/lib/browser/{react-surface-7BKUWL2U.mjs → react-surface-BBHFU6MI.mjs} +13 -14
  30. package/dist/lib/browser/react-surface-BBHFU6MI.mjs.map +7 -0
  31. package/dist/lib/browser/{settings-Z22D6JVJ.mjs → settings-KCTBK5TY.mjs} +4 -4
  32. package/dist/lib/browser/templates/index.mjs +9 -0
  33. package/dist/lib/browser/types/index.mjs +10 -0
  34. package/dist/lib/node-esm/{DeploymentDialog-IA4CH6WZ.mjs → DeploymentDialog-G6EHEPXN.mjs} +5 -5
  35. package/dist/lib/node-esm/{ScriptContainer-4IOOIPBF.mjs → ScriptContainer-KPYZN2KY.mjs} +20 -16
  36. package/dist/lib/node-esm/ScriptContainer-KPYZN2KY.mjs.map +7 -0
  37. package/dist/lib/node-esm/{app-graph-builder-IOOUTHV2.mjs → app-graph-builder-CQTTAYHP.mjs} +4 -4
  38. package/dist/lib/{browser/app-graph-builder-5Z3MUX4N.mjs.map → node-esm/app-graph-builder-CQTTAYHP.mjs.map} +3 -3
  39. package/dist/lib/node-esm/blueprint-definition-TJY4TX6S.mjs +30 -0
  40. package/dist/lib/node-esm/blueprint-definition-TJY4TX6S.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-2GBESIHU.mjs +284 -0
  42. package/dist/lib/node-esm/chunk-2GBESIHU.mjs.map +7 -0
  43. package/dist/lib/node-esm/{chunk-2KJYPUQD.mjs → chunk-35M3CHYE.mjs} +3 -3
  44. package/dist/lib/node-esm/{chunk-AEB5TPEW.mjs → chunk-AHXJ6NQU.mjs} +2 -2
  45. package/dist/lib/node-esm/chunk-GWHLP5LM.mjs +90 -0
  46. package/dist/lib/node-esm/chunk-GWHLP5LM.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-B4TP3LSZ.mjs → chunk-HUHVIOL5.mjs} +52 -53
  48. package/dist/lib/node-esm/chunk-HUHVIOL5.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-UESZKXLR.mjs → chunk-JIPFLBYA.mjs} +5 -6
  50. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-MJJQBUOL.mjs → chunk-M642JUOZ.mjs} +40 -51
  52. package/dist/lib/node-esm/chunk-M642JUOZ.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-T7XDCUTF.mjs → chunk-ZA36GO4T.mjs} +6 -6
  54. package/dist/lib/node-esm/chunk-ZA36GO4T.mjs.map +7 -0
  55. package/dist/lib/node-esm/{compiler-7PQ4D43R.mjs → compiler-7SP27RA6.mjs} +26 -10
  56. package/dist/lib/node-esm/compiler-7SP27RA6.mjs.map +7 -0
  57. package/dist/lib/node-esm/index.mjs +34 -31
  58. package/dist/lib/node-esm/index.mjs.map +3 -3
  59. package/dist/lib/node-esm/{intent-resolver-HTM5PSRZ.mjs → intent-resolver-CGQYRWWD.mjs} +11 -12
  60. package/dist/lib/{browser/intent-resolver-JOJNH4UX.mjs.map → node-esm/intent-resolver-CGQYRWWD.mjs.map} +3 -3
  61. package/dist/lib/node-esm/meta.json +1 -1
  62. package/dist/lib/node-esm/{react-surface-6UO64YOS.mjs → react-surface-UWIWPKZD.mjs} +13 -14
  63. package/dist/lib/node-esm/react-surface-UWIWPKZD.mjs.map +7 -0
  64. package/dist/lib/node-esm/{settings-KZEGCDYX.mjs → settings-DXZ334A3.mjs} +4 -4
  65. package/dist/lib/node-esm/templates/index.mjs +10 -0
  66. package/dist/lib/node-esm/templates/index.mjs.map +7 -0
  67. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -6
  68. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  69. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  70. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  72. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  74. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/compiler.d.ts +1 -1
  76. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/index.d.ts +6 -6
  78. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  80. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  82. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/settings.d.ts +1 -1
  84. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  85. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +1 -1
  86. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  87. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +139 -12
  88. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  90. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  91. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  92. package/dist/types/src/components/ScriptContainer.d.ts +3 -3
  93. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  94. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  95. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +7 -10
  96. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  97. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  98. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  99. package/dist/types/src/components/TestPanel/TestContainer.d.ts +4 -3
  100. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  101. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  102. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +10 -3
  103. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  104. package/dist/types/src/components/index.d.ts +1 -4
  105. package/dist/types/src/components/index.d.ts.map +1 -1
  106. package/dist/types/src/hooks/deploy.d.ts +4 -3
  107. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  108. package/dist/types/src/hooks/template.d.ts.map +1 -1
  109. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  110. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  111. package/dist/types/src/templates/index.d.ts +2 -0
  112. package/dist/types/src/templates/index.d.ts.map +1 -1
  113. package/dist/types/src/translations.d.ts +68 -176
  114. package/dist/types/src/translations.d.ts.map +1 -1
  115. package/dist/types/src/types/index.d.ts +2 -0
  116. package/dist/types/src/types/index.d.ts.map +1 -0
  117. package/dist/types/src/{types.d.ts → types/schema.d.ts} +3 -5
  118. package/dist/types/src/types/schema.d.ts.map +1 -0
  119. package/dist/types/src/util/deploy.d.ts +3 -3
  120. package/dist/types/src/util/deploy.d.ts.map +1 -1
  121. package/dist/types/src/util/functions.d.ts.map +1 -1
  122. package/dist/types/tsconfig.tsbuildinfo +1 -1
  123. package/package.json +79 -70
  124. package/src/ScriptPlugin.tsx +7 -7
  125. package/src/capabilities/app-graph-builder.ts +2 -2
  126. package/src/capabilities/artifact-definition.ts +9 -12
  127. package/src/capabilities/blueprint-definition.ts +30 -0
  128. package/src/capabilities/compiler.ts +2 -1
  129. package/src/capabilities/index.ts +1 -1
  130. package/src/capabilities/intent-resolver.ts +2 -5
  131. package/src/capabilities/react-surface.tsx +6 -5
  132. package/src/compiler/compiler.ts +1 -1
  133. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +29 -17
  134. package/src/components/DeploymentDialog/DeploymentDialog.tsx +5 -5
  135. package/src/components/DeploymentDialog/index.ts +1 -1
  136. package/src/components/FrameContainer/FrameContainer.tsx +3 -2
  137. package/src/components/FrameContainer/frame.tsx +1 -1
  138. package/src/components/ScriptContainer.tsx +6 -4
  139. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +19 -14
  140. package/src/components/ScriptToolbar/ScriptToolbar.tsx +14 -4
  141. package/src/components/Settings/ScriptObjectSettings.tsx +19 -23
  142. package/src/components/Settings/ScriptPluginSettings.tsx +33 -28
  143. package/src/components/TestPanel/TestContainer.tsx +9 -3
  144. package/src/components/TestPanel/TestPanel.tsx +1 -1
  145. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +9 -16
  146. package/src/components/TypescriptEditor/TypescriptEditor.tsx +6 -4
  147. package/src/hooks/deploy.ts +11 -11
  148. package/src/hooks/template.ts +3 -3
  149. package/src/hooks/useCreateAndDeployScriptTemplates.ts +1 -0
  150. package/src/templates/chess.ts +1 -1
  151. package/src/templates/data-generator.ts +8 -4
  152. package/src/templates/discord.ts +4 -4
  153. package/src/templates/email.ts +2 -2
  154. package/src/templates/forex-effect.ts +3 -3
  155. package/src/templates/forex.ts +1 -1
  156. package/src/templates/gmail.ts +14 -55
  157. package/src/templates/index.ts +2 -0
  158. package/src/translations.ts +9 -6
  159. package/src/types/index.ts +5 -0
  160. package/src/{types.ts → types/schema.ts} +2 -7
  161. package/src/util/deploy.ts +20 -33
  162. package/src/util/functions.ts +4 -4
  163. package/dist/lib/browser/DeploymentDialog-RPPPWEEL.mjs +0 -12
  164. package/dist/lib/browser/ScriptContainer-RSN52NH7.mjs.map +0 -7
  165. package/dist/lib/browser/artifact-definition-A4TBQL75.mjs +0 -249
  166. package/dist/lib/browser/artifact-definition-A4TBQL75.mjs.map +0 -7
  167. package/dist/lib/browser/chunk-3FU4QZVP.mjs +0 -364
  168. package/dist/lib/browser/chunk-3FU4QZVP.mjs.map +0 -7
  169. package/dist/lib/browser/chunk-3JLR2SHJ.mjs.map +0 -7
  170. package/dist/lib/browser/chunk-LA66DQGU.mjs.map +0 -7
  171. package/dist/lib/browser/chunk-QJH7I2UV.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-WB3X5Z7Q.mjs.map +0 -7
  173. package/dist/lib/browser/compiler-W4BYJYTL.mjs.map +0 -7
  174. package/dist/lib/browser/react-surface-7BKUWL2U.mjs.map +0 -7
  175. package/dist/lib/browser/types.mjs +0 -13
  176. package/dist/lib/node/DeploymentDialog-C3EEYGRH.cjs +0 -33
  177. package/dist/lib/node/DeploymentDialog-C3EEYGRH.cjs.map +0 -7
  178. package/dist/lib/node/ScriptContainer-CAC7AISY.cjs +0 -278
  179. package/dist/lib/node/ScriptContainer-CAC7AISY.cjs.map +0 -7
  180. package/dist/lib/node/app-graph-builder-25OOTBW4.cjs +0 -80
  181. package/dist/lib/node/app-graph-builder-25OOTBW4.cjs.map +0 -7
  182. package/dist/lib/node/artifact-definition-QKZI6PTO.cjs +0 -265
  183. package/dist/lib/node/artifact-definition-QKZI6PTO.cjs.map +0 -7
  184. package/dist/lib/node/chunk-AU2FOE26.cjs +0 -369
  185. package/dist/lib/node/chunk-AU2FOE26.cjs.map +0 -7
  186. package/dist/lib/node/chunk-BUOBOT3V.cjs +0 -179
  187. package/dist/lib/node/chunk-BUOBOT3V.cjs.map +0 -7
  188. package/dist/lib/node/chunk-HCRW6T3G.cjs +0 -60
  189. package/dist/lib/node/chunk-HCRW6T3G.cjs.map +0 -7
  190. package/dist/lib/node/chunk-OSBMUJ4T.cjs +0 -580
  191. package/dist/lib/node/chunk-OSBMUJ4T.cjs.map +0 -7
  192. package/dist/lib/node/chunk-QG2X6J74.cjs +0 -52
  193. package/dist/lib/node/chunk-QG2X6J74.cjs.map +0 -7
  194. package/dist/lib/node/chunk-YO5W2IPQ.cjs +0 -251
  195. package/dist/lib/node/chunk-YO5W2IPQ.cjs.map +0 -7
  196. package/dist/lib/node/chunk-ZEV3VARQ.cjs +0 -34
  197. package/dist/lib/node/chunk-ZEV3VARQ.cjs.map +0 -7
  198. package/dist/lib/node/compiler-TFSJRLL4.cjs +0 -104
  199. package/dist/lib/node/compiler-TFSJRLL4.cjs.map +0 -7
  200. package/dist/lib/node/index.cjs +0 -225
  201. package/dist/lib/node/index.cjs.map +0 -7
  202. package/dist/lib/node/intent-resolver-BQ2NKEM7.cjs +0 -100
  203. package/dist/lib/node/intent-resolver-BQ2NKEM7.cjs.map +0 -7
  204. package/dist/lib/node/meta.json +0 -1
  205. package/dist/lib/node/react-surface-EUKPDFU3.cjs +0 -120
  206. package/dist/lib/node/react-surface-EUKPDFU3.cjs.map +0 -7
  207. package/dist/lib/node/settings-WO53FLYZ.cjs +0 -38
  208. package/dist/lib/node/settings-WO53FLYZ.cjs.map +0 -7
  209. package/dist/lib/node/types.cjs +0 -34
  210. package/dist/lib/node/types.cjs.map +0 -7
  211. package/dist/lib/node-esm/ScriptContainer-4IOOIPBF.mjs.map +0 -7
  212. package/dist/lib/node-esm/artifact-definition-4XRYAP54.mjs +0 -250
  213. package/dist/lib/node-esm/artifact-definition-4XRYAP54.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-B4TP3LSZ.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-MJJQBUOL.mjs.map +0 -7
  216. package/dist/lib/node-esm/chunk-T7XDCUTF.mjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-UESZKXLR.mjs.map +0 -7
  218. package/dist/lib/node-esm/chunk-W2DAXWHA.mjs +0 -365
  219. package/dist/lib/node-esm/chunk-W2DAXWHA.mjs.map +0 -7
  220. package/dist/lib/node-esm/compiler-7PQ4D43R.mjs.map +0 -7
  221. package/dist/lib/node-esm/intent-resolver-HTM5PSRZ.mjs.map +0 -7
  222. package/dist/lib/node-esm/react-surface-6UO64YOS.mjs.map +0 -7
  223. package/dist/types/src/types.d.ts.map +0 -1
  224. /package/dist/lib/browser/{DeploymentDialog-RPPPWEEL.mjs.map → DeploymentDialog-QZSTVNIS.mjs.map} +0 -0
  225. /package/dist/lib/browser/{chunk-YSQMXTYO.mjs.map → chunk-5TVBECWH.mjs.map} +0 -0
  226. /package/dist/lib/browser/{chunk-6ZHHWU6S.mjs.map → chunk-QYAREHGH.mjs.map} +0 -0
  227. /package/dist/lib/browser/{settings-Z22D6JVJ.mjs.map → settings-KCTBK5TY.mjs.map} +0 -0
  228. /package/dist/lib/browser/{types.mjs.map → templates/index.mjs.map} +0 -0
  229. /package/dist/lib/{node-esm/DeploymentDialog-IA4CH6WZ.mjs.map → browser/types/index.mjs.map} +0 -0
  230. /package/dist/lib/node-esm/{types.mjs.map → DeploymentDialog-G6EHEPXN.mjs.map} +0 -0
  231. /package/dist/lib/node-esm/{chunk-2KJYPUQD.mjs.map → chunk-35M3CHYE.mjs.map} +0 -0
  232. /package/dist/lib/node-esm/{chunk-AEB5TPEW.mjs.map → chunk-AHXJ6NQU.mjs.map} +0 -0
  233. /package/dist/lib/node-esm/{settings-KZEGCDYX.mjs.map → settings-DXZ334A3.mjs.map} +0 -0
@@ -1,7 +0,0 @@
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 { Obj, Ref } from '@dxos/echo';\nimport {\n FunctionType,\n type ScriptType,\n getUserFunctionUrlInMetadata,\n makeFunctionUrl,\n setUserFunctionUrlInMetadata,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {\n const existingFunctionUrl = fn && getUserFunctionUrlInMetadata(Obj.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 ownerPublicKey: space.key,\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({ functionId });\n setUserFunctionUrlInMetadata(Obj.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(Obj.make(FunctionType, { name: functionId, version, source: Ref.make(script) }));\n }\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 { Obj } from '@dxos/echo';\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(Obj.instanceOf(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,SAASM,KAAKC,WAAW;AACzB,SACEC,cAEAC,gCAAAA,+BACAC,iBACAC,oCACK;AACP,SAASC,eAAe;AACxB,SAASC,sBAAsBC,4BAA4B;AAC3D,SAASC,OAAAA,YAAW;;AAKb,IAAMC,mBAAmB,CAAC,EAAEC,QAAQC,GAAE,MAAmC;AAC9E,QAAMC,sBAAsBD,MAAME,8BAA6BC,IAAIC,QAAQJ,EAAAA,CAAAA;AAC3E,SAAOK,QAAQJ,mBAAAA,KAAwB,CAACF,OAAOO;AACjD;AAeO,IAAMC,eAAe,OAAO,EACjCR,QACAS,QACAC,OACAT,IACAC,oBAAmB,MACD;AAClB,QAAMS,kBAAkBC,qBAAqBZ,QAAQU,KAAAA;AACrD,MAAIC,iBAAiB;AACnB,WAAO;MAAEE,SAAS;MAAOC,OAAOH;IAAgB;EAClD;AAEA,MAAI;AACF,UAAMI,qBAAqBC,kBAAkBd,mBAAAA;AAE7C,UAAM,EAAEe,QAAQH,MAAK,IAAK,MAAMI,aAAalB,OAAOmB,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,gBAAgBjB,MAAMkB;MACtBJ,SAASvB,KAAK4B,qBAAqB5B,GAAGuB,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,OAAOT,IAAID,QAAQuB,YAAYC,OAAAA;AACpFxB,WAAOO,UAAU;AACjB4B,2BAAuBnC,QAAQiC,gBAAgBR,MAAMF,UAAAA;AAErD,UAAMa,cAAcC,gBAAgB;MAAEd;IAAW,CAAA;AACjDe,iCAA6BlC,IAAIC,QAAQ4B,cAAAA,GAAiBG,WAAAA;AAE1D,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,CAACZ,QAAoBU,UAAAA;AAChD,MAAI,CAACV,OAAOmB,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,OACAT,IACAD,QACAuB,YACAC,YAAAA;AAEA,MAAIvB,IAAI;AACNA,OAAGuB,UAAUA;AACb,WAAOvB;EACT,OAAO;AACL,WAAOS,MAAMwC,GAAGC,IAAI/C,IAAIgD,KAAKC,cAAc;MAAEC,MAAM/B;MAAYC;MAASL,QAAQoC,IAAIH,KAAKpD,MAAAA;IAAQ,CAAA,CAAA;EACnG;AACF;;;ACtHA,SAASwD,YAAY;AACrB,SAASC,aAAaC,gBAAgB;AAEtC,SAASC,OAAOC,cAAcC,2BAA2B;AACzD,SAASC,OAAAA,YAAW;AACpB,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,KAAIC,WAAWC,YAAYb,OAAOc,MAAMC,MAAAA,GAAAA,QAAAA;;;;;;;;;AAElD,aAAOC,aAAa;QAAErC;QAAOK;QAAQiC,QAAQjB,OAAOc,KAAKC;MAAO,CAAA;IAClE,CAAA,CAAA;AAGF,UAAMG,YAAYvB,kBAAkBwB,KAAK,CAACnB,WAAW,CAACA,OAAOoB,OAAO;AACpEjC,cAAU+B,YAAY,UAAU,SAAA;EAClC,GAAG;IAACvC;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", "Obj", "Ref", "FunctionType", "getUserFunctionUrlInMetadata", "makeFunctionUrl", "setUserFunctionUrlInMetadata", "Bundler", "incrementSemverPatch", "uploadWorkerFunction", "log", "isScriptDeployed", "script", "fn", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "Obj", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "existingFunctionId", "extractFunctionId", "bundle", "bundleScript", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "ownerPublicKey", "key", "incrementSemverPatch", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "functionUrl", "makeFunctionUrl", "setUserFunctionUrlInMetadata", "err", "log", "catch", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "db", "add", "make", "FunctionType", "name", "Ref", "pipe", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "Obj", "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", "Obj", "instanceOf", "ScriptType", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { ScriptType } from '@dxos/functions';\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 = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),\n initialTemplateId: Schema.optional(Schema.String),\n });\n\n export type CreateScriptProps = Schema.Schema.Type<typeof CreateScriptSchema>;\n\n export class Create extends Schema.TaggedClass<Create>()(`${SCRIPT_ACTION}/create`, {\n input: Schema.extend(CreateScriptSchema, Schema.Struct({ space: SpaceSchema })),\n output: Schema.Struct({\n object: ScriptType,\n }),\n }) {}\n}\n\nexport const ScriptSettingsSchema = Schema.mutable(\n Schema.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettingsProps = Schema.Schema.Type<typeof ScriptSettingsSchema>;\n"],
5
- "mappings": ";;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;UAOfC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;gBAEZC,qBAAqBC,OAAOC,OAAO;IAC9CC,MAAMF,OAAOG,SAASH,OAAOI,MAAM;;IAEnCC,SAASL,OAAOG,SAASH,OAAOI,OAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAAmBR,OAAOG,SAASH,OAAOI,MAAM;EAClD,CAAA;EAIO,MAAMK,eAAeT,OAAOU,YAAW,EAAW,GAAGb,aAAAA,WAAwB;IAClFc,OAAOX,OAAOY,OAAMhB,cAACG,oBAAoBC,OAAOC,OAAO;MAAEY,OAAOC;IAAY,CAAA,CAAA;IAC5EC,QAAQf,OAAOC,OAAO;MACpBe,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBALSR,SAAAA;AAMf,GAlBiBb,iBAAAA,eAAAA,CAAAA,EAAAA;AAoBV,IAAMsB,uBAAuBlB,OAAOmB,QACzCnB,OAAOC,OAAO;EACZmB,iBAAiBC;AACnB,CAAA,CAAA;;",
6
- "names": ["Schema", "SpaceSchema", "ScriptType", "EditorInputMode", "ScriptAction", "SCRIPT_ACTION", "SCRIPT_PLUGIN", "CreateScriptSchema", "Schema", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "Create", "TaggedClass", "input", "extend", "space", "SpaceSchema", "output", "object", "ScriptType", "ScriptSettingsSchema", "mutable", "editorInputMode", "EditorInputMode"]
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 { ScriptCapabilities } from './capabilities';\nimport { Compiler } from '../compiler';\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 createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n type VirtualTypeScriptEnvironment,\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,SACEC,yBACAC,cACAC,0CAEK;AACP,OAAOC,QAAQ;AAEf,SAASC,iBAAiB;;AAE1B,IAAMC,iBAAqC;EACzCC,KAAK;IAAC;IAAO;;EACbC,QAAQJ,GAAGK,aAAaC;AAC1B;AAEO,IAAMC,WAAN,MAAMA;EAIX,YAA6BC,WAA+BN,gBAAgB;SAA/CM,WAAAA;EAAgD;EAE7E,MAAMC,aAA4B;AAChC,QAAI,KAAKC,MAAM;AACb;IACF;AAIA,SAAKC,SAAS,MAAMd,wBAAwB,KAAKW,UAAU,SAAS,MAAMR,EAAAA;AAC1E,UAAMY,SAASd,aAAa,KAAKa,MAAM;AACvC,SAAKD,OAAOX,mCAAmCa,QAAQ,CAAA,GAAIZ,IAAI,KAAKQ,QAAQ;EAC9E;EAEA,IAAIK,cAAc;AAChBZ,cAAU,KAAKS,MAAM,yCAAA;;;;;;;;;AACrB,WAAO,KAAKA;EACd;EAEAI,QAAQC,UAAkBC,SAAuB;AAC/Cf,cAAU,KAAKU,QAAQ,oCAAA;;;;;;;;;AACvB,SAAKE,YAAYI,WAAWF,UAAUC,OAAAA;EACxC;EAEAE,QAAQH,UAAiC;AACvC,WAAO,KAAKF,YAAYM,gBAAgBC,cAAcL,QAAAA;EACxD;AACF;;;ADrCA,IAAA,mBAAe,YAAA;AACb,QAAMM,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", "_options", "initialize", "_env", "_fsMap", "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/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 { ScriptCapabilities } from './capabilities';\nimport {\n ScriptContainer,\n ScriptPluginSettings,\n ScriptObjectSettings,\n ScriptProperties,\n DeploymentDialog,\n DEPLOYMENT_DIALOG,\n TestContainer,\n} from '../components';\nimport { meta } from '../meta';\nimport { type ScriptSettingsProps } from '../types';\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 role={role}>\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;AAgB1B,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;QAAC9B;SACjB,sBAAA,cAAC+B,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,13 +0,0 @@
1
- import {
2
- ScriptAction,
3
- ScriptSettingsSchema
4
- } from "./chunk-WB3X5Z7Q.mjs";
5
- import {
6
- SCRIPT_PLUGIN
7
- } from "./chunk-6ZHHWU6S.mjs";
8
- export {
9
- SCRIPT_PLUGIN,
10
- ScriptAction,
11
- ScriptSettingsSchema
12
- };
13
- //# sourceMappingURL=types.mjs.map
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var DeploymentDialog_C3EEYGRH_exports = {};
20
- __export(DeploymentDialog_C3EEYGRH_exports, {
21
- DEPLOYMENT_DIALOG: () => import_chunk_BUOBOT3V.DEPLOYMENT_DIALOG,
22
- default: () => import_chunk_BUOBOT3V.DeploymentDialog_default
23
- });
24
- module.exports = __toCommonJS(DeploymentDialog_C3EEYGRH_exports);
25
- var import_chunk_BUOBOT3V = require("./chunk-BUOBOT3V.cjs");
26
- var import_chunk_YO5W2IPQ = require("./chunk-YO5W2IPQ.cjs");
27
- var import_chunk_HCRW6T3G = require("./chunk-HCRW6T3G.cjs");
28
- var import_chunk_QG2X6J74 = require("./chunk-QG2X6J74.cjs");
29
- // Annotate the CommonJS export names for ESM import in node:
30
- 0 && (module.exports = {
31
- DEPLOYMENT_DIALOG
32
- });
33
- //# sourceMappingURL=DeploymentDialog-C3EEYGRH.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["DeploymentDialog-C3EEYGRH.cjs"],
4
- "sourcesContent": ["import {\n DEPLOYMENT_DIALOG,\n DeploymentDialog_default\n} from \"./chunk-BUOBOT3V.cjs\";\nimport \"./chunk-YO5W2IPQ.cjs\";\nimport \"./chunk-HCRW6T3G.cjs\";\nimport \"./chunk-QG2X6J74.cjs\";\nexport {\n DEPLOYMENT_DIALOG,\n DeploymentDialog_default as default\n};\n//# sourceMappingURL=DeploymentDialog-C3EEYGRH.cjs.map\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;",
6
- "names": []
7
- }
@@ -1,278 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ScriptContainer_CAC7AISY_exports = {};
30
- __export(ScriptContainer_CAC7AISY_exports, {
31
- ScriptContainer: () => ScriptContainer,
32
- default: () => ScriptContainer_default
33
- });
34
- module.exports = __toCommonJS(ScriptContainer_CAC7AISY_exports);
35
- var import_chunk_AU2FOE26 = require("./chunk-AU2FOE26.cjs");
36
- var import_chunk_YO5W2IPQ = require("./chunk-YO5W2IPQ.cjs");
37
- var import_chunk_HCRW6T3G = require("./chunk-HCRW6T3G.cjs");
38
- var import_chunk_QG2X6J74 = require("./chunk-QG2X6J74.cjs");
39
- var import_tracking = require("@preact-signals/safe-react/tracking");
40
- var import_react = __toESM(require("react"));
41
- var import_echo = require("@dxos/react-client/echo");
42
- var import_halo = require("@dxos/react-client/halo");
43
- var import_react_ui_editor = require("@dxos/react-ui-editor");
44
- var import_react_ui_stack = require("@dxos/react-ui-stack");
45
- var import_tracking2 = require("@preact-signals/safe-react/tracking");
46
- var import_rx_react = require("@effect-rx/rx-react");
47
- var import_react2 = __toESM(require("react"));
48
- var import_echo2 = require("@dxos/react-client/echo");
49
- var import_react_ui = require("@dxos/react-ui");
50
- var import_react_ui_menu = require("@dxos/react-ui-menu");
51
- var import_tracking3 = require("@preact-signals/safe-react/tracking");
52
- var import_lang_javascript = require("@codemirror/lang-javascript");
53
- var import_language = require("@codemirror/language");
54
- var import_lint = require("@codemirror/lint");
55
- var import_state = require("@codemirror/state");
56
- var import_theme_one_dark = require("@codemirror/theme-one-dark");
57
- var import_view = require("@codemirror/view");
58
- var import_highlight = require("@lezer/highlight");
59
- var import_codemirror_continue = require("@valtown/codemirror-continue");
60
- var import_codemirror_ts = require("@valtown/codemirror-ts");
61
- var import_react3 = __toESM(require("react"));
62
- var import_react_ui2 = require("@dxos/react-ui");
63
- var import_react_ui_editor2 = require("@dxos/react-ui-editor");
64
- var import_react_ui_theme = require("@dxos/react-ui-theme");
65
- var import_util = require("@dxos/util");
66
- var createToolbar = ({ state, script, ...options }) => import_rx_react.Rx.make((get) => get((0, import_react_ui_menu.rxFromSignal)(() => {
67
- const templateSelect = (0, import_chunk_AU2FOE26.createTemplateSelect)(script);
68
- const format = (0, import_chunk_AU2FOE26.createFormat)(script);
69
- const gap = (0, import_react_ui_menu.createGapSeparator)();
70
- const deploy = (0, import_chunk_AU2FOE26.createDeploy)({
71
- state,
72
- script,
73
- ...options
74
- });
75
- return {
76
- nodes: [
77
- ...templateSelect.nodes,
78
- ...format.nodes,
79
- ...gap.nodes,
80
- ...deploy.nodes
81
- ],
82
- edges: [
83
- ...templateSelect.edges,
84
- ...format.edges,
85
- ...gap.edges,
86
- ...deploy.edges
87
- ]
88
- };
89
- })));
90
- var ScriptToolbar = ({ script, role, state, classNames }) => {
91
- var _effect = (0, import_tracking2.useSignals)();
92
- try {
93
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_QG2X6J74.SCRIPT_PLUGIN);
94
- const options = (0, import_chunk_AU2FOE26.useDeployDeps)({
95
- script
96
- });
97
- const toolbarCreator = (0, import_react2.useMemo)(() => createToolbar({
98
- state,
99
- script,
100
- t,
101
- ...options
102
- }), [
103
- state,
104
- script,
105
- options,
106
- t
107
- ]);
108
- const menu = (0, import_react_ui_menu.useMenuActions)(toolbarCreator);
109
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.ElevationProvider, {
110
- elevation: role === "section" ? "positioned" : "base"
111
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_menu.MenuProvider, {
112
- ...menu,
113
- attendableId: (0, import_echo2.fullyQualifiedId)(script)
114
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_menu.ToolbarMenu, {
115
- classNames
116
- })));
117
- } finally {
118
- _effect.f();
119
- }
120
- };
121
- var TypescriptEditor = ({ classNames, id, inputMode = "vscode", toolbar, env, initialValue, extensions, scrollTo, selection }) => {
122
- var _effect = (0, import_tracking3.useSignals)();
123
- try {
124
- const { themeMode } = (0, import_react_ui2.useThemeContext)();
125
- const { parentRef, focusAttributes } = (0, import_react_ui_editor2.useTextEditor)(() => ({
126
- id,
127
- initialValue,
128
- selection,
129
- scrollTo,
130
- extensions: [
131
- extensions,
132
- (0, import_react_ui_editor2.createBasicExtensions)({
133
- highlightActiveLine: true,
134
- indentWithTab: true,
135
- lineNumbers: true,
136
- lineWrapping: false,
137
- monospace: true,
138
- scrollPastEnd: true
139
- }),
140
- (0, import_react_ui_editor2.createThemeExtensions)({
141
- themeMode,
142
- syntaxHighlighting: true
143
- }),
144
- import_react_ui_editor2.InputModeExtensions[inputMode],
145
- (0, import_react_ui_editor2.folding)(),
146
- // Continues block comments when pressing Enter.
147
- import_state.Prec.high(import_view.keymap.of(import_codemirror_continue.continueKeymap)),
148
- // TODO(burdon): Factor out.
149
- (0, import_lang_javascript.javascript)({
150
- typescript: true
151
- }),
152
- // https://github.com/val-town/codemirror-ts
153
- (0, import_react_ui_editor2.autocomplete)({
154
- override: env ? [
155
- (0, import_codemirror_ts.tsAutocomplete)()
156
- ] : void 0
157
- }),
158
- import_view.keymap.of(import_lint.lintKeymap),
159
- env && [
160
- import_codemirror_ts.tsFacet.of({
161
- env,
162
- path: `/src/${id}.ts`
163
- }),
164
- (0, import_codemirror_ts.tsSync)(),
165
- (0, import_codemirror_ts.tsLinter)(),
166
- (0, import_codemirror_ts.tsHover)({
167
- renderTooltip: createTooltipRenderer(themeMode)
168
- })
169
- ]
170
- ].filter(import_util.isNonNullable)
171
- }), [
172
- id,
173
- extensions,
174
- themeMode,
175
- inputMode,
176
- selection,
177
- scrollTo
178
- ]);
179
- return /* @__PURE__ */ import_react3.default.createElement("div", {
180
- ref: parentRef,
181
- "data-toolbar": toolbar ? "enabled" : "disabled",
182
- className: (0, import_react_ui_theme.mx)(classNames),
183
- ...focusAttributes
184
- });
185
- } finally {
186
- _effect.f();
187
- }
188
- };
189
- var createTooltipRenderer = (themeMode) => {
190
- const theme = themeMode === "dark" ? import_theme_one_dark.oneDarkHighlightStyle : import_language.defaultHighlightStyle;
191
- const classFromKind = (_kind) => {
192
- const kind = _kind.endsWith("Name") ? "name" : _kind;
193
- const validTag = kind in import_highlight.tags;
194
- if (!validTag) {
195
- return "";
196
- }
197
- const tag = import_highlight.tags[kind];
198
- if (typeof tag === "function") {
199
- return "";
200
- }
201
- return theme.style([
202
- tag
203
- ]) ?? "";
204
- };
205
- return (info) => {
206
- const div = document.createElement("div");
207
- div.className = "p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg";
208
- if (info.quickInfo?.displayParts) {
209
- for (const part of info.quickInfo.displayParts) {
210
- const span = div.appendChild(document.createElement("span"));
211
- span.className = classFromKind(part.kind);
212
- span.innerText = part.text;
213
- }
214
- }
215
- return {
216
- dom: div
217
- };
218
- };
219
- };
220
- var ScriptContainer = ({ role, script, settings = {
221
- editorInputMode: "vscode"
222
- }, env }) => {
223
- var _effect = (0, import_tracking.useSignals)();
224
- try {
225
- const identity = (0, import_halo.useIdentity)();
226
- const space = (0, import_echo.getSpace)(script);
227
- const state = (0, import_chunk_AU2FOE26.useToolbarState)();
228
- (0, import_chunk_AU2FOE26.useDeployState)({
229
- state,
230
- script
231
- });
232
- const extensions = (0, import_react.useMemo)(() => script.source.target ? [
233
- (0, import_react_ui_editor.listener)({
234
- onChange: (text) => {
235
- if (script.source.target?.content !== text) {
236
- script.changed = true;
237
- }
238
- }
239
- }),
240
- (0, import_react_ui_editor.createDataExtensions)({
241
- id: script.id,
242
- text: (0, import_echo.createDocAccessor)(script.source.target, [
243
- "content"
244
- ]),
245
- space,
246
- identity
247
- })
248
- ] : [], [
249
- identity,
250
- space,
251
- script,
252
- script.source.target
253
- ]);
254
- return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
255
- toolbar: true
256
- }, /* @__PURE__ */ import_react.default.createElement(ScriptToolbar, {
257
- state,
258
- role,
259
- script
260
- }), /* @__PURE__ */ import_react.default.createElement(TypescriptEditor, {
261
- id: script.id,
262
- env,
263
- initialValue: script.source?.target?.content,
264
- extensions,
265
- classNames: (0, import_react_ui_editor.stackItemContentEditorClassNames)(role),
266
- inputMode: settings.editorInputMode,
267
- toolbar: true
268
- }));
269
- } finally {
270
- _effect.f();
271
- }
272
- };
273
- var ScriptContainer_default = ScriptContainer;
274
- // Annotate the CommonJS export names for ESM import in node:
275
- 0 && (module.exports = {
276
- ScriptContainer
277
- });
278
- //# sourceMappingURL=ScriptContainer-CAC7AISY.cjs.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, type StackItemContentProps } from '@dxos/react-ui-stack';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = Pick<StackItemContentProps, 'role'> & {\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, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } 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 createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>\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(() => createToolbar({ state, script, t, ...options }), [state, script, options, t]);\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 { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemedClassName, type ThemeMode, 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 }),\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": "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",
6
- "names": ["import_react", "import_echo", "import_react_ui", "import_react_ui_editor", "createToolbar", "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", "React", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "TypescriptEditor", "id", "inputMode", "toolbar", "env", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "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", "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", "settings", "editorInputMode", "identity", "useIdentity", "space", "getSpace", "useToolbarState", "useDeployState", "source", "target", "listener", "onChange", "content", "changed", "createDataExtensions", "createDocAccessor", "StackItem", "Content", "stackItemContentEditorClassNames"]
7
- }
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var app_graph_builder_25OOTBW4_exports = {};
20
- __export(app_graph_builder_25OOTBW4_exports, {
21
- default: () => app_graph_builder_default
22
- });
23
- module.exports = __toCommonJS(app_graph_builder_25OOTBW4_exports);
24
- var import_chunk_QG2X6J74 = require("./chunk-QG2X6J74.cjs");
25
- var import_rx_react = require("@effect-rx/rx-react");
26
- var import_effect = require("effect");
27
- var import_app_framework = require("@dxos/app-framework");
28
- var import_echo = require("@dxos/echo");
29
- var import_functions = require("@dxos/functions");
30
- var import_types = require("@dxos/plugin-deck/types");
31
- var import_plugin_graph = require("@dxos/plugin-graph");
32
- var app_graph_builder_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphBuilder, [
33
- (0, import_plugin_graph.createExtension)({
34
- id: `${import_chunk_QG2X6J74.meta.id}/execute`,
35
- connector: (node) => import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => import_echo.Obj.instanceOf(import_functions.ScriptType, node2.data) ? import_effect.Option.some(node2) : import_effect.Option.none()), import_effect.Option.map((node2) => [
36
- {
37
- id: [
38
- node2.id,
39
- "execute"
40
- ].join(import_types.ATTENDABLE_PATH_SEPARATOR),
41
- type: import_types.PLANK_COMPANION_TYPE,
42
- data: "execute",
43
- properties: {
44
- label: [
45
- "script test label",
46
- {
47
- ns: import_chunk_QG2X6J74.meta.id
48
- }
49
- ],
50
- icon: "ph--terminal--regular",
51
- disposition: "hidden"
52
- }
53
- }
54
- ]), import_effect.Option.getOrElse(() => [])))
55
- }),
56
- (0, import_plugin_graph.createExtension)({
57
- id: `${import_chunk_QG2X6J74.meta.id}/logs`,
58
- connector: (node) => import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => import_echo.Obj.instanceOf(import_functions.ScriptType, node2.data) ? import_effect.Option.some(node2) : import_effect.Option.none()), import_effect.Option.map((node2) => [
59
- {
60
- id: [
61
- node2.id,
62
- "logs"
63
- ].join(import_types.ATTENDABLE_PATH_SEPARATOR),
64
- type: import_types.PLANK_COMPANION_TYPE,
65
- data: "logs",
66
- properties: {
67
- label: [
68
- "script logs label",
69
- {
70
- ns: import_chunk_QG2X6J74.meta.id
71
- }
72
- ],
73
- icon: "ph--clock-countdown--regular",
74
- disposition: "hidden"
75
- }
76
- }
77
- ]), import_effect.Option.getOrElse(() => [])))
78
- })
79
- ]);
80
- //# sourceMappingURL=app-graph-builder-25OOTBW4.cjs.map
@@ -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, contributes, type PluginContext } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } 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,sBAAmB;AACnB,oBAA6B;AAE7B,2BAA8D;AAC9D,kBAAoB;AACpB,uBAA2B;AAC3B,mBAAgE;AAChE,0BAAgC;AAIhC,IAAA,4BAAe,CAACA,gBACdC,kCAAYC,kCAAaC,iBAAiB;MACxCC,qCAAgB;IACdC,IAAI,GAAGC,2BAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,mBAAGC,KAAK,CAACC,YACPC,oBACED,IAAIH,IAAAA,GACJK,qBAAOC,QAAQ,CAACN,UAAUO,gBAAIC,WAAWC,6BAAYT,MAAKU,IAAI,IAAIL,qBAAOM,KAAKX,KAAAA,IAAQK,qBAAOO,KAAI,CAAA,GACjGP,qBAAOQ,IAAI,CAACb,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAWiB,KAAKC,sCAAAA;QAC9BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAItB,2BAAKD;YAAG;;UAC3CwB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACDjB,qBAAOkB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;MACA3B,qCAAgB;IACdC,IAAI,GAAGC,2BAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,mBAAGC,KAAK,CAACC,YACPC,oBACED,IAAIH,IAAAA,GACJK,qBAAOC,QAAQ,CAACN,UAAUO,gBAAIC,WAAWC,6BAAYT,MAAKU,IAAI,IAAIL,qBAAOM,KAAKX,KAAAA,IAAQK,qBAAOO,KAAI,CAAA,GACjGP,qBAAOQ,IAAI,CAACb,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAQiB,KAAKC,sCAAAA;QAC3BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAItB,2BAAKD;YAAG;;UAC3CwB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACDjB,qBAAOkB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["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
- }