
























@@ -12,6 +12,15 @@ import { resolveBrowserActionContext, withBrowserActionTimeoutSlack } from "./sh
12121313const DEFAULT_BROWSER_HOOK_TIMEOUT_MS = 120000;
141415+function parsePositiveIntegerOption(value: string, flag: string): number {
16+const trimmed = value.trim();
17+const parsed = /^\d+$/.test(trimmed) ? Number(trimmed) : Number.NaN;
18+if (!Number.isSafeInteger(parsed) || parsed < 1) {
19+throw new Error(`${flag} must be a positive integer.`);
20+}
21+return parsed;
22+}
23+1524async function normalizeUploadPaths(paths: string[]): Promise<string[]> {
1625const result = await resolveExistingPathsWithinRoot({
1726rootDir: DEFAULT_UPLOAD_DIR,
@@ -100,7 +109,7 @@ export function registerBrowserFilesAndDownloadsCommands(
100109.option(
101110"--timeout-ms <ms>",
102111"How long to wait for the next file chooser (default: 120000)",
103-(v: string) => Number(v),
112+(v: string) => parsePositiveIntegerOption(v, "--timeout-ms"),
104113)
105114.action(async (paths: string[], opts, cmd) => {
106115try {
@@ -139,7 +148,7 @@ export function registerBrowserFilesAndDownloadsCommands(
139148.option(
140149"--timeout-ms <ms>",
141150"How long to wait for the next download (default: 120000)",
142-(v: string) => Number(v),
151+(v: string) => parsePositiveIntegerOption(v, "--timeout-ms"),
143152)
144153.action(async (outPath: string | undefined, opts, cmd) => {
145154await runDownloadCommand(cmd, opts, {
@@ -162,7 +171,7 @@ export function registerBrowserFilesAndDownloadsCommands(
162171.option(
163172"--timeout-ms <ms>",
164173"How long to wait for the download to start (default: 120000)",
165-(v: string) => Number(v),
174+(v: string) => parsePositiveIntegerOption(v, "--timeout-ms"),
166175)
167176.action(async (ref: string, outPath: string, opts, cmd) => {
168177await runDownloadCommand(cmd, opts, {
@@ -185,7 +194,7 @@ export function registerBrowserFilesAndDownloadsCommands(
185194.option(
186195"--timeout-ms <ms>",
187196"How long to wait for the next dialog (default: 120000)",
188-(v: string) => Number(v),
197+(v: string) => parsePositiveIntegerOption(v, "--timeout-ms"),
189198)
190199.action(async (opts, cmd) => {
191200const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。