politty 0.4.15 → 0.5.0

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 (75) hide show
  1. package/dist/{arg-registry-Dw0f11Zc.d.ts → arg-registry--NRaNFJM.d.cts} +238 -6
  2. package/dist/arg-registry--NRaNFJM.d.cts.map +1 -0
  3. package/dist/{arg-registry-CB5gGtzp.d.cts → arg-registry-6E0WHOh_.d.ts} +238 -6
  4. package/dist/arg-registry-6E0WHOh_.d.ts.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 +3 -2
  11. package/dist/completion/index.d.ts +3 -2
  12. package/dist/completion/index.js +2 -2
  13. package/dist/completion-BA5JMvVG.js +4067 -0
  14. package/dist/completion-BA5JMvVG.js.map +1 -0
  15. package/dist/completion-Cqs1Ja7C.cjs +4169 -0
  16. package/dist/completion-Cqs1Ja7C.cjs.map +1 -0
  17. package/dist/docs/index.cjs +89 -29
  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-C1gGgUeB.d.cts → index-DBMfKZ34.d.ts} +189 -17
  26. package/dist/index-DBMfKZ34.d.ts.map +1 -0
  27. package/dist/{index-Dg9Fpz0R.d.ts → index-DJp8k5Bq.d.cts} +189 -17
  28. package/dist/index-DJp8k5Bq.d.cts.map +1 -0
  29. package/dist/index.cjs +12 -10
  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-BmSEiD9A.js} +319 -52
  56. package/dist/runner-BmSEiD9A.js.map +1 -0
  57. package/dist/{runner-CriXJlm4.cjs → runner-CRZ_7Y9i.cjs} +366 -87
  58. package/dist/runner-CRZ_7Y9i.cjs.map +1 -0
  59. package/dist/{subcommand-router-ENeCymvX.js → schema-extractor-C50R-1re.js} +175 -137
  60. package/dist/schema-extractor-C50R-1re.js.map +1 -0
  61. package/dist/{subcommand-router-CqZX3orq.cjs → schema-extractor-SLPgBNgZ.cjs} +174 -136
  62. package/dist/schema-extractor-SLPgBNgZ.cjs.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 +0 -1940
  67. package/dist/completion-B5fgnUGm.cjs.map +0 -1
  68. package/dist/completion-Ca5ESJlG.js +0 -1844
  69. package/dist/completion-Ca5ESJlG.js.map +0 -1
  70. package/dist/index-C1gGgUeB.d.cts.map +0 -1
  71. package/dist/index-Dg9Fpz0R.d.ts.map +0 -1
  72. package/dist/runner-CriXJlm4.cjs.map +0 -1
  73. package/dist/runner-DKAQBNNh.js.map +0 -1
  74. package/dist/subcommand-router-CqZX3orq.cjs.map +0 -1
  75. package/dist/subcommand-router-ENeCymvX.js.map +0 -1
@@ -47,6 +47,30 @@ interface ResolvedFieldMeta {
47
47
  completion?: CompletionMeta | undefined;
48
48
  /** Prompt metadata from arg() for interactive input */
49
49
  prompt?: PromptMeta | undefined;
50
+ /**
51
+ * Negation configuration for this boolean field.
52
+ *
53
+ * - String (e.g. `"disable-cache"`): the default `--no-<cliName>` form is
54
+ * suppressed and only `--<negation>` (plus its camelCase variant) is
55
+ * accepted as the negation flag.
56
+ * - `true`: the default `--no-<cliName>` form is accepted **and** shown in
57
+ * help, generated docs, and shell completions.
58
+ * - `false`: neither the default `--no-<cliName>` nor any custom name is
59
+ * accepted; the field only responds to the positive flag.
60
+ * - `undefined`: the default `--no-<cliName>` is accepted by the parser
61
+ * but hidden from help/docs/completions.
62
+ *
63
+ * Only applies to boolean fields; populated as `undefined` otherwise.
64
+ */
65
+ negation?: string | boolean | undefined;
66
+ /**
67
+ * Derived display name (no `--` prefix) for the negation flag in help,
68
+ * generated docs, and shell completions. `undefined` means the negation
69
+ * is hidden from those surfaces. Computed from `negation` + `cliName`.
70
+ */
71
+ negationDisplay?: string | undefined;
72
+ /** Description shown for the negation option in help/docs. */
73
+ negationDescription?: string | undefined;
50
74
  /** Side-effect callback from arg() metadata */
51
75
  effect?: ((value: unknown, context: EffectContext) => void | PromiseLike<void>) | undefined;
52
76
  }
@@ -260,6 +284,13 @@ interface CommandBase<TArgsSchema extends ArgsSchema | undefined = undefined, TA
260
284
  notes?: string | undefined;
261
285
  /** Example usages for this command */
262
286
  examples?: Example[] | undefined;
287
+ /**
288
+ * @internal
289
+ * Hook invoked once at the top of `runMain`, before any parsing. Used
290
+ * by `withCompletionCommand` to fire its detached background-refresh
291
+ * spawn. Best-effort; never throws.
292
+ */
293
+ runMainHook?: ((argv: readonly string[]) => void) | undefined;
263
294
  }
