@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/argus.js +19359 -16671
- package/dist/cli/defineCommand.d.ts +3 -0
- package/dist/cli/defineCommand.d.ts.map +1 -1
- package/dist/cli/defineCommand.js +11 -0
- package/dist/cli/defineCommand.js.map +1 -1
- package/dist/cli/plugins/registerPlugins.d.ts +3 -1
- package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
- package/dist/cli/plugins/registerPlugins.js +31 -12
- package/dist/cli/plugins/registerPlugins.js.map +1 -1
- package/dist/cli/register/authCommands.d.ts +3 -0
- package/dist/cli/register/authCommands.d.ts.map +1 -0
- package/dist/cli/register/authCommands.js +230 -0
- package/dist/cli/register/authCommands.js.map +1 -0
- package/dist/cli/register/chromeCommands.d.ts +3 -0
- package/dist/cli/register/chromeCommands.d.ts.map +1 -0
- package/dist/cli/register/chromeCommands.js +153 -0
- package/dist/cli/register/chromeCommands.js.map +1 -0
- package/dist/cli/register/codeCommands.d.ts +3 -0
- package/dist/cli/register/codeCommands.d.ts.map +1 -0
- package/dist/cli/register/codeCommands.js +116 -0
- package/dist/cli/register/codeCommands.js.map +1 -0
- package/dist/cli/register/configCommands.d.ts +3 -0
- package/dist/cli/register/configCommands.d.ts.map +1 -0
- package/dist/cli/register/configCommands.js +23 -0
- package/dist/cli/register/configCommands.js.map +1 -0
- package/dist/cli/register/dialogCommands.d.ts +3 -0
- package/dist/cli/register/dialogCommands.d.ts.map +1 -0
- package/dist/cli/register/dialogCommands.js +52 -0
- package/dist/cli/register/dialogCommands.js.map +1 -0
- package/dist/cli/register/domCommandBuilder.d.ts +7 -5
- package/dist/cli/register/domCommandBuilder.d.ts.map +1 -1
- package/dist/cli/register/domCommandBuilder.js +28 -23
- package/dist/cli/register/domCommandBuilder.js.map +1 -1
- package/dist/cli/register/domCommands.d.ts +3 -0
- package/dist/cli/register/domCommands.d.ts.map +1 -0
- package/dist/cli/register/domCommands.js +318 -0
- package/dist/cli/register/domCommands.js.map +1 -0
- package/dist/cli/register/evalCommands.d.ts +3 -0
- package/dist/cli/register/evalCommands.d.ts.map +1 -0
- package/dist/cli/register/evalCommands.js +173 -0
- package/dist/cli/register/evalCommands.js.map +1 -0
- package/dist/cli/register/extensionCommands.d.ts +3 -0
- package/dist/cli/register/extensionCommands.d.ts.map +1 -0
- package/dist/cli/register/extensionCommands.js +115 -0
- package/dist/cli/register/extensionCommands.js.map +1 -0
- package/dist/cli/register/fillCommand.d.ts +3 -0
- package/dist/cli/register/fillCommand.d.ts.map +1 -0
- package/dist/cli/register/fillCommand.js +44 -0
- package/dist/cli/register/fillCommand.js.map +1 -0
- package/dist/cli/register/hoverCommand.d.ts +3 -0
- package/dist/cli/register/hoverCommand.d.ts.map +1 -0
- package/dist/cli/register/hoverCommand.js +27 -0
- package/dist/cli/register/hoverCommand.js.map +1 -0
- package/dist/cli/register/index.d.ts.map +1 -1
- package/dist/cli/register/index.js +51 -52
- package/dist/cli/register/index.js.map +1 -1
- package/dist/cli/register/keydownCommand.d.ts +3 -0
- package/dist/cli/register/keydownCommand.d.ts.map +1 -0
- package/dist/cli/register/keydownCommand.js +21 -0
- package/dist/cli/register/keydownCommand.js.map +1 -0
- package/dist/cli/register/locateCommands.d.ts +3 -0
- package/dist/cli/register/locateCommands.d.ts.map +1 -0
- package/dist/cli/register/locateCommands.js +60 -0
- package/dist/cli/register/locateCommands.js.map +1 -0
- package/dist/cli/register/logsCommands.d.ts +3 -0
- package/dist/cli/register/logsCommands.d.ts.map +1 -0
- package/dist/cli/register/logsCommands.js +67 -0
- package/dist/cli/register/logsCommands.js.map +1 -0
- package/dist/cli/register/netCommands.d.ts +3 -0
- package/dist/cli/register/netCommands.d.ts.map +1 -0
- package/dist/cli/register/netCommands.js +442 -0
- package/dist/cli/register/netCommands.js.map +1 -0
- package/dist/cli/register/pageCommands.d.ts +3 -0
- package/dist/cli/register/pageCommands.d.ts.map +1 -0
- package/dist/cli/register/pageCommands.js +188 -0
- package/dist/cli/register/pageCommands.js.map +1 -0
- package/dist/cli/register/pluginCommands.d.ts +3 -0
- package/dist/cli/register/pluginCommands.d.ts.map +1 -0
- package/dist/cli/register/pluginCommands.js +51 -0
- package/dist/cli/register/pluginCommands.js.map +1 -0
- package/dist/cli/register/quickAccessCommands.d.ts +3 -0
- package/dist/cli/register/quickAccessCommands.d.ts.map +1 -0
- package/dist/cli/register/quickAccessCommands.js +138 -0
- package/dist/cli/register/quickAccessCommands.js.map +1 -0
- package/dist/cli/register/scrollToCommand.d.ts +3 -0
- package/dist/cli/register/scrollToCommand.d.ts.map +1 -0
- package/dist/cli/register/scrollToCommand.js +30 -0
- package/dist/cli/register/scrollToCommand.js.map +1 -0
- package/dist/cli/register/snapshotCommands.d.ts +3 -0
- package/dist/cli/register/snapshotCommands.d.ts.map +1 -0
- package/dist/cli/register/snapshotCommands.js +57 -0
- package/dist/cli/register/snapshotCommands.js.map +1 -0
- package/dist/cli/register/storageCommands.d.ts +3 -0
- package/dist/cli/register/storageCommands.d.ts.map +1 -0
- package/dist/cli/register/storageCommands.js +78 -0
- package/dist/cli/register/storageCommands.js.map +1 -0
- package/dist/cli/register/throttleCommands.d.ts +3 -0
- package/dist/cli/register/throttleCommands.d.ts.map +1 -0
- package/dist/cli/register/throttleCommands.js +48 -0
- package/dist/cli/register/throttleCommands.js.map +1 -0
- package/dist/cli/register/traceCommands.d.ts +3 -0
- package/dist/cli/register/traceCommands.d.ts.map +1 -0
- package/dist/cli/register/traceCommands.js +72 -0
- package/dist/cli/register/traceCommands.js.map +1 -0
- package/dist/cli/register/watcherCommands.d.ts +3 -0
- package/dist/cli/register/watcherCommands.d.ts.map +1 -0
- package/dist/cli/register/watcherCommands.js +180 -0
- package/dist/cli/register/watcherCommands.js.map +1 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/code.d.ts +2 -2
- package/dist/commands/code.d.ts.map +1 -1
- package/dist/commands/code.js +42 -45
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/codeEdit.d.ts.map +1 -1
- package/dist/commands/codeEdit.js.map +1 -1
- package/dist/commands/eval.d.ts +11 -1
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +20 -10
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/evalArgs.d.ts +31 -0
- package/dist/commands/evalArgs.d.ts.map +1 -0
- package/dist/commands/evalArgs.js +103 -0
- package/dist/commands/evalArgs.js.map +1 -0
- package/dist/commands/evalBundle.d.ts +16 -0
- package/dist/commands/evalBundle.d.ts.map +1 -0
- package/dist/commands/evalBundle.js +138 -0
- package/dist/commands/evalBundle.js.map +1 -0
- package/dist/commands/evalModuleSyntax.d.ts +6 -0
- package/dist/commands/evalModuleSyntax.d.ts.map +1 -0
- package/dist/commands/evalModuleSyntax.js +33 -0
- package/dist/commands/evalModuleSyntax.js.map +1 -0
- package/dist/commands/evalPolling.d.ts +1 -1
- package/dist/commands/evalPolling.d.ts.map +1 -1
- package/dist/commands/evalPolling.js +1 -1
- package/dist/commands/evalPolling.js.map +1 -1
- package/dist/commands/evalResultOutput.d.ts +25 -0
- package/dist/commands/evalResultOutput.d.ts.map +1 -0
- package/dist/commands/evalResultOutput.js +85 -0
- package/dist/commands/evalResultOutput.js.map +1 -0
- package/dist/commands/evalShared.d.ts +43 -17
- package/dist/commands/evalShared.d.ts.map +1 -1
- package/dist/commands/evalShared.js +103 -42
- package/dist/commands/evalShared.js.map +1 -1
- package/dist/commands/evalUntil.d.ts +9 -1
- package/dist/commands/evalUntil.d.ts.map +1 -1
- package/dist/commands/evalUntil.js +16 -27
- package/dist/commands/evalUntil.js.map +1 -1
- package/dist/commands/extension/attach.d.ts +14 -0
- package/dist/commands/extension/attach.d.ts.map +1 -0
- package/dist/commands/extension/attach.js +110 -0
- package/dist/commands/extension/attach.js.map +1 -0
- package/dist/commands/extension/info.d.ts.map +1 -1
- package/dist/commands/extension/info.js +13 -33
- package/dist/commands/extension/info.js.map +1 -1
- package/dist/commands/extension/nativeHost.d.ts +35 -5
- package/dist/commands/extension/nativeHost.d.ts.map +1 -1
- package/dist/commands/extension/nativeHost.js +95 -12
- package/dist/commands/extension/nativeHost.js.map +1 -1
- package/dist/commands/extension/remove.d.ts.map +1 -1
- package/dist/commands/extension/remove.js +18 -38
- package/dist/commands/extension/remove.js.map +1 -1
- package/dist/commands/extension/resolveExtensionWatcher.d.ts +1 -1
- package/dist/commands/extension/resolveExtensionWatcher.d.ts.map +1 -1
- package/dist/commands/extension/resolveExtensionWatcher.js +15 -29
- package/dist/commands/extension/resolveExtensionWatcher.js.map +1 -1
- package/dist/commands/extension/setup.d.ts.map +1 -1
- package/dist/commands/extension/setup.js +20 -35
- package/dist/commands/extension/setup.js.map +1 -1
- package/dist/commands/extension/show.d.ts +12 -0
- package/dist/commands/extension/show.d.ts.map +1 -0
- package/dist/commands/extension/show.js +208 -0
- package/dist/commands/extension/show.js.map +1 -0
- package/dist/commands/extension/status.d.ts.map +1 -1
- package/dist/commands/extension/status.js +12 -38
- package/dist/commands/extension/status.js.map +1 -1
- package/dist/commands/extension/tabSelection.d.ts +45 -0
- package/dist/commands/extension/tabSelection.d.ts.map +1 -0
- package/dist/commands/extension/tabSelection.js +76 -0
- package/dist/commands/extension/tabSelection.js.map +1 -0
- package/dist/commands/locate.d.ts.map +1 -1
- package/dist/commands/locate.js.map +1 -1
- package/dist/commands/netMock.d.ts +34 -0
- package/dist/commands/netMock.d.ts.map +1 -0
- package/dist/commands/netMock.js +323 -0
- package/dist/commands/netMock.js.map +1 -0
- package/dist/commands/netSse.d.ts +1 -1
- package/dist/commands/netSse.d.ts.map +1 -1
- package/dist/commands/netSse.js +19 -23
- package/dist/commands/netSse.js.map +1 -1
- package/dist/commands/netWebSocket.d.ts +2 -2
- package/dist/commands/netWebSocket.d.ts.map +1 -1
- package/dist/commands/netWebSocket.js +42 -55
- package/dist/commands/netWebSocket.js.map +1 -1
- package/dist/commands/pluginConfig.d.ts +1 -0
- package/dist/commands/pluginConfig.d.ts.map +1 -1
- package/dist/commands/pluginConfig.js +12 -2
- package/dist/commands/pluginConfig.js.map +1 -1
- package/dist/commands/start.d.ts +2 -2
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/startShared.d.ts +1 -1
- package/dist/commands/startShared.d.ts.map +1 -1
- package/dist/commands/watcherNativeHost.d.ts +1 -0
- package/dist/commands/watcherNativeHost.d.ts.map +1 -1
- package/dist/commands/watcherNativeHost.js +8 -2
- package/dist/commands/watcherNativeHost.js.map +1 -1
- package/dist/commands/watcherSession.d.ts +3 -3
- package/dist/commands/watcherSession.d.ts.map +1 -1
- package/dist/commands/watcherSession.js.map +1 -1
- package/dist/commands/watcherStart.d.ts +2 -2
- package/dist/commands/watcherStart.d.ts.map +1 -1
- package/dist/config/argusHome.d.ts +3 -0
- package/dist/config/argusHome.d.ts.map +1 -0
- package/dist/config/argusHome.js +11 -0
- package/dist/config/argusHome.js.map +1 -0
- package/dist/config/loadConfig.d.ts +13 -0
- package/dist/config/loadConfig.d.ts.map +1 -0
- package/dist/config/loadConfig.js +59 -0
- package/dist/config/loadConfig.js.map +1 -0
- package/dist/config/mergeConfig.d.ts +34 -0
- package/dist/config/mergeConfig.d.ts.map +1 -0
- package/dist/config/mergeConfig.js +57 -0
- package/dist/config/mergeConfig.js.map +1 -0
- package/dist/config/types.d.ts +51 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validateConfig.d.ts +14 -0
- package/dist/config/validateConfig.d.ts.map +1 -0
- package/dist/config/{argusConfig.js → validateConfig.js} +136 -244
- package/dist/config/validateConfig.js.map +1 -0
- package/dist/eval/evalClient.d.ts +2 -0
- package/dist/eval/evalClient.d.ts.map +1 -1
- package/dist/eval/evalClient.js +26 -2
- package/dist/eval/evalClient.js.map +1 -1
- package/package.json +5 -2
- package/dist/cli/register/registerAuth.d.ts +0 -3
- package/dist/cli/register/registerAuth.d.ts.map +0 -1
- package/dist/cli/register/registerAuth.js +0 -133
- package/dist/cli/register/registerAuth.js.map +0 -1
- package/dist/cli/register/registerChrome.d.ts +0 -3
- package/dist/cli/register/registerChrome.d.ts.map +0 -1
- package/dist/cli/register/registerChrome.js +0 -118
- package/dist/cli/register/registerChrome.js.map +0 -1
- package/dist/cli/register/registerCode.d.ts +0 -3
- package/dist/cli/register/registerCode.d.ts.map +0 -1
- package/dist/cli/register/registerCode.js +0 -74
- package/dist/cli/register/registerCode.js.map +0 -1
- package/dist/cli/register/registerConfig.d.ts +0 -3
- package/dist/cli/register/registerConfig.d.ts.map +0 -1
- package/dist/cli/register/registerConfig.js +0 -14
- package/dist/cli/register/registerConfig.js.map +0 -1
- package/dist/cli/register/registerDialog.d.ts +0 -3
- package/dist/cli/register/registerDialog.d.ts.map +0 -1
- package/dist/cli/register/registerDialog.js +0 -45
- package/dist/cli/register/registerDialog.js.map +0 -1
- package/dist/cli/register/registerDom.d.ts +0 -3
- package/dist/cli/register/registerDom.d.ts.map +0 -1
- package/dist/cli/register/registerDom.js +0 -284
- package/dist/cli/register/registerDom.js.map +0 -1
- package/dist/cli/register/registerEval.d.ts +0 -3
- package/dist/cli/register/registerEval.d.ts.map +0 -1
- package/dist/cli/register/registerEval.js +0 -143
- package/dist/cli/register/registerEval.js.map +0 -1
- package/dist/cli/register/registerExtension.d.ts +0 -3
- package/dist/cli/register/registerExtension.d.ts.map +0 -1
- package/dist/cli/register/registerExtension.js +0 -49
- package/dist/cli/register/registerExtension.js.map +0 -1
- package/dist/cli/register/registerFill.d.ts +0 -3
- package/dist/cli/register/registerFill.d.ts.map +0 -1
- package/dist/cli/register/registerFill.js +0 -31
- package/dist/cli/register/registerFill.js.map +0 -1
- package/dist/cli/register/registerHover.d.ts +0 -3
- package/dist/cli/register/registerHover.d.ts.map +0 -1
- package/dist/cli/register/registerHover.js +0 -21
- package/dist/cli/register/registerHover.js.map +0 -1
- package/dist/cli/register/registerKeydown.d.ts +0 -3
- package/dist/cli/register/registerKeydown.d.ts.map +0 -1
- package/dist/cli/register/registerKeydown.js +0 -20
- package/dist/cli/register/registerKeydown.js.map +0 -1
- package/dist/cli/register/registerLocate.d.ts +0 -3
- package/dist/cli/register/registerLocate.d.ts.map +0 -1
- package/dist/cli/register/registerLocate.js +0 -48
- package/dist/cli/register/registerLocate.js.map +0 -1
- package/dist/cli/register/registerLogs.d.ts +0 -3
- package/dist/cli/register/registerLogs.d.ts.map +0 -1
- package/dist/cli/register/registerLogs.js +0 -64
- package/dist/cli/register/registerLogs.js.map +0 -1
- package/dist/cli/register/registerNet.d.ts +0 -3
- package/dist/cli/register/registerNet.d.ts.map +0 -1
- package/dist/cli/register/registerNet.js +0 -287
- package/dist/cli/register/registerNet.js.map +0 -1
- package/dist/cli/register/registerPage.d.ts +0 -3
- package/dist/cli/register/registerPage.d.ts.map +0 -1
- package/dist/cli/register/registerPage.js +0 -123
- package/dist/cli/register/registerPage.js.map +0 -1
- package/dist/cli/register/registerPlugin.d.ts +0 -3
- package/dist/cli/register/registerPlugin.d.ts.map +0 -1
- package/dist/cli/register/registerPlugin.js +0 -34
- package/dist/cli/register/registerPlugin.js.map +0 -1
- package/dist/cli/register/registerQuickAccess.d.ts +0 -3
- package/dist/cli/register/registerQuickAccess.d.ts.map +0 -1
- package/dist/cli/register/registerQuickAccess.js +0 -112
- package/dist/cli/register/registerQuickAccess.js.map +0 -1
- package/dist/cli/register/registerScrollTo.d.ts +0 -3
- package/dist/cli/register/registerScrollTo.d.ts.map +0 -1
- package/dist/cli/register/registerScrollTo.js +0 -22
- package/dist/cli/register/registerScrollTo.js.map +0 -1
- package/dist/cli/register/registerSnapshot.d.ts +0 -3
- package/dist/cli/register/registerSnapshot.d.ts.map +0 -1
- package/dist/cli/register/registerSnapshot.js +0 -38
- package/dist/cli/register/registerSnapshot.js.map +0 -1
- package/dist/cli/register/registerStorage.d.ts +0 -3
- package/dist/cli/register/registerStorage.d.ts.map +0 -1
- package/dist/cli/register/registerStorage.js +0 -61
- package/dist/cli/register/registerStorage.js.map +0 -1
- package/dist/cli/register/registerThrottle.d.ts +0 -3
- package/dist/cli/register/registerThrottle.d.ts.map +0 -1
- package/dist/cli/register/registerThrottle.js +0 -33
- package/dist/cli/register/registerThrottle.js.map +0 -1
- package/dist/cli/register/registerTrace.d.ts +0 -3
- package/dist/cli/register/registerTrace.d.ts.map +0 -1
- package/dist/cli/register/registerTrace.js +0 -57
- package/dist/cli/register/registerTrace.js.map +0 -1
- package/dist/cli/register/registerWatcher.d.ts +0 -3
- package/dist/cli/register/registerWatcher.d.ts.map +0 -1
- package/dist/cli/register/registerWatcher.js +0 -134
- package/dist/cli/register/registerWatcher.js.map +0 -1
- package/dist/config/argusConfig.d.ts +0 -76
- package/dist/config/argusConfig.d.ts.map +0 -1
- 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
|
-
|
|
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
|
|
41
|
-
export declare const
|
|
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
|
|
46
|
-
export declare const
|
|
47
|
-
value
|
|
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
|
|
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
|
|
82
|
+
export type EvalEmitOptions = EvalResultFileOptions & {
|
|
67
83
|
json?: boolean;
|
|
68
84
|
silent?: boolean;
|
|
69
85
|
};
|
|
70
|
-
/**
|
|
71
|
-
export
|
|
72
|
-
|
|
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:
|
|
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":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
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
|
-
|
|
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
|
|
10
|
-
if (
|
|
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:
|
|
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
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
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:
|
|
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:
|
|
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
|
-
/**
|
|
211
|
-
export const
|
|
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
|
-
|
|
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
|
|
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":"
|
|
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,
|
|
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 =
|
|
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
|
-
|
|
73
|
+
await emitter.emitSuccess(pollResult.response, false);
|
|
65
74
|
return;
|
|
66
75
|
}
|
|
67
76
|
if (pollResult.kind === 'eval-error') {
|
|
68
|
-
|
|
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
|