@dxos/plugin-script 0.7.5-labs.e27f9b9 → 0.7.5-labs.f400bbc

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 (231) hide show
  1. package/dist/lib/browser/ScriptContainer-3RFMYKTV.mjs +258 -0
  2. package/dist/lib/browser/ScriptContainer-3RFMYKTV.mjs.map +7 -0
  3. package/dist/lib/browser/artifact-definition-4LWPD3DH.mjs +251 -0
  4. package/dist/lib/browser/artifact-definition-4LWPD3DH.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-SJ4J527G.mjs → chunk-5SXOHNAK.mjs} +4 -4
  6. package/dist/lib/browser/chunk-5SXOHNAK.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-ZM6T4HPR.mjs → chunk-6MOQ4BP3.mjs} +2 -2
  8. package/dist/lib/browser/chunk-FVVCAWNP.mjs +21 -0
  9. package/dist/lib/browser/chunk-FVVCAWNP.mjs.map +7 -0
  10. package/dist/lib/browser/{ScriptContainer-EBER222J.mjs → chunk-G2FYNDU4.mjs} +94 -305
  11. package/dist/lib/browser/chunk-G2FYNDU4.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-XPGBHZ3L.mjs → chunk-N46LE7FS.mjs} +2 -2
  13. package/dist/lib/browser/chunk-PZPYF7M4.mjs +69 -0
  14. package/dist/lib/browser/chunk-PZPYF7M4.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PEYUXEY6.mjs → chunk-VTWBVFBK.mjs} +5 -7
  16. package/dist/lib/browser/{chunk-PEYUXEY6.mjs.map → chunk-VTWBVFBK.mjs.map} +3 -3
  17. package/dist/lib/browser/{compiler-HT53ILG7.mjs → compiler-YY2XSKHQ.mjs} +4 -6
  18. package/dist/lib/browser/compiler-YY2XSKHQ.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +67 -36
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/{intent-resolver-G2REMZHC.mjs → intent-resolver-D6FPY5ZA.mjs} +4 -4
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/{react-surface-GH4LL6CF.mjs → react-surface-G4C2PZ2K.mjs} +26 -10
  24. package/dist/lib/browser/react-surface-G4C2PZ2K.mjs.map +7 -0
  25. package/dist/lib/browser/{settings-YQQEU3DF.mjs → settings-SZCDKHWO.mjs} +3 -3
  26. package/dist/lib/browser/types.mjs +2 -2
  27. package/dist/lib/node/ScriptContainer-G6FZU4AM.cjs +274 -0
  28. package/dist/lib/node/ScriptContainer-G6FZU4AM.cjs.map +7 -0
  29. package/dist/lib/node/artifact-definition-BXQCFPAH.cjs +267 -0
  30. package/dist/lib/node/artifact-definition-BXQCFPAH.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-EFTZN5X7.cjs → chunk-5UH3F7TA.cjs} +8 -5
  32. package/dist/lib/node/chunk-5UH3F7TA.cjs.map +7 -0
  33. package/dist/lib/node/{chunk-A2DI2G4D.cjs → chunk-ALY3N6PW.cjs} +6 -6
  34. package/dist/lib/node/{chunk-6VKZJ4MH.cjs → chunk-DJGLGRQV.cjs} +6 -6
  35. package/dist/lib/node/chunk-ITAJ3WRW.cjs +77 -0
  36. package/dist/lib/node/chunk-ITAJ3WRW.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-DQRAVZM7.cjs → chunk-K3ZZWVXS.cjs} +7 -7
  38. package/dist/lib/node/chunk-K3ZZWVXS.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-UAHKFS7F.cjs → chunk-TOXBGIEI.cjs} +9 -12
  40. package/dist/lib/node/{chunk-UAHKFS7F.cjs.map → chunk-TOXBGIEI.cjs.map} +3 -3
  41. package/dist/lib/node/chunk-XKYJYY3T.cjs +498 -0
  42. package/dist/lib/node/chunk-XKYJYY3T.cjs.map +7 -0
  43. package/dist/lib/node/{compiler-457ZR24G.cjs → compiler-UIBLKJKG.cjs} +9 -9
  44. package/dist/lib/node/compiler-UIBLKJKG.cjs.map +7 -0
  45. package/dist/lib/node/index.cjs +77 -48
  46. package/dist/lib/node/index.cjs.map +4 -4
  47. package/dist/lib/node/{intent-resolver-IWGK77AZ.cjs → intent-resolver-NYJFPD5B.cjs} +9 -9
  48. package/dist/lib/node/meta.json +1 -1
  49. package/dist/lib/node/{react-surface-3JKCVT5O.cjs → react-surface-EGSE3FMN.cjs} +33 -21
  50. package/dist/lib/node/react-surface-EGSE3FMN.cjs.map +7 -0
  51. package/dist/lib/node/{settings-NGHDYAVK.cjs → settings-SZFSMSKM.cjs} +9 -9
  52. package/dist/lib/node/types.cjs +4 -4
  53. package/dist/lib/node/types.cjs.map +1 -1
  54. package/dist/lib/node-esm/ScriptContainer-7FTCFIF3.mjs +259 -0
  55. package/dist/lib/node-esm/ScriptContainer-7FTCFIF3.mjs.map +7 -0
  56. package/dist/lib/node-esm/artifact-definition-KT4DK2LQ.mjs +252 -0
  57. package/dist/lib/node-esm/artifact-definition-KT4DK2LQ.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-XUWS7OTK.mjs → chunk-2AFXX34U.mjs} +4 -4
  59. package/dist/lib/node-esm/chunk-2AFXX34U.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-675XSDRN.mjs → chunk-CP5LXTK5.mjs} +2 -2
  61. package/dist/lib/node-esm/{ScriptContainer-56ES2HQ5.mjs → chunk-NRICF4KE.mjs} +94 -305
  62. package/dist/lib/node-esm/chunk-NRICF4KE.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-BHP545D7.mjs → chunk-P2V2Y5LV.mjs} +5 -2
  64. package/dist/lib/node-esm/chunk-P2V2Y5LV.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-TYGM5YLW.mjs → chunk-S64WSJQK.mjs} +5 -7
  66. package/dist/lib/node-esm/{chunk-TYGM5YLW.mjs.map → chunk-S64WSJQK.mjs.map} +3 -3
  67. package/dist/lib/node-esm/{chunk-JHGOPQVO.mjs → chunk-UNQFIERE.mjs} +2 -2
  68. package/dist/lib/node-esm/chunk-YIWRJ25J.mjs +71 -0
  69. package/dist/lib/node-esm/chunk-YIWRJ25J.mjs.map +7 -0
  70. package/dist/lib/node-esm/{compiler-PEARFTFR.mjs → compiler-XTXFGZJM.mjs} +4 -6
  71. package/dist/lib/node-esm/compiler-XTXFGZJM.mjs.map +7 -0
  72. package/dist/lib/node-esm/index.mjs +67 -36
  73. package/dist/lib/node-esm/index.mjs.map +4 -4
  74. package/dist/lib/node-esm/{intent-resolver-KGADFH3H.mjs → intent-resolver-KLBHSMW4.mjs} +4 -4
  75. package/dist/lib/node-esm/meta.json +1 -1
  76. package/dist/lib/node-esm/{react-surface-JW776PVP.mjs → react-surface-7YSGHZQM.mjs} +26 -10
  77. package/dist/lib/node-esm/react-surface-7YSGHZQM.mjs.map +7 -0
  78. package/dist/lib/node-esm/{settings-XGXDY4NI.mjs → settings-GR4O2WHZ.mjs} +3 -3
  79. package/dist/lib/node-esm/types.mjs +2 -2
  80. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/artifact-definition.d.ts +11 -0
  82. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/index.d.ts +1 -0
  84. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  86. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +1 -2
  87. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -1
  88. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +3 -4
  89. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  90. package/dist/types/src/components/ScriptContainer.d.ts +2 -3
  91. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  92. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +1 -2
  93. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -1
  94. package/dist/types/src/components/ScriptSettingsPanel.d.ts +1 -2
  95. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
  96. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +2 -3
  97. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  98. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +1 -2
  99. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  100. package/dist/types/src/components/index.d.ts +2 -2
  101. package/dist/types/src/components/index.d.ts.map +1 -1
  102. package/dist/types/src/events.d.ts +4 -0
  103. package/dist/types/src/events.d.ts.map +1 -0
  104. package/dist/types/src/hooks/deploy.d.ts.map +1 -0
  105. package/dist/types/src/hooks/format.d.ts.map +1 -0
  106. package/dist/types/src/hooks/index.d.ts +7 -0
  107. package/dist/types/src/hooks/index.d.ts.map +1 -0
  108. package/dist/types/src/{components/ScriptToolbar/templateSelect.d.ts → hooks/template.d.ts} +2 -2
  109. package/dist/types/src/hooks/template.d.ts.map +1 -0
  110. package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarAction.d.ts +1 -1
  111. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -0
  112. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -0
  113. package/dist/types/src/{components/ScriptToolbar → hooks}/view.d.ts +1 -1
  114. package/dist/types/src/hooks/view.d.ts.map +1 -0
  115. package/dist/types/src/index.d.ts +0 -1
  116. package/dist/types/src/index.d.ts.map +1 -1
  117. package/dist/types/src/meta.d.ts +1 -0
  118. package/dist/types/src/meta.d.ts.map +1 -1
  119. package/dist/types/src/templates/chess.d.ts +1 -4
  120. package/dist/types/src/templates/chess.d.ts.map +1 -1
  121. package/dist/types/src/templates/discord.d.ts +3 -0
  122. package/dist/types/src/templates/discord.d.ts.map +1 -0
  123. package/dist/types/src/templates/forex-effect.d.ts +0 -3
  124. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  125. package/dist/types/src/templates/forex.d.ts +0 -3
  126. package/dist/types/src/templates/forex.d.ts.map +1 -1
  127. package/dist/types/src/templates/index.d.ts.map +1 -1
  128. package/dist/types/src/translations.d.ts +3 -0
  129. package/dist/types/src/translations.d.ts.map +1 -1
  130. package/dist/types/src/types.d.ts +1 -1
  131. package/package.json +43 -42
  132. package/src/ScriptPlugin.tsx +40 -15
  133. package/src/capabilities/artifact-definition.ts +224 -0
  134. package/src/capabilities/compiler.ts +1 -1
  135. package/src/capabilities/index.ts +1 -0
  136. package/src/capabilities/react-surface.tsx +11 -4
  137. package/src/components/DebugPanel/DebugPanel.tsx +2 -2
  138. package/src/components/FrameContainer/FrameContainer.tsx +5 -4
  139. package/src/components/ScriptContainer.tsx +10 -5
  140. package/src/components/ScriptSettingsPanel.tsx +2 -2
  141. package/src/components/ScriptToolbar/ScriptToolbar.tsx +8 -6
  142. package/src/components/TypescriptEditor/TypescriptEditor.tsx +2 -2
  143. package/src/components/index.ts +1 -1
  144. package/src/events.ts +11 -0
  145. package/src/{components/ScriptToolbar → hooks}/deploy.ts +16 -5
  146. package/src/{components/ScriptToolbar → hooks}/format.ts +1 -1
  147. package/src/hooks/index.ts +11 -0
  148. package/src/{components/ScriptToolbar/templateSelect.ts → hooks/template.ts} +2 -2
  149. package/src/{components/ScriptToolbar → hooks}/useToolbarAction.ts +1 -1
  150. package/src/{components/ScriptToolbar → hooks}/view.ts +5 -2
  151. package/src/index.ts +0 -1
  152. package/src/meta.ts +3 -1
  153. package/src/templates/chat.ts +4 -4
  154. package/src/templates/chess.ts +42 -35
  155. package/src/templates/discord.ts +103 -0
  156. package/src/templates/forex-effect.ts +16 -17
  157. package/src/templates/forex.ts +2 -3
  158. package/src/templates/index.ts +10 -2
  159. package/src/translations.ts +3 -0
  160. package/dist/lib/browser/AutomationPanel-OOIRJFPJ.mjs +0 -78
  161. package/dist/lib/browser/AutomationPanel-OOIRJFPJ.mjs.map +0 -7
  162. package/dist/lib/browser/ScriptContainer-EBER222J.mjs.map +0 -7
  163. package/dist/lib/browser/chunk-5BU5ERNU.mjs +0 -18
  164. package/dist/lib/browser/chunk-5BU5ERNU.mjs.map +0 -7
  165. package/dist/lib/browser/chunk-SDHKTS6H.mjs +0 -237
  166. package/dist/lib/browser/chunk-SDHKTS6H.mjs.map +0 -7
  167. package/dist/lib/browser/chunk-SJ4J527G.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-VIX22OMB.mjs +0 -60
  169. package/dist/lib/browser/chunk-VIX22OMB.mjs.map +0 -7
  170. package/dist/lib/browser/compiler-HT53ILG7.mjs.map +0 -7
  171. package/dist/lib/browser/react-surface-GH4LL6CF.mjs.map +0 -7
  172. package/dist/lib/node/AutomationPanel-EPRDDR3A.cjs +0 -104
  173. package/dist/lib/node/AutomationPanel-EPRDDR3A.cjs.map +0 -7
  174. package/dist/lib/node/ScriptContainer-UXMQLKDV.cjs +0 -690
  175. package/dist/lib/node/ScriptContainer-UXMQLKDV.cjs.map +0 -7
  176. package/dist/lib/node/chunk-DQRAVZM7.cjs.map +0 -7
  177. package/dist/lib/node/chunk-EFTZN5X7.cjs.map +0 -7
  178. package/dist/lib/node/chunk-PKT5DD3O.cjs +0 -70
  179. package/dist/lib/node/chunk-PKT5DD3O.cjs.map +0 -7
  180. package/dist/lib/node/chunk-T4TXCRN5.cjs +0 -260
  181. package/dist/lib/node/chunk-T4TXCRN5.cjs.map +0 -7
  182. package/dist/lib/node/compiler-457ZR24G.cjs.map +0 -7
  183. package/dist/lib/node/react-surface-3JKCVT5O.cjs.map +0 -7
  184. package/dist/lib/node-esm/AutomationPanel-DMLAGQS5.mjs +0 -79
  185. package/dist/lib/node-esm/AutomationPanel-DMLAGQS5.mjs.map +0 -7
  186. package/dist/lib/node-esm/ScriptContainer-56ES2HQ5.mjs.map +0 -7
  187. package/dist/lib/node-esm/chunk-BHP545D7.mjs.map +0 -7
  188. package/dist/lib/node-esm/chunk-G76M6O46.mjs +0 -239
  189. package/dist/lib/node-esm/chunk-G76M6O46.mjs.map +0 -7
  190. package/dist/lib/node-esm/chunk-NBAL5DXN.mjs +0 -62
  191. package/dist/lib/node-esm/chunk-NBAL5DXN.mjs.map +0 -7
  192. package/dist/lib/node-esm/chunk-XUWS7OTK.mjs.map +0 -7
  193. package/dist/lib/node-esm/compiler-PEARFTFR.mjs.map +0 -7
  194. package/dist/lib/node-esm/react-surface-JW776PVP.mjs.map +0 -7
  195. package/dist/types/src/bundler/bundler.d.ts +0 -39
  196. package/dist/types/src/bundler/bundler.d.ts.map +0 -1
  197. package/dist/types/src/bundler/bundler.test.d.ts +0 -2
  198. package/dist/types/src/bundler/bundler.test.d.ts.map +0 -1
  199. package/dist/types/src/bundler/index.d.ts +0 -2
  200. package/dist/types/src/bundler/index.d.ts.map +0 -1
  201. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +0 -17
  202. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +0 -1
  203. package/dist/types/src/components/AutomationPanel/index.d.ts +0 -4
  204. package/dist/types/src/components/AutomationPanel/index.d.ts.map +0 -1
  205. package/dist/types/src/components/ScriptToolbar/deploy.d.ts.map +0 -1
  206. package/dist/types/src/components/ScriptToolbar/format.d.ts.map +0 -1
  207. package/dist/types/src/components/ScriptToolbar/templateSelect.d.ts.map +0 -1
  208. package/dist/types/src/components/ScriptToolbar/useToolbarAction.d.ts.map +0 -1
  209. package/dist/types/src/components/ScriptToolbar/useToolbarState.d.ts.map +0 -1
  210. package/dist/types/src/components/ScriptToolbar/view.d.ts.map +0 -1
  211. package/src/bundler/bundler.test.ts +0 -55
  212. package/src/bundler/bundler.ts +0 -250
  213. package/src/bundler/index.ts +0 -5
  214. package/src/components/AutomationPanel/AutomationPanel.tsx +0 -104
  215. package/src/components/AutomationPanel/index.ts +0 -9
  216. /package/dist/lib/browser/{chunk-ZM6T4HPR.mjs.map → chunk-6MOQ4BP3.mjs.map} +0 -0
  217. /package/dist/lib/browser/{chunk-XPGBHZ3L.mjs.map → chunk-N46LE7FS.mjs.map} +0 -0
  218. /package/dist/lib/browser/{intent-resolver-G2REMZHC.mjs.map → intent-resolver-D6FPY5ZA.mjs.map} +0 -0
  219. /package/dist/lib/browser/{settings-YQQEU3DF.mjs.map → settings-SZCDKHWO.mjs.map} +0 -0
  220. /package/dist/lib/node/{chunk-A2DI2G4D.cjs.map → chunk-ALY3N6PW.cjs.map} +0 -0
  221. /package/dist/lib/node/{chunk-6VKZJ4MH.cjs.map → chunk-DJGLGRQV.cjs.map} +0 -0
  222. /package/dist/lib/node/{intent-resolver-IWGK77AZ.cjs.map → intent-resolver-NYJFPD5B.cjs.map} +0 -0
  223. /package/dist/lib/node/{settings-NGHDYAVK.cjs.map → settings-SZFSMSKM.cjs.map} +0 -0
  224. /package/dist/lib/node-esm/{chunk-675XSDRN.mjs.map → chunk-CP5LXTK5.mjs.map} +0 -0
  225. /package/dist/lib/node-esm/{chunk-JHGOPQVO.mjs.map → chunk-UNQFIERE.mjs.map} +0 -0
  226. /package/dist/lib/node-esm/{intent-resolver-KGADFH3H.mjs.map → intent-resolver-KLBHSMW4.mjs.map} +0 -0
  227. /package/dist/lib/node-esm/{settings-XGXDY4NI.mjs.map → settings-GR4O2WHZ.mjs.map} +0 -0
  228. /package/dist/types/src/{components/ScriptToolbar → hooks}/deploy.d.ts +0 -0
  229. /package/dist/types/src/{components/ScriptToolbar → hooks}/format.d.ts +0 -0
  230. /package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarState.d.ts +0 -0
  231. /package/src/{components/ScriptToolbar → hooks}/useToolbarState.ts +0 -0
