politty 0.4.15 → 0.4.16

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 (73) hide show
  1. package/dist/{arg-registry-CB5gGtzp.d.cts → arg-registry-Cd6xnjHa.d.ts} +116 -4
  2. package/dist/arg-registry-Cd6xnjHa.d.ts.map +1 -0
  3. package/dist/{arg-registry-Dw0f11Zc.d.ts → arg-registry-MVWOAcvw.d.cts} +116 -4
  4. package/dist/arg-registry-MVWOAcvw.d.cts.map +1 -0
  5. package/dist/augment.d.cts +1 -1
  6. package/dist/augment.d.cts.map +1 -1
  7. package/dist/augment.d.ts +1 -1
  8. package/dist/augment.d.ts.map +1 -1
  9. package/dist/completion/index.cjs +2 -1
  10. package/dist/completion/index.d.cts +2 -2
  11. package/dist/completion/index.d.ts +2 -2
  12. package/dist/completion/index.js +2 -2
  13. package/dist/{completion-Ca5ESJlG.js → completion-B04iiki9.js} +512 -18
  14. package/dist/completion-B04iiki9.js.map +1 -0
  15. package/dist/{completion-B5fgnUGm.cjs → completion-BlZxMSeU.cjs} +516 -16
  16. package/dist/completion-BlZxMSeU.cjs.map +1 -0
  17. package/dist/docs/index.cjs +82 -22
  18. package/dist/docs/index.cjs.map +1 -1
  19. package/dist/docs/index.d.cts +1 -1
  20. package/dist/docs/index.d.cts.map +1 -1
  21. package/dist/docs/index.d.ts +1 -1
  22. package/dist/docs/index.d.ts.map +1 -1
  23. package/dist/docs/index.js +92 -31
  24. package/dist/docs/index.js.map +1 -1
  25. package/dist/{index-Dg9Fpz0R.d.ts → index-CPebddth.d.cts} +56 -4
  26. package/dist/index-CPebddth.d.cts.map +1 -0
  27. package/dist/{index-C1gGgUeB.d.cts → index-DR9HLxIP.d.ts} +56 -4
  28. package/dist/index-DR9HLxIP.d.ts.map +1 -0
  29. package/dist/index.cjs +5 -3
  30. package/dist/index.d.cts +36 -4
  31. package/dist/index.d.cts.map +1 -1
  32. package/dist/index.d.ts +36 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +4 -4
  35. package/dist/log-collector-Cd2_mv87.cjs.map +1 -1
  36. package/dist/log-collector-Cu6MCtAx.js.map +1 -1
  37. package/dist/prompt/clack/index.cjs.map +1 -1
  38. package/dist/prompt/clack/index.d.cts +1 -1
  39. package/dist/prompt/clack/index.d.cts.map +1 -1
  40. package/dist/prompt/clack/index.d.ts +1 -1
  41. package/dist/prompt/clack/index.d.ts.map +1 -1
  42. package/dist/prompt/clack/index.js.map +1 -1
  43. package/dist/prompt/index.d.cts +1 -1
  44. package/dist/prompt/index.d.cts.map +1 -1
  45. package/dist/prompt/index.d.ts +1 -1
  46. package/dist/prompt/index.d.ts.map +1 -1
  47. package/dist/prompt/inquirer/index.cjs.map +1 -1
  48. package/dist/prompt/inquirer/index.d.cts +1 -1
  49. package/dist/prompt/inquirer/index.d.cts.map +1 -1
  50. package/dist/prompt/inquirer/index.d.ts +1 -1
  51. package/dist/prompt/inquirer/index.d.ts.map +1 -1
  52. package/dist/prompt/inquirer/index.js.map +1 -1
  53. package/dist/prompt-BKHqGrFw.js.map +1 -1
  54. package/dist/prompt-aXfSf27y.cjs.map +1 -1
  55. package/dist/{runner-DKAQBNNh.js → runner-BHeCMEa5.js} +309 -45
  56. package/dist/runner-BHeCMEa5.js.map +1 -0
  57. package/dist/{runner-CriXJlm4.cjs → runner-BcyR6Z8r.cjs} +320 -44
  58. package/dist/runner-BcyR6Z8r.cjs.map +1 -0
  59. package/dist/{subcommand-router-CqZX3orq.cjs → subcommand-router-DQy0KZU-.cjs} +41 -3
  60. package/dist/subcommand-router-DQy0KZU-.cjs.map +1 -0
  61. package/dist/{subcommand-router-ENeCymvX.js → subcommand-router-XZBWe8HN.js} +41 -3
  62. package/dist/subcommand-router-XZBWe8HN.js.map +1 -0
  63. package/package.json +16 -16
  64. package/dist/arg-registry-CB5gGtzp.d.cts.map +0 -1
  65. package/dist/arg-registry-Dw0f11Zc.d.ts.map +0 -1
  66. package/dist/completion-B5fgnUGm.cjs.map +0 -1
  67. package/dist/completion-Ca5ESJlG.js.map +0 -1
  68. package/dist/index-C1gGgUeB.d.cts.map +0 -1
  69. package/dist/index-Dg9Fpz0R.d.ts.map +0 -1
  70. package/dist/runner-CriXJlm4.cjs.map +0 -1
  71. package/dist/runner-DKAQBNNh.js.map +0 -1
  72. package/dist/subcommand-router-CqZX3orq.cjs.map +0 -1
  73. package/dist/subcommand-router-ENeCymvX.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { l as AnyCommand, p as Command, u as ArgsSchema, z as ResolvedFieldMeta } from "./arg-registry-Dw0f11Zc.js";
1
+ import { l as AnyCommand, p as Command, u as ArgsSchema, z as ResolvedFieldMeta } from "./arg-registry-MVWOAcvw.cjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/completion/types.d.ts
@@ -20,6 +20,19 @@ interface CompletionOptions {
20
20
  includeDescriptions?: boolean;
21
21
  /** Global args schema for deriving global options in completion */
22
22
  globalArgsSchema?: ArgsSchema;
23
+ /**
24
+ * Path to the binary whose mtime is the freshness signature.
25
+ * Defaults to `process.argv[1]`.
26
+ */
27
+ binPath?: string;
28
+ /** Program version to embed in the script header. */
29
+ programVersion?: string;
30
+ /**
31
+ * Cache directory for the loader to write the regenerated script into.
32
+ * Defaults to `${XDG_CACHE_HOME:-$HOME/.cache}/<programName>` at runtime.
33
+ * Setting this hardcodes the location into the generated loader.
34
+ */
35
+ cacheDir?: string;
23
36
  }
24
37
  /**
25
38
  * Value completion specification for shell scripts
@@ -48,6 +61,13 @@ interface CompletableOption {
48
61
  * 1-char entries are short (`-v`); multi-char entries are long (`--to-be`).
49
62
  */
50
63
  alias?: string[] | undefined;
64
+ /**
65
+ * Negation name to advertise in shell completions (no `--` prefix),
66
+ * or `undefined` to hide the negation. Mirrors `ResolvedFieldMeta.negationDisplay`.
67
+ */
68
+ negation?: string | undefined;
69
+ /** Description for the negation option (when distinct from the main description) */
70
+ negationDescription?: string | undefined;
51
71
  /** Description for completion */
52
72
  description?: string | undefined;
53
73
  /** Whether this option takes a value */
@@ -322,8 +342,18 @@ declare const completionArgsSchema: z.ZodObject<{
322
342
  fish: "fish";
323
343
  }>>;
324
344
  instructions: z.ZodDefault<z.ZodBoolean>;
345
+ loader: z.ZodDefault<z.ZodBoolean>;
346
+ install: z.ZodDefault<z.ZodBoolean>;
325
347
  }, z.core.$strip>;
326
348
  type CompletionArgs = z.infer<typeof completionArgsSchema>;
349
+ declare const refreshArgsSchema: z.ZodObject<{
350
+ shell: z.ZodEnum<{
351
+ bash: "bash";
352
+ zsh: "zsh";
353
+ fish: "fish";
354
+ }>;
355
+ }, z.core.$strip>;
356
+ type RefreshArgs = z.infer<typeof refreshArgsSchema>;
327
357
  /**
328
358
  * Create a completion subcommand for your CLI
329
359
  *
@@ -339,7 +369,20 @@ type CompletionArgs = z.infer<typeof completionArgsSchema>;
339
369
  * });
340
370
  * ```
341
371
  */
342
- declare function createCompletionCommand(rootCommand: AnyCommand, programName?: string, globalArgsSchema?: ArgsSchema): Command<typeof completionArgsSchema, CompletionArgs, any>;
372
+ declare function createCompletionCommand(rootCommand: AnyCommand, programName?: string, globalArgsSchema?: ArgsSchema, extra?: {
373
+ cacheDir?: string;
374
+ programVersion?: string;
375
+ }): Command<typeof completionArgsSchema, CompletionArgs, any>;
376
+ /**
377
+ * Hidden subcommand that the runMain background hook spawns. It does
378
+ * the same stat-compare + atomic rewrite as the rc loader, but in a
379
+ * detached child process so it's invisible to the user.
380
+ */
381
+ declare function createRefreshCompletionCommand(rootCommand: AnyCommand, programName: string, extra?: {
382
+ cacheDir?: string;
383
+ programVersion?: string;
384
+ globalArgsSchema?: ArgsSchema;
385
+ }): Command<typeof refreshArgsSchema, RefreshArgs, any>;
343
386
  /**
344
387
  * Options for withCompletionCommand
345
388
  */