264
295
  /**
265
296
  * A command with a run function
@@ -424,19 +455,139 @@ interface RunResultFailure {
424
455
  */
425
456
  type RunResult<T = unknown> = RunResultSuccess<T> | RunResultFailure;
426
457
  //#endregion
458
+ //#region src/core/dynamic-completion-types.d.ts
459
+ /**
460
+ * Types for in-process dynamic value completion.
461
+ *
462
+ * A `resolve` callback registered on `arg(...)` receives parsed context
463
+ * (other arg values typed so far, previous values supplied to the same
464
+ * option, the current word being completed, target shell) and returns
465
+ * candidates. The callback runs inside the `__complete` command, so static
466
+ * shell scripts delegate to `<program> __complete` for any spec that uses
467
+ * `resolve`.
468
+ *
469
+ * Defined under `core/` (not `completion/`) so `arg-registry.ts` can
470
+ * reference the resolver type without crossing the lint-enforced
471
+ * `completion → core` boundary.
472
+ */
473
+ /** Bitmask combining `CompletionDirective` values. */
474
+ type CompletionDirectiveMask = number;
475
+ interface DynamicCompletionContext {
476
+ /** Word being completed. `--field=` inline prefix is stripped before this is set. */
477
+ currentWord: string;
478
+ /** Target shell formatting requested by the caller. */
479
+ shell: "bash" | "zsh" | "fish";
480
+ /**
481
+ * Best-effort parsed values of OTHER args on the same command, keyed by
482
+ * camelCase name. Includes positionals and other options. Zod validation
483
+ * is NOT applied; values are raw strings (or arrays of raw strings for
484
+ * array-typed options/variadic positionals).
485
+ */
486
+ parsedArgs: Readonly<Record<string, unknown>>;
487
+ /**
488
+ * Values already supplied for the SAME option/positional being completed.
489
+ * Useful for de-duplicating repeated array options.
490
+ */
491
+ previousValues: readonly string[];
492
+ /**
493
+ * Subcommand path from root (e.g. ["api"]). Reflects what the user
494
+ * actually typed — aliases are NOT resolved to their canonical names, so
495
+ * resolvers that branch on the path should accept every alias they care
496
+ * about.
497
+ */
498
+ subcommandPath: readonly string[];
499
+ }
500
+ interface DynamicCompletionCandidate {
501
+ value: string;
502
+ description?: string;
503
+ }
504
+ interface DynamicCompletionResult {
505
+ /** Candidates to surface. Strings or `{value, description}` objects. */
506
+ candidates: Array<string | DynamicCompletionCandidate>;
507
+ /**
508
+ * Optional directive override. When omitted, defaults to
509
+ * `FilterPrefix | NoFileCompletion` (matches `choices` behaviour).
510
+ */
511
+ directive?: CompletionDirectiveMask;
512
+ }
513
+ type DynamicCompletionResolver = (ctx: DynamicCompletionContext) => DynamicCompletionResult | Promise<DynamicCompletionResult>;
514
+ //#endregion
515
+ //#region src/core/expand-completion-types.d.ts
516
+ /**
517
+ * Types for "expand" completion — candidates that are pre-enumerated at
518
+ * script-generation time and inlined into the static shell script.
519
+ *
520
+ * The user provides `dependsOn` (sibling arg names that must have static
521
+ * `choices` or an enum schema) and `enumerate(deps)`. politty walks the
522
+ * cartesian product of the dependsOn values, calls `enumerate` for each
523
+ * combination, and emits a case lookup keyed on the runtime values of those
524
+ * args. No Node process is spawned on TAB.
525
+ *
526
+ * Defined under `core/` (not `completion/`) so `arg-registry.ts` can
527
+ * reference these types without crossing the lint-enforced
528
+ * `completion → core` boundary.
529
+ */
530
+ /** Candidate returned by an `enumerate` callback. */
531
+ interface ExpandCandidate {
532
+ value: string;
533
+ description?: string;
534
+ }
535
+ /** Resolved candidate stored on a {@link ValueCompletion} after enumeration. */
536
+ interface ResolvedExpandCandidate {
537
+ value: string;
538
+ description?: string;
539
+ }
540
+ /**
541
+ * User-facing spec attached to `completion.custom.expand`.
542
+ *
543
+ * `dependsOn` lists sibling args (camelCase names) whose values determine
544
+ * which candidates apply. Each named arg must have a static set of values —
545
+ * either an explicit `completion.custom.choices` or an enum schema. The
546
+ * order of `dependsOn` is the order in which `deps` keys are exposed to
547
+ * `enumerate`.
548
+ *
549
+ * `enumerate` runs once per cartesian-product combination at the time the
550
+ * shell script is generated (e.g. when the user runs `<program> completion
551
+ * zsh`). It must be a pure function of `deps`; politty does not retain it
552
+ * for runtime use.
553
+ */
554
+ interface ExpandCompletion {
555
+ dependsOn: readonly string[];
556
+ enumerate: (deps: Readonly<Record<string, string>>) => ReadonlyArray<string | ExpandCandidate>;
557
+ }
558
+ //#endregion
427
559
  //#region src/core/arg-registry.d.ts
