@vforsh/argus 0.1.15 → 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 (332) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/argus.js +19359 -16671
  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 +11 -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 +16 -0
  127. package/dist/commands/evalBundle.d.ts.map +1 -0
  128. package/dist/commands/evalBundle.js +138 -0
  129. package/dist/commands/evalBundle.js.map +1 -0
  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 +43 -17
  143. package/dist/commands/evalShared.d.ts.map +1 -1
  144. package/dist/commands/evalShared.js +103 -42
  145. package/dist/commands/evalShared.js.map +1 -1
  146. package/dist/commands/evalUntil.d.ts +9 -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 +14 -0
  151. package/dist/commands/extension/attach.d.ts.map +1 -0
  152. package/dist/commands/extension/attach.js +110 -0
  153. package/dist/commands/extension/attach.js.map +1 -0
  154. package/dist/commands/extension/info.d.ts.map +1 -1
  155. package/dist/commands/extension/info.js +13 -33
  156. package/dist/commands/extension/info.js.map +1 -1
  157. package/dist/commands/extension/nativeHost.d.ts +35 -5
  158. package/dist/commands/extension/nativeHost.d.ts.map +1 -1
  159. package/dist/commands/extension/nativeHost.js +95 -12
  160. package/dist/commands/extension/nativeHost.js.map +1 -1
  161. package/dist/commands/extension/remove.d.ts.map +1 -1
  162. package/dist/commands/extension/remove.js +18 -38
  163. package/dist/commands/extension/remove.js.map +1 -1
  164. package/dist/commands/extension/resolveExtensionWatcher.d.ts +1 -1
  165. package/dist/commands/extension/resolveExtensionWatcher.d.ts.map +1 -1
  166. package/dist/commands/extension/resolveExtensionWatcher.js +15 -29
  167. package/dist/commands/extension/resolveExtensionWatcher.js.map +1 -1
  168. package/dist/commands/extension/setup.d.ts.map +1 -1
  169. package/dist/commands/extension/setup.js +20 -35
  170. package/dist/commands/extension/setup.js.map +1 -1
  171. package/dist/commands/extension/show.d.ts +12 -0
  172. package/dist/commands/extension/show.d.ts.map +1 -0
  173. package/dist/commands/extension/show.js +208 -0
  174. package/dist/commands/extension/show.js.map +1 -0
  175. package/dist/commands/extension/status.d.ts.map +1 -1
  176. package/dist/commands/extension/status.js +12 -38
  177. package/dist/commands/extension/status.js.map +1 -1
  178. package/dist/commands/extension/tabSelection.d.ts +45 -0
  179. package/dist/commands/extension/tabSelection.d.ts.map +1 -0
  180. package/dist/commands/extension/tabSelection.js +76 -0
  181. package/dist/commands/extension/tabSelection.js.map +1 -0
  182. package/dist/commands/locate.d.ts.map +1 -1
  183. package/dist/commands/locate.js.map +1 -1
  184. package/dist/commands/netMock.d.ts +34 -0
  185. package/dist/commands/netMock.d.ts.map +1 -0
  186. package/dist/commands/netMock.js +323 -0
  187. package/dist/commands/netMock.js.map +1 -0
  188. package/dist/commands/netSse.d.ts +1 -1
  189. package/dist/commands/netSse.d.ts.map +1 -1
  190. package/dist/commands/netSse.js +19 -23
  191. package/dist/commands/netSse.js.map +1 -1
  192. package/dist/commands/netWebSocket.d.ts +2 -2
  193. package/dist/commands/netWebSocket.d.ts.map +1 -1
  194. package/dist/commands/netWebSocket.js +42 -55
  195. package/dist/commands/netWebSocket.js.map +1 -1
  196. package/dist/commands/pluginConfig.d.ts +1 -0
  197. package/dist/commands/pluginConfig.d.ts.map +1 -1
  198. package/dist/commands/pluginConfig.js +12 -2
  199. package/dist/commands/pluginConfig.js.map +1 -1
  200. package/dist/commands/start.d.ts +2 -2
  201. package/dist/commands/start.d.ts.map +1 -1
  202. package/dist/commands/startShared.d.ts +1 -1
  203. package/dist/commands/startShared.d.ts.map +1 -1
  204. package/dist/commands/watcherNativeHost.d.ts +1 -0
  205. package/dist/commands/watcherNativeHost.d.ts.map +1 -1
  206. package/dist/commands/watcherNativeHost.js +8 -2
  207. package/dist/commands/watcherNativeHost.js.map +1 -1
  208. package/dist/commands/watcherSession.d.ts +3 -3
  209. package/dist/commands/watcherSession.d.ts.map +1 -1
  210. package/dist/commands/watcherSession.js.map +1 -1
  211. package/dist/commands/watcherStart.d.ts +2 -2
  212. package/dist/commands/watcherStart.d.ts.map +1 -1
  213. package/dist/config/argusHome.d.ts +3 -0
  214. package/dist/config/argusHome.d.ts.map +1 -0
  215. package/dist/config/argusHome.js +11 -0
  216. package/dist/config/argusHome.js.map +1 -0
  217. package/dist/config/loadConfig.d.ts +13 -0
  218. package/dist/config/loadConfig.d.ts.map +1 -0
  219. package/dist/config/loadConfig.js +59 -0
  220. package/dist/config/loadConfig.js.map +1 -0
  221. package/dist/config/mergeConfig.d.ts +34 -0
  222. package/dist/config/mergeConfig.d.ts.map +1 -0
  223. package/dist/config/mergeConfig.js +57 -0
  224. package/dist/config/mergeConfig.js.map +1 -0
  225. package/dist/config/types.d.ts +51 -0
  226. package/dist/config/types.d.ts.map +1 -0
  227. package/dist/config/types.js +2 -0
  228. package/dist/config/types.js.map +1 -0
  229. package/dist/config/validateConfig.d.ts +14 -0
  230. package/dist/config/validateConfig.d.ts.map +1 -0
  231. package/dist/config/{argusConfig.js → validateConfig.js} +136 -244
  232. package/dist/config/validateConfig.js.map +1 -0
  233. package/dist/eval/evalClient.d.ts +2 -0
  234. package/dist/eval/evalClient.d.ts.map +1 -1
  235. package/dist/eval/evalClient.js +26 -2
  236. package/dist/eval/evalClient.js.map +1 -1
  237. package/package.json +5 -2
  238. package/dist/cli/register/registerAuth.d.ts +0 -3
  239. package/dist/cli/register/registerAuth.d.ts.map +0 -1
  240. package/dist/cli/register/registerAuth.js +0 -133
  241. package/dist/cli/register/registerAuth.js.map +0 -1
  242. package/dist/cli/register/registerChrome.d.ts +0 -3
  243. package/dist/cli/register/registerChrome.d.ts.map +0 -1
  244. package/dist/cli/register/registerChrome.js +0 -118
  245. package/dist/cli/register/registerChrome.js.map +0 -1
  246. package/dist/cli/register/registerCode.d.ts +0 -3
  247. package/dist/cli/register/registerCode.d.ts.map +0 -1
  248. package/dist/cli/register/registerCode.js +0 -74
  249. package/dist/cli/register/registerCode.js.map +0 -1
  250. package/dist/cli/register/registerConfig.d.ts +0 -3
  251. package/dist/cli/register/registerConfig.d.ts.map +0 -1
  252. package/dist/cli/register/registerConfig.js +0 -14
  253. package/dist/cli/register/registerConfig.js.map +0 -1
  254. package/dist/cli/register/registerDialog.d.ts +0 -3
  255. package/dist/cli/register/registerDialog.d.ts.map +0 -1
  256. package/dist/cli/register/registerDialog.js +0 -45
  257. package/dist/cli/register/registerDialog.js.map +0 -1
  258. package/dist/cli/register/registerDom.d.ts +0 -3
  259. package/dist/cli/register/registerDom.d.ts.map +0 -1
  260. package/dist/cli/register/registerDom.js +0 -284
  261. package/dist/cli/register/registerDom.js.map +0 -1
  262. package/dist/cli/register/registerEval.d.ts +0 -3
  263. package/dist/cli/register/registerEval.d.ts.map +0 -1
  264. package/dist/cli/register/registerEval.js +0 -143
  265. package/dist/cli/register/registerEval.js.map +0 -1
  266. package/dist/cli/register/registerExtension.d.ts +0 -3
  267. package/dist/cli/register/registerExtension.d.ts.map +0 -1
  268. package/dist/cli/register/registerExtension.js +0 -49
  269. package/dist/cli/register/registerExtension.js.map +0 -1
  270. package/dist/cli/register/registerFill.d.ts +0 -3
  271. package/dist/cli/register/registerFill.d.ts.map +0 -1
  272. package/dist/cli/register/registerFill.js +0 -31
  273. package/dist/cli/register/registerFill.js.map +0 -1
  274. package/dist/cli/register/registerHover.d.ts +0 -3
  275. package/dist/cli/register/registerHover.d.ts.map +0 -1
  276. package/dist/cli/register/registerHover.js +0 -21
  277. package/dist/cli/register/registerHover.js.map +0 -1
  278. package/dist/cli/register/registerKeydown.d.ts +0 -3
  279. package/dist/cli/register/registerKeydown.d.ts.map +0 -1
  280. package/dist/cli/register/registerKeydown.js +0 -20
  281. package/dist/cli/register/registerKeydown.js.map +0 -1
  282. package/dist/cli/register/registerLocate.d.ts +0 -3
  283. package/dist/cli/register/registerLocate.d.ts.map +0 -1
  284. package/dist/cli/register/registerLocate.js +0 -48
  285. package/dist/cli/register/registerLocate.js.map +0 -1
  286. package/dist/cli/register/registerLogs.d.ts +0 -3
  287. package/dist/cli/register/registerLogs.d.ts.map +0 -1
  288. package/dist/cli/register/registerLogs.js +0 -64
  289. package/dist/cli/register/registerLogs.js.map +0 -1
  290. package/dist/cli/register/registerNet.d.ts +0 -3
  291. package/dist/cli/register/registerNet.d.ts.map +0 -1
  292. package/dist/cli/register/registerNet.js +0 -287
  293. package/dist/cli/register/registerNet.js.map +0 -1
  294. package/dist/cli/register/registerPage.d.ts +0 -3
  295. package/dist/cli/register/registerPage.d.ts.map +0 -1
  296. package/dist/cli/register/registerPage.js +0 -123
  297. package/dist/cli/register/registerPage.js.map +0 -1
  298. package/dist/cli/register/registerPlugin.d.ts +0 -3
  299. package/dist/cli/register/registerPlugin.d.ts.map +0 -1
  300. package/dist/cli/register/registerPlugin.js +0 -34
  301. package/dist/cli/register/registerPlugin.js.map +0 -1
  302. package/dist/cli/register/registerQuickAccess.d.ts +0 -3
  303. package/dist/cli/register/registerQuickAccess.d.ts.map +0 -1
  304. package/dist/cli/register/registerQuickAccess.js +0 -112
  305. package/dist/cli/register/registerQuickAccess.js.map +0 -1
  306. package/dist/cli/register/registerScrollTo.d.ts +0 -3
  307. package/dist/cli/register/registerScrollTo.d.ts.map +0 -1
  308. package/dist/cli/register/registerScrollTo.js +0 -22
  309. package/dist/cli/register/registerScrollTo.js.map +0 -1
  310. package/dist/cli/register/registerSnapshot.d.ts +0 -3
  311. package/dist/cli/register/registerSnapshot.d.ts.map +0 -1
  312. package/dist/cli/register/registerSnapshot.js +0 -38
  313. package/dist/cli/register/registerSnapshot.js.map +0 -1
  314. package/dist/cli/register/registerStorage.d.ts +0 -3
  315. package/dist/cli/register/registerStorage.d.ts.map +0 -1
  316. package/dist/cli/register/registerStorage.js +0 -61
  317. package/dist/cli/register/registerStorage.js.map +0 -1
  318. package/dist/cli/register/registerThrottle.d.ts +0 -3
  319. package/dist/cli/register/registerThrottle.d.ts.map +0 -1
  320. package/dist/cli/register/registerThrottle.js +0 -33
  321. package/dist/cli/register/registerThrottle.js.map +0 -1
  322. package/dist/cli/register/registerTrace.d.ts +0 -3
  323. package/dist/cli/register/registerTrace.d.ts.map +0 -1
  324. package/dist/cli/register/registerTrace.js +0 -57
  325. package/dist/cli/register/registerTrace.js.map +0 -1
  326. package/dist/cli/register/registerWatcher.d.ts +0 -3
  327. package/dist/cli/register/registerWatcher.d.ts.map +0 -1
  328. package/dist/cli/register/registerWatcher.js +0 -134
  329. package/dist/cli/register/registerWatcher.js.map +0 -1
  330. package/dist/config/argusConfig.d.ts +0 -76
  331. package/dist/config/argusConfig.d.ts.map +0 -1
  332. package/dist/config/argusConfig.js.map +0 -1
