@vforsh/argus 0.1.16 → 0.1.18

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 (308) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/argus.js +19770 -17488
  3. package/dist/cli/defineCommand.d.ts +3 -0
  4. package/dist/cli/defineCommand.d.ts.map +1 -1
  5. package/dist/cli/defineCommand.js +11 -0
  6. package/dist/cli/defineCommand.js.map +1 -1
  7. package/dist/cli/plugins/registerPlugins.d.ts +3 -1
  8. package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
  9. package/dist/cli/plugins/registerPlugins.js +31 -12
  10. package/dist/cli/plugins/registerPlugins.js.map +1 -1
  11. package/dist/cli/register/authCommands.d.ts +3 -0
  12. package/dist/cli/register/authCommands.d.ts.map +1 -0
  13. package/dist/cli/register/authCommands.js +230 -0
  14. package/dist/cli/register/authCommands.js.map +1 -0
  15. package/dist/cli/register/chromeCommands.d.ts +3 -0
  16. package/dist/cli/register/chromeCommands.d.ts.map +1 -0
  17. package/dist/cli/register/chromeCommands.js +153 -0
  18. package/dist/cli/register/chromeCommands.js.map +1 -0
  19. package/dist/cli/register/codeCommands.d.ts +3 -0
  20. package/dist/cli/register/codeCommands.d.ts.map +1 -0
  21. package/dist/cli/register/codeCommands.js +116 -0
  22. package/dist/cli/register/codeCommands.js.map +1 -0
  23. package/dist/cli/register/configCommands.d.ts +3 -0
  24. package/dist/cli/register/configCommands.d.ts.map +1 -0
  25. package/dist/cli/register/configCommands.js +23 -0
  26. package/dist/cli/register/configCommands.js.map +1 -0
  27. package/dist/cli/register/dialogCommands.d.ts +3 -0
  28. package/dist/cli/register/dialogCommands.d.ts.map +1 -0
  29. package/dist/cli/register/dialogCommands.js +52 -0
  30. package/dist/cli/register/dialogCommands.js.map +1 -0
  31. package/dist/cli/register/domCommandBuilder.d.ts +7 -5
  32. package/dist/cli/register/domCommandBuilder.d.ts.map +1 -1
  33. package/dist/cli/register/domCommandBuilder.js +28 -23
  34. package/dist/cli/register/domCommandBuilder.js.map +1 -1
  35. package/dist/cli/register/domCommands.d.ts +3 -0
  36. package/dist/cli/register/domCommands.d.ts.map +1 -0
  37. package/dist/cli/register/domCommands.js +318 -0
  38. package/dist/cli/register/domCommands.js.map +1 -0
  39. package/dist/cli/register/evalCommands.d.ts +3 -0
  40. package/dist/cli/register/evalCommands.d.ts.map +1 -0
  41. package/dist/cli/register/evalCommands.js +173 -0
  42. package/dist/cli/register/evalCommands.js.map +1 -0
  43. package/dist/cli/register/extensionCommands.d.ts +3 -0
  44. package/dist/cli/register/extensionCommands.d.ts.map +1 -0
  45. package/dist/cli/register/extensionCommands.js +115 -0
  46. package/dist/cli/register/extensionCommands.js.map +1 -0
  47. package/dist/cli/register/fillCommand.d.ts +3 -0
  48. package/dist/cli/register/fillCommand.d.ts.map +1 -0
  49. package/dist/cli/register/fillCommand.js +44 -0
  50. package/dist/cli/register/fillCommand.js.map +1 -0
  51. package/dist/cli/register/hoverCommand.d.ts +3 -0
  52. package/dist/cli/register/hoverCommand.d.ts.map +1 -0
  53. package/dist/cli/register/hoverCommand.js +27 -0
  54. package/dist/cli/register/hoverCommand.js.map +1 -0
  55. package/dist/cli/register/index.d.ts.map +1 -1
  56. package/dist/cli/register/index.js +51 -52
  57. package/dist/cli/register/index.js.map +1 -1
  58. package/dist/cli/register/keydownCommand.d.ts +3 -0
  59. package/dist/cli/register/keydownCommand.d.ts.map +1 -0
  60. package/dist/cli/register/keydownCommand.js +21 -0
  61. package/dist/cli/register/keydownCommand.js.map +1 -0
  62. package/dist/cli/register/locateCommands.d.ts +3 -0
  63. package/dist/cli/register/locateCommands.d.ts.map +1 -0
  64. package/dist/cli/register/locateCommands.js +60 -0
  65. package/dist/cli/register/locateCommands.js.map +1 -0
  66. package/dist/cli/register/logsCommands.d.ts +3 -0
  67. package/dist/cli/register/logsCommands.d.ts.map +1 -0
  68. package/dist/cli/register/logsCommands.js +67 -0
  69. package/dist/cli/register/logsCommands.js.map +1 -0
  70. package/dist/cli/register/netCommands.d.ts +3 -0
  71. package/dist/cli/register/netCommands.d.ts.map +1 -0
  72. package/dist/cli/register/netCommands.js +442 -0
  73. package/dist/cli/register/netCommands.js.map +1 -0
  74. package/dist/cli/register/pageCommands.d.ts +3 -0
  75. package/dist/cli/register/pageCommands.d.ts.map +1 -0
  76. package/dist/cli/register/pageCommands.js +188 -0
  77. package/dist/cli/register/pageCommands.js.map +1 -0
  78. package/dist/cli/register/pluginCommands.d.ts +3 -0
  79. package/dist/cli/register/pluginCommands.d.ts.map +1 -0
  80. package/dist/cli/register/pluginCommands.js +51 -0
  81. package/dist/cli/register/pluginCommands.js.map +1 -0
  82. package/dist/cli/register/quickAccessCommands.d.ts +3 -0
  83. package/dist/cli/register/quickAccessCommands.d.ts.map +1 -0
  84. package/dist/cli/register/quickAccessCommands.js +138 -0
  85. package/dist/cli/register/quickAccessCommands.js.map +1 -0
  86. package/dist/cli/register/scrollToCommand.d.ts +3 -0
  87. package/dist/cli/register/scrollToCommand.d.ts.map +1 -0
  88. package/dist/cli/register/scrollToCommand.js +30 -0
  89. package/dist/cli/register/scrollToCommand.js.map +1 -0
  90. package/dist/cli/register/snapshotCommands.d.ts +3 -0
  91. package/dist/cli/register/snapshotCommands.d.ts.map +1 -0
  92. package/dist/cli/register/snapshotCommands.js +57 -0
  93. package/dist/cli/register/snapshotCommands.js.map +1 -0
  94. package/dist/cli/register/storageCommands.d.ts +3 -0
  95. package/dist/cli/register/storageCommands.d.ts.map +1 -0
  96. package/dist/cli/register/storageCommands.js +78 -0
  97. package/dist/cli/register/storageCommands.js.map +1 -0
  98. package/dist/cli/register/throttleCommands.d.ts +3 -0
  99. package/dist/cli/register/throttleCommands.d.ts.map +1 -0
  100. package/dist/cli/register/throttleCommands.js +48 -0
  101. package/dist/cli/register/throttleCommands.js.map +1 -0
  102. package/dist/cli/register/traceCommands.d.ts +3 -0
  103. package/dist/cli/register/traceCommands.d.ts.map +1 -0
  104. package/dist/cli/register/traceCommands.js +72 -0
  105. package/dist/cli/register/traceCommands.js.map +1 -0
  106. package/dist/cli/register/watcherCommands.d.ts +3 -0
  107. package/dist/cli/register/watcherCommands.d.ts.map +1 -0
  108. package/dist/cli/register/watcherCommands.js +180 -0
  109. package/dist/cli/register/watcherCommands.js.map +1 -0
  110. package/dist/commands/auth.d.ts.map +1 -1
  111. package/dist/commands/auth.js.map +1 -1
  112. package/dist/commands/code.d.ts +2 -2
  113. package/dist/commands/code.d.ts.map +1 -1
  114. package/dist/commands/code.js +42 -45
  115. package/dist/commands/code.js.map +1 -1
  116. package/dist/commands/codeEdit.d.ts.map +1 -1
  117. package/dist/commands/codeEdit.js.map +1 -1
  118. package/dist/commands/eval.d.ts +9 -1
  119. package/dist/commands/eval.d.ts.map +1 -1
  120. package/dist/commands/eval.js +20 -10
  121. package/dist/commands/eval.js.map +1 -1
  122. package/dist/commands/evalArgs.d.ts +31 -0
  123. package/dist/commands/evalArgs.d.ts.map +1 -0
  124. package/dist/commands/evalArgs.js +103 -0
  125. package/dist/commands/evalArgs.js.map +1 -0
  126. package/dist/commands/evalBundle.d.ts +4 -5
  127. package/dist/commands/evalBundle.d.ts.map +1 -1
  128. package/dist/commands/evalBundle.js +88 -69
  129. package/dist/commands/evalBundle.js.map +1 -1
  130. package/dist/commands/evalModuleSyntax.d.ts +6 -0
  131. package/dist/commands/evalModuleSyntax.d.ts.map +1 -0
  132. package/dist/commands/evalModuleSyntax.js +33 -0
  133. package/dist/commands/evalModuleSyntax.js.map +1 -0
  134. package/dist/commands/evalPolling.d.ts +1 -1
  135. package/dist/commands/evalPolling.d.ts.map +1 -1
  136. package/dist/commands/evalPolling.js +1 -1
  137. package/dist/commands/evalPolling.js.map +1 -1
  138. package/dist/commands/evalResultOutput.d.ts +25 -0
  139. package/dist/commands/evalResultOutput.d.ts.map +1 -0
  140. package/dist/commands/evalResultOutput.js +85 -0
  141. package/dist/commands/evalResultOutput.js.map +1 -0
  142. package/dist/commands/evalShared.d.ts +42 -17
  143. package/dist/commands/evalShared.d.ts.map +1 -1
  144. package/dist/commands/evalShared.js +96 -53
  145. package/dist/commands/evalShared.js.map +1 -1
  146. package/dist/commands/evalUntil.d.ts +7 -1
  147. package/dist/commands/evalUntil.d.ts.map +1 -1
  148. package/dist/commands/evalUntil.js +16 -27
  149. package/dist/commands/evalUntil.js.map +1 -1
  150. package/dist/commands/extension/attach.d.ts +3 -1
  151. package/dist/commands/extension/attach.d.ts.map +1 -1
  152. package/dist/commands/extension/attach.js +13 -78
  153. package/dist/commands/extension/attach.js.map +1 -1
  154. package/dist/commands/extension/show.d.ts +12 -0
  155. package/dist/commands/extension/show.d.ts.map +1 -0
  156. package/dist/commands/extension/show.js +208 -0
  157. package/dist/commands/extension/show.js.map +1 -0
  158. package/dist/commands/extension/tabSelection.d.ts +45 -0
  159. package/dist/commands/extension/tabSelection.d.ts.map +1 -0
  160. package/dist/commands/extension/tabSelection.js +76 -0
  161. package/dist/commands/extension/tabSelection.js.map +1 -0
  162. package/dist/commands/locate.d.ts.map +1 -1
  163. package/dist/commands/locate.js.map +1 -1
  164. package/dist/commands/netMock.d.ts +34 -0
  165. package/dist/commands/netMock.d.ts.map +1 -0
  166. package/dist/commands/netMock.js +323 -0
  167. package/dist/commands/netMock.js.map +1 -0
  168. package/dist/commands/netSse.d.ts +1 -1
  169. package/dist/commands/netSse.d.ts.map +1 -1
  170. package/dist/commands/netSse.js +19 -23
  171. package/dist/commands/netSse.js.map +1 -1
  172. package/dist/commands/netWebSocket.d.ts +2 -2
  173. package/dist/commands/netWebSocket.d.ts.map +1 -1
  174. package/dist/commands/netWebSocket.js +42 -55
  175. package/dist/commands/netWebSocket.js.map +1 -1
  176. package/dist/commands/pluginConfig.d.ts +1 -0
  177. package/dist/commands/pluginConfig.d.ts.map +1 -1
  178. package/dist/commands/pluginConfig.js +12 -2
  179. package/dist/commands/pluginConfig.js.map +1 -1
  180. package/dist/commands/start.d.ts +2 -2
  181. package/dist/commands/start.d.ts.map +1 -1
  182. package/dist/commands/startShared.d.ts +1 -1
  183. package/dist/commands/startShared.d.ts.map +1 -1
  184. package/dist/commands/watcherSession.d.ts +3 -3
  185. package/dist/commands/watcherSession.d.ts.map +1 -1
  186. package/dist/commands/watcherSession.js.map +1 -1
  187. package/dist/commands/watcherStart.d.ts +2 -2
  188. package/dist/commands/watcherStart.d.ts.map +1 -1
  189. package/dist/config/argusHome.d.ts +3 -0
  190. package/dist/config/argusHome.d.ts.map +1 -0
  191. package/dist/config/argusHome.js +11 -0
  192. package/dist/config/argusHome.js.map +1 -0
  193. package/dist/config/loadConfig.d.ts +13 -0
  194. package/dist/config/loadConfig.d.ts.map +1 -0
  195. package/dist/config/loadConfig.js +59 -0
  196. package/dist/config/loadConfig.js.map +1 -0
  197. package/dist/config/mergeConfig.d.ts +34 -0
  198. package/dist/config/mergeConfig.d.ts.map +1 -0
  199. package/dist/config/mergeConfig.js +57 -0
  200. package/dist/config/mergeConfig.js.map +1 -0
  201. package/dist/config/types.d.ts +51 -0
  202. package/dist/config/types.d.ts.map +1 -0
  203. package/dist/config/types.js +2 -0
  204. package/dist/config/types.js.map +1 -0
  205. package/dist/config/validateConfig.d.ts +14 -0
  206. package/dist/config/validateConfig.d.ts.map +1 -0
  207. package/dist/config/{argusConfig.js → validateConfig.js} +136 -244
  208. package/dist/config/validateConfig.js.map +1 -0
  209. package/dist/eval/evalClient.d.ts +2 -0
  210. package/dist/eval/evalClient.d.ts.map +1 -1
  211. package/dist/eval/evalClient.js +26 -2
  212. package/dist/eval/evalClient.js.map +1 -1
  213. package/package.json +3 -1
  214. package/dist/cli/register/registerAuth.d.ts +0 -3
  215. package/dist/cli/register/registerAuth.d.ts.map +0 -1
  216. package/dist/cli/register/registerAuth.js +0 -133
  217. package/dist/cli/register/registerAuth.js.map +0 -1
  218. package/dist/cli/register/registerChrome.d.ts +0 -3
  219. package/dist/cli/register/registerChrome.d.ts.map +0 -1
  220. package/dist/cli/register/registerChrome.js +0 -118
  221. package/dist/cli/register/registerChrome.js.map +0 -1
  222. package/dist/cli/register/registerCode.d.ts +0 -3
  223. package/dist/cli/register/registerCode.d.ts.map +0 -1
  224. package/dist/cli/register/registerCode.js +0 -74
  225. package/dist/cli/register/registerCode.js.map +0 -1
  226. package/dist/cli/register/registerConfig.d.ts +0 -3
  227. package/dist/cli/register/registerConfig.d.ts.map +0 -1
  228. package/dist/cli/register/registerConfig.js +0 -14
  229. package/dist/cli/register/registerConfig.js.map +0 -1
  230. package/dist/cli/register/registerDialog.d.ts +0 -3
  231. package/dist/cli/register/registerDialog.d.ts.map +0 -1
  232. package/dist/cli/register/registerDialog.js +0 -45
  233. package/dist/cli/register/registerDialog.js.map +0 -1
  234. package/dist/cli/register/registerDom.d.ts +0 -3
  235. package/dist/cli/register/registerDom.d.ts.map +0 -1
  236. package/dist/cli/register/registerDom.js +0 -284
  237. package/dist/cli/register/registerDom.js.map +0 -1
  238. package/dist/cli/register/registerEval.d.ts +0 -3
  239. package/dist/cli/register/registerEval.d.ts.map +0 -1
  240. package/dist/cli/register/registerEval.js +0 -149
  241. package/dist/cli/register/registerEval.js.map +0 -1
  242. package/dist/cli/register/registerExtension.d.ts +0 -3
  243. package/dist/cli/register/registerExtension.d.ts.map +0 -1
  244. package/dist/cli/register/registerExtension.js +0 -72
  245. package/dist/cli/register/registerExtension.js.map +0 -1
  246. package/dist/cli/register/registerFill.d.ts +0 -3
  247. package/dist/cli/register/registerFill.d.ts.map +0 -1
  248. package/dist/cli/register/registerFill.js +0 -31
  249. package/dist/cli/register/registerFill.js.map +0 -1
  250. package/dist/cli/register/registerHover.d.ts +0 -3
  251. package/dist/cli/register/registerHover.d.ts.map +0 -1
  252. package/dist/cli/register/registerHover.js +0 -21
  253. package/dist/cli/register/registerHover.js.map +0 -1
  254. package/dist/cli/register/registerKeydown.d.ts +0 -3
  255. package/dist/cli/register/registerKeydown.d.ts.map +0 -1
  256. package/dist/cli/register/registerKeydown.js +0 -20
  257. package/dist/cli/register/registerKeydown.js.map +0 -1
  258. package/dist/cli/register/registerLocate.d.ts +0 -3
  259. package/dist/cli/register/registerLocate.d.ts.map +0 -1
  260. package/dist/cli/register/registerLocate.js +0 -48
  261. package/dist/cli/register/registerLocate.js.map +0 -1
  262. package/dist/cli/register/registerLogs.d.ts +0 -3
  263. package/dist/cli/register/registerLogs.d.ts.map +0 -1
  264. package/dist/cli/register/registerLogs.js +0 -64
  265. package/dist/cli/register/registerLogs.js.map +0 -1
  266. package/dist/cli/register/registerNet.d.ts +0 -3
  267. package/dist/cli/register/registerNet.d.ts.map +0 -1
  268. package/dist/cli/register/registerNet.js +0 -287
  269. package/dist/cli/register/registerNet.js.map +0 -1
  270. package/dist/cli/register/registerPage.d.ts +0 -3
  271. package/dist/cli/register/registerPage.d.ts.map +0 -1
  272. package/dist/cli/register/registerPage.js +0 -123
  273. package/dist/cli/register/registerPage.js.map +0 -1
  274. package/dist/cli/register/registerPlugin.d.ts +0 -3
  275. package/dist/cli/register/registerPlugin.d.ts.map +0 -1
  276. package/dist/cli/register/registerPlugin.js +0 -34
  277. package/dist/cli/register/registerPlugin.js.map +0 -1
  278. package/dist/cli/register/registerQuickAccess.d.ts +0 -3
  279. package/dist/cli/register/registerQuickAccess.d.ts.map +0 -1
  280. package/dist/cli/register/registerQuickAccess.js +0 -112
  281. package/dist/cli/register/registerQuickAccess.js.map +0 -1
  282. package/dist/cli/register/registerScrollTo.d.ts +0 -3
  283. package/dist/cli/register/registerScrollTo.d.ts.map +0 -1
  284. package/dist/cli/register/registerScrollTo.js +0 -22
  285. package/dist/cli/register/registerScrollTo.js.map +0 -1
  286. package/dist/cli/register/registerSnapshot.d.ts +0 -3
  287. package/dist/cli/register/registerSnapshot.d.ts.map +0 -1
  288. package/dist/cli/register/registerSnapshot.js +0 -38
  289. package/dist/cli/register/registerSnapshot.js.map +0 -1
  290. package/dist/cli/register/registerStorage.d.ts +0 -3
  291. package/dist/cli/register/registerStorage.d.ts.map +0 -1
  292. package/dist/cli/register/registerStorage.js +0 -61
  293. package/dist/cli/register/registerStorage.js.map +0 -1
  294. package/dist/cli/register/registerThrottle.d.ts +0 -3
  295. package/dist/cli/register/registerThrottle.d.ts.map +0 -1
  296. package/dist/cli/register/registerThrottle.js +0 -33
  297. package/dist/cli/register/registerThrottle.js.map +0 -1
  298. package/dist/cli/register/registerTrace.d.ts +0 -3
  299. package/dist/cli/register/registerTrace.d.ts.map +0 -1
  300. package/dist/cli/register/registerTrace.js +0 -57
  301. package/dist/cli/register/registerTrace.js.map +0 -1
  302. package/dist/cli/register/registerWatcher.d.ts +0 -3
  303. package/dist/cli/register/registerWatcher.d.ts.map +0 -1
  304. package/dist/cli/register/registerWatcher.js +0 -135
  305. package/dist/cli/register/registerWatcher.js.map +0 -1
  306. package/dist/config/argusConfig.d.ts +0 -76
  307. package/dist/config/argusConfig.d.ts.map +0 -1
  308. package/dist/config/argusConfig.js.map +0 -1