428
560
  /**
429
561
  * Built-in completion types
430
562
  */
431
563
  type CompletionType = "file" | "directory" | "none";
432
564
  /**
433
- * Custom completion specification
565
+ * Custom completion specification.
566
+ *
567
+ * `choices`, `shellCommand`, `resolve`, and `expand` are mutually exclusive —
568
+ * specifying more than one throws when the field metadata is resolved.
434
569
  */
435
570
  interface CustomCompletion {
436
571
  /** Static list of choices for completion */
437
572
  choices?: string[];
438
573
  /** Shell command to execute for dynamic completion */
439
574
  shellCommand?: string;
575
+ /**
576
+ * In-process JS callback for dynamic completion. Receives parsed context
577
+ * (other arg values typed so far, previously supplied values for this same
578
+ * option) and returns candidates. Static shell scripts delegate to
579
+ * `<program> __complete` whenever this is set.
580
+ */
581
+ resolve?: DynamicCompletionResolver;
582
+ /**
583
+ * Pre-enumerated completion baked into the generated shell script. The
584
+ * candidate list is computed at script-generation time by calling
585
+ * `enumerate` for every combination of the sibling arg values listed in
586
+ * `dependsOn` (each must have a static `choices` or enum schema). The
587
+ * shell then dispatches via a case lookup keyed by the runtime values of
588
+ * those args — no Node process is spawned on TAB.
589
+ */
590
+ expand?: ExpandCompletion;
440
591
  }
441
592
  /**
442
593
  * Completion metadata for an argument
@@ -578,6 +729,58 @@ interface BaseArgMeta<TValue = unknown> {
578
729
  * ```
579
730
  */
580
731
  prompt?: PromptMeta;
732
+ /**
733
+ * Control the boolean negation option.
734
+ *
735
+ * Boolean fields automatically accept `--no-<cliName>` (and the camelCase
736
+ * `--no<Name>` form) to set the value to `false`. By default this form is
737
+ * accepted by the parser but hidden from help, generated docs, and shell
738
+ * completions. This option lets you customize or expose that behavior:
739
+ *
740
+ * - `string` — replaces the auto-generated `--no-*` form with a custom
741
+ * name. The default `--no-*` is no longer recognized.
742
+ * - `true` — opt-in to advertising the default `--no-<cliName>` form in
743
+ * help, generated docs, and shell completions. Parser behavior is
744
+ * unchanged.
745
+ * - `false` — disables negation entirely; neither the default `--no-*`
746
+ * nor any custom name is accepted.
747
+ *
748
+ * String values follow the same naming conventions as `cliName`
749
+ * (kebab-case is recommended). Only valid on boolean fields; setting
750
+ * `negation` on a non-boolean field is a type error and raises a
751
+ * runtime error during command parsing.
752
+ *
753
+ * @example
754
+ * ```ts
755
+ * // Custom negation name
756
+ * cache: arg(z.boolean().default(true), {
757
+ * description: "Enable caching",
758
+ * negation: "disable-cache",
759
+ * })
760
+ * // Accepts: --cache (true), --disable-cache (false)
761
+ * // No longer accepts: --no-cache
762
+ *
763
+ * // Expose default `--no-X` in help/docs/completion
764
+ * verbose: arg(z.boolean().default(false), {
765
+ * negation: true,
766
+ * })
767
+ * // Help shows `--verbose / --no-verbose`
768
+ *
769
+ * // Disable negation entirely
770
+ * dryRun: arg(z.boolean().default(false), {
771
+ * negation: false,
772
+ * })
773
+ * // Accepts: --dry-run (true)
774
+ * // No longer accepts: --no-dry-run
775
+ * ```
776
+ */
777
+ negation?: string | boolean;
778
+ /**
779
+ * Description shown for the negation option in help and generated docs.
780
+ * Only meaningful when `negation` is set to a custom name string or `true`.
781
+ * Disallowed when `negation` is `false`.
782
+ */
783
+ negationDescription?: string;
581
784
  /**
582
785
  * Side-effect callback executed after argument parsing and validation.
583
786
  * Runs before the command lifecycle (setup/run/cleanup).
@@ -664,23 +867,52 @@ type ContainsReservedAlias<A> = [A] extends [never] ? false : A extends "h" | "H
664
867
  type ReservedAliasTypeError<M> = { [K in keyof M]: M[K] } & {
665
868
  __typeError: "Alias 'h' or 'H' requires overrideBuiltinAlias: true";
666
869
  };
870
+ type NegationTypeError<M> = { [K in keyof M]: M[K] } & {
871
+ __typeError: "negation/negationDescription can only be used on boolean fields";
872
+ };
667
873
  type AliasFieldOf<M> = M extends {
668
874
  alias: infer A;
669
875
  } ? A : never;
670
876
  type HiddenAliasFieldOf<M> = M extends {
671
877
  hiddenAlias: infer H;
672
878
  } ? H : never;
879
+ /**
880
+ * Check whether a Zod output type is a (possibly optional) boolean.
881
+ * Strips `undefined` to allow `z.boolean().optional()`. Requires both
882
+ * `boolean extends NonNullable<T>` (so `z.literal(true)` is rejected — the full
883
+ * `boolean` domain is needed) and `NonNullable<T> extends boolean` (so unions
884
+ * such as `z.union([z.boolean(), z.string()])` are rejected at the type level
885
+ * to match the runtime check).
886
+ */
887
+ type IsBooleanField<T> = boolean extends NonNullable<T> ? ([NonNullable<T>] extends [boolean] ? true : false) : false;
888
+ /**
889
+ * Detect whether `M` has `K` set to a non-undefined value.
890
+ *
891
+ * When `M` is inferred from a literal such as `{ negation: "off" }`,
892
+ * `M["negation"]` is `"off"` (without `undefined`), so this returns `true`.
893
+ * When `M` is the wider `ArgMeta` type, `M["negation"]` is
894
+ * `string | boolean | undefined`, so this returns `false` and avoids
895
+ * false-positive type errors on broadly-typed meta values.
896
+ */
897
+ type HasExplicit<M, K extends string> = K extends keyof M ? undefined extends M[K] ? false : true : false;
898
+ /**
899
+ * Reject `negation` / `negationDescription` on non-boolean fields.
900
+ * Uses {@link HasExplicit} so the error only fires when the user explicitly
901
+ * sets the field on a narrowly-inferred meta literal.
902
+ */
903
+ type ValidateNegation<M, TValue> = HasExplicit<M, "negation"> extends true ? IsBooleanField<TValue> extends true ? M : NegationTypeError<M> : HasExplicit<M, "negationDescription"> extends true ? IsBooleanField<TValue> extends true ? M : NegationTypeError<M> : M;
673
904
  /**
674
905
  * Type helper to validate ArgMeta.
675
906
  * Forces a type error when a reserved alias ("h" / "H") is used without
676
907
  * `overrideBuiltinAlias: true`, whether the alias is provided as a string
677
908
  * or as part of an array, and whether it appears in `alias` or `hiddenAlias`.
909
+ * Also rejects `negation` / `negationDescription` on non-boolean fields.
678
910
  */