@@ -1,41 +1,48 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
1
+ // @ts-ignore
2
+ import { defineFunction, S } from 'dxos:functions';
5
3
  // @ts-ignore
6
4
  import { Chess } from 'https://esm.sh/chess.js@0.13.1';
7
5
 
8
- /**
9
- * Plays a random move in a chess game.
10
- */
11
- export default async ({
12
- event: {
13
- data: { request },
14
- },
15
- context: { space },
16
- }: any) => {
17
- const {
18
- data: {
19
- objects: [gameId],
20
- player = 'b',
21
- },
22
- } = await request.json();
6
+ export default defineFunction({
7
+ description: 'Plays a random move in a chess game.',
23
8
 
24
- const { pgn } = await space.crud.query({ id: gameId }).first();
25
- const game = new Chess();
26
- game.load_pgn(pgn);
27
- if (game.turn() !== player) {
28
- return new Response('Invalid turn', { status: 409 });
29
- }
9
+ inputSchema: S.Struct({
10
+ changedObjectId: S.String.annotations({
11
+ description: 'The objects to play the game on.',
12
+ }),
13
+ player: S.optional(S.Literal('w', 'b')).annotations({
14
+ description: 'The player to play the game as.',
15
+ }),
16
+ }),
30
17
 
31
- const moves = game.moves();
32
- const move = moves[Math.floor(Math.random() * moves.length)];
33
- if (!move) {
34
- return new Response('No legal moves', { status: 406 });
35
- }
18
+ outputSchema: S.Struct({
19
+ state: S.String.annotations({
20
+ description: 'The state of the game as an ASCII art board.',
21
+ }),
22
+ }),
36
23
 
37
- game.move(move);
38
- const newPgn = game.pgn();
39
- await space.crud.update({ id: gameId }, { pgn: newPgn });
40
- return new Response(game.ascii());
41
- };
24
+ handler: async ({
25
+ event: {
26
+ data: { changedObjectId, player = 'b' },
27
+ },
28
+ context: { space },
29
+ }: any) => {
30
+ const { pgn } = await space.db.query({ id: changedObjectId }).first();
31
+ const game = new Chess();
32
+ game.load_pgn(pgn);
33
+ if (game.turn() !== player) {
34
+ return new Response('Invalid turn', { status: 409 });
35
+ }
36
+
37
+ const moves = game.moves();
38
+ const move = moves[Math.floor(Math.random() * moves.length)];
39
+ if (!move) {
40
+ return new Response('No legal moves', { status: 406 });
41
+ }
42
+
43
+ game.move(move);
44
+ const newPgn = game.pgn();
45
+ await space.db.update({ id: changedObjectId }, { pgn: newPgn, fen: game.fen() });
46
+ return { state: game.ascii() };
47
+ },
48
+ });
@@ -0,0 +1,103 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @ts-ignore
6
+ import { createStatic, EchoObject, defineFunction, DXN, Filter, ObjectId, S } from 'dxos:functions';
7
+ import {
8
+ FetchHttpClient,
9
+ // @ts-ignore
10
+ } from 'https://esm.sh/@effect/platform@0.77.2?deps=effect@3.13.3';
11
+ // @ts-ignore
12
+ import { DiscordConfig, DiscordREST, DiscordRESTMemoryLive } from 'https://esm.sh/dfx@0.113.0?deps=effect@3.13.3';
13
+ // @ts-ignore
14
+ import { Effect, Config, Redacted, Ref } from 'https://esm.sh/effect@3.13.3';
15
+
16
+ const MessageSchema = S.Struct({
17
+ id: S.String,
18
+ foreignId: S.Any, // bigint?
19
+ from: S.String,
20
+ created: S.String,
21
+ content: S.String,
22
+ }).pipe(EchoObject('example.com/type/Message', '0.1.0'));
23
+
24
+ const DEFAULT_AFTER = 1704067200; // 2024-01-01
25
+
26
+ const generateSnowflake = (unixTimestamp: number): bigint => {
27
+ const discordEpoch = 1420070400000n; // Discord Epoch (ms)
28
+ return (BigInt(unixTimestamp * 1000) - discordEpoch) << 22n;
29
+ };
30
+
31
+ export default defineFunction({
32
+ inputSchema: S.Struct({
33
+ // TODO(wittjosiah): Remove. This is used to provide a terminal for a cron trigger.
34
+ tick: S.optional(S.String),
35
+ channelId: S.String,
36
+ after: S.optional(S.Number),
37
+ pageSize: S.optional(S.Number),
38
+ queueId: S.String,
39
+ }),
40
+
41
+ outputSchema: S.Struct({
42
+ newMessages: S.Number,
43
+ }),
44
+
45
+ handler: ({
46
+ event: {
47
+ data: { channelId, queueId, after = DEFAULT_AFTER, pageSize = 5 },
48
+ },
49
+ context: { space },
50
+ }: any) =>
51
+ Effect.gen(function* () {
52
+ const { token } = yield* Effect.tryPromise(() =>
53
+ space.db.query(Filter.typename('dxos.org/type/AccessToken', { source: 'discord.com' })).first(),
54
+ );
55
+ const { objects } = yield* Effect.tryPromise(() => space.queues.queryQueue(DXN.parse(queueId)));
56
+ const backfill = objects.length === 0;
57
+ const newMessages = yield* Ref.make(0);
58
+ const lastMessage = yield* Ref.make(objects.at(-1));
59
+
60
+ const enqueueMessages = Effect.gen(function* () {
61
+ const rest = yield* DiscordREST;
62
+
63
+ while (true) {
64
+ const last = yield* Ref.get(lastMessage);
65
+ const options = {
66
+ after: backfill && !last ? `${generateSnowflake(after)}` : last?.foreignId,
67
+ limit: pageSize,
68
+ };
69
+ const messages = yield* rest.getChannelMessages(channelId, options).pipe((res: any) => res.json);
70
+ const queueMessages = messages
71
+ .map((message: any) =>
72
+ createStatic(MessageSchema, {
73
+ id: ObjectId.random(),
74
+ foreignId: message.id,
75
+ from: message.author.username,
76
+ created: message.timestamp,
77
+ content: message.content,
78
+ }),
79
+ )
80
+ .toReversed();
81
+ if (queueMessages.length > 0) {
82
+ yield* Effect.tryPromise(() => space.queues.insertIntoQueue(DXN.parse(queueId), queueMessages));
83
+ yield* Ref.update(newMessages, (n: any) => n + queueMessages.length);
84
+ yield* Ref.update(lastMessage, (m: any) => queueMessages.at(-1));
85
+ }
86
+ if (messages.length < pageSize) {
87
+ break;
88
+ }
89
+ }
90
+ }).pipe(
91
+ Effect.provide(DiscordRESTMemoryLive),
92
+ Effect.provide(
93
+ DiscordConfig.layerConfig({
94
+ token: Config.succeed(Redacted.make(token)),
95
+ }),
96
+ ),
97
+ Effect.provide(FetchHttpClient.layer),
98
+ );
99
+
100
+ yield* enqueueMessages;
101
+ return { newMessages: yield* Ref.get(newMessages) };
102
+ }),
103
+ });
@@ -7,36 +7,35 @@ import { defineFunction, S } from 'dxos:functions';
7
7
  import {
8
8
  HttpClient,
9
9
  HttpClientRequest,
10
- HttpClientResponse,
11
- HttpClientError,
10
+ FetchHttpClient,
12
11
  // @ts-ignore
13
- } from 'https://esm.sh/@effect/platform@0.61.0?deps=effect@3.6.0';
12
+ } from 'https://esm.sh/@effect/platform@0.77.2?deps=effect@3.13.3';
14
13
  // @ts-ignore