@@ -14,6 +14,8 @@ export type EvalOptions = {
14
14
  file?: string;
15
15
  /** Bundle local imports from `--file` before eval. */
16
16
  bundle?: boolean;
17
+ /** Do not bundle `--file` (disables auto-bundle for import/export). */
18
+ noBundle?: boolean;
17
19
  /** Read expression from stdin. Also activated when expression is `-`. */
18
20
  stdin?: boolean;
19
21
  /** Read setup code from a file and run it before the expression. */
@@ -22,10 +24,16 @@ export type EvalOptions = {
22
24
  iframe?: string;
23
25
  /** Message type prefix for iframe eval (default: argus). */
24
26
  iframeNamespace?: string;
25
- /** Timeout for iframe postMessage response in ms (default: 5000). */
27
+ /** Timeout for iframe postMessage response (default: 5000; accepts duration syntax). */
26
28
  iframeTimeout?: string;
27
29
  /** Repeated key=value arguments exposed to scripts as `args`. */
28
30
  arg?: string[];
31
+ /** Load args from a JSON object file. */
32
+ args?: string;
33
+ /** Write the eval result to a file. */
34
+ out?: string;
35
+ /** With --interval, write one file per iteration instead of appending NDJSON. */
36
+ rotate?: boolean;
29
37
  };
30
38
  /** Execute the eval command for a watcher id. */
31
39
  export declare const runEval: (id: string | undefined, rawExpression: string | undefined, options: EvalOptions) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAgBA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACd,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,OAAO,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,eAAe,MAAM,GAAG,SAAS,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CA0H3H,CAAA"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAQA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,OAAO,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,eAAe,MAAM,GAAG,SAAS,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CAqI3H,CAAA"}