679
- type ValidateArgMeta<M> = M extends {
911
+ type ValidateArgMeta<M, TValue = unknown> = M extends {
680
912
  overrideBuiltinAlias: true;
681
- } ? M : ContainsReservedAlias<AliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : ContainsReservedAlias<HiddenAliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : M;
913
+ } ? ValidateNegation<M, TValue> : ContainsReservedAlias<AliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : ContainsReservedAlias<HiddenAliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : ValidateNegation<M, TValue>;
682
914
  declare function arg<T extends z.ZodType>(schema: T): T;
683
- declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M>): T;
915
+ declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M, z.output<T>>): T;
684
916
  //#endregion
685
- export { RunResultSuccess as A, UnknownKeysMode as B, Logger as C, RunCommandOptions as D, PromptResolver as E, LazyCommand as F, getUnknownKeysMode as H, isLazyCommand as I, lazy as L, SetupContext as M, SubCommandValue as N, RunResult as O, SubCommandsRecord as P, ExtractedFields as R, LogStream as S, NonRunnableCommand as T, toCamelCase as U, extractFields as V, toKebabCase as W, GlobalCleanupContext as _, EffectContext as a, LogEntry as b, arg as c, CleanupContext as d, CollectedLogs as f, GlobalArgs as g, Example as h, CustomCompletion as i, RunnableCommand as j, RunResultFailure as k, AnyCommand as l, CommandBase as m, CompletionMeta as n, PromptMeta as o, Command as p, CompletionType as r, PromptType as s, ArgMeta as t, ArgsSchema as u, GlobalSetupContext as v, MainOptions as w, LogLevel as x, IsEmpty as y, ResolvedFieldMeta as z };
686
- //# sourceMappingURL=arg-registry-Dw0f11Zc.d.ts.map
917
+ export { LogStream as A, SetupContext as B, Example as C, IsEmpty as D, GlobalSetupContext as E, RunCommandOptions as F, lazy as G, SubCommandsRecord as H, RunResult as I, UnknownKeysMode as J, ExtractedFields as K, RunResultFailure as L, MainOptions as M, NonRunnableCommand as N, LogEntry as O, PromptResolver as P, toKebabCase as Q, RunResultSuccess as R, CommandBase as S, GlobalCleanupContext as T, LazyCommand as U, SubCommandValue as V, isLazyCommand as W, getUnknownKeysMode as X, extractFields as Y, toCamelCase as Z, AnyCommand as _, EffectContext as a, CollectedLogs as b, arg as c, ResolvedExpandCandidate as d, CompletionDirectiveMask as f, DynamicCompletionResult as g, DynamicCompletionResolver as h, CustomCompletion as i, Logger as j, LogLevel as k, ExpandCandidate as l, DynamicCompletionContext as m, CompletionMeta as n, PromptMeta as o, DynamicCompletionCandidate as p, ResolvedFieldMeta as q, CompletionType as r, PromptType as s, ArgMeta as t, ExpandCompletion as u, ArgsSchema as v, GlobalArgs as w, Command as x, CleanupContext as y, RunnableCommand as z };
918
+ //# sourceMappingURL=arg-registry--NRaNFJM.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-registry--NRaNFJM.d.cts","names":[],"sources":["../src/core/schema-extractor.ts","../src/lazy.ts","../src/types.ts","../src/core/dynamic-completion-types.ts","../src/core/expand-completion-types.ts","../src/core/arg-registry.ts"],"mappings":"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"}
@@ -47,6 +47,30 @@ interface ResolvedFieldMeta {
47
47
  completion?: CompletionMeta | undefined;
48
48
  /** Prompt metadata from arg() for interactive input */
49
49
  prompt?: PromptMeta | undefined;
50
+ /**
51
+ * Negation configuration for this boolean field.
52
+ *
53
+ * - String (e.g. `"disable-cache"`): the default `--no-<cliName>` form is
54
+ * suppressed and only `--<negation>` (plus its camelCase variant) is
55
+ * accepted as the negation flag.
56
+ * - `true`: the default `--no-<cliName>` form is accepted **and** shown in
57
+ * help, generated docs, and shell completions.
58
+ * - `false`: neither the default `--no-<cliName>` nor any custom name is
59
+ * accepted; the field only responds to the positive flag.
60
+ * - `undefined`: the default `--no-<cliName>` is accepted by the parser
61
+ * but hidden from help/docs/completions.
62
+ *
63
+ * Only applies to boolean fields; populated as `undefined` otherwise.
64
+ */
65
+ negation?: string | boolean | undefined;
66
+ /**
67
+ * Derived display name (no `--` prefix) for the negation flag in help,
68
+ * generated docs, and shell completions. `undefined` means the negation
69
+ * is hidden from those surfaces. Computed from `negation` + `cliName`.
70
+ */
71
+ negationDisplay?: string | undefined;
72
+ /** Description shown for the negation option in help/docs. */
73
+ negationDescription?: string | undefined;
50
74
  /** Side-effect callback from arg() metadata */
51
75
  effect?: ((value: unknown, context: EffectContext) => void | PromiseLike<void>) | undefined;
52
76
  }