15
- import type { Cause } from 'https://esm.sh/effect@3.6.0';
16
- // @ts-ignore
17
- import { Effect, Schedule } from 'https://esm.sh/effect@3.6.0';
14
+ import { Effect, Schedule } from 'https://esm.sh/effect@3.13.3';
18
15
 
19
- /**
20
- * Returns the exchange rate between two currencies.
21
- */
22
16
  export default defineFunction({
17
+ description: 'Returns the exchange rate between two currencies.',
18
+
23
19
  inputSchema: S.Struct({
24
20
  from: S.String.annotations({ description: 'The source currency' }),
25
21
  to: S.String.annotations({ description: 'The target currency' }),
26
22
  }),
27
23
 
28
- outputSchema: S.String,
24
+ outputSchema: S.String.annotations({ description: 'The exchange rate between the two currencies' }),
29
25
 
30
26
  handler: async ({
31
27
  event: {
32
28
  data: { from, to },
33
29
  },
34
30
  }: any) =>
35
- HttpClientRequest.get(`https://free.ratesdb.com/v1/rates?from=${from}&to=${to}`).pipe(
36
- HttpClient.fetchOk,
37
- HttpClientResponse.json,
38
- Effect.timeout('1 second'),
39
- Effect.retry(Schedule.exponential(1000).pipe(Schedule.compose(Schedule.recurs(3)))),
40
- Effect.map(({ data: { rates } }: any) => rates[to].toString()),
41
- ),
31
+ Effect.gen(function* () {
32
+ const res = yield* HttpClientRequest.get(`https://free.ratesdb.com/v1/rates?from=${from}&to=${to}`).pipe(
33
+ HttpClient.execute,
34
+ Effect.flatMap((res: any) => res.json),
35
+ Effect.timeout('1 second'),
36
+ Effect.retry(Schedule.exponential(1000).pipe(Schedule.compose(Schedule.recurs(3)))),
37
+ Effect.scoped,
38
+ );
39
+ return res.data.rates[to].toString();
40
+ }).pipe(Effect.provide(FetchHttpClient.layer)),
42
41
  });