@@ -348,6 +391,15 @@ interface WithCompletionOptions {
348
391
  programName?: string;
349
392
  /** Global args schema for deriving global options in completion */
350
393
  globalArgsSchema?: ArgsSchema;
394
+ /**
395
+ * Hardcode the cache directory used by the rc loader and the
396
+ * background refresh. When omitted, the loader derives
397
+ * `${XDG_CACHE_HOME:-$HOME/.cache}/<programName>` at runtime, which
398
+ * is the right answer for almost every CLI.
399
+ */
400
+ cacheDir?: string;
401
+ /** Program version embedded in the script header. */
402
+ programVersion?: string;
351
403
  }
352
404
  /**
353
405
  * Wrap a command with a completion subcommand
@@ -371,5 +423,5 @@ interface WithCompletionOptions {
371
423
  */
372
424
  declare function withCompletionCommand<T extends AnyCommand>(command: T, options?: string | WithCompletionOptions): T;
373
425
  //#endregion
374
- export { CompletableSubcommand as C, CompletionResult as D, CompletionOptions as E, ShellType as O, CompletableOption as S, CompletionGenerator as T, CompletionDirective as _, getSupportedShells as a, CompletionType as b, resolveValueCompletion as c, ShellFormatOptions as d, formatForShell as f, CompletionCandidate as g, CandidateResult as h, generateCompletion as i, extractCompletionData as l, hasCompleteCommand as m, createCompletionCommand as n, withCompletionCommand as o, createDynamicCompleteCommand as p, detectShell as r, ValueCompletionField as s, WithCompletionOptions as t, extractPositionals as u, generateCandidates as v, CompletionData as w, parseCompletionContext as x, CompletionContext as y };
375
- //# sourceMappingURL=index-Dg9Fpz0R.d.ts.map
426
+ export { CompletableOption as C, CompletionOptions as D, CompletionGenerator as E, CompletionResult as O, parseCompletionContext as S, CompletionData as T, CompletionCandidate as _, generateCompletion as a, CompletionContext as b, ValueCompletionField as c, extractPositionals as d, ShellFormatOptions as f, CandidateResult as g, hasCompleteCommand as h, detectShell as i, ShellType as k, resolveValueCompletion as l, createDynamicCompleteCommand as m, createCompletionCommand as n, getSupportedShells as o, formatForShell as p, createRefreshCompletionCommand as r, withCompletionCommand as s, WithCompletionOptions as t, extractCompletionData as u, CompletionDirective as v, CompletableSubcommand as w, CompletionType as x, generateCandidates as y };
427
+ //# sourceMappingURL=index-CPebddth.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CPebddth.d.cts","names":[],"sources":["../src/completion/types.ts","../src/completion/dynamic/context-parser.ts","../src/completion/dynamic/candidate-generator.ts","../src/completion/dynamic/complete-command.ts","../src/completion/dynamic/shell-formatter.ts","../src/completion/extractor.ts","../src/completion/value-completion-resolver.ts","../src/completion/index.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { l as AnyCommand, p as Command, u as ArgsSchema, z as ResolvedFieldMeta } from "./arg-registry-CB5gGtzp.cjs";
1
+ import { l as AnyCommand, p as Command, u as ArgsSchema, z as ResolvedFieldMeta } from "./arg-registry-Cd6xnjHa.js";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/completion/types.d.ts
@@ -20,6 +20,19 @@ interface CompletionOptions {
20
20
  includeDescriptions?: boolean;
21
21
  /** Global args schema for deriving global options in completion */
22
22
  globalArgsSchema?: ArgsSchema;
23
+ /**
24
+ * Path to the binary whose mtime is the freshness signature.
25
+ * Defaults to `process.argv[1]`.
26
+ */
27
+ binPath?: string;
28
+ /** Program version to embed in the script header. */
29
+ programVersion?: string;
30
+ /**
31
+ * Cache directory for the loader to write the regenerated script into.
32
+ * Defaults to `${XDG_CACHE_HOME:-$HOME/.cache}/<programName>` at runtime.
33
+ * Setting this hardcodes the location into the generated loader.
34
+ */
35
+ cacheDir?: string;
23
36
  }
24
37
  /**
25
38
  * Value completion specification for shell scripts
@@ -48,6 +61,13 @@ interface CompletableOption {
48
61
  * 1-char entries are short (`-v`); multi-char entries are long (`--to-be`).
49
62
  */
50
63
  alias?: string[] | undefined;
64
+ /**
65
+ * Negation name to advertise in shell completions (no `--` prefix),
66
+ * or `undefined` to hide the negation. Mirrors `ResolvedFieldMeta.negationDisplay`.
67
+ */
68
+ negation?: string | undefined;
69
+ /** Description for the negation option (when distinct from the main description) */
70
+ negationDescription?: string | undefined;
51
71
  /** Description for completion */
52
72
  description?: string | undefined;
53
73
  /** Whether this option takes a value */
@@ -322,8 +342,18 @@ declare const completionArgsSchema: z.ZodObject<{
322
342
  fish: "fish";
323
343
  }>>;
324
344
  instructions: z.ZodDefault<z.ZodBoolean>;
345
+ loader: z.ZodDefault<z.ZodBoolean>;
346
+ install: z.ZodDefault<z.ZodBoolean>;
325
347
  }, z.core.$strip>;
326
348
  type CompletionArgs = z.infer<typeof completionArgsSchema>;
349
+ declare const refreshArgsSchema: z.ZodObject<{
350
+ shell: z.ZodEnum<{
351
+ bash: "bash";
352
+ zsh: "zsh";
353
+ fish: "fish";
354
+ }>;
355
+ }, z.core.$strip>;
356
+ type RefreshArgs = z.infer<typeof refreshArgsSchema>;
327
357
  /**
328
358
  * Create a completion subcommand for your CLI
329
359
  *
@@ -339,7 +369,20 @@ type CompletionArgs = z.infer<typeof completionArgsSchema>;
339
369
  * });
340
370
  * ```
341
371
  */
342
- declare function createCompletionCommand(rootCommand: AnyCommand, programName?: string, globalArgsSchema?: ArgsSchema): Command<typeof completionArgsSchema, CompletionArgs, any>;
372
+ declare function createCompletionCommand(rootCommand: AnyCommand, programName?: string, globalArgsSchema?: ArgsSchema, extra?: {
373
+ cacheDir?: string;
374
+ programVersion?: string;
375
+ }): Command<typeof completionArgsSchema, CompletionArgs, any>;
376
+ /**
377
+ * Hidden subcommand that the runMain background hook spawns. It does
378
+ * the same stat-compare + atomic rewrite as the rc loader, but in a
379
+ * detached child process so it's invisible to the user.
380
+ */
381
+ declare function createRefreshCompletionCommand(rootCommand: AnyCommand, programName: string, extra?: {
382
+ cacheDir?: string;
383
+ programVersion?: string;
384
+ globalArgsSchema?: ArgsSchema;
385
+ }): Command<typeof refreshArgsSchema, RefreshArgs, any>;
343
386
  /**
344
387
  * Options for withCompletionCommand
345
388
  */
@@ -348,6 +391,15 @@ interface WithCompletionOptions {
348
391
  programName?: string;
349
392
  /** Global args schema for deriving global options in completion */
350
393
  globalArgsSchema?: ArgsSchema;
394
+ /**
395
+ * Hardcode the cache directory used by the rc loader and the
396
+ * background refresh. When omitted, the loader derives
397
+ * `${XDG_CACHE_HOME:-$HOME/.cache}/<programName>` at runtime, which
398
+ * is the right answer for almost every CLI.
399
+ */
400
+ cacheDir?: string;
401
+ /** Program version embedded in the script header. */
402
+ programVersion?: string;
351
403
  }
352
404
  /**
353
405
  * Wrap a command with a completion subcommand
@@ -371,5 +423,5 @@ interface WithCompletionOptions {
371
423
  */
372
424
  declare function withCompletionCommand<T extends AnyCommand>(command: T, options?: string | WithCompletionOptions): T;
373
425
  //#endregion