@@ -260,6 +284,13 @@ interface CommandBase<TArgsSchema extends ArgsSchema | undefined = undefined, TA
260
284
  notes?: string | undefined;
261
285
  /** Example usages for this command */
262
286
  examples?: Example[] | undefined;
287
+ /**
288
+ * @internal
289
+ * Hook invoked once at the top of `runMain`, before any parsing. Used
290
+ * by `withCompletionCommand` to fire its detached background-refresh
291
+ * spawn. Best-effort; never throws.
292
+ */
293
+ runMainHook?: ((argv: readonly string[]) => void) | undefined;
263
294
  }
264
295
  /**
265
296
  * A command with a run function
@@ -424,19 +455,139 @@ interface RunResultFailure {
424
455
  */
425
456
  type RunResult<T = unknown> = RunResultSuccess<T> | RunResultFailure;
426
457
  //#endregion
458
+ //#region src/core/dynamic-completion-types.d.ts
459
+ /**
460
+ * Types for in-process dynamic value completion.
461
+ *
462
+ * A `resolve` callback registered on `arg(...)` receives parsed context
463
+ * (other arg values typed so far, previous values supplied to the same
464
+ * option, the current word being completed, target shell) and returns
465
+ * candidates. The callback runs inside the `__complete` command, so static
466
+ * shell scripts delegate to `<program> __complete` for any spec that uses
467
+ * `resolve`.
468
+ *
469
+ * Defined under `core/` (not `completion/`) so `arg-registry.ts` can
470
+ * reference the resolver type without crossing the lint-enforced
471
+ * `completion → core` boundary.
472
+ */
473
+ /** Bitmask combining `CompletionDirective` values. */
474
+ type CompletionDirectiveMask = number;
475
+ interface DynamicCompletionContext {
476
+ /** Word being completed. `--field=` inline prefix is stripped before this is set. */
477
+ currentWord: string;
478
+ /** Target shell formatting requested by the caller. */
479
+ shell: "bash" | "zsh" | "fish";
480
+ /**
481
+ * Best-effort parsed values of OTHER args on the same command, keyed by
482
+ * camelCase name. Includes positionals and other options. Zod validation
483
+ * is NOT applied; values are raw strings (or arrays of raw strings for
484
+ * array-typed options/variadic positionals).
485
+ */
486
+ parsedArgs: Readonly<Record<string, unknown>>;
487
+ /**
488
+ * Values already supplied for the SAME option/positional being completed.
489
+ * Useful for de-duplicating repeated array options.
490
+ */
491
+ previousValues: readonly string[];
492
+ /**
493
+ * Subcommand path from root (e.g. ["api"]). Reflects what the user
494
+ * actually typed — aliases are NOT resolved to their canonical names, so
495
+ * resolvers that branch on the path should accept every alias they care
496
+ * about.
497
+ */
498
+ subcommandPath: readonly string[];
499
+ }
500
+ interface DynamicCompletionCandidate {
501
+ value: string;
502
+ description?: string;
503
+ }
504
+ interface DynamicCompletionResult {
505
+ /** Candidates to surface. Strings or `{value, description}` objects. */
506
+ candidates: Array<string | DynamicCompletionCandidate>;
507
+ /**
508
+ * Optional directive override. When omitted, defaults to
509
+ * `FilterPrefix | NoFileCompletion` (matches `choices` behaviour).
510
+ */
511
+ directive?: CompletionDirectiveMask;
512
+ }
513
+ type DynamicCompletionResolver = (ctx: DynamicCompletionContext) => DynamicCompletionResult | Promise<DynamicCompletionResult>;
514
+ //#endregion
515
+ //#region src/core/expand-completion-types.d.ts
516
+ /**
517
+ * Types for "expand" completion — candidates that are pre-enumerated at
518
+ * script-generation time and inlined into the static shell script.
519
+ *
520
+ * The user provides `dependsOn` (sibling arg names that must have static
521
+ * `choices` or an enum schema) and `enumerate(deps)`. politty walks the
522
+ * cartesian product of the dependsOn values, calls `enumerate` for each
523
+ * combination, and emits a case lookup keyed on the runtime values of those
524
+ * args. No Node process is spawned on TAB.
525
+ *
526
+ * Defined under `core/` (not `completion/`) so `arg-registry.ts` can
527
+ * reference these types without crossing the lint-enforced
528
+ * `completion → core` boundary.
529
+ */
530
+ /** Candidate returned by an `enumerate` callback. */
531
+ interface ExpandCandidate {
532
+ value: string;
533
+ description?: string;
534
+ }
535
+ /** Resolved candidate stored on a {@link ValueCompletion} after enumeration. */
536
+ interface ResolvedExpandCandidate {
537
+ value: string;
538
+ description?: string;
539
+ }
540
+ /**
541
+ * User-facing spec attached to `completion.custom.expand`.
542
+ *
543
+ * `dependsOn` lists sibling args (camelCase names) whose values determine
544
+ * which candidates apply. Each named arg must have a static set of values —
545
+ * either an explicit `completion.custom.choices` or an enum schema. The
546
+ * order of `dependsOn` is the order in which `deps` keys are exposed to
547
+ * `enumerate`.
548
+ *
549
+ * `enumerate` runs once per cartesian-product combination at the time the
550
+ * shell script is generated (e.g. when the user runs `<program> completion
551
+ * zsh`). It must be a pure function of `deps`; politty does not retain it
552
+ * for runtime use.
553
+ */
554
+ interface ExpandCompletion {
555
+ dependsOn: readonly string[];
556
+ enumerate: (deps: Readonly<Record<string, string>>) => ReadonlyArray<string | ExpandCandidate>;
557
+ }
558
+ //#endregion
427
559
  //#region src/core/arg-registry.d.ts