@@ -2,7 +2,8 @@ import { evalWithRetries } from '../eval/evalClient.js';
2
2
  import { createOutput } from '../output/io.js';
3
3
  import { resolveWatcherOrExit } from '../watchers/requestWatcher.js';
4
4
  import { pollEval } from './evalPolling.js';
5
- import { formatError, parseCount, parseIntervalMs, parseNumber, parseRetryCount, prepareEvalExpression, printError, printSuccess, } from './evalShared.js';
5
+ import { createEvalEmitter, formatError, parseCount, parseIntervalMs, parseRetryCount, parseTimeoutMs, prepareEvalExpression } from './evalShared.js';
6
+ import { validateEvalResultFileOptions } from './evalResultOutput.js';
6
7
  /** Execute the eval command for a watcher id. */
7
8
  export const runEval = async (id, rawExpression, options) => {
8
9
  const output = createOutput(options);
@@ -45,11 +46,20 @@ export const runEval = async (id, rawExpression, options) => {
45
46
  process.exitCode = 2;
46
47
  return;
47
48
  }
49
+ if (!validateEvalResultFileOptions(options, output)) {
50
+ return;
51
+ }
52
+ const timeoutMs = parseTimeoutMs(options.timeout);
53
+ if (timeoutMs.error) {
54
+ output.writeWarn(timeoutMs.error);
55
+ process.exitCode = 2;
56
+ return;
57
+ }
58
+ const emitter = createEvalEmitter(options, output);
48
59
  const resolved = await resolveWatcherOrExit({ id }, output);
49
60
  if (!resolved)
50
61
  return;
51
62
  const { watcher } = resolved;
52
- const timeoutMs = parseNumber(options.timeout);
53
63
  if (intervalMs.value == null) {
54
64
  const singleResult = await evalWithRetries({
55
65
  watcher,
@@ -57,16 +67,16 @@ export const runEval = async (id, rawExpression, options) => {
57
67
  args: prepared.args,
58
68
  awaitPromise: options.await ?? true,
59
69
  returnByValue: options.returnByValue ?? true,
60
- timeoutMs,
70
+ timeoutMs: timeoutMs.value,
61
71
  failOnException: options.failOnException ?? true,
62
72
  retryCount: retryCount.value,
63
73
  });
64
74
  if (!singleResult.ok) {
65
- printError(singleResult, options, output);
75
+ emitter.emitError(singleResult);
66
76
  process.exitCode = 1;
67
77
  return;
68
78
  }
69
- printSuccess(singleResult.response, options, output, false);
79
+ await emitter.emitSuccess(singleResult.response, false);
70
80
  return;
71
81
  }
72
82
  const pollResult = await pollEval({
@@ -75,13 +85,13 @@ export const runEval = async (id, rawExpression, options) => {
75
85
  args: prepared.args,
76
86
  awaitPromise: options.await ?? true,
77
87
  returnByValue: options.returnByValue ?? true,
78
- timeoutMs,
88
+ timeoutMs: timeoutMs.value,
79
89
  failOnException: options.failOnException ?? true,
80
90
  retryCount: retryCount.value,
81
91
  intervalMs: intervalMs.value,
82
92
  count: countValue.value,
83
- onResult: (response) => {
84
- printSuccess(response, options, output, true);
93
+ onResult: async (response) => {
94
+ await emitter.emitSuccess(response, true);
85
95
  },
86
96
  shouldStop: (context) => {
87
97
  if (!untilEvaluator.evaluator) {
@@ -97,12 +107,12 @@ export const runEval = async (id, rawExpression, options) => {
97
107
  },
98
108
  });
99
109
  if (pollResult.kind === 'eval-error') {
100
- printError(pollResult.failure, options, output);
110
+ emitter.emitError(pollResult.failure);
101
111
  process.exitCode = 1;
102
112
  return;
103
113
  }
104
114
  if (pollResult.kind === 'condition-error') {
105
- printError({ kind: 'until', error: pollResult.error }, options, output);
115
+ emitter.emitError({ kind: 'until', error: pollResult.error });
106
116
  process.exitCode = 1;
107
117
  return;
108
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Output } from '../output/io.js';
2
+ /** String-only argument map exposed to eval scripts as `args`. */
3
+ export type EvalArgMap = Record<string, string>;
4
+ /** CLI options that populate the eval `args` object. */
5
+ export type EvalArgSourceOptions = {
6
+ /** Load a JSON object of args from disk (`--args`). */
7
+ args?: string;
8
+ /** Repeated `key=value` overrides (`--arg`). */
9
+ arg?: string[];
10
+ };
11
+ /**
12
+ * Parse repeated `--arg key=value` flags.
13
+ * Later values override earlier ones for the same key.
14
+ */
15
+ export declare const parseEvalArgFlags: (values?: string[]) => {
16
+ value: EvalArgMap;
17
+ error?: string;
18
+ };
19
+ /** True when the parsed arg map should be sent or injected. */
20
+ export declare const hasEvalArgs: (args: EvalArgMap) => boolean;
21
+ /**
22
+ * Load `--args` JSON and merge with `--arg` overrides.
23
+ * Precedence: file base map, then CLI flags (later `--arg` wins on duplicates).
24
+ */
25
+ export declare const resolveEvalArgs: (options: EvalArgSourceOptions, output: Output) => Promise<EvalArgMap | null>;
26
+ /**
27
+ * Read and validate a JSON args file.
28
+ * Values must be JSON primitives; they are coerced to strings for the watcher protocol.
29
+ */
30
+ export declare const loadEvalArgsFile: (filePath: string, output: Output) => Promise<EvalArgMap | null>;
31
+ //# sourceMappingURL=evalArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalArgs.d.ts","sourceRoot":"","sources":["../../src/commands/evalArgs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAG7C,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE/C,wDAAwD;AACxD,MAAM,MAAM,oBAAoB,GAAG;IAClC,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACd,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,KAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAaxF,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,WAAW,GAAI,MAAM,UAAU,KAAG,OAAuC,CAAA;AAEtF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,oBAAoB,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAkB9G,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,UAAU,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CA+BlG,CAAA"}
@@ -0,0 +1,103 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { formatError } from '../cli/parse.js';
3
+ import { resolvePath } from '../utils/paths.js';
4
+ /**
5
+ * Parse repeated `--arg key=value` flags.
6
+ * Later values override earlier ones for the same key.
7
+ */
8
+ export const parseEvalArgFlags = (values) => {
9
+ const args = {};
10
+ for (const value of values ?? []) {
11
+ const separatorIndex = value.indexOf('=');
12
+ if (separatorIndex < 0 || separatorIndex === 0) {
13
+ return { value: args, error: `Invalid --arg value ${JSON.stringify(value)}: expected key=value.` };
14
+ }
15
+ args[value.slice(0, separatorIndex)] = value.slice(separatorIndex + 1);
16
+ }
17
+ return { value: args };
18
+ };
19
+ /** True when the parsed arg map should be sent or injected. */
20
+ export const hasEvalArgs = (args) => Object.keys(args).length > 0;
21
+ /**
22
+ * Load `--args` JSON and merge with `--arg` overrides.
23
+ * Precedence: file base map, then CLI flags (later `--arg` wins on duplicates).
24
+ */
25
+ export const resolveEvalArgs = async (options, output) => {
26
+ let merged = {};
27
+ if (options.args != null) {
28
+ const loaded = await loadEvalArgsFile(options.args, output);
29
+ if (loaded == null) {
30
+ return null;
31
+ }
32
+ merged = loaded;
33
+ }
34
+ const flagArgs = parseEvalArgFlags(options.arg);
35
+ if (flagArgs.error) {
36
+ output.writeWarn(flagArgs.error);
37
+ return null;
38
+ }
39
+ return { ...merged, ...flagArgs.value };
40
+ };
41
+ /**
42
+ * Read and validate a JSON args file.
43
+ * Values must be JSON primitives; they are coerced to strings for the watcher protocol.
44
+ */
45
+ export const loadEvalArgsFile = async (filePath, output) => {
46
+ const resolvedPath = resolvePath(filePath);
47
+ let raw;
48
+ try {
49
+ raw = await readFile(resolvedPath, 'utf8');
50
+ }
51
+ catch (error) {
52
+ output.writeWarn(`Failed to read --args file: ${formatError(error)}`);
53
+ return null;
54
+ }
55
+ if (!raw.trim()) {
56
+ output.writeWarn(`Args file is empty: ${filePath}`);
57
+ return null;
58
+ }
59
+ let parsed;
60
+ try {
61
+ parsed = JSON.parse(raw);
62
+ }
63
+ catch (error) {
64
+ output.writeWarn(`Invalid --args file ${filePath}: ${formatError(error)}`);
65
+ return null;
66
+ }
67
+ const coerced = coerceEvalArgsObject(parsed, filePath);
68
+ if (typeof coerced === 'string') {
69
+ output.writeWarn(coerced);
70
+ return null;
71
+ }
72
+ return coerced;
73
+ };
74
+ const coerceEvalArgsObject = (value, filePath) => {
75
+ if (value == null || typeof value !== 'object' || Array.isArray(value)) {
76
+ return `Invalid --args file ${filePath}: expected a JSON object.`;
77
+ }
78
+ const args = {};
79
+ for (const [key, entryValue] of Object.entries(value)) {
80
+ if (!key) {
81
+ return `Invalid --args file ${filePath}: empty object key.`;
82
+ }
83
+ const coerced = coerceEvalArgValue(entryValue);
84
+ if (coerced == null) {
85
+ return `Invalid --args file ${filePath}: value for ${JSON.stringify(key)} must be a string, number, boolean, or null.`;
86
+ }
87
+ args[key] = coerced;
88
+ }
89
+ return args;
90
+ };
91
+ const coerceEvalArgValue = (value) => {
92
+ if (value === null) {
93
+ return 'null';
94
+ }
95
+ if (typeof value === 'string') {
96
+ return value;
97
+ }
98
+ if (typeof value === 'number' || typeof value === 'boolean') {
99
+ return String(value);
100
+ }
101
+ return null;
102
+ };
103
+ //# sourceMappingURL=evalArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalArgs.js","sourceRoot":"","sources":["../../src/commands/evalArgs.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,11 @@ export type BundleEvalEntryResult = {
6
6
  error: string;
7
7
  };
8
8
  /**
9
- * Bundle a local `--file` entry and its relative imports into one browser-evaluable script.
9
+ * Bundle a `--file` entry and its import graph into one browser-evaluable script.
10
10
  *
11
- * - Only files under the entry file's directory are allowed (no package or Node imports).
12
- * - TypeScript is transpiled without typechecking.
13
- * - Output is REPL-compatible: one script, no top-level `export`.
14
- * - Static and dynamic `import()` of local files are inlined into one script.
11
+ * Resolution is permissive: esbuild resolves from `process.cwd()` (any path or package
12
+ * under `node_modules`). Only `node:` built-ins are blocked. TypeScript is transpiled
13
+ * without typechecking. The final script must not contain top-level `export` (REPL eval).
15
14
  */
16
15
  export declare const bundleEvalEntry: (entryPath: string) => Promise<BundleEvalEntryResult>;
17
16
  //# sourceMappingURL=evalBundle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evalBundle.d.ts","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAW7F;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAoCtF,CAAA"}
1
+ {"version":3,"file":"evalBundle.d.ts","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAS7F;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAiCtF,CAAA"}
@@ -1,16 +1,14 @@
1
- import { realpath } from 'node:fs/promises';
1
+ import { readFile, realpath } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  let esbuildModulePromise;
4
- const nodeModulesSegment = `${path.sep}node_modules${path.sep}`;
5
- /** Load esbuild on demand so non-eval CLI commands avoid the native binary startup cost. */
6
4
  const loadEsbuild = () => (esbuildModulePromise ??= import('esbuild'));
5
+ const RESULT_BINDING = '__argusEvalBundleResult';
7
6
  /**
8
- * Bundle a local `--file` entry and its relative imports into one browser-evaluable script.
7
+ * Bundle a `--file` entry and its import graph into one browser-evaluable script.
9
8
  *
10
- * - Only files under the entry file's directory are allowed (no package or Node imports).
11
- * - TypeScript is transpiled without typechecking.
12
- * - Output is REPL-compatible: one script, no top-level `export`.
13
- * - Static and dynamic `import()` of local files are inlined into one script.
9
+ * Resolution is permissive: esbuild resolves from `process.cwd()` (any path or package
10
+ * under `node_modules`). Only `node:` built-ins are blocked. TypeScript is transpiled
11
+ * without typechecking. The final script must not contain top-level `export` (REPL eval).
14
12
  */
15
13
  export const bundleEvalEntry = async (entryPath) => {
16
14
  let entryPoint;
@@ -20,11 +18,10 @@ export const bundleEvalEntry = async (entryPath) => {
20
18
  catch {
21
19
  return { ok: false, error: `Failed to read entry file: ${entryPath}` };
22
20
  }
23
- const bundleRoot = path.dirname(entryPoint);
24
21
  try {
25
22
  const esbuild = await loadEsbuild();
26
23
  const result = await esbuild.build({
27
- absWorkingDir: bundleRoot,
24
+ absWorkingDir: process.cwd(),
28
25
  entryPoints: [entryPoint],
29
26
  bundle: true,
30
27
  write: false,
@@ -34,83 +31,105 @@ export const bundleEvalEntry = async (entryPath) => {
34
31
  target: 'es2022',
35
32
  sourcemap: false,
36
33
  logLevel: 'silent',
37
- plugins: [createLocalFilesPlugin(bundleRoot)],
34
+ plugins: [createPageEvalBundlePlugin(entryPoint)],
38
35
  });
39
36
  const output = result.outputFiles[0];
40
37
  if (output == null) {
41
38
  return { ok: false, error: 'Bundle produced no output.' };
42
39
  }
43
- const code = `${output.text.trimEnd()}\n//# sourceURL=argus-file://${entryPoint}\n`;
44
- return { ok: true, code };
40
+ return { ok: true, code: wrapBundledEval(output.text, entryPoint) };
45
41
  }
46
42
  catch (error) {
47
43
  return { ok: false, error: formatBundleFailure(error) };
48
44
  }
49
45
  };
50
- /** Restrict imports to the entry directory and ensure the bundle is REPL-safe. */
51
- const createLocalFilesPlugin = (bundleRoot) => {
52
- const bundleRootPrefix = bundleRoot.endsWith(path.sep) ? bundleRoot : `${bundleRoot}${path.sep}`;
53
- return {
54
- name: 'argus-eval-bundle',
55
- setup(build) {
56
- build.onResolve({ filter: /.*/ }, (args) => {
57
- if (args.kind === 'entry-point') {
58
- return undefined;
59
- }
60
- if (args.path.startsWith('node:')) {
61
- return bundleError(`Node built-in import ${JSON.stringify(args.path)} is not allowed in page eval.`);
62
- }
63
- if (!args.path.startsWith('.') && !path.isAbsolute(args.path)) {
64
- return bundleError(`Import ${JSON.stringify(args.path)} is not allowed. Use relative local files under ${bundleRoot}.`);
65
- }
66
- return undefined;
67
- });
68
- build.onLoad({ filter: /.*/ }, async (args) => {
69
- let resolvedPath;
70
- try {
71
- resolvedPath = await realpath(args.path);
72
- }
73
- catch {
74
- return bundleError(`Failed to read file: ${args.path}`);
75
- }
76
- if (resolvedPath !== bundleRoot && !resolvedPath.startsWith(bundleRootPrefix)) {
77
- return bundleError(`Import escapes the entry directory: ${args.path}`);
78
- }
79
- if (resolvedPath.includes(nodeModulesSegment)) {
80
- return bundleError(`Import from node_modules is not allowed: ${args.path}`);
81
- }
82
- return undefined;
83
- });
84
- build.onEnd((result) => {
85
- if (result.errors.length > 0) {
86
- return;
87
- }
88
- const outputs = result.outputFiles ?? [];
89
- if (outputs.length !== 1) {
90
- return bundleError(`Bundle produced ${outputs.length} outputs; expected exactly one script.`);
91
- }
92
- if (/\bexport\b/.test(outputs[0]?.text ?? '')) {
93
- return bundleError('Bundled script contains top-level export statements, which page eval cannot run. ' +
94
- 'Remove exports from the entry file (helpers may still export symbols for import).');
95
- }
96
- });
97
- },
98
- };
46
+ const createPageEvalBundlePlugin = (entryPoint) => ({
47
+ name: 'argus-eval-bundle',
48
+ setup(build) {
49
+ build.onResolve({ filter: /^node:/ }, (args) => bundleError(`Node built-in import ${JSON.stringify(args.path)} is not allowed in page eval.`));
50
+ build.onLoad({ filter: /.*/ }, async (args) => {
51
+ if ((await realpath(args.path)) !== entryPoint) {
52
+ return null;
53
+ }
54
+ const source = await readFile(args.path, 'utf8');
55
+ return {
56
+ contents: captureFinalExpression(source),
57
+ loader: loaderForPath(args.path),
58
+ };
59
+ });
60
+ build.onEnd((result) => {
61
+ if (result.errors.length > 0) {
62
+ return;
63
+ }
64
+ const outputs = result.outputFiles ?? [];
65
+ if (outputs.length !== 1) {
66
+ return bundleError(`Bundle produced ${outputs.length} outputs; expected exactly one script.`);
67
+ }
68
+ if (/\bexport\b/.test(outputs[0]?.text ?? '')) {
69
+ return bundleError('Bundled script contains top-level export statements, which page eval cannot run. ' +
70
+ 'Remove exports from the entry file (helpers may still export symbols for import).');
71
+ }
72
+ });
73
+ },
74
+ });
75
+ const captureFinalExpression = (source) => {
76
+ const lines = source.split(/\r?\n/);
77
+ const index = findFinalCodeLine(lines);
78
+ if (index == null) {
79
+ return source;
80
+ }
81
+ const line = lines[index];
82
+ const expression = line.trim().replace(/;$/, '');
83
+ if (!expression || isStatementLike(expression)) {
84
+ return source;
85
+ }
86
+ const indent = line.match(/^\s*/)?.[0] ?? '';
87
+ lines[index] = `${indent}${RESULT_BINDING} = (${expression});`;
88
+ return lines.join('\n');
89
+ };
90
+ const findFinalCodeLine = (lines) => {
91
+ for (let index = lines.length - 1; index >= 0; index -= 1) {
92
+ const trimmed = lines[index].trim();
93
+ if (trimmed && !trimmed.startsWith('//')) {
94
+ return index;
95
+ }
96
+ }
97
+ return null;
98
+ };
99
+ const isStatementLike = (source) => /^(?:import|export|const|let|var|function|class|if|for|while|switch|try|catch|finally|return|throw|break|continue)\b/.test(source);
100
+ const loaderForPath = (filePath) => {
101
+ const extension = path.extname(filePath).toLowerCase();
102
+ if (extension === '.ts')
103
+ return 'ts';
104
+ if (extension === '.tsx')
105
+ return 'tsx';
106
+ if (extension === '.jsx')
107
+ return 'jsx';
108
+ if (extension === '.json')
109
+ return 'json';
110
+ return 'js';
99
111
  };
112
+ const wrapBundledEval = (source, entryPoint) => `(async () => {
113
+ let ${RESULT_BINDING};
114
+ ${source.trimEnd()}
115
+ return ${RESULT_BINDING};
116
+ })()
117
+ //# sourceURL=argus-file://${entryPoint}
118
+ `;
100
119
  const bundleError = (text) => ({ errors: [{ text }] });
101
120
  const formatBundleFailure = (error) => {
102
- if (isEsbuildFailure(error)) {
103
- return error.errors.map(formatEsbuildMessage).join('\n');
121
+ const issues = error instanceof Error && 'errors' in error ? error.errors : null;
122
+ if (issues?.length) {
123
+ return issues.map(formatEsbuildMessage).join('\n');
104
124
  }
105
125
  return error instanceof Error ? error.message : String(error);
106
126
  };
107
- const isEsbuildFailure = (error) => error instanceof Error && 'errors' in error && Array.isArray(error.errors) && error.errors.length > 0;
108
- const formatEsbuildMessage = (issue) => {
109
- const message = issue.text || 'Bundle failed.';
110
- const { file, line, column } = issue.location ?? {};
111
- if (!file) {
127
+ const formatEsbuildMessage = ({ text, location }) => {
128
+ const message = text || 'Bundle failed.';
129
+ if (!location?.file) {
112
130
  return message;
113
131
  }
132
+ const { file, line, column } = location;
114
133
  if (line == null || column == null) {
115
134
  return `${file}: ${message}`;
116
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evalBundle.js","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evalBundle.js","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Detect ESM `import` / `export` in leading script text (after comments and whitespace).
3
+ * Used to auto-enable `--bundle` for `--file` inputs.
4
+ */
5
+ export declare const fileUsesModuleSyntax: (source: string) => boolean;
6
+ //# sourceMappingURL=evalModuleSyntax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalModuleSyntax.d.ts","sourceRoot":"","sources":["../../src/commands/evalModuleSyntax.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,OAAiF,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Detect ESM `import` / `export` in leading script text (after comments and whitespace).
3
+ * Used to auto-enable `--bundle` for `--file` inputs.
4
+ */
5
+ export const fileUsesModuleSyntax = (source) => /^(?:import|export)\b/.test(stripLeadingCommentsAndWhitespace(source));
6
+ /** Skip leading whitespace and comments so detection matches the first executable line. */
7
+ const stripLeadingCommentsAndWhitespace = (source) => {
8
+ let index = 0;
9
+ while (index < source.length) {
10
+ const rest = source.slice(index);
11
+ const whitespace = /^\s+/.exec(rest);
12
+ if (whitespace != null) {
13
+ index += whitespace[0].length;
14
+ continue;
15
+ }
16
+ if (rest.startsWith('//')) {
17
+ const lineEnd = rest.indexOf('\n');
18
+ index += lineEnd === -1 ? rest.length : lineEnd + 1;
19
+ continue;
20
+ }
21
+ if (rest.startsWith('/*')) {
22
+ const blockEnd = rest.indexOf('*/');
23
+ if (blockEnd === -1) {
24
+ break;
25
+ }
26
+ index += blockEnd + 2;
27
+ continue;
28
+ }
29
+ break;
30
+ }
31
+ return source.slice(index);
32
+ };
33
+ //# sourceMappingURL=evalModuleSyntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalModuleSyntax.js","sourceRoot":"","sources":["../../src/commands/evalModuleSyntax.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEvI,2FAA2F;AAC3F,MAAM,iCAAiC,GAAG,CAAC,MAAc,EAAU,EAAE;IACpE,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACxB,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAC7B,SAAQ;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAClC,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;YACnD,SAAQ;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrB,MAAK;YACN,CAAC;YACD,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAA;YACrB,SAAQ;QACT,CAAC;QAED,MAAK;IACN,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA"}
@@ -25,7 +25,7 @@ export type EvalPollInput = {
25
25
  count?: number;
26
26
  totalTimeoutMs?: number;
27
27
  shouldStop?: (context: PollStopContext) => PollStopResult;
28
- onResult?: (response: EvalResponse, context: PollStopContext) => void;
28
+ onResult?: (response: EvalResponse, context: PollStopContext) => void | Promise<void>;
29
29
  };
30
30
  export type EvalPollOutcome = {
31
31
  kind: 'matched';
@@ -1 +1 @@
1
- {"version":3,"file":"evalPolling.d.ts","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAG/E,KAAK,eAAe,GAAG;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,cAAc,CAAA;IACzD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;CACrE,CAAA;AAED,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7C,qGAAqG;AACrG,eAAO,MAAM,QAAQ,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,eAAe,CA+D5E,CAAA"}
1
+ {"version":3,"file":"evalPolling.d.ts","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAG/E,KAAK,eAAe,GAAG;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,cAAc,CAAA;IACzD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7C,qGAAqG;AACrG,eAAO,MAAM,QAAQ,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,eAAe,CA+D5E,CAAA"}