374
- export { CompletableSubcommand as C, CompletionResult as D, CompletionOptions as E, ShellType as O, CompletableOption as S, CompletionGenerator as T, CompletionDirective as _, getSupportedShells as a, CompletionType as b, resolveValueCompletion as c, ShellFormatOptions as d, formatForShell as f, CompletionCandidate as g, CandidateResult as h, generateCompletion as i, extractCompletionData as l, hasCompleteCommand as m, createCompletionCommand as n, withCompletionCommand as o, createDynamicCompleteCommand as p, detectShell as r, ValueCompletionField as s, WithCompletionOptions as t, extractPositionals as u, generateCandidates as v, CompletionData as w, parseCompletionContext as x, CompletionContext as y };
375
- //# sourceMappingURL=index-C1gGgUeB.d.cts.map
426
+ export { CompletableOption as C, CompletionOptions as D, CompletionGenerator as E, CompletionResult as O, parseCompletionContext as S, CompletionData as T, CompletionCandidate as _, generateCompletion as a, CompletionContext as b, ValueCompletionField as c, extractPositionals as d, ShellFormatOptions as f, CandidateResult as g, hasCompleteCommand as h, detectShell as i, ShellType as k, resolveValueCompletion as l, createDynamicCompleteCommand as m, createCompletionCommand as n, getSupportedShells as o, formatForShell as p, createRefreshCompletionCommand as r, withCompletionCommand as s, WithCompletionOptions as t, extractCompletionData as u, CompletionDirective as v, CompletableSubcommand as w, CompletionType as x, generateCandidates as y };
427
+ //# sourceMappingURL=index-DR9HLxIP.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DR9HLxIP.d.ts","names":[],"sources":["../src/completion/types.ts","../src/completion/dynamic/context-parser.ts","../src/completion/dynamic/candidate-generator.ts","../src/completion/dynamic/complete-command.ts","../src/completion/dynamic/shell-formatter.ts","../src/completion/extractor.ts","../src/completion/value-completion-resolver.ts","../src/completion/index.ts"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1,11 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_subcommand_router = require('./subcommand-router-CqZX3orq.cjs');
3
- const require_completion = require('./completion-B5fgnUGm.cjs');
4
- const require_runner = require('./runner-CriXJlm4.cjs');
2
+ const require_subcommand_router = require('./subcommand-router-DQy0KZU-.cjs');
3
+ const require_completion = require('./completion-BlZxMSeU.cjs');
4
+ const require_runner = require('./runner-BcyR6Z8r.cjs');
5
5
 
6
6
  exports.CaseVariantCollisionError = require_runner.CaseVariantCollisionError;
7
7
  exports.DuplicateAliasError = require_runner.DuplicateAliasError;
8
8
  exports.DuplicateFieldError = require_runner.DuplicateFieldError;
9
+ exports.DuplicateNegationError = require_runner.DuplicateNegationError;
9
10
  exports.PositionalConfigError = require_runner.PositionalConfigError;
10
11
  exports.ReservedAliasError = require_runner.ReservedAliasError;
11
12
  exports.arg = require_subcommand_router.arg;
@@ -37,6 +38,7 @@ exports.validateCommand = require_runner.validateCommand;
37
38
  exports.validateCrossSchemaCollisions = require_runner.validateCrossSchemaCollisions;
38
39
  exports.validateDuplicateAliases = require_runner.validateDuplicateAliases;
39
40
  exports.validateDuplicateFields = require_runner.validateDuplicateFields;
41
+ exports.validateDuplicateNegations = require_runner.validateDuplicateNegations;
40
42
  exports.validatePositionalConfig = require_runner.validatePositionalConfig;
41
43
  exports.validateReservedAliases = require_runner.validateReservedAliases;
42
44
  exports.withCompletionCommand = require_completion.withCompletionCommand;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as RunResultSuccess, B as UnknownKeysMode, C as Logger, D as RunCommandOptions, E as PromptResolver, F as LazyCommand, H as getUnknownKeysMode, I as isLazyCommand, L as lazy, M as SetupContext, N as SubCommandValue, O as RunResult, P as SubCommandsRecord, R as ExtractedFields, S as LogStream, T as NonRunnableCommand, U as toCamelCase, V as extractFields, W as toKebabCase, _ as GlobalCleanupContext, a as EffectContext, b as LogEntry, c as arg, d as CleanupContext, f as CollectedLogs, g as GlobalArgs, h as Example, i as CustomCompletion, j as RunnableCommand, k as RunResultFailure, l as AnyCommand, m as CommandBase, n as CompletionMeta, o as PromptMeta, p as Command, r as CompletionType, s as PromptType, t as ArgMeta, u as ArgsSchema, v as GlobalSetupContext, w as MainOptions, x as LogLevel, y as IsEmpty, z as ResolvedFieldMeta } from "./arg-registry-CB5gGtzp.cjs";