428
560
  /**
429
561
  * Built-in completion types
430
562
  */
431
563
  type CompletionType = "file" | "directory" | "none";
432
564
  /**
433
- * Custom completion specification
565
+ * Custom completion specification.
566
+ *
567
+ * `choices`, `shellCommand`, `resolve`, and `expand` are mutually exclusive —
568
+ * specifying more than one throws when the field metadata is resolved.
434
569
  */
435
570
  interface CustomCompletion {
436
571
  /** Static list of choices for completion */
437
572
  choices?: string[];
438
573
  /** Shell command to execute for dynamic completion */
439
574
  shellCommand?: string;
575
+ /**
576
+ * In-process JS callback for dynamic completion. Receives parsed context
577
+ * (other arg values typed so far, previously supplied values for this same
578
+ * option) and returns candidates. Static shell scripts delegate to
579
+ * `<program> __complete` whenever this is set.
580
+ */
581
+ resolve?: DynamicCompletionResolver;
582
+ /**
583
+ * Pre-enumerated completion baked into the generated shell script. The
584
+ * candidate list is computed at script-generation time by calling
585
+ * `enumerate` for every combination of the sibling arg values listed in
586
+ * `dependsOn` (each must have a static `choices` or enum schema). The
587
+ * shell then dispatches via a case lookup keyed by the runtime values of
588
+ * those args — no Node process is spawned on TAB.
589
+ */
590
+ expand?: ExpandCompletion;
440
591
  }
441
592
  /**
442
593
  * Completion metadata for an argument
@@ -578,6 +729,58 @@ interface BaseArgMeta<TValue = unknown> {
578
729
  * ```
579
730
  */
580
731
  prompt?: PromptMeta;