@@ -0,0 +1,85 @@
1
+ import { previewStringify } from '@vforsh/argus-core';
2
+ import { appendFile, mkdir, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { resolvePath } from '../utils/paths.js';
5
+ /**
6
+ * Validate `--out` / `--rotate` usage for eval commands.
7
+ * Returns `false` and sets exit code 2 when invalid.
8
+ */
9
+ export const validateEvalResultFileOptions = (options, output) => {
10
+ if (options.rotate && !options.out) {
11
+ output.writeWarn('Invalid --rotate usage: requires --out');
12
+ process.exitCode = 2;
13
+ return false;
14
+ }
15
+ if (options.rotate && options.interval == null) {
16
+ output.writeWarn('Invalid --rotate usage: requires --interval');
17
+ process.exitCode = 2;
18
+ return false;
19
+ }
20
+ return true;
21
+ };
22
+ /** Create a file sink when `--out` is set; otherwise `null`. */
23
+ export const createEvalResultFileSink = (options) => {
24
+ if (!options.out) {
25
+ return null;
26
+ }
27
+ return createEvalResultFileSinkAtPath(resolvePath(options.out), options.json === true, options.rotate === true);
28
+ };
29
+ const createEvalResultFileSinkAtPath = (outPath, json, rotate) => {
30
+ let appendReady = false;
31
+ let rotateIndex = 0;
32
+ const prepareAppendTarget = async () => {
33
+ if (appendReady) {
34
+ return;
35
+ }
36
+ await ensureParentDir(outPath);
37
+ await writeFile(outPath, '', 'utf8');
38
+ appendReady = true;
39
+ };
40
+ return {
41
+ displayPath: outPath,
42
+ write: async (response, streaming) => {
43
+ if (streaming && rotate) {
44
+ rotateIndex += 1;
45
+ const iterationPath = formatRotatedPath(outPath, rotateIndex);
46
+ await writeResultFile(iterationPath, formatResultPayload(response, json));
47
+ return;
48
+ }
49
+ if (streaming) {
50
+ await prepareAppendTarget();
51
+ await appendFile(outPath, `${JSON.stringify(response)}\n`, 'utf8');
52
+ return;
53
+ }
54
+ await writeResultFile(outPath, formatResultPayload(response, json));
55
+ },
56
+ };
57
+ };
58
+ /** Insert a zero-padded counter before the file extension (`result.json` → `result.0001.json`). */
59
+ export const formatRotatedPath = (outPath, index) => {
60
+ const parsed = path.parse(outPath);
61
+ const suffix = String(index).padStart(4, '0');
62
+ const extension = parsed.ext || '.json';
63
+ return path.join(parsed.dir, `${parsed.name}.${suffix}${extension}`);
64
+ };
65
+ const formatResultPayload = (response, json) => {
66
+ if (json) {
67
+ return `${JSON.stringify(response, null, 2)}\n`;
68
+ }
69
+ if (response.exception) {
70
+ const details = response.exception.details ? `\n${previewStringify(response.exception.details)}` : '';
71
+ return `Exception: ${response.exception.text}${details}\n`;
72
+ }
73
+ return `${previewStringify(response.result)}\n`;
74
+ };
75
+ const writeResultFile = async (filePath, payload) => {
76
+ await ensureParentDir(filePath);
77
+ await writeFile(filePath, payload, 'utf8');
78
+ };
79
+ const ensureParentDir = async (filePath) => {
80
+ const parent = path.dirname(filePath);
81
+ if (parent && parent !== '.') {
82
+ await mkdir(parent, { recursive: true });
83
+ }
84
+ };
85
+ //# sourceMappingURL=evalResultOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalResultOutput.js","sourceRoot":"","sources":["../../src/commands/evalResultOutput.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,22 @@
1
1
  import type { EvalResponse } from '@vforsh/argus-core';
2
2
  import type { Output } from '../output/io.js';
3
+ import { type EvalArgMap, type EvalArgSourceOptions } from './evalArgs.js';
4
+ import { type EvalResultFileOptions } from './evalResultOutput.js';
5
+ export { type EvalArgMap, hasEvalArgs, parseEvalArgFlags as parseEvalArgs } from './evalArgs.js';
3
6
  export { formatError, parseNumber } from '../cli/parse.js';
4
7
  type ExpressionSourceOptions = {
5
8
  file?: string;
6
9
  stdin?: boolean;
7
10
  inject?: string;
11
+ /** Force bundling for `--file`. */
12
+ bundle?: boolean;
13
+ /** Skip bundling; disables auto-bundle when the file uses import/export. */
14
+ noBundle?: boolean;
8
15
  };
9
- /** String-only argument map exposed to eval scripts as `args`. */
10
- export type EvalArgMap = Record<string, string>;
11
- type EvalExpressionOptions = ExpressionSourceOptions & {
16
+ type EvalExpressionOptions = ExpressionSourceOptions & EvalArgSourceOptions & {
12
17
  iframe?: string;
13
18
  iframeNamespace?: string;
14
19
  iframeTimeout?: string;
15
- arg?: string[];
16
20
  };
17
21
  export type PreparedEvalExpression = {
18
22
  expression: string;
@@ -25,6 +29,15 @@ export declare const prepareEvalExpression: (inline: string | undefined, options
25
29
  * Returns `null` (and writes a warning) when the input is invalid.
26
30
  */
27
31
  export declare const resolveExpression: (inline: string | undefined, options: ExpressionSourceOptions, output: Output) => Promise<string | null>;
32
+ type BundleDecision = {
33
+ shouldBundle: boolean;
34
+ autoEnabled: boolean;
35
+ };
36
+ /**
37
+ * `--no-bundle` wins over `--bundle` and auto-detection.
38
+ * Auto-bundle applies when leading script text uses import/export.
39
+ */
40
+ export declare const resolveBundleDecision: (options: ExpressionSourceOptions, fileContent: string) => BundleDecision;
28
41
  /** Read all of stdin into a string. */
29
42
  export declare const readStdin: () => Promise<string>;
30
43
  /** Parse `--retry` flag into a non-negative integer. */
@@ -37,25 +50,28 @@ export declare const parseIntervalMs: (value?: string) => {
37
50
  value?: number;
38
51
  error?: string;
39
52
  };
40
- /** Parse `--count` flag into a positive integer. */
41
- export declare const parseCount: (value?: string) => {
53
+ /** Parse eval timeout flags. Bare numbers remain milliseconds for compatibility; unit suffixes opt into durations. */
54
+ export declare const parseTimeoutMs: (value?: string) => {
55
+ value?: number;
56
+ error?: string;
57
+ };
58
+ /** Parse timeout-like flags. Bare numbers mean milliseconds; unit suffixes support ms/s/m/h/d. */
59
+ export declare const parseDurationFlagMs: (value: string | undefined, flagName: string) => {
42
60
  value?: number;
43
61
  error?: string;
44
62
  };
45
- /** Parse repeated `--arg key=value` flags. Later values override earlier ones. */
46
- export declare const parseEvalArgs: (values?: string[]) => {
47
- value: EvalArgMap;
63
+ /** Parse `--count` flag into a positive integer. */
64
+ export declare const parseCount: (value?: string) => {
65
+ value?: number;
48
66
  error?: string;
49
67
  };
50
- /** True when the parsed arg map should be sent or injected. */
51
- export declare const hasEvalArgs: (args: EvalArgMap) => boolean;
52
68
  /** Prepend the reserved `args` binding only when eval arguments were supplied. */
53
69
  export declare const wrapExpressionWithArgs: (source: string, args: EvalArgMap) => string;
54
70
  /** Sleep for `durationMs` milliseconds. */
55
71
  export declare const sleep: (durationMs: number) => Promise<void>;
56
72
  /** Format an exception response into a human-readable string. */
57
73
  export declare const formatException: (response: EvalResponse) => string;
58
- /** Failure shape used by `printError`. */
74
+ /** Failure shape used by eval emitters. */
59
75
  export type EvalAttemptFailure = {
60
76
  ok: false;
61
77
  kind: 'transport' | 'exception';
@@ -63,17 +79,27 @@ export type EvalAttemptFailure = {
63
79
  response?: EvalResponse;
64
80
  attempt: number;
65
81
  };
66
- type PrintableEvalOptions = {
82
+ export type EvalEmitOptions = EvalResultFileOptions & {
67
83
  json?: boolean;
68
84
  silent?: boolean;
69
85
  };
70
- /** Print a successful eval response. */
71
- export declare const printSuccess: (response: EvalResponse, options: PrintableEvalOptions, output: Output, streaming: boolean) => void;
72
- /** Print an eval error (transport, exception, or until-condition failure). */
86
+ /** Writes eval results to stdout/stderr and optionally to `--out`. */
87
+ export type EvalEmitter = {
88
+ emitSuccess: (response: EvalResponse, streaming: boolean) => Promise<void>;
89
+ emitError: (error: EvalAttemptFailure | {
90
+ kind: 'until';
91
+ error: string;
92
+ }) => void;
93
+ };
94
+ /** Create stdout/stderr and optional file sinks for eval command output. */
95
+ export declare const createEvalEmitter: (options: EvalEmitOptions, output: Output) => EvalEmitter;
96
+ /** Write a successful eval response to stdout/stderr only. */
97
+ export declare const printSuccess: (response: EvalResponse, options: EvalEmitOptions, output: Output, streaming: boolean) => void;
98
+ /** Write an eval error to stdout/stderr only. */
73
99
  export declare const printError: (error: EvalAttemptFailure | {
74
100
  kind: "until";
75
101
  error: string;
76
- }, options: PrintableEvalOptions, output: Output) => void;
102
+ }, options: EvalEmitOptions, output: Output) => void;
77
103
  /** Configuration for wrapping an expression for iframe eval via postMessage. */
78
104
  export type IframeWrapConfig = {
79
105
  selector: string;
@@ -1 +1 @@
1
- {"version":3,"file":"evalShared.d.ts","sourceRoot":"","sources":["../../src/commands/evalShared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evalShared.d.ts","sourceRoot":"","sources":["../../src/commands/evalShared.ts"],"names":[],"mappings":"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"}
@@ -2,31 +2,40 @@ import { previewStringify } from '@vforsh/argus-core';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { formatError, parseNumber } from '../cli/parse.js';
4
4
  import { parseDurationMs } from '../time.js';
5
- // Re-export shared parsers so existing eval imports keep working
5
+ import { hasEvalArgs, resolveEvalArgs } from './evalArgs.js';
6
+ import { bundleEvalEntry } from './evalBundle.js';
7
+ import { fileUsesModuleSyntax } from './evalModuleSyntax.js';
8
+ import { createEvalResultFileSink } from './evalResultOutput.js';
9
+ // Re-export eval arg helpers for existing imports and tests.
10
+ export { hasEvalArgs, parseEvalArgFlags as parseEvalArgs } from './evalArgs.js';
11
+ // Re-export shared parsers so existing eval imports keep working.
6
12
  export { formatError, parseNumber } from '../cli/parse.js';
7
13
  /** Resolve script input, eval args, and iframe wrapping into the payload sent to the watcher. */
8
14
  export const prepareEvalExpression = async (inline, options, output) => {
9
- const evalArgs = parseEvalArgs(options.arg);
10
- if (evalArgs.error) {
11
- output.writeWarn(evalArgs.error);
15
+ const args = await resolveEvalArgs(options, output);
16
+ if (args == null) {
12
17
  return null;
13
18
  }
14
19
  const resolvedExpression = await resolveExpression(inline, options, output);
15
20
  if (resolvedExpression == null) {
16
21
  return null;
17
22
  }
18
- const args = evalArgs.value;
19
23
  if (!options.iframe) {
20
24
  return {
21
25
  expression: resolvedExpression,
22
26
  args: hasEvalArgs(args) ? args : undefined,
23
27
  };
24
28
  }
29
+ const iframeTimeoutMs = parseDurationFlagMs(options.iframeTimeout, '--iframe-timeout');
30
+ if (iframeTimeoutMs.error) {
31
+ output.writeWarn(iframeTimeoutMs.error);
32
+ return null;
33
+ }
25
34
  return {
26
35
  expression: wrapForIframeEval(wrapExpressionWithArgs(resolvedExpression, args), {
27
36
  selector: options.iframe,
28
37
  namespace: options.iframeNamespace ?? 'argus',
29
- timeoutMs: parseNumber(options.iframeTimeout) ?? 5000,
38
+ timeoutMs: iframeTimeoutMs.value ?? 5000,
30
39
  }),
31
40
  };
32
41
  };
@@ -37,7 +46,8 @@ export const prepareEvalExpression = async (inline, options, output) => {
37
46
  export const resolveExpression = async (inline, options, output) => {
38
47
  const wantsStdin = options.stdin === true || inline === '-';
39
48
  const hasInline = inline != null && inline !== '-';
40
- const hasFile = options.file != null;
49
+ const filePath = options.file;
50
+ const hasFile = filePath != null;
41
51
  if (hasInline && hasFile) {
42
52
  output.writeWarn('Cannot combine an inline expression with --file');
43
53
  return null;
@@ -50,19 +60,34 @@ export const resolveExpression = async (inline, options, output) => {
50
60
  output.writeWarn('Cannot combine --file with stdin input');
51
61
  return null;
52
62
  }
63
+ if ((options.bundle || options.noBundle) && !hasFile) {
64
+ output.writeWarn('--bundle and --no-bundle require --file');
65
+ return null;
66
+ }
53
67
  let expression;
54
68
  if (hasFile) {
55
- try {
56
- const content = await readFile(options.file ?? '', 'utf8');
57
- if (!content.trim()) {
58
- output.writeWarn(`File is empty: ${options.file}`);
69
+ const fileContent = await readFileContent(filePath, options.file, output);
70
+ if (fileContent == null) {
71
+ return null;
72
+ }
73
+ const bundleDecision = resolveBundleDecision(options, fileContent);
74
+ if (bundleDecision.autoEnabled) {
75
+ output.writeWarn('Detected import/export in --file; bundling automatically. Pass --no-bundle to read the file as-is.');
76
+ }
77
+ if (bundleDecision.shouldBundle) {
78
+ const bundled = await bundleEvalEntry(filePath);
79
+ if (!bundled.ok) {
80
+ output.writeWarn(`Failed to bundle --file: ${bundled.error}`);
59
81
  return null;
60
82
  }
61
- expression = content;
83
+ if (!bundled.code.trim()) {
84
+ output.writeWarn(`Bundled file is empty: ${options.file}`);
85
+ return null;
86
+ }
87
+ expression = bundled.code;
62
88
  }
63
- catch (error) {
64
- output.writeWarn(`Failed to read --file: ${formatError(error)}`);
65
- return null;
89
+ else {
90
+ expression = fileContent;
66
91
  }
67
92
  }
68
93
  else if (wantsStdin) {
@@ -92,6 +117,36 @@ export const resolveExpression = async (inline, options, output) => {
92
117
  }
93
118
  return await prependInjectSource(expression, options.inject, output);
94
119
  };
120
+ /**
121
+ * `--no-bundle` wins over `--bundle` and auto-detection.
122
+ * Auto-bundle applies when leading script text uses import/export.
123
+ */
124
+ export const resolveBundleDecision = (options, fileContent) => {
125
+ if (options.noBundle) {
126
+ return { shouldBundle: false, autoEnabled: false };
127
+ }
128
+ if (options.bundle) {
129
+ return { shouldBundle: true, autoEnabled: false };
130
+ }
131
+ if (!fileUsesModuleSyntax(fileContent)) {
132
+ return { shouldBundle: false, autoEnabled: false };
133
+ }
134
+ return { shouldBundle: true, autoEnabled: true };
135
+ };
136
+ const readFileContent = async (filePath, displayPath, output) => {
137
+ try {
138
+ const content = await readFile(filePath, 'utf8');
139
+ if (!content.trim()) {
140
+ output.writeWarn(`File is empty: ${displayPath}`);
141
+ return null;
142
+ }
143
+ return content;
144
+ }
145
+ catch (error) {
146
+ output.writeWarn(`Failed to read --file: ${formatError(error)}`);
147
+ return null;
148
+ }
149
+ };
95
150
  const prependInjectSource = async (expression, injectPath, output) => {
96
151
  if (injectPath == null) {
97
152
  return expression;
@@ -136,22 +191,24 @@ export const parseRetryCount = (value) => {
136
191
  };
137
192
  /** Parse `--interval` flag into milliseconds. Accepts bare numbers or durations (250ms, 3s, 2m). */
138
193
  export const parseIntervalMs = (value) => {
194
+ return parseDurationFlagMs(value, '--interval');
195
+ };
196
+ /** Parse eval timeout flags. Bare numbers remain milliseconds for compatibility; unit suffixes opt into durations. */
197
+ export const parseTimeoutMs = (value) => {
198
+ return parseDurationFlagMs(value, '--timeout');
199
+ };
200
+ /** Parse timeout-like flags. Bare numbers mean milliseconds; unit suffixes support ms/s/m/h/d. */
201
+ export const parseDurationFlagMs = (value, flagName) => {
139
202
  if (value == null) {
140
203
  return {};
141
204
  }
142
205
  const trimmed = value.trim();
143
206
  if (!trimmed) {
144
- return { error: 'Invalid --interval value: empty duration.' };
145
- }
146
- let parsed;
147
- if (/^[0-9]+$/.test(trimmed)) {
148
- parsed = Number(trimmed);
149
- }
150
- else {
151
- parsed = parseDurationMs(trimmed);
207
+ return { error: `Invalid ${flagName} value: empty duration.` };
152
208
  }
209
+ const parsed = /^[0-9]+(?:\.[0-9]+)?$/.test(trimmed) ? Number(trimmed) : parseDurationMs(trimmed);
153
210
  if (parsed == null || !Number.isFinite(parsed) || parsed <= 0) {
154
- return { error: 'Invalid --interval value: expected milliseconds or a duration like 250ms, 3s, 2m.' };
211
+ return { error: `Invalid ${flagName} value: expected milliseconds or a duration like 250ms, 30s, 2m.` };
155
212
  }
156
213
  return { value: parsed };
157
214
  };
@@ -166,20 +223,6 @@ export const parseCount = (value) => {
166
223
  }
167
224
  return { value: parsed };
168
225
  };
169
- /** Parse repeated `--arg key=value` flags. Later values override earlier ones. */
170
- export const parseEvalArgs = (values) => {
171
- const args = {};
172
- for (const value of values ?? []) {
173
- const separatorIndex = value.indexOf('=');
174
- if (separatorIndex < 0 || separatorIndex === 0) {
175
- return { value: args, error: `Invalid --arg value ${JSON.stringify(value)}: expected key=value.` };
176
- }
177
- args[value.slice(0, separatorIndex)] = value.slice(separatorIndex + 1);
178
- }
179
- return { value: args };
180
- };
181
- /** True when the parsed arg map should be sent or injected. */
182
- export const hasEvalArgs = (args) => Object.keys(args).length > 0;
183
226
  /** Prepend the reserved `args` binding only when eval arguments were supplied. */
184
227
  export const wrapExpressionWithArgs = (source, args) => {
185
228
  if (!hasEvalArgs(args)) {
@@ -207,8 +250,23 @@ export const formatException = (response) => {
207
250
  }
208
251
  return `Exception: ${response.exception.text}`;
209
252
  };
210
- /** Print a successful eval response. */
211
- export const printSuccess = (response, options, output, streaming) => {
253
+ /** Create stdout/stderr and optional file sinks for eval command output. */
254
+ export const createEvalEmitter = (options, output) => {
255
+ const fileSink = createEvalResultFileSink(options);
256
+ return {
257
+ emitSuccess: async (response, streaming) => {
258
+ await fileSink?.write(response, streaming);
259
+ writeEvalSuccess(response, options, output, streaming);
260
+ if (fileSink && !streaming && !options.silent) {
261
+ output.writeHuman(`Result saved: ${fileSink.displayPath}`);
262
+ }
263
+ },
264
+ emitError: (error) => {
265
+ writeEvalError(error, options, output);
266
+ },
267
+ };
268
+ };
269
+ const writeEvalSuccess = (response, options, output, streaming) => {
212
270
  if (options.silent) {
213
271
  return;
214
272
  }
@@ -227,8 +285,7 @@ export const printSuccess = (response, options, output, streaming) => {
227
285
  }
228
286
  output.writeHuman(previewStringify(response.result));
229
287
  };
230
- /** Print an eval error (transport, exception, or until-condition failure). */
231
- export const printError = (error, options, output) => {
288
+ const writeEvalError = (error, options, output) => {
232
289
  if (options.json && 'response' in error && error.response) {
233
290
  output.writeJsonLine(error.response);
234
291
  }
@@ -238,6 +295,10 @@ export const printError = (error, options, output) => {
238
295
  }
239
296
  output.writeWarn(error.error);
240
297
  };
298
+ /** Write a successful eval response to stdout/stderr only. */
299
+ export const printSuccess = writeEvalSuccess;
300
+ /** Write an eval error to stdout/stderr only. */
301
+ export const printError = writeEvalError;
241
302
  /**
242
303
  * Wrap an expression to eval it in an iframe via postMessage.
243
304
  * The iframe must have the argus helper script loaded.
@@ -1 +1 @@
1
- {"version":3,"file":"evalShared.js","sourceRoot":"","sources":["../../src/commands/evalShared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evalShared.js","sourceRoot":"","sources":["../../src/commands/evalShared.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,10 @@ export type EvalUntilOptions = {
13
13
  verbose?: boolean;
14
14
  /** Read expression from a file path. */
15
15
  file?: string;
16
+ /** Bundle local imports from `--file` before eval. */
17
+ bundle?: boolean;
18
+ /** Do not bundle `--file` (disables auto-bundle for import/export). */
19
+ noBundle?: boolean;
16
20
  /** Read expression from stdin. Also activated when expression is `-`. */
17
21
  stdin?: boolean;
18
22
  /** Read setup code from a file and run it before the expression. */
@@ -21,10 +25,14 @@ export type EvalUntilOptions = {
21
25
  iframe?: string;
22
26
  /** Message type prefix for iframe eval (default: argus). */
23
27
  iframeNamespace?: string;
24
- /** Timeout for iframe postMessage response in ms (default: 5000). */
28
+ /** Timeout for iframe postMessage response (default: 5000; accepts duration syntax). */
25
29
  iframeTimeout?: string;
26
30
  /** Repeated key=value arguments exposed to scripts as `args`. */
27
31
  arg?: string[];
32
+ /** Load args from a JSON object file. */
33
+ args?: string;
34
+ /** Write the matched eval result to a file. */
35
+ out?: string;
28
36
  };
29
37
  /** Execute the eval-until command: poll until the expression returns a truthy value. */
30
38
  export declare const runEvalUntil: (id: string | undefined, rawExpression: string | undefined, options: EvalUntilOptions) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"evalUntil.d.ts","sourceRoot":"","sources":["../../src/commands/evalUntil.ts"],"names":[],"mappings":"AAMA,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,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,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,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,wFAAwF;AACxF,eAAO,MAAM,YAAY,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,eAAe,MAAM,GAAG,SAAS,EAAE,SAAS,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAgGrI,CAAA"}
1
+ {"version":3,"file":"evalUntil.d.ts","sourceRoot":"","sources":["../../src/commands/evalUntil.ts"],"names":[],"mappings":"AAeA,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,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,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,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,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,YAAY,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,eAAe,MAAM,GAAG,SAAS,EAAE,SAAS,gBAAgB,KAAG,OAAO,CAAC,IAAI,CA4GrI,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { createOutput } from '../output/io.js';
2
- import { parseDurationMs } from '../time.js';
3
2
  import { resolveWatcherOrExit } from '../watchers/requestWatcher.js';
4
3
  import { pollEval } from './evalPolling.js';
5
- import { parseCount, parseIntervalMs, parseNumber, parseRetryCount, prepareEvalExpression, printError, printSuccess } from './evalShared.js';
4
+ import { createEvalEmitter, parseCount, parseDurationFlagMs, parseIntervalMs, parseRetryCount, parseTimeoutMs, prepareEvalExpression, printSuccess, } from './evalShared.js';
5
+ import { validateEvalResultFileOptions } from './evalResultOutput.js';
6
6
  /** Execute the eval-until command: poll until the expression returns a truthy value. */
7
7
  export const runEvalUntil = async (id, rawExpression, options) => {
8
8
  const output = createOutput(options);
@@ -30,24 +30,33 @@ export const runEvalUntil = async (id, rawExpression, options) => {
30
30
  process.exitCode = 2;
31
31
  return;
32
32
  }
33
- const totalTimeoutMs = parseTotalTimeout(options.totalTimeout);
33
+ const totalTimeoutMs = parseDurationFlagMs(options.totalTimeout, '--total-timeout');
34
34
  if (totalTimeoutMs.error) {
35
35
  output.writeWarn(totalTimeoutMs.error);
36
36
  process.exitCode = 2;
37
37
  return;
38
38
  }
39
+ const timeoutMs = parseTimeoutMs(options.timeout);
40
+ if (timeoutMs.error) {
41
+ output.writeWarn(timeoutMs.error);
42
+ process.exitCode = 2;
43
+ return;
44
+ }
45
+ if (!validateEvalResultFileOptions(options, output)) {
46
+ return;
47
+ }
48
+ const emitter = createEvalEmitter(options, output);
39
49
  const resolved = await resolveWatcherOrExit({ id }, output);
40
50
  if (!resolved)
41
51
  return;
42
52
  const { watcher } = resolved;
43
- const timeoutMs = parseNumber(options.timeout);
44
53
  const pollResult = await pollEval({
45
54
  watcher,
46
55
  expression: prepared.expression,
47
56
  args: prepared.args,
48
57
  awaitPromise: options.await ?? true,
49
58
  returnByValue: options.returnByValue ?? true,
50
- timeoutMs,
59
+ timeoutMs: timeoutMs.value,
51
60
  failOnException: options.failOnException ?? true,
52
61
  retryCount: retryCount.value,
53
62
  intervalMs: pollIntervalMs,
@@ -61,11 +70,11 @@ export const runEvalUntil = async (id, rawExpression, options) => {
61
70
  shouldStop: ({ response }) => ({ ok: true, matched: Boolean(response.result) }),
62
71
  });
63
72
  if (pollResult.kind === 'matched') {
64
- printSuccess(pollResult.response, options, output, false);
73
+ await emitter.emitSuccess(pollResult.response, false);
65
74
  return;
66
75
  }
67
76
  if (pollResult.kind === 'eval-error') {
68
- printError(pollResult.failure, options, output);
77
+ emitter.emitError(pollResult.failure);
69
78
  process.exitCode = 1;
70
79
  return;
71
80
  }
@@ -88,24 +97,4 @@ export const runEvalUntil = async (id, rawExpression, options) => {
88
97
  process.exitCode = 130;
89
98
  }
90
99
  };
91
- const parseTotalTimeout = (value) => {
92
- if (value == null) {
93
- return {};
94
- }
95
- const trimmed = value.trim();
96
- if (!trimmed) {
97
- return { error: 'Invalid --total-timeout value: empty duration.' };
98
- }
99
- let parsed;
100
- if (/^[0-9]+$/.test(trimmed)) {
101
- parsed = Number(trimmed);
102
- }
103
- else {
104
- parsed = parseDurationMs(trimmed);
105
- }
106
- if (parsed == null || !Number.isFinite(parsed) || parsed <= 0) {
107
- return { error: 'Invalid --total-timeout value: expected milliseconds or a duration like 30s, 2m, 1h.' };
108
- }
109
- return { value: parsed };
110
- };
111
100
  //# sourceMappingURL=evalUntil.js.map