2
- import { D as CompletionResult, E as CompletionOptions, i as generateCompletion, o as withCompletionCommand, t as WithCompletionOptions } from "./index-C1gGgUeB.cjs";
1
+ import { A as RunResultSuccess, B as UnknownKeysMode, C as Logger, D as RunCommandOptions, E as PromptResolver, F as LazyCommand, H as getUnknownKeysMode, I as isLazyCommand, L as lazy, M as SetupContext, N as SubCommandValue, O as RunResult, P as SubCommandsRecord, R as ExtractedFields, S as LogStream, T as NonRunnableCommand, U as toCamelCase, V as extractFields, W as toKebabCase, _ as GlobalCleanupContext, a as EffectContext, b as LogEntry, c as arg, d as CleanupContext, f as CollectedLogs, g as GlobalArgs, h as Example, i as CustomCompletion, j as RunnableCommand, k as RunResultFailure, l as AnyCommand, m as CommandBase, n as CompletionMeta, o as PromptMeta, p as Command, r as CompletionType, s as PromptType, t as ArgMeta, u as ArgsSchema, v as GlobalSetupContext, w as MainOptions, x as LogLevel, y as IsEmpty, z as ResolvedFieldMeta } from "./arg-registry-MVWOAcvw.cjs";
2
+ import { D as CompletionOptions, O as CompletionResult, a as generateCompletion, s as withCompletionCommand, t as WithCompletionOptions } from "./index-CPebddth.cjs";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region src/core/case-types.d.ts
@@ -236,6 +236,11 @@ declare function runCommand<TResult = unknown>(command: AnyCommand, argv: string
236
236
  * - Uses process.argv for arguments
237
237
  * - Handles SIGINT/SIGTERM signals
238
238
  * - Calls process.exit with the appropriate exit code
239
+ * - Invokes `command.runMainHook` once before parsing if set, so plug-ins
240
+ * like `withCompletionCommand` can fire detached background work
241
+ * - Bypasses user `setup`/`cleanup`/`prompt` and required `globalArgs`
242
+ * for registered hidden subcommands whose name starts with `__`
243
+ * (e.g. `__refresh-completion`)
239
244
  *
240
245
  * @param command - The command to run
241
246
  * @param options - Main options (version, debug)
@@ -446,6 +451,18 @@ interface ParserOptions {
446
451
  * boolean negation of `flag`.
447
452
  */
448
453
  definedNames?: Set<string>;
454
+ /**
455
+ * Map from a custom negation CLI name (and camelCase variant) to the
456
+ * canonical field name. Used to recognize user-defined boolean negation
457
+ * options (e.g. `--disable-cache` → `{ cache: false }`).
458
+ */
459
+ negationMap?: Map<string, string>;
460
+ /**
461
+ * Canonical field names that have a custom `negation` configured.
462
+ * For these fields the default `--no-<name>` / `--no<Name>` negation
463
+ * forms are suppressed.
464
+ */
465
+ customNegatedFields?: Set<string>;
449
466
  }
450
467
  /**
451
468
  * Parse argv into a flat record
@@ -501,6 +518,14 @@ declare class DuplicateAliasError extends Error {
501
518
  declare class CaseVariantCollisionError extends Error {
502
519
  constructor(message: string);
503
520
  }
521
+ /**
522
+ * Error thrown when a custom boolean negation name collides with another
523
+ * field's name, cliName, alias, or another field's negation (including
524
+ * derived camelCase variants).
525
+ */
526
+ declare class DuplicateNegationError extends Error {
527
+ constructor(message: string);
528
+ }
504
529
  //#endregion
505
530
  //#region src/validator/command-validator.d.ts
506
531
  /**
@@ -510,7 +535,7 @@ interface CommandValidationError {
510
535
  /** Path to the command (e.g., ["cli", "build", "watch"]) */
511
536
  commandPath: string[];
512
537
  /** Error type */
513
- type: "duplicate_field" | "duplicate_alias" | "invalid_alias" | "positional_config" | "reserved_alias" | "case_variant_collision";
538
+ type: "duplicate_field" | "duplicate_alias" | "invalid_alias" | "positional_config" | "reserved_alias" | "case_variant_collision" | "duplicate_negation";
514
539
  /** Error message */
515
540
  message: string;
516
541
  /** Related field name (if applicable) */
@@ -575,6 +600,13 @@ declare function validatePositionalConfig(extracted: ExtractedFields): void;
575
600
  * @throws {ReservedAliasError} If a reserved alias is used without override flag
576
601
  */
577
602
  declare function validateReservedAliases(extracted: ExtractedFields, _hasSubCommands: boolean): void;
603
+ /**
604
+ * Validate that custom boolean negation names do not collide with anything
605
+ *
606
+ * @param extracted - Extracted fields from schema
607
+ * @throws {DuplicateNegationError} If a colliding negation is found
608
+ */
609
+ declare function validateDuplicateNegations(extracted: ExtractedFields): void;
578
610
  /**
579
611
  * Validate that no case-variant collisions exist
580
612
  *
@@ -649,5 +681,5 @@ type ValidationResult<T> = {
649
681
  */
650
682
  declare function formatValidationErrors(errors: ValidationError[]): string;
651
683
  //#endregion
652
- export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, type CamelCase, CaseVariantCollisionError, type CleanupContext, type CollectedLogs, type Command, type CommandBase, type CommandContext, type CommandValidationError, type CommandValidationResult, type CompletionMeta, type CompletionOptions, type CompletionResult, type CompletionType, type CustomCompletion, DuplicateAliasError, DuplicateFieldError, type EffectContext, type Example, type ExtractedFields, type GlobalArgs, type GlobalCleanupContext, type GlobalSetupContext, type HelpOptions, type KebabCase, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, type PromptMeta, type PromptResolver, type PromptType, ReservedAliasError, type ResolvedFieldMeta, type RunCommandOptions, type RunResult, type RunResultFailure, type RunResultSuccess, type RunnableCommand, type SetupContext, type SubCommandValue, type SubCommandsRecord, type UnknownKeysMode, type ValidationError, type ValidationResult, type WithCaseVariants, type WithCompletionOptions, arg, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
684
+ export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, type CamelCase, CaseVariantCollisionError, type CleanupContext, type CollectedLogs, type Command, type CommandBase, type CommandContext, type CommandValidationError, type CommandValidationResult, type CompletionMeta, type CompletionOptions, type CompletionResult, type CompletionType, type CustomCompletion, DuplicateAliasError, DuplicateFieldError, DuplicateNegationError, type EffectContext, type Example, type ExtractedFields, type GlobalArgs, type GlobalCleanupContext, type GlobalSetupContext, type HelpOptions, type KebabCase, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, type PromptMeta, type PromptResolver, type PromptType, ReservedAliasError, type ResolvedFieldMeta, type RunCommandOptions, type RunResult, type RunResultFailure, type RunResultSuccess, type RunnableCommand, type SetupContext, type SubCommandValue, type SubCommandsRecord, type UnknownKeysMode, type ValidationError, type ValidationResult, type WithCaseVariants, type WithCompletionOptions, arg, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validateDuplicateNegations, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
653
685
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/core/case-types.ts","../src/core/case-proxy.ts","../src/core/command.ts","../src/core/runner.ts","../src/output/help-generator.ts","../src/output/logger.ts","../src/output/markdown-renderer.ts","../src/parser/argv-parser.ts","../src/validator/validation-errors.ts","../src/validator/command-validator.ts","../src/validator/zod-validator.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/core/case-types.ts","../src/core/case-proxy.ts","../src/core/command.ts","../src/core/runner.ts","../src/output/help-generator.ts","../src/output/logger.ts","../src/output/markdown-renderer.ts","../src/parser/argv-parser.ts","../src/validator/validation-errors.ts","../src/validator/command-validator.ts","../src/validator/zod-validator.ts"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as RunResultSuccess, B as UnknownKeysMode, C as Logger, D as RunCommandOptions, E as PromptResolver, F as LazyCommand, H as getUnknownKeysMode, I as isLazyCommand, L as lazy, M as SetupContext, N as SubCommandValue, O as RunResult, P as SubCommandsRecord, R as ExtractedFields, S as LogStream, T as NonRunnableCommand, U as toCamelCase, V as extractFields, W as toKebabCase, _ as GlobalCleanupContext, a as EffectContext, b as LogEntry, c as arg, d as CleanupContext, f as CollectedLogs, g as GlobalArgs, h as Example, i as CustomCompletion, j as RunnableCommand, k as RunResultFailure, l as AnyCommand, m as CommandBase, n as CompletionMeta, o as PromptMeta, p as Command, r as CompletionType, s as PromptType, t as ArgMeta, u as ArgsSchema, v as GlobalSetupContext, w as MainOptions, x as LogLevel, y as IsEmpty, z as ResolvedFieldMeta } from "./arg-registry-Dw0f11Zc.js";
2
- import { D as CompletionResult, E as CompletionOptions, i as generateCompletion, o as withCompletionCommand, t as WithCompletionOptions } from "./index-Dg9Fpz0R.js";
1
+ import { A as RunResultSuccess, B as UnknownKeysMode, C as Logger, D as RunCommandOptions, E as PromptResolver, F as LazyCommand, H as getUnknownKeysMode, I as isLazyCommand, L as lazy, M as SetupContext, N as SubCommandValue, O as RunResult, P as SubCommandsRecord, R as ExtractedFields, S as LogStream, T as NonRunnableCommand, U as toCamelCase, V as extractFields, W as toKebabCase, _ as GlobalCleanupContext, a as EffectContext, b as LogEntry, c as arg, d as CleanupContext, f as CollectedLogs, g as GlobalArgs, h as Example, i as CustomCompletion, j as RunnableCommand, k as RunResultFailure, l as AnyCommand, m as CommandBase, n as CompletionMeta, o as PromptMeta, p as Command, r as CompletionType, s as PromptType, t as ArgMeta, u as ArgsSchema, v as GlobalSetupContext, w as MainOptions, x as LogLevel, y as IsEmpty, z as ResolvedFieldMeta } from "./arg-registry-Cd6xnjHa.js";
2
+ import { D as CompletionOptions, O as CompletionResult, a as generateCompletion, s as withCompletionCommand, t as WithCompletionOptions } from "./index-DR9HLxIP.js";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region src/core/case-types.d.ts
@@ -236,6 +236,11 @@ declare function runCommand<TResult = unknown>(command: AnyCommand, argv: string
236
236
  * - Uses process.argv for arguments
237
237
  * - Handles SIGINT/SIGTERM signals
238
238
  * - Calls process.exit with the appropriate exit code
239
+ * - Invokes `command.runMainHook` once before parsing if set, so plug-ins
240
+ * like `withCompletionCommand` can fire detached background work
241
+ * - Bypasses user `setup`/`cleanup`/`prompt` and required `globalArgs`
242
+ * for registered hidden subcommands whose name starts with `__`
243
+ * (e.g. `__refresh-completion`)
239
244
  *
240
245
  * @param command - The command to run
241
246
  * @param options - Main options (version, debug)
@@ -446,6 +451,18 @@ interface ParserOptions {
446
451
  * boolean negation of `flag`.
447
452
  */
448
453
  definedNames?: Set<string>;
454
+ /**
455
+ * Map from a custom negation CLI name (and camelCase variant) to the
456
+ * canonical field name. Used to recognize user-defined boolean negation
457
+ * options (e.g. `--disable-cache` → `{ cache: false }`).
458
+ */
459
+ negationMap?: Map<string, string>;
460
+ /**
461
+ * Canonical field names that have a custom `negation` configured.
462
+ * For these fields the default `--no-<name>` / `--no<Name>` negation
463
+ * forms are suppressed.
464
+ */
465
+ customNegatedFields?: Set<string>;
449
466
  }
450
467
  /**
451
468
  * Parse argv into a flat record
@@ -501,6 +518,14 @@ declare class DuplicateAliasError extends Error {
501
518
  declare class CaseVariantCollisionError extends Error {
502
519
  constructor(message: string);
503
520
  }
521
+ /**
522
+ * Error thrown when a custom boolean negation name collides with another
523
+ * field's name, cliName, alias, or another field's negation (including
524
+ * derived camelCase variants).
525
+ */
526
+ declare class DuplicateNegationError extends Error {
527
+ constructor(message: string);
528
+ }
504
529
  //#endregion
505
530
  //#region src/validator/command-validator.d.ts
506
531
  /**
@@ -510,7 +535,7 @@ interface CommandValidationError {
510
535
  /** Path to the command (e.g., ["cli", "build", "watch"]) */
511
536
  commandPath: string[];
512
537
  /** Error type */
513
- type: "duplicate_field" | "duplicate_alias" | "invalid_alias" | "positional_config" | "reserved_alias" | "case_variant_collision";
538
+ type: "duplicate_field" | "duplicate_alias" | "invalid_alias" | "positional_config" | "reserved_alias" | "case_variant_collision" | "duplicate_negation";
514
539
  /** Error message */
515
540
  message: string;
516
541
  /** Related field name (if applicable) */
@@ -575,6 +600,13 @@ declare function validatePositionalConfig(extracted: ExtractedFields): void;
575
600
  * @throws {ReservedAliasError} If a reserved alias is used without override flag
576
601
  */
577
602
  declare function validateReservedAliases(extracted: ExtractedFields, _hasSubCommands: boolean): void;
603
+ /**
604
+ * Validate that custom boolean negation names do not collide with anything
605
+ *
606
+ * @param extracted - Extracted fields from schema
607
+ * @throws {DuplicateNegationError} If a colliding negation is found
608
+ */
609
+ declare function validateDuplicateNegations(extracted: ExtractedFields): void;
578
610
  /**
579
611
  * Validate that no case-variant collisions exist
580
612
  *
@@ -649,5 +681,5 @@ type ValidationResult<T> = {
649
681
  */
650
682
  declare function formatValidationErrors(errors: ValidationError[]): string;
651
683
  //#endregion
652
- export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, type CamelCase, CaseVariantCollisionError, type CleanupContext, type CollectedLogs, type Command, type CommandBase, type CommandContext, type CommandValidationError, type CommandValidationResult, type CompletionMeta, type CompletionOptions, type CompletionResult, type CompletionType, type CustomCompletion, DuplicateAliasError, DuplicateFieldError, type EffectContext, type Example, type ExtractedFields, type GlobalArgs, type GlobalCleanupContext, type GlobalSetupContext, type HelpOptions, type KebabCase, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, type PromptMeta, type PromptResolver, type PromptType, ReservedAliasError, type ResolvedFieldMeta, type RunCommandOptions, type RunResult, type RunResultFailure, type RunResultSuccess, type RunnableCommand, type SetupContext, type SubCommandValue, type SubCommandsRecord, type UnknownKeysMode, type ValidationError, type ValidationResult, type WithCaseVariants, type WithCompletionOptions, arg, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
684
+ export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, type CamelCase, CaseVariantCollisionError, type CleanupContext, type CollectedLogs, type Command, type CommandBase, type CommandContext, type CommandValidationError, type CommandValidationResult, type CompletionMeta, type CompletionOptions, type CompletionResult, type CompletionType, type CustomCompletion, DuplicateAliasError, DuplicateFieldError, DuplicateNegationError, type EffectContext, type Example, type ExtractedFields, type GlobalArgs, type GlobalCleanupContext, type GlobalSetupContext, type HelpOptions, type KebabCase, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, type PromptMeta, type PromptResolver, type PromptType, ReservedAliasError, type ResolvedFieldMeta, type RunCommandOptions, type RunResult, type RunResultFailure, type RunResultSuccess, type RunnableCommand, type SetupContext, type SubCommandValue, type SubCommandsRecord, type UnknownKeysMode, type ValidationError, type ValidationResult, type WithCaseVariants, type WithCompletionOptions, arg, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validateDuplicateNegations, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
653
685
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/core/case-types.ts","../src/core/case-proxy.ts","../src/core/command.ts","../src/core/runner.ts","../src/output/help-generator.ts","../src/output/logger.ts","../src/output/markdown-renderer.ts","../src/parser/argv-parser.ts","../src/validator/validation-errors.ts","../src/validator/command-validator.ts","../src/validator/zod-validator.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/core/case-types.ts","../src/core/case-proxy.ts","../src/core/command.ts","../src/core/runner.ts","../src/output/help-generator.ts","../src/output/logger.ts","../src/output/markdown-renderer.ts","../src/parser/argv-parser.ts","../src/validator/validation-errors.ts","../src/validator/command-validator.ts","../src/validator/zod-validator.ts"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { C as logger, D as createDualCaseProxy, E as symbols, S as isColorEnabled, T as styles, _ as PositionalConfigError, a as parseArgv, b as renderInline, c as validateCommand, d as validateDuplicateFields, f as validatePositionalConfig, g as DuplicateFieldError, h as DuplicateAliasError, i as formatValidationErrors, l as validateCrossSchemaCollisions, m as CaseVariantCollisionError, n as runMain, o as formatCommandValidationErrors, p as validateReservedAliases, s as validateCaseVariantCollisions, t as runCommand, u as validateDuplicateAliases, v as ReservedAliasError, w as setColorEnabled, x as renderMarkdown, y as generateHelp } from "./runner-DKAQBNNh.js";
2
- import { f as getUnknownKeysMode, h as arg, l as extractFields, m as toKebabCase, o as isLazyCommand, p as toCamelCase, s as lazy } from "./subcommand-router-ENeCymvX.js";
3
- import { a as withCompletionCommand, g as defineCommand, h as createDefineCommand, r as generateCompletion } from "./completion-Ca5ESJlG.js";
1
+ import { C as renderMarkdown, D as styles, E as setColorEnabled, O as symbols, S as renderInline, T as logger, _ as DuplicateFieldError, a as parseArgv, b as ReservedAliasError, c as validateCommand, d as validateDuplicateFields, f as validateDuplicateNegations, g as DuplicateAliasError, h as CaseVariantCollisionError, i as formatValidationErrors, k as createDualCaseProxy, l as validateCrossSchemaCollisions, m as validateReservedAliases, n as runMain, o as formatCommandValidationErrors, p as validatePositionalConfig, s as validateCaseVariantCollisions, t as runCommand, u as validateDuplicateAliases, v as DuplicateNegationError, w as isColorEnabled, x as generateHelp, y as PositionalConfigError } from "./runner-BHeCMEa5.js";
2
+ import { f as getUnknownKeysMode, h as arg, l as extractFields, m as toKebabCase, o as isLazyCommand, p as toCamelCase, s as lazy } from "./subcommand-router-XZBWe8HN.js";
3
+ import { _ as defineCommand, g as createDefineCommand, i as generateCompletion, o as withCompletionCommand } from "./completion-B04iiki9.js";
4
4
 
5
- export { CaseVariantCollisionError, DuplicateAliasError, DuplicateFieldError, PositionalConfigError, ReservedAliasError, arg, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
5
+ export { CaseVariantCollisionError, DuplicateAliasError, DuplicateFieldError, DuplicateNegationError, PositionalConfigError, ReservedAliasError, arg, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validateDuplicateNegations, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
@@ -1 +1 @@
1
- {"version":3,"file":"log-collector-Cd2_mv87.cjs","names":[],"sources":["../src/executor/log-collector.ts"],"sourcesContent":["import type { CollectedLogs, LogEntry, LogLevel, LogStream } from \"../types.js\";\n\n/**\n * Mapping from log level to output stream\n */\nconst LOG_STREAM_MAP: Record<LogLevel, LogStream> = {\n log: \"stdout\",\n info: \"stdout\",\n debug: \"stdout\",\n warn: \"stderr\",\n error: \"stderr\",\n};\n\n/**\n * All log levels\n */\nconst ALL_LOG_LEVELS: LogLevel[] = [\"log\", \"info\", \"debug\", \"warn\", \"error\"];\n\n/**\n * Options for log collector\n */\nexport interface LogCollectorOptions {\n /** Log levels to capture (default: all) */\n levels?: LogLevel[];\n /** Whether to call original console methods (default: true) */\n passthrough?: boolean;\n}\n\n/**\n * Log collector that intercepts console methods\n */\nexport interface LogCollector {\n /** Get collected logs */\n getLogs: () => CollectedLogs;\n /** Start collecting logs */\n start: () => void;\n /** Stop collecting and restore original console methods */\n stop: () => void;\n}\n\n/**\n * Format console arguments to string\n */\nexport function formatArgs(args: unknown[]): string {\n return args\n .map((arg) => {\n if (arg instanceof Error) {\n return arg.message;\n }\n if (typeof arg === \"object\" && arg !== null) {\n try {\n return JSON.stringify(arg);\n } catch {\n return String(arg);\n }\n }\n return String(arg);\n })\n .join(\" \");\n}\n\n/**\n * Create a log collector that intercepts console methods\n *\n * @param options - Options for the log collector\n * @returns A log collector instance\n *\n * @example\n * ```ts\n * const collector = createLogCollector();\n * collector.start();\n *\n * console.log(\"Info message\");\n * console.error(\"Something went wrong\");\n * console.warn(\"This is a warning\");\n *\n * collector.stop();\n * const logs = collector.getLogs();\n * // {\n * // entries: [\n * // { message: \"Info message\", level: \"log\", stream: \"stdout\", timestamp: ... },\n * // { message: \"Something went wrong\", level: \"error\", stream: \"stderr\", timestamp: ... },\n * // { message: \"This is a warning\", level: \"warn\", stream: \"stderr\", timestamp: ... }\n * // ]\n * // }\n * ```\n */\nexport function createLogCollector(options: LogCollectorOptions = {}): LogCollector {\n const entries: LogEntry[] = [];\n const levels = options.levels ?? ALL_LOG_LEVELS;\n const passthrough = options.passthrough ?? true;\n\n let originals: Record<LogLevel, typeof console.log> | null = null;\n\n const createInterceptor = (level: LogLevel, original: typeof console.log) => {\n return (...args: unknown[]) => {\n entries.push({\n message: formatArgs(args),\n timestamp: new Date(),\n level,\n stream: LOG_STREAM_MAP[level],\n });\n if (passthrough) {\n original.apply(console, args);\n }\n };\n };\n\n return {\n getLogs() {\n return { entries: [...entries] };\n },\n start() {\n if (originals !== null) {\n // Already started\n return;\n }\n originals = {\n log: console.log,\n info: console.info,\n debug: console.debug,\n warn: console.warn,\n error: console.error,\n };\n for (const level of levels) {\n console[level] = createInterceptor(level, originals[level]);\n }\n },\n stop() {\n if (originals === null) {\n return;\n }\n for (const level of levels) {\n console[level] = originals[level];\n }\n originals = null;\n },\n };\n}\n\n/**\n * Merge multiple CollectedLogs into one (sorted by timestamp)\n */\nexport function mergeLogs(...logsArray: CollectedLogs[]): CollectedLogs {\n return {\n entries: logsArray\n .flatMap((l) => l.entries)\n .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime()),\n };\n}\n\n/**\n * Create an empty CollectedLogs object\n */\nexport function emptyLogs(): CollectedLogs {\n return { entries: [] };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,iBAA8C;CAClD,KAAK;CACL,MAAM;CACN,OAAO;CACP,MAAM;CACN,OAAO;CACR;;;;AAKD,MAAM,iBAA6B;CAAC;CAAO;CAAQ;CAAS;CAAQ;CAAQ;;;;AA2B5E,SAAgB,WAAW,MAAyB;AAClD,QAAO,KACJ,KAAK,QAAQ;AACZ,MAAI,eAAe,MACjB,QAAO,IAAI;AAEb,MAAI,OAAO,QAAQ,YAAY,QAAQ,KACrC,KAAI;AACF,UAAO,KAAK,UAAU,IAAI;UACpB;AACN,UAAO,OAAO,IAAI;;AAGtB,SAAO,OAAO,IAAI;GAClB,CACD,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6Bd,SAAgB,mBAAmB,UAA+B,EAAE,EAAgB;CAClF,MAAM,UAAsB,EAAE;CAC9B,MAAM,SAAS,QAAQ,UAAU;CACjC,MAAM,cAAc,QAAQ,eAAe;CAE3C,IAAI,YAAyD;CAE7D,MAAM,qBAAqB,OAAiB,aAAiC;AAC3E,UAAQ,GAAG,SAAoB;AAC7B,WAAQ,KAAK;IACX,SAAS,WAAW,KAAK;IACzB,2BAAW,IAAI,MAAM;IACrB;IACA,QAAQ,eAAe;IACxB,CAAC;AACF,OAAI,YACF,UAAS,MAAM,SAAS,KAAK;;;AAKnC,QAAO;EACL,UAAU;AACR,UAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAE;;EAElC,QAAQ;AACN,OAAI,cAAc,KAEhB;AAEF,eAAY;IACV,KAAK,QAAQ;IACb,MAAM,QAAQ;IACd,OAAO,QAAQ;IACf,MAAM,QAAQ;IACd,OAAO,QAAQ;IAChB;AACD,QAAK,MAAM,SAAS,OAClB,SAAQ,SAAS,kBAAkB,OAAO,UAAU,OAAO;;EAG/D,OAAO;AACL,OAAI,cAAc,KAChB;AAEF,QAAK,MAAM,SAAS,OAClB,SAAQ,SAAS,UAAU;AAE7B,eAAY;;EAEf;;;;;AAMH,SAAgB,UAAU,GAAG,WAA2C;AACtE,QAAO,EACL,SAAS,UACN,SAAS,MAAM,EAAE,QAAQ,CACzB,MAAM,GAAG,MAAM,EAAE,UAAU,SAAS,GAAG,EAAE,UAAU,SAAS,CAAC,EACjE;;;;;AAMH,SAAgB,YAA2B;AACzC,QAAO,EAAE,SAAS,EAAE,EAAE"}
1
+ {"version":3,"file":"log-collector-Cd2_mv87.cjs","names":[],"sources":["../src/executor/log-collector.ts"],"sourcesContent":["import type { CollectedLogs, LogEntry, LogLevel, LogStream } from \"../types.js\";\n\n/**\n * Mapping from log level to output stream\n */\nconst LOG_STREAM_MAP: Record<LogLevel, LogStream> = {\n log: \"stdout\",\n info: \"stdout\",\n debug: \"stdout\",\n warn: \"stderr\",\n error: \"stderr\",\n};\n\n/**\n * All log levels\n */\nconst ALL_LOG_LEVELS: LogLevel[] = [\"log\", \"info\", \"debug\", \"warn\", \"error\"];\n\n/**\n * Options for log collector\n */\nexport interface LogCollectorOptions {\n /** Log levels to capture (default: all) */\n levels?: LogLevel[];\n /** Whether to call original console methods (default: true) */\n passthrough?: boolean;\n}\n\n/**\n * Log collector that intercepts console methods\n */\nexport interface LogCollector {\n /** Get collected logs */\n getLogs: () => CollectedLogs;\n /** Start collecting logs */\n start: () => void;\n /** Stop collecting and restore original console methods */\n stop: () => void;\n}\n\n/**\n * Format console arguments to string\n */\nexport function formatArgs(args: unknown[]): string {\n return args\n .map((arg) => {\n if (arg instanceof Error) {\n return arg.message;\n }\n if (typeof arg === \"object\" && arg !== null) {\n try {\n return JSON.stringify(arg);\n } catch {\n return String(arg);\n }\n }\n return String(arg);\n })\n .join(\" \");\n}\n\n/**\n * Create a log collector that intercepts console methods\n *\n * @param options - Options for the log collector\n * @returns A log collector instance\n *\n * @example\n * ```ts\n * const collector = createLogCollector();\n * collector.start();\n *\n * console.log(\"Info message\");\n * console.error(\"Something went wrong\");\n * console.warn(\"This is a warning\");\n *\n * collector.stop();\n * const logs = collector.getLogs();\n * // {\n * // entries: [\n * // { message: \"Info message\", level: \"log\", stream: \"stdout\", timestamp: ... },\n * // { message: \"Something went wrong\", level: \"error\", stream: \"stderr\", timestamp: ... },\n * // { message: \"This is a warning\", level: \"warn\", stream: \"stderr\", timestamp: ... }\n * // ]\n * // }\n * ```\n */\nexport function createLogCollector(options: LogCollectorOptions = {}): LogCollector {\n const entries: LogEntry[] = [];\n const levels = options.levels ?? ALL_LOG_LEVELS;\n const passthrough = options.passthrough ?? true;\n\n let originals: Record<LogLevel, typeof console.log> | null = null;\n\n const createInterceptor = (level: LogLevel, original: typeof console.log) => {\n return (...args: unknown[]) => {\n entries.push({\n message: formatArgs(args),\n timestamp: new Date(),\n level,\n stream: LOG_STREAM_MAP[level],\n });\n if (passthrough) {\n original.apply(console, args);\n }\n };\n };\n\n return {\n getLogs() {\n return { entries: [...entries] };\n },\n start() {\n if (originals !== null) {\n // Already started\n return;\n }\n originals = {\n log: console.log,\n info: console.info,\n debug: console.debug,\n warn: console.warn,\n error: console.error,\n };\n for (const level of levels) {\n console[level] = createInterceptor(level, originals[level]);\n }\n },\n stop() {\n if (originals === null) {\n return;\n }\n for (const level of levels) {\n console[level] = originals[level];\n }\n originals = null;\n },\n };\n}\n\n/**\n * Merge multiple CollectedLogs into one (sorted by timestamp)\n */\nexport function mergeLogs(...logsArray: CollectedLogs[]): CollectedLogs {\n return {\n entries: logsArray\n .flatMap((l) => l.entries)\n .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime()),\n };\n}\n\n/**\n * Create an empty CollectedLogs object\n */\nexport function emptyLogs(): CollectedLogs {\n return { entries: [] };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,iBAA8C;CAClD,KAAK;CACL,MAAM;CACN,OAAO;CACP,MAAM;CACN,OAAO;AACT;;;;AAKA,MAAM,iBAA6B;CAAC;CAAO;CAAQ;CAAS;CAAQ;AAAO;;;;AA2B3E,SAAgB,WAAW,MAAyB;CAClD,OAAO,KACJ,KAAK,QAAQ;EACZ,IAAI,eAAe,OACjB,OAAO,IAAI;EAEb,IAAI,OAAO,QAAQ,YAAY,QAAQ,MACrC,IAAI;GACF,OAAO,KAAK,UAAU,GAAG;EAC3B,QAAQ;GACN,OAAO,OAAO,GAAG;EACnB;EAEF,OAAO,OAAO,GAAG;CACnB,CAAC,EACA,KAAK,GAAG;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAgB,mBAAmB,UAA+B,CAAC,GAAiB;CAClF,MAAM,UAAsB,CAAC;CAC7B,MAAM,SAAS,QAAQ,UAAU;CACjC,MAAM,cAAc,QAAQ,eAAe;CAE3C,IAAI,YAAyD;CAE7D,MAAM,qBAAqB,OAAiB,aAAiC;EAC3E,QAAQ,GAAG,SAAoB;GAC7B,QAAQ,KAAK;IACX,SAAS,WAAW,IAAI;IACxB,2BAAW,IAAI,KAAK;IACpB;IACA,QAAQ,eAAe;GACzB,CAAC;GACD,IAAI,aACF,SAAS,MAAM,SAAS,IAAI;EAEhC;CACF;CAEA,OAAO;EACL,UAAU;GACR,OAAO,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE;EACjC;EACA,QAAQ;GACN,IAAI,cAAc,MAEhB;GAEF,YAAY;IACV,KAAK,QAAQ;IACb,MAAM,QAAQ;IACd,OAAO,QAAQ;IACf,MAAM,QAAQ;IACd,OAAO,QAAQ;GACjB;GACA,KAAK,MAAM,SAAS,QAClB,QAAQ,SAAS,kBAAkB,OAAO,UAAU,MAAM;EAE9D;EACA,OAAO;GACL,IAAI,cAAc,MAChB;GAEF,KAAK,MAAM,SAAS,QAClB,QAAQ,SAAS,UAAU;GAE7B,YAAY;EACd;CACF;AACF;;;;AAKA,SAAgB,UAAU,GAAG,WAA2C;CACtE,OAAO,EACL,SAAS,UACN,SAAS,MAAM,EAAE,OAAO,EACxB,MAAM,GAAG,MAAM,EAAE,UAAU,QAAQ,IAAI,EAAE,UAAU,QAAQ,CAAC,EACjE;AACF;;;;AAKA,SAAgB,YAA2B;CACzC,OAAO,EAAE,SAAS,CAAC,EAAE;AACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"log-collector-Cu6MCtAx.js","names":[],"sources":["../src/executor/log-collector.ts"],"sourcesContent":["import type { CollectedLogs, LogEntry, LogLevel, LogStream } from \"../types.js\";\n\n/**\n * Mapping from log level to output stream\n */\nconst LOG_STREAM_MAP: Record<LogLevel, LogStream> = {\n log: \"stdout\",\n info: \"stdout\",\n debug: \"stdout\",\n warn: \"stderr\",\n error: \"stderr\",\n};\n\n/**\n * All log levels\n */\nconst ALL_LOG_LEVELS: LogLevel[] = [\"log\", \"info\", \"debug\", \"warn\", \"error\"];\n\n/**\n * Options for log collector\n */\nexport interface LogCollectorOptions {\n /** Log levels to capture (default: all) */\n levels?: LogLevel[];\n /** Whether to call original console methods (default: true) */\n passthrough?: boolean;\n}\n\n/**\n * Log collector that intercepts console methods\n */\nexport interface LogCollector {\n /** Get collected logs */\n getLogs: () => CollectedLogs;\n /** Start collecting logs */\n start: () => void;\n /** Stop collecting and restore original console methods */\n stop: () => void;\n}\n\n/**\n * Format console arguments to string\n */\nexport function formatArgs(args: unknown[]): string {\n return args\n .map((arg) => {\n if (arg instanceof Error) {\n return arg.message;\n }\n if (typeof arg === \"object\" && arg !== null) {\n try {\n return JSON.stringify(arg);\n } catch {\n return String(arg);\n }\n }\n return String(arg);\n })\n .join(\" \");\n}\n\n/**\n * Create a log collector that intercepts console methods\n *\n * @param options - Options for the log collector\n * @returns A log collector instance\n *\n * @example\n * ```ts\n * const collector = createLogCollector();\n * collector.start();\n *\n * console.log(\"Info message\");\n * console.error(\"Something went wrong\");\n * console.warn(\"This is a warning\");\n *\n * collector.stop();\n * const logs = collector.getLogs();\n * // {\n * // entries: [\n * // { message: \"Info message\", level: \"log\", stream: \"stdout\", timestamp: ... },\n * // { message: \"Something went wrong\", level: \"error\", stream: \"stderr\", timestamp: ... },\n * // { message: \"This is a warning\", level: \"warn\", stream: \"stderr\", timestamp: ... }\n * // ]\n * // }\n * ```\n */\nexport function createLogCollector(options: LogCollectorOptions = {}): LogCollector {\n const entries: LogEntry[] = [];\n const levels = options.levels ?? ALL_LOG_LEVELS;\n const passthrough = options.passthrough ?? true;\n\n let originals: Record<LogLevel, typeof console.log> | null = null;\n\n const createInterceptor = (level: LogLevel, original: typeof console.log) => {\n return (...args: unknown[]) => {\n entries.push({\n message: formatArgs(args),\n timestamp: new Date(),\n level,\n stream: LOG_STREAM_MAP[level],\n });\n if (passthrough) {\n original.apply(console, args);\n }\n };\n };\n\n return {\n getLogs() {\n return { entries: [...entries] };\n },\n start() {\n if (originals !== null) {\n // Already started\n return;\n }\n originals = {\n log: console.log,\n info: console.info,\n debug: console.debug,\n warn: console.warn,\n error: console.error,\n };\n for (const level of levels) {\n console[level] = createInterceptor(level, originals[level]);\n }\n },\n stop() {\n if (originals === null) {\n return;\n }\n for (const level of levels) {\n console[level] = originals[level];\n }\n originals = null;\n },\n };\n}\n\n/**\n * Merge multiple CollectedLogs into one (sorted by timestamp)\n */\nexport function mergeLogs(...logsArray: CollectedLogs[]): CollectedLogs {\n return {\n entries: logsArray\n .flatMap((l) => l.entries)\n .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime()),\n };\n}\n\n/**\n * Create an empty CollectedLogs object\n */\nexport function emptyLogs(): CollectedLogs {\n return { entries: [] };\n}\n"],"mappings":";;;;AAKA,MAAM,iBAA8C;CAClD,KAAK;CACL,MAAM;CACN,OAAO;CACP,MAAM;CACN,OAAO;CACR;;;;AAKD,MAAM,iBAA6B;CAAC;CAAO;CAAQ;CAAS;CAAQ;CAAQ;;;;AA2B5E,SAAgB,WAAW,MAAyB;AAClD,QAAO,KACJ,KAAK,QAAQ;AACZ,MAAI,eAAe,MACjB,QAAO,IAAI;AAEb,MAAI,OAAO,QAAQ,YAAY,QAAQ,KACrC,KAAI;AACF,UAAO,KAAK,UAAU,IAAI;UACpB;AACN,UAAO,OAAO,IAAI;;AAGtB,SAAO,OAAO,IAAI;GAClB,CACD,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6Bd,SAAgB,mBAAmB,UAA+B,EAAE,EAAgB;CAClF,MAAM,UAAsB,EAAE;CAC9B,MAAM,SAAS,QAAQ,UAAU;CACjC,MAAM,cAAc,QAAQ,eAAe;CAE3C,IAAI,YAAyD;CAE7D,MAAM,qBAAqB,OAAiB,aAAiC;AAC3E,UAAQ,GAAG,SAAoB;AAC7B,WAAQ,KAAK;IACX,SAAS,WAAW,KAAK;IACzB,2BAAW,IAAI,MAAM;IACrB;IACA,QAAQ,eAAe;IACxB,CAAC;AACF,OAAI,YACF,UAAS,MAAM,SAAS,KAAK;;;AAKnC,QAAO;EACL,UAAU;AACR,UAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAE;;EAElC,QAAQ;AACN,OAAI,cAAc,KAEhB;AAEF,eAAY;IACV,KAAK,QAAQ;IACb,MAAM,QAAQ;IACd,OAAO,QAAQ;IACf,MAAM,QAAQ;IACd,OAAO,QAAQ;IAChB;AACD,QAAK,MAAM,SAAS,OAClB,SAAQ,SAAS,kBAAkB,OAAO,UAAU,OAAO;;EAG/D,OAAO;AACL,OAAI,cAAc,KAChB;AAEF,QAAK,MAAM,SAAS,OAClB,SAAQ,SAAS,UAAU;AAE7B,eAAY;;EAEf;;;;;AAMH,SAAgB,UAAU,GAAG,WAA2C;AACtE,QAAO,EACL,SAAS,UACN,SAAS,MAAM,EAAE,QAAQ,CACzB,MAAM,GAAG,MAAM,EAAE,UAAU,SAAS,GAAG,EAAE,UAAU,SAAS,CAAC,EACjE;;;;;AAMH,SAAgB,YAA2B;AACzC,QAAO,EAAE,SAAS,EAAE,EAAE"}
1
+ {"version":3,"file":"log-collector-Cu6MCtAx.js","names":[],"sources":["../src/executor/log-collector.ts"],"sourcesContent":["import type { CollectedLogs, LogEntry, LogLevel, LogStream } from \"../types.js\";\n\n/**\n * Mapping from log level to output stream\n */\nconst LOG_STREAM_MAP: Record<LogLevel, LogStream> = {\n log: \"stdout\",\n info: \"stdout\",\n debug: \"stdout\",\n warn: \"stderr\",\n error: \"stderr\",\n};\n\n/**\n * All log levels\n */\nconst ALL_LOG_LEVELS: LogLevel[] = [\"log\", \"info\", \"debug\", \"warn\", \"error\"];\n\n/**\n * Options for log collector\n */\nexport interface LogCollectorOptions {\n /** Log levels to capture (default: all) */\n levels?: LogLevel[];\n /** Whether to call original console methods (default: true) */\n passthrough?: boolean;\n}\n\n/**\n * Log collector that intercepts console methods\n */\nexport interface LogCollector {\n /** Get collected logs */\n getLogs: () => CollectedLogs;\n /** Start collecting logs */\n start: () => void;\n /** Stop collecting and restore original console methods */\n stop: () => void;\n}\n\n/**\n * Format console arguments to string\n */\nexport function formatArgs(args: unknown[]): string {\n return args\n .map((arg) => {\n if (arg instanceof Error) {\n return arg.message;\n }\n if (typeof arg === \"object\" && arg !== null) {\n try {\n return JSON.stringify(arg);\n } catch {\n return String(arg);\n }\n }\n return String(arg);\n })\n .join(\" \");\n}\n\n/**\n * Create a log collector that intercepts console methods\n *\n * @param options - Options for the log collector\n * @returns A log collector instance\n *\n * @example\n * ```ts\n * const collector = createLogCollector();\n * collector.start();\n *\n * console.log(\"Info message\");\n * console.error(\"Something went wrong\");\n * console.warn(\"This is a warning\");\n *\n * collector.stop();\n * const logs = collector.getLogs();\n * // {\n * // entries: [\n * // { message: \"Info message\", level: \"log\", stream: \"stdout\", timestamp: ... },\n * // { message: \"Something went wrong\", level: \"error\", stream: \"stderr\", timestamp: ... },\n * // { message: \"This is a warning\", level: \"warn\", stream: \"stderr\", timestamp: ... }\n * // ]\n * // }\n * ```\n */\nexport function createLogCollector(options: LogCollectorOptions = {}): LogCollector {\n const entries: LogEntry[] = [];\n const levels = options.levels ?? ALL_LOG_LEVELS;\n const passthrough = options.passthrough ?? true;\n\n let originals: Record<LogLevel, typeof console.log> | null = null;\n\n const createInterceptor = (level: LogLevel, original: typeof console.log) => {\n return (...args: unknown[]) => {\n entries.push({\n message: formatArgs(args),\n timestamp: new Date(),\n level,\n stream: LOG_STREAM_MAP[level],\n });\n if (passthrough) {\n original.apply(console, args);\n }\n };\n };\n\n return {\n getLogs() {\n return { entries: [...entries] };\n },\n start() {\n if (originals !== null) {\n // Already started\n return;\n }\n originals = {\n log: console.log,\n info: console.info,\n debug: console.debug,\n warn: console.warn,\n error: console.error,\n };\n for (const level of levels) {\n console[level] = createInterceptor(level, originals[level]);\n }\n },\n stop() {\n if (originals === null) {\n return;\n }\n for (const level of levels) {\n console[level] = originals[level];\n }\n originals = null;\n },\n };\n}\n\n/**\n * Merge multiple CollectedLogs into one (sorted by timestamp)\n */\nexport function mergeLogs(...logsArray: CollectedLogs[]): CollectedLogs {\n return {\n entries: logsArray\n .flatMap((l) => l.entries)\n .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime()),\n };\n}\n\n/**\n * Create an empty CollectedLogs object\n */\nexport function emptyLogs(): CollectedLogs {\n return { entries: [] };\n}\n"],"mappings":";;;;AAKA,MAAM,iBAA8C;CAClD,KAAK;CACL,MAAM;CACN,OAAO;CACP,MAAM;CACN,OAAO;AACT;;;;AAKA,MAAM,iBAA6B;CAAC;CAAO;CAAQ;CAAS;CAAQ;AAAO;;;;AA2B3E,SAAgB,WAAW,MAAyB;CAClD,OAAO,KACJ,KAAK,QAAQ;EACZ,IAAI,eAAe,OACjB,OAAO,IAAI;EAEb,IAAI,OAAO,QAAQ,YAAY,QAAQ,MACrC,IAAI;GACF,OAAO,KAAK,UAAU,GAAG;EAC3B,QAAQ;GACN,OAAO,OAAO,GAAG;EACnB;EAEF,OAAO,OAAO,GAAG;CACnB,CAAC,EACA,KAAK,GAAG;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAgB,mBAAmB,UAA+B,CAAC,GAAiB;CAClF,MAAM,UAAsB,CAAC;CAC7B,MAAM,SAAS,QAAQ,UAAU;CACjC,MAAM,cAAc,QAAQ,eAAe;CAE3C,IAAI,YAAyD;CAE7D,MAAM,qBAAqB,OAAiB,aAAiC;EAC3E,QAAQ,GAAG,SAAoB;GAC7B,QAAQ,KAAK;IACX,SAAS,WAAW,IAAI;IACxB,2BAAW,IAAI,KAAK;IACpB;IACA,QAAQ,eAAe;GACzB,CAAC;GACD,IAAI,aACF,SAAS,MAAM,SAAS,IAAI;EAEhC;CACF;CAEA,OAAO;EACL,UAAU;GACR,OAAO,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE;EACjC;EACA,QAAQ;GACN,IAAI,cAAc,MAEhB;GAEF,YAAY;IACV,KAAK,QAAQ;IACb,MAAM,QAAQ;IACd,OAAO,QAAQ;IACf,MAAM,QAAQ;IACd,OAAO,QAAQ;GACjB;GACA,KAAK,MAAM,SAAS,QAClB,QAAQ,SAAS,kBAAkB,OAAO,UAAU,MAAM;EAE9D;EACA,OAAO;GACL,IAAI,cAAc,MAChB;GAEF,KAAK,MAAM,SAAS,QAClB,QAAQ,SAAS,UAAU;GAE7B,YAAY;EACd;CACF;AACF;;;;AAKA,SAAgB,UAAU,GAAG,WAA2C;CACtE,OAAO,EACL,SAAS,UACN,SAAS,MAAM,EAAE,OAAO,EACxB,MAAM,GAAG,MAAM,EAAE,UAAU,QAAQ,IAAI,EAAE,UAAU,QAAQ,CAAC,EACjE;AACF;;;;AAKA,SAAgB,YAA2B;CACzC,OAAO,EAAE,SAAS,CAAC,EAAE;AACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["isCancel","promptMissingArgs"],"sources":["../../../src/prompt/clack/index.ts"],"sourcesContent":["import { confirm, isCancel, password, select, text } from \"@clack/prompts\";\nimport type { PromptResolver } from \"../../types.js\";\nimport { promptMissingArgs } from \"../index.js\";\nimport type { PromptAdapter } from \"../types.js\";\n\nfunction createClackAdapter(): PromptAdapter {\n return {\n text: (config) =>\n text({\n message: config.message,\n ...(config.placeholder !== undefined && { placeholder: config.placeholder }),\n }),\n password: (config) => password(config),\n confirm: (config) => confirm(config),\n select: (config) => select(config),\n isCancelled: isCancel,\n };\n}\n\n/**\n * Prompt resolver backed by @clack/prompts.\n *\n * @example\n * ```ts\n * import { runMain, defineCommand } from \"politty\";\n * import { prompt } from \"politty/prompt/clack\";\n *\n * runMain(cmd, { version: \"1.0.0\", prompt });\n * ```\n */\nexport const prompt: PromptResolver = (rawArgs, extracted) =>\n promptMissingArgs(rawArgs, extracted, { adapter: createClackAdapter() });\n"],"mappings":";;;;;;AAKA,SAAS,qBAAoC;AAC3C,QAAO;EACL,OAAO,oCACA;GACH,SAAS,OAAO;GAChB,GAAI,OAAO,gBAAgB,UAAa,EAAE,aAAa,OAAO,aAAa;GAC5E,CAAC;EACJ,WAAW,wCAAoB,OAAO;EACtC,UAAU,uCAAmB,OAAO;EACpC,SAAS,sCAAkB,OAAO;EAClC,aAAaA;EACd;;;;;;;;;;;;;AAcH,MAAa,UAA0B,SAAS,cAC9CC,iCAAkB,SAAS,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.cjs","names":["isCancel","promptMissingArgs"],"sources":["../../../src/prompt/clack/index.ts"],"sourcesContent":["import { confirm, isCancel, password, select, text } from \"@clack/prompts\";\nimport type { PromptResolver } from \"../../types.js\";\nimport { promptMissingArgs } from \"../index.js\";\nimport type { PromptAdapter } from \"../types.js\";\n\nfunction createClackAdapter(): PromptAdapter {\n return {\n text: (config) =>\n text({\n message: config.message,\n ...(config.placeholder !== undefined && { placeholder: config.placeholder }),\n }),\n password: (config) => password(config),\n confirm: (config) => confirm(config),\n select: (config) => select(config),\n isCancelled: isCancel,\n };\n}\n\n/**\n * Prompt resolver backed by @clack/prompts.\n *\n * @example\n * ```ts\n * import { runMain, defineCommand } from \"politty\";\n * import { prompt } from \"politty/prompt/clack\";\n *\n * runMain(cmd, { version: \"1.0.0\", prompt });\n * ```\n */\nexport const prompt: PromptResolver = (rawArgs, extracted) =>\n promptMissingArgs(rawArgs, extracted, { adapter: createClackAdapter() });\n"],"mappings":";;;;;;AAKA,SAAS,qBAAoC;CAC3C,OAAO;EACL,OAAO,oCACA;GACH,SAAS,OAAO;GAChB,GAAI,OAAO,gBAAgB,UAAa,EAAE,aAAa,OAAO,YAAY;EAC5E,CAAC;EACH,WAAW,wCAAoB,MAAM;EACrC,UAAU,uCAAmB,MAAM;EACnC,SAAS,sCAAkB,MAAM;EACjC,aAAaA;CACf;AACF;;;;;;;;;;;;AAaA,MAAa,UAA0B,SAAS,cAC9CC,iCAAkB,SAAS,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { E as PromptResolver } from "../../arg-registry-CB5gGtzp.cjs";
1
+ import { E as PromptResolver } from "../../arg-registry-MVWOAcvw.cjs";
2
2
 
3
3
  //#region src/prompt/clack/index.d.ts
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/prompt/clack/index.ts"],"mappings":";;;;;AA8BA;;;;;;;;;cAAa,MAAA,EAAQ,cAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/prompt/clack/index.ts"],"mappings":";;;;;AA8BA;;;;AAC0E;;;;;cAD7D,MAAA,EAAQ,cACqD"}
@@ -1,4 +1,4 @@
1
- import { E as PromptResolver } from "../../arg-registry-Dw0f11Zc.js";
1
+ import { E as PromptResolver } from "../../arg-registry-Cd6xnjHa.js";
2
2
 
3
3
  //#region src/prompt/clack/index.d.ts
4
4
  /**