732
+ /**
733
+ * Control the boolean negation option.
734
+ *
735
+ * Boolean fields automatically accept `--no-<cliName>` (and the camelCase
736
+ * `--no<Name>` form) to set the value to `false`. By default this form is
737
+ * accepted by the parser but hidden from help, generated docs, and shell
738
+ * completions. This option lets you customize or expose that behavior:
739
+ *
740
+ * - `string` — replaces the auto-generated `--no-*` form with a custom
741
+ * name. The default `--no-*` is no longer recognized.
742
+ * - `true` — opt-in to advertising the default `--no-<cliName>` form in
743
+ * help, generated docs, and shell completions. Parser behavior is
744
+ * unchanged.
745
+ * - `false` — disables negation entirely; neither the default `--no-*`
746
+ * nor any custom name is accepted.
747
+ *
748
+ * String values follow the same naming conventions as `cliName`
749
+ * (kebab-case is recommended). Only valid on boolean fields; setting
750
+ * `negation` on a non-boolean field is a type error and raises a
751
+ * runtime error during command parsing.
752
+ *
753
+ * @example
754
+ * ```ts
755
+ * // Custom negation name
756
+ * cache: arg(z.boolean().default(true), {
757
+ * description: "Enable caching",
758
+ * negation: "disable-cache",
759
+ * })
760
+ * // Accepts: --cache (true), --disable-cache (false)
761
+ * // No longer accepts: --no-cache
762
+ *
763
+ * // Expose default `--no-X` in help/docs/completion
764
+ * verbose: arg(z.boolean().default(false), {
765
+ * negation: true,
766
+ * })
767
+ * // Help shows `--verbose / --no-verbose`
768
+ *
769
+ * // Disable negation entirely
770
+ * dryRun: arg(z.boolean().default(false), {
771
+ * negation: false,
772
+ * })
773
+ * // Accepts: --dry-run (true)
774
+ * // No longer accepts: --no-dry-run
775
+ * ```
776
+ */
777
+ negation?: string | boolean;
778
+ /**
779
+ * Description shown for the negation option in help and generated docs.
780
+ * Only meaningful when `negation` is set to a custom name string or `true`.
781
+ * Disallowed when `negation` is `false`.
782
+ */
783
+ negationDescription?: string;
581
784
  /**
582
785
  * Side-effect callback executed after argument parsing and validation.
583
786
  * Runs before the command lifecycle (setup/run/cleanup).
@@ -664,23 +867,52 @@ type ContainsReservedAlias<A> = [A] extends [never] ? false : A extends "h" | "H
664
867
  type ReservedAliasTypeError<M> = { [K in keyof M]: M[K] } & {
665
868
  __typeError: "Alias 'h' or 'H' requires overrideBuiltinAlias: true";
666
869
  };
870
+ type NegationTypeError<M> = { [K in keyof M]: M[K] } & {
871
+ __typeError: "negation/negationDescription can only be used on boolean fields";
872
+ };
667
873
  type AliasFieldOf<M> = M extends {
668
874
  alias: infer A;
669
875
  } ? A : never;
670
876
  type HiddenAliasFieldOf<M> = M extends {
671
877
  hiddenAlias: infer H;
672
878
  } ? H : never;
879
+ /**
880
+ * Check whether a Zod output type is a (possibly optional) boolean.
881
+ * Strips `undefined` to allow `z.boolean().optional()`. Requires both
882
+ * `boolean extends NonNullable<T>` (so `z.literal(true)` is rejected — the full
883
+ * `boolean` domain is needed) and `NonNullable<T> extends boolean` (so unions
884
+ * such as `z.union([z.boolean(), z.string()])` are rejected at the type level
885
+ * to match the runtime check).
886
+ */
887
+ type IsBooleanField<T> = boolean extends NonNullable<T> ? ([NonNullable<T>] extends [boolean] ? true : false) : false;
888
+ /**
889
+ * Detect whether `M` has `K` set to a non-undefined value.
890
+ *
891
+ * When `M` is inferred from a literal such as `{ negation: "off" }`,
892
+ * `M["negation"]` is `"off"` (without `undefined`), so this returns `true`.
893
+ * When `M` is the wider `ArgMeta` type, `M["negation"]` is
894
+ * `string | boolean | undefined`, so this returns `false` and avoids
895
+ * false-positive type errors on broadly-typed meta values.
896
+ */
897
+ type HasExplicit<M, K extends string> = K extends keyof M ? undefined extends M[K] ? false : true : false;
898
+ /**
899
+ * Reject `negation` / `negationDescription` on non-boolean fields.
900
+ * Uses {@link HasExplicit} so the error only fires when the user explicitly
901
+ * sets the field on a narrowly-inferred meta literal.
902
+ */
903
+ type ValidateNegation<M, TValue> = HasExplicit<M, "negation"> extends true ? IsBooleanField<TValue> extends true ? M : NegationTypeError<M> : HasExplicit<M, "negationDescription"> extends true ? IsBooleanField<TValue> extends true ? M : NegationTypeError<M> : M;
673
904
  /**
674
905
  * Type helper to validate ArgMeta.
675
906
  * Forces a type error when a reserved alias ("h" / "H") is used without
676
907
  * `overrideBuiltinAlias: true`, whether the alias is provided as a string
677
908
  * or as part of an array, and whether it appears in `alias` or `hiddenAlias`.
909
+ * Also rejects `negation` / `negationDescription` on non-boolean fields.
678
910
  */