@@ -5,10 +5,9 @@
5
5
  // @ts-ignore
6
6
  import { defineFunction, S } from 'dxos:functions';
7
7
 
8
- /**
9
- * Returns the exchange rate between two currencies.
10
- */
11
8
  export default defineFunction({
9
+ description: 'Returns the exchange rate between two currencies.',
10
+
12
11
  inputSchema: S.Struct({
13
12
  from: S.String.annotations({ description: 'The source currency' }),
14
13
  to: S.String.annotations({ description: 'The target currency' }),
@@ -7,13 +7,15 @@ import chat from './chat.ts?raw';
7
7
  // @ts-ignore
8
8
  import chess from './chess.ts?raw';
9
9
  // @ts-ignore
10
+ import discord from './discord.ts?raw';
11
+ // @ts-ignore
10
12
  import echo from './echo.ts?raw';
11
13
  // @ts-ignore
12
14
  import email from './email.ts?raw';
13
15
  // @ts-ignore
14
- import forex from './forex.ts?raw';
15
- // @ts-ignore
16
16
  import forexEffect from './forex-effect.ts?raw';
17
+ // @ts-ignore
18
+ import forex from './forex.ts?raw';
17
19
 
18
20
  const removeHeader = (str: string) => str.split('\n').slice(4).join('\n');
19
21
 
@@ -58,4 +60,10 @@ export const templates: Template[] = [
58
60
  source: removeHeader(email),
59
61
  presetId: 'dxos.org/function/email',
60
62
  },
63
+ {
64
+ id: 'dxos.org/script/discord',
65
+ name: 'Discord',
66
+ source: removeHeader(discord),
67
+ presetId: 'dxos.org/function/discord',
68
+ },
61
69
  ];
@@ -49,7 +49,10 @@ export default [
49
49
  'view editor label': 'Editor',
50
50
  'view split label': 'Split',
51
51
  'view debug label': 'Debug',
52
+ // TODO(wittjosiah): Replace debug with logs.
53
+ // 'view logs label': 'Logs',
52
54
  'template select group label': 'Select template',
55
+ 'function panel label': 'Debug Function',
53
56
  },
54
57
  },
55
58
  },
@@ -1,78 +0,0 @@
1
- import {
2
- DebugPanel
3
- } from "./chunk-SJ4J527G.mjs";
4
- import {
5
- SCRIPT_PLUGIN
6
- } from "./chunk-5BU5ERNU.mjs";
7
-
8
- // packages/plugins/experimental/plugin-script/src/components/AutomationPanel/AutomationPanel.tsx
9
- import React, { useMemo, useState } from "react";
10
- import { failUndefined } from "@dxos/debug";
11
- import { FunctionType, ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
12
- import { useClient } from "@dxos/react-client";
13
- import { Filter, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
14
- import { Select, useTranslation } from "@dxos/react-ui";
15
- var AutomationPanel = ({ subject }) => {
16
- const { t } = useTranslation(SCRIPT_PLUGIN);
17
- const space = getSpace(subject);
18
- const functions = useQuery(space ?? void 0, subject instanceof ScriptType ? Filter.schema(FunctionType, {
19
- source: subject
20
- }) : Filter.schema(FunctionType, (fn) => fn.binding != null), {}, [
21
- subject
22
- ]);
23
- const [selectedFunction, setSelectedFunction] = useState(null);
24
- const chatFunction = subject instanceof ScriptType ? functions[0] : selectedFunction;
25
- return /* @__PURE__ */ React.createElement("div", {
26
- className: "h-full flex flex-col"
27
- }, !(subject instanceof ScriptType) && /* @__PURE__ */ React.createElement(BindingSelect, {
28
- selectedFunction,
29
- setSelectedFunction,
30
- functions
31
- }), chatFunction && /* @__PURE__ */ React.createElement(ChatPanel, {
32
- fn: chatFunction,
33
- subject
34
- }), subject instanceof ScriptType && functions.length === 0 && /* @__PURE__ */ React.createElement("div", {
35
- className: "p-1"
36
- }, t("not deployed")));
37
- };
38
- var ChatPanel = ({ fn, subject }) => {
39
- const client = useClient();
40
- const space = getSpace(fn);
41
- const existingFunctionUrl = getUserFunctionUrlInMetadata(getMeta(fn));
42
- const functionUrl = useMemo(() => {
43
- if (!existingFunctionUrl) {
44
- return;
45
- }
46
- return getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? "", {
47
- spaceId: space?.id,
48
- subjectId: subject?.id
49
- });
50
- }, [
51
- existingFunctionUrl,
52
- space,
53
- subject
54
- ]);
55
- return /* @__PURE__ */ React.createElement(DebugPanel, {
56
- functionUrl,
57
- classNames: "flex-1"
58
- });
59
- };
60
- var BindingSelect = ({ selectedFunction, setSelectedFunction, functions }) => {
61
- return /* @__PURE__ */ React.createElement(Select.Root, {
62
- value: selectedFunction?.id,
63
- onValueChange: (id) => setSelectedFunction(functions.find((fn) => fn.id === id) ?? failUndefined())
64
- }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
65
- placeholder: "Select value"
66
- }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.ScrollUpButton, null), /* @__PURE__ */ React.createElement(Select.Viewport, null, functions.map(({ id, binding }) => /* @__PURE__ */ React.createElement(Select.Option, {
67
- key: id,
68
- value: id
69
- }, binding))), /* @__PURE__ */ React.createElement(Select.ScrollDownButton, null), /* @__PURE__ */ React.createElement(Select.Arrow, null))));
70
- };
71
-
72
- // packages/plugins/experimental/plugin-script/src/components/AutomationPanel/index.ts
73
- var AutomationPanel_default = AutomationPanel;
74
- export {
75
- AutomationPanel,
76
- AutomationPanel_default as default
77
- };
78
- //# sourceMappingURL=AutomationPanel-OOIRJFPJ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/AutomationPanel/AutomationPanel.tsx", "../../../src/components/AutomationPanel/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useMemo, useState } from 'react';\n\nimport { failUndefined } from '@dxos/debug';\nimport { FunctionType, ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getMeta, getSpace, type ReactiveEchoObject, useQuery } from '@dxos/react-client/echo';\nimport { Select, useTranslation } from '@dxos/react-ui';\n\nimport { SCRIPT_PLUGIN } from '../../meta';\nimport { DebugPanel } from '../DebugPanel';\n\nexport interface AutomationPanelProps {\n subject: ReactiveEchoObject<any>;\n}\n\nexport const AutomationPanel = ({ subject }: AutomationPanelProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const space = getSpace(subject);\n\n // TODO(dmaretskyi): Parametric query.\n const functions = useQuery(\n space ?? undefined,\n subject instanceof ScriptType\n ? Filter.schema(FunctionType, { source: subject })\n : Filter.schema(FunctionType, (fn) => fn.binding != null),\n {},\n [subject],\n );\n\n const [selectedFunction, setSelectedFunction] = useState<FunctionType | null>(null);\n const chatFunction = subject instanceof ScriptType ? functions[0] : selectedFunction;\n\n return (\n <div className='h-full flex flex-col'>\n {!(subject instanceof ScriptType) && (\n <BindingSelect\n selectedFunction={selectedFunction}\n setSelectedFunction={setSelectedFunction}\n functions={functions}\n />\n )}\n {chatFunction && <ChatPanel fn={chatFunction} subject={subject} />}\n {subject instanceof ScriptType && functions.length === 0 && <div className='p-1'>{t('not deployed')}</div>}\n </div>\n );\n};\n\nexport interface ChatPanelProps {\n fn: FunctionType;\n subject: ReactiveEchoObject<any>;\n}\n\nconst ChatPanel = ({ fn, subject }: ChatPanelProps) => {\n const client = useClient();\n const space = getSpace(fn);\n const existingFunctionUrl = getUserFunctionUrlInMetadata(getMeta(fn));\n const functionUrl = useMemo(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n return getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n subjectId: subject?.id,\n });\n }, [existingFunctionUrl, space, subject]);\n\n return <DebugPanel functionUrl={functionUrl} classNames='flex-1' />;\n};\n\nexport interface BindingSelectProps {\n selectedFunction: FunctionType | null;\n setSelectedFunction: (fn: FunctionType) => void;\n functions: FunctionType[];\n}\n\nconst BindingSelect = ({ selectedFunction, setSelectedFunction, functions }: BindingSelectProps) => {\n return (\n <Select.Root\n value={selectedFunction?.id}\n onValueChange={(id) => setSelectedFunction(functions.find((fn) => fn.id === id) ?? failUndefined())}\n >\n <Select.TriggerButton placeholder='Select value' />\n <Select.Portal>\n <Select.Content>\n <Select.ScrollUpButton />\n <Select.Viewport>\n {functions.map(({ id, binding }) => (\n <Select.Option key={id} value={id}>\n {binding}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton />\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { AutomationPanel } from './AutomationPanel';\n\nexport * from './AutomationPanel';\n\nexport default AutomationPanel;\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,SAASC,SAASC,gBAAgB;AAEzC,SAASC,qBAAqB;AAC9B,SAASC,cAAcC,YAAYC,kBAAkBC,oCAAoC;AACzF,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,SAASC,UAAmCC,gBAAgB;AAC7E,SAASC,QAAQC,sBAAsB;AAShC,IAAMC,kBAAkB,CAAC,EAAEC,QAAO,MAAwB;AAC/D,QAAM,EAAEC,EAAC,IAAKC,eAAeC,aAAAA;AAC7B,QAAMC,QAAQC,SAASL,OAAAA;AAGvB,QAAMM,YAAYC,SAChBH,SAASI,QACTR,mBAAmBS,aACfC,OAAOC,OAAOC,cAAc;IAAEC,QAAQb;EAAQ,CAAA,IAC9CU,OAAOC,OAAOC,cAAc,CAACE,OAAOA,GAAGC,WAAW,IAAA,GACtD,CAAC,GACD;IAACf;GAAQ;AAGX,QAAM,CAACgB,kBAAkBC,mBAAAA,IAAuBC,SAA8B,IAAA;AAC9E,QAAMC,eAAenB,mBAAmBS,aAAaH,UAAU,CAAA,IAAKU;AAEpE,SACE,sBAAA,cAACI,OAAAA;IAAIC,WAAU;KACZ,EAAErB,mBAAmBS,eACpB,sBAAA,cAACa,eAAAA;IACCN;IACAC;IACAX;MAGHa,gBAAgB,sBAAA,cAACI,WAAAA;IAAUT,IAAIK;IAAcnB;MAC7CA,mBAAmBS,cAAcH,UAAUkB,WAAW,KAAK,sBAAA,cAACJ,OAAAA;IAAIC,WAAU;KAAOpB,EAAE,cAAA,CAAA,CAAA;AAG1F;AAOA,IAAMsB,YAAY,CAAC,EAAET,IAAId,QAAO,MAAkB;AAChD,QAAMyB,SAASC,UAAAA;AACf,QAAMtB,QAAQC,SAASS,EAAAA;AACvB,QAAMa,sBAAsBC,6BAA6BC,QAAQf,EAAAA,CAAAA;AACjE,QAAMgB,cAAcC,QAAQ,MAAA;AAC1B,QAAI,CAACJ,qBAAqB;AACxB;IACF;AAEA,WAAOK,iBAAiBL,qBAAqBF,OAAOQ,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,OAAO,IAAI;MACpGC,SAASnC,OAAOoC;MAChBC,WAAWzC,SAASwC;IACtB,CAAA;EACF,GAAG;IAACb;IAAqBvB;IAAOJ;GAAQ;AAExC,SAAO,sBAAA,cAAC0C,YAAAA;IAAWZ;IAA0Ba,YAAW;;AAC1D;AAQA,IAAMrB,gBAAgB,CAAC,EAAEN,kBAAkBC,qBAAqBX,UAAS,MAAsB;AAC7F,SACE,sBAAA,cAACsC,OAAOC,MAAI;IACVC,OAAO9B,kBAAkBwB;IACzBO,eAAe,CAACP,OAAOvB,oBAAoBX,UAAU0C,KAAK,CAAClC,OAAOA,GAAG0B,OAAOA,EAAAA,KAAOS,cAAAA,CAAAA;KAEnF,sBAAA,cAACL,OAAOM,eAAa;IAACC,aAAY;MAClC,sBAAA,cAACP,OAAOQ,QAAM,MACZ,sBAAA,cAACR,OAAOS,SAAO,MACb,sBAAA,cAACT,OAAOU,gBAAc,IAAA,GACtB,sBAAA,cAACV,OAAOW,UAAQ,MACbjD,UAAUkD,IAAI,CAAC,EAAEhB,IAAIzB,QAAO,MAC3B,sBAAA,cAAC6B,OAAOa,QAAM;IAACC,KAAKlB;IAAIM,OAAON;KAC5BzB,OAAAA,CAAAA,CAAAA,GAIP,sBAAA,cAAC6B,OAAOe,kBAAgB,IAAA,GACxB,sBAAA,cAACf,OAAOgB,OAAK,IAAA,CAAA,CAAA,CAAA;AAKvB;;;AC/FA,IAAA,0BAAeC;",
6
- "names": ["React", "useMemo", "useState", "failUndefined", "FunctionType", "ScriptType", "getInvocationUrl", "getUserFunctionUrlInMetadata", "useClient", "Filter", "getMeta", "getSpace", "useQuery", "Select", "useTranslation", "AutomationPanel", "subject", "t", "useTranslation", "SCRIPT_PLUGIN", "space", "getSpace", "functions", "useQuery", "undefined", "ScriptType", "Filter", "schema", "FunctionType", "source", "fn", "binding", "selectedFunction", "setSelectedFunction", "useState", "chatFunction", "div", "className", "BindingSelect", "ChatPanel", "length", "client", "useClient", "existingFunctionUrl", "getUserFunctionUrlInMetadata", "getMeta", "functionUrl", "useMemo", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "subjectId", "DebugPanel", "classNames", "Select", "Root", "value", "onValueChange", "find", "failUndefined", "TriggerButton", "placeholder", "Portal", "Content", "ScrollUpButton", "Viewport", "map", "Option", "key", "ScrollDownButton", "Arrow", "AutomationPanel"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/ScriptToolbar/deploy.ts", "../../../src/components/ScriptToolbar/format.ts", "../../../src/components/ScriptToolbar/templateSelect.ts", "../../../src/components/ScriptToolbar/useToolbarAction.ts", "../../../src/components/ScriptToolbar/view.ts", "../../../src/components/ScriptToolbar/useToolbarState.ts", "../../../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 { type ThemedClassName } from '@dxos/react-ui';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { DebugPanel } from './DebugPanel';\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { useDeployState } from './ScriptToolbar/deploy';\nimport { useToolbarState } from './ScriptToolbar/useToolbarState';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = ThemedClassName<{\n script: ScriptType;\n settings: ScriptSettingsProps;\n role?: string;\n}> &\n Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, classNames, script, settings, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source.target && script.source.target.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source.target && createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source.target, space, identity],\n );\n\n const state = useToolbarState({ view: 'split' });\n useDeployState({ state, script });\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <div role='none' className={mx('flex flex-col w-full overflow-hidden divide-y divide-separator', classNames)}>\n {state.view !== 'debug' && (\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n className={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n )}\n\n {state.view !== 'editor' && <DebugPanel functionUrl={state.functionUrl} />}\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName } from '@dxos/react-ui';\nimport { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';\nimport { createGapSeparator, MenuProvider, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport { createDeploy } from './deploy';\nimport { createFormat } from './format';\nimport { createTemplateSelect } from './templateSelect';\nimport { useToolbarAction } from './useToolbarAction';\nimport { type ScriptToolbarState } from './useToolbarState';\nimport { createView } from './view';\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nconst createToolbar = (state: ScriptToolbarState) => {\n const templateSelect = createTemplateSelect();\n const format = createFormat();\n const gap = createGapSeparator();\n const deploy = createDeploy(state);\n const view = createView(state);\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes, ...view.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges, ...view.edges],\n };\n};\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const handleAction = useToolbarAction({ state, script });\n const toolbarCreator = useCallback(() => createToolbar(state), [state]);\n const menu = useMenuActions(toolbarCreator);\n return (\n <div role='none' className={stackItemContentToolbarClassNames(role)}>\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} onAction={handleAction} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport {\n FunctionType,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n incrementSemverPatch,\n type ScriptType,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, create, getMeta, getSpace, makeRef, useQuery } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { type ViewState } from './view';\nimport { Bundler } from '../../bundler';\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = ViewState & {\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 });\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\nconst useDeployDeps = ({ state, script }: { state: Partial<DeployState>; 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\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, existingFunctionUrl } = useDeployDeps({ state, script });\n useEffect(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n state.functionUrl = getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n }, [existingFunctionUrl, space]);\n\n useEffect(() => {\n state.deployed = Boolean(existingFunctionUrl) && !script.changed;\n }, [script.changed, existingFunctionUrl]);\n};\n\nexport const useDeployHandler = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, fn, client, existingFunctionUrl } = useDeployDeps({ state, 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 try {\n const existingFunctionId = existingFunctionUrl?.split('/').at(-1);\n\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle(script.source.target!.content);\n if (buildResult.error || !buildResult.bundle) {\n throw buildResult.error;\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: buildResult.bundle,\n });\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: functionId=${functionId}, version=${version}`);\n }\n\n log.info('function uploaded', { functionId, version });\n if (fn) {\n fn.version = version;\n }\n\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { name: functionId, version, source: makeRef(script) }));\n\n script.changed = false;\n deployedFunction.description = script.description;\n\n if (meta.inputSchema) {\n deployedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);\n\n state.view = 'split';\n } catch (err: any) {\n log.catch(err);\n state.error = t('upload failed label');\n }\n state.deploying = false;\n }, [fn, client, t, existingFunctionUrl, script, script.name, script.source, space?.id ?? null]);\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 { 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';\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';\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';\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 './templateSelect';\nimport { type ScriptToolbarState } from './useToolbarState';\nimport { type ViewActionProperties } from './view';\n\nexport type ScriptToolbarActionProperties =\n | TemplateActionProperties\n | ViewActionProperties\n | FormatActionProperties\n | DeployActionProperties;\n\nexport type ScriptToolbarAction = MenuAction<ScriptToolbarActionProperties>;\n\nexport const useToolbarAction = (props: { state: ScriptToolbarState; script: ScriptType }) => {\n const handleTemplateSelect = useTemplateSelectHandler(props);\n const handleFormat = useFormatHandler(props);\n const handleDeploy = useDeployHandler(props);\n const handleCopy = useCopyHandler(props);\n return useCallback(\n ((action: ScriptToolbarAction) => {\n switch (action.properties.type) {\n case 'template':\n handleTemplateSelect(action.properties.value);\n break;\n case 'view':\n props.state.view = 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 }) as MenuActionHandler,\n [handleTemplateSelect, handleFormat, handleDeploy, handleCopy],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nexport type ViewType = 'editor' | 'split' | 'debug';\n\nexport type ViewState = { view: ViewType };\n\nexport type ViewActionProperties = { type: 'view'; value: ViewType };\n\nconst views: Record<ViewType, string> = {\n editor: 'ph--code--regular',\n split: 'ph--square-split-vertical--regular',\n debug: 'ph--bug--regular',\n};\n\nconst createViewGroupItem = (state: Partial<ViewState>) => {\n return createMenuItemGroup('view', {\n label: ['view group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n applyActive: true,\n value: state.view,\n });\n};\n\nconst createViewActions = (state: Partial<ViewState>) => {\n return Object.entries(views).map(([viewType, icon]) => {\n return createMenuAction<ViewActionProperties>(`view--${viewType}`, {\n type: 'view',\n value: viewType as ViewType,\n label: [`view ${viewType} label`, { ns: SCRIPT_PLUGIN }],\n icon,\n checked: state.view === viewType,\n });\n });\n};\n\nexport const createView = (state: Partial<ViewState>) => {\n const viewGroupItem = createViewGroupItem(state);\n const viewActions = createViewActions(state);\n return {\n nodes: [viewGroupItem, ...viewActions],\n edges: [\n { source: 'root', target: 'view' },\n ...viewActions.map((action) => ({ source: 'view', target: action.id })),\n ],\n };\n};\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';\nimport { type ViewState } from './view';\n\nexport type ScriptToolbarState = Partial<DeployState & ViewState>;\n\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => create<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\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 ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n editorFullWidth,\n type EditorInputMode,\n editorMonospace,\n EditorView,\n folding,\n InputModeExtensions,\n useTextEditor,\n type UseTextEditorProps,\n} from '@dxos/react-ui-editor';\nimport { nonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = {\n id: string;\n inputMode?: EditorInputMode;\n env?: VirtualTypeScriptEnvironment;\n toolbar?: boolean;\n} & Pick<UseTextEditorProps, 'className' | 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>;\n\nexport const TypescriptEditor = ({\n id,\n env,\n className,\n initialValue,\n extensions,\n scrollTo,\n selection,\n toolbar,\n inputMode = 'vscode',\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: {\n content: { className: editorFullWidth },\n },\n }),\n // NOTE: Not using default editor gutter because folding for code works best right beside text.\n EditorView.theme({\n '.cm-gutters': {\n // Match margin from content.\n marginTop: '16px',\n },\n }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when you hit Enter.\n Prec.high(keymap.of(continueKeymap)),\n // TODO(burdon): Factor out.\n [\n editorMonospace,\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : [] }),\n env\n ? [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ]\n : [],\n ],\n ].filter(nonNullable),\n selection,\n scrollTo,\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div ref={parentRef} data-toolbar={toolbar ? 'enabled' : 'disabled'} className={className} {...focusAttributes} />\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": ["React", "useMemo", "createDocAccessor", "getSpace", "useIdentity", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "StackItem", "mx", "React", "useCallback", "fullyQualifiedId", "ElevationProvider", "stackItemContentToolbarClassNames", "createGapSeparator", "MenuProvider", "ToolbarMenu", "useMenuActions", "useCallback", "useEffect", "useMemo", "FunctionType", "getInvocationUrl", "getUserFunctionUrlInMetadata", "incrementSemverPatch", "setUserFunctionUrlInMetadata", "uploadWorkerFunction", "log", "useClient", "Filter", "create", "getMeta", "getSpace", "makeRef", "useQuery", "useTranslation", "createMenuAction", "createDeploy", "state", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "deployAction", "type", "deploying", "disabled", "classNames", "copyAction", "functionUrl", "nodes", "edges", "source", "target", "useDeployDeps", "script", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "client", "useClient", "existingFunctionUrl", "useMemo", "getUserFunctionUrlInMetadata", "getMeta", "useDeployState", "useEffect", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "deployed", "Boolean", "changed", "useDeployHandler", "t", "useTranslation", "useCallback", "undefined", "existingFunctionId", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "content", "functionId", "version", "meta", "uploadWorkerFunction", "incrementSemverPatch", "Error", "log", "info", "deployedFunction", "db", "add", "create", "name", "makeRef", "description", "inputSchema", "verbose", "setUserFunctionUrlInMetadata", "view", "err", "catch", "useCopyHandler", "navigator", "clipboard", "writeText", "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", "state", "view", "log", "error", "createMenuAction", "createMenuItemGroup", "views", "editor", "split", "debug", "createViewGroupItem", "state", "createMenuItemGroup", "label", "ns", "SCRIPT_PLUGIN", "variant", "applyActive", "value", "view", "createViewActions", "Object", "entries", "map", "viewType", "icon", "createMenuAction", "type", "checked", "createView", "viewGroupItem", "viewActions", "nodes", "edges", "source", "target", "action", "id", "createToolbar", "state", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "view", "createView", "nodes", "edges", "ScriptToolbar", "script", "role", "classNames", "handleAction", "useToolbarAction", "toolbarCreator", "useCallback", "menu", "useMenuActions", "div", "className", "stackItemContentToolbarClassNames", "ElevationProvider", "elevation", "MenuProvider", "onAction", "attendableId", "fullyQualifiedId", "ToolbarMenu", "useMemo", "create", "useToolbarState", "initialState", "useMemo", "create", "javascript", "defaultHighlightStyle", "Prec", "oneDarkHighlightStyle", "keymap", "tags", "continueKeymap", "tsSync", "tsFacet", "tsLinter", "tsAutocomplete", "tsHover", "React", "useThemeContext", "autocomplete", "createBasicExtensions", "createThemeExtensions", "editorFullWidth", "editorMonospace", "EditorView", "folding", "InputModeExtensions", "useTextEditor", "nonNullable", "TypescriptEditor", "id", "env", "className", "initialValue", "extensions", "scrollTo", "selection", "toolbar", "inputMode", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "editorFullWidth", "EditorView", "theme", "marginTop", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "editorMonospace", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "nonNullable", "React", "div", "ref", "data-toolbar", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "role", "classNames", "script", "settings", "env", "identity", "useIdentity", "space", "getSpace", "extensions", "useMemo", "listener", "onChange", "text", "source", "target", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "state", "useToolbarState", "view", "useDeployState", "React", "StackItem", "Content", "toolbar", "ScriptToolbar", "div", "className", "mx", "TypescriptEditor", "initialValue", "stackItemContentEditorClassNames", "inputMode", "editorInputMode", "DebugPanel", "functionUrl"]
7
- }
@@ -1,18 +0,0 @@
1
- // packages/plugins/experimental/plugin-script/src/meta.ts
2
- var SCRIPT_PLUGIN = "dxos.org/plugin/script";
3
- var meta = {
4
- id: SCRIPT_PLUGIN,
5
- name: "Scripts",
6
- description: "Distributed functions.",
7
- icon: "ph--code--regular",
8
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-explorer",
9
- tags: [
10
- "experimental"
11
- ]
12
- };
13
-
14
- export {
15
- SCRIPT_PLUGIN,
16
- meta
17
- };
18
- //# sourceMappingURL=chunk-5BU5ERNU.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const SCRIPT_PLUGIN = 'dxos.org/plugin/script';\n\nexport const meta = {\n id: SCRIPT_PLUGIN,\n name: 'Scripts',\n description: 'Distributed functions.',\n icon: 'ph--code--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-explorer',\n tags: ['experimental'],\n} satisfies PluginMeta;\n"],
5
- "mappings": ";AAMO,IAAMA,gBAAgB;AAEtB,IAAMC,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
- "names": ["SCRIPT_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags"]
7
- }