679
- type ValidateArgMeta<M> = M extends {
911
+ type ValidateArgMeta<M, TValue = unknown> = M extends {
680
912
  overrideBuiltinAlias: true;
681
- } ? M : ContainsReservedAlias<AliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : ContainsReservedAlias<HiddenAliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : M;
913
+ } ? ValidateNegation<M, TValue> : ContainsReservedAlias<AliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : ContainsReservedAlias<HiddenAliasFieldOf<M>> extends true ? ReservedAliasTypeError<M> : ValidateNegation<M, TValue>;
682
914
  declare function arg<T extends z.ZodType>(schema: T): T;
683
- declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M>): T;
915
+ declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M, z.output<T>>): T;
684
916
  //#endregion
685
- export { RunResultSuccess as A, UnknownKeysMode as B, Logger as C, RunCommandOptions as D, PromptResolver as E, LazyCommand as F, getUnknownKeysMode as H, isLazyCommand as I, lazy as L, SetupContext as M, SubCommandValue as N, RunResult as O, SubCommandsRecord as P, ExtractedFields as R, LogStream as S, NonRunnableCommand as T, toCamelCase as U, extractFields as V, toKebabCase as W, GlobalCleanupContext as _, EffectContext as a, LogEntry as b, arg as c, CleanupContext as d, CollectedLogs as f, GlobalArgs as g, Example as h, CustomCompletion as i, RunnableCommand as j, RunResultFailure as k, AnyCommand as l, CommandBase as m, CompletionMeta as n, PromptMeta as o, Command as p, CompletionType as r, PromptType as s, ArgMeta as t, ArgsSchema as u, GlobalSetupContext as v, MainOptions as w, LogLevel as x, IsEmpty as y, ResolvedFieldMeta as z };
686
- //# sourceMappingURL=arg-registry-CB5gGtzp.d.cts.map
917
+ export { LogStream as A, SetupContext as B, Example as C, IsEmpty as D, GlobalSetupContext as E, RunCommandOptions as F, lazy as G, SubCommandsRecord as H, RunResult as I, UnknownKeysMode as J, ExtractedFields as K, RunResultFailure as L, MainOptions as M, NonRunnableCommand as N, LogEntry as O, PromptResolver as P, toKebabCase as Q, RunResultSuccess as R, CommandBase as S, GlobalCleanupContext as T, LazyCommand as U, SubCommandValue as V, isLazyCommand as W, getUnknownKeysMode as X, extractFields as Y, toCamelCase as Z, AnyCommand as _, EffectContext as a, CollectedLogs as b, arg as c, ResolvedExpandCandidate as d, CompletionDirectiveMask as f, DynamicCompletionResult as g, DynamicCompletionResolver as h, CustomCompletion as i, Logger as j, LogLevel as k, ExpandCandidate as l, DynamicCompletionContext as m, CompletionMeta as n, PromptMeta as o, DynamicCompletionCandidate as p, ResolvedFieldMeta as q, CompletionType as r, PromptType as s, ArgMeta as t, ExpandCompletion as u, ArgsSchema as v, GlobalArgs as w, Command as x, CleanupContext as y, RunnableCommand as z };
918
+ //# sourceMappingURL=arg-registry-6E0WHOh_.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-registry-6E0WHOh_.d.ts","names":[],"sources":["../src/core/schema-extractor.ts","../src/lazy.ts","../src/types.ts","../src/core/dynamic-completion-types.ts","../src/core/expand-completion-types.ts","../src/core/arg-registry.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as ArgMeta } from "./arg-registry-CB5gGtzp.cjs";
1
+ import { t as ArgMeta } from "./arg-registry--NRaNFJM.cjs";
2
2
 
3
3
  //#region src/augment.d.ts
4
4
  declare module "zod" {
@@ -1 +1 @@
1
- {"version":3,"file":"augment.d.cts","names":[],"sources":["../src/augment.ts"],"mappings":";;;;YAiBY,UAAA;IACR,OAAA,GAAU,OAAA;EAAA;EAAA,UAGF,UAAA;IACR,WAAA;IACA,UAAA;IACA,WAAA;IACA,KAAA;IACA,WAAA;IACA,oBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"augment.d.cts","names":[],"sources":["../src/augment.ts"],"mappings":";;;;YAiBY,UAAA;IACR,OAAA,GAAU,OAAO;EAAA;EAAA,UAGT,UAAA;IACR,WAAA;IACA,UAAA;IACA,WAAA;IACA,KAAA;IACA,WAAA;IACA,oBAAA;EAAA;AAAA"}
package/dist/augment.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as ArgMeta } from "./arg-registry-Dw0f11Zc.js";
1
+ import { t as ArgMeta } from "./arg-registry-6E0WHOh_.js";
2
2
 
3
3
  //#region src/augment.d.ts
4
4
  declare module "zod" {