politty 0.4.12 → 0.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -8
- package/dist/{arg-registry-BlXeCM4p.d.cts → arg-registry-6E4C5MTC.d.ts} +186 -2
- package/dist/arg-registry-6E4C5MTC.d.ts.map +1 -0
- package/dist/{arg-registry-D0MimRYf.d.ts → arg-registry-CeIRoLaB.d.cts} +186 -2
- package/dist/arg-registry-CeIRoLaB.d.cts.map +1 -0
- package/dist/augment.d.cts +1 -1
- package/dist/augment.d.ts +1 -1
- package/dist/completion/index.cjs +1 -2
- package/dist/completion/index.d.cts +1 -1
- package/dist/completion/index.d.ts +1 -1
- package/dist/completion/index.js +1 -2
- package/dist/{completion-BADAzqT9.cjs → completion-D3LUac1o.cjs} +3 -3
- package/dist/completion-D3LUac1o.cjs.map +1 -0
- package/dist/{completion-Dj7ytbLu.js → completion-DzaT2YCN.js} +2 -2
- package/dist/completion-DzaT2YCN.js.map +1 -0
- package/dist/docs/index.cjs +32 -14
- package/dist/docs/index.cjs.map +1 -1
- package/dist/docs/index.d.cts +1 -2
- package/dist/docs/index.d.cts.map +1 -1
- package/dist/docs/index.d.ts +1 -2
- package/dist/docs/index.d.ts.map +1 -1
- package/dist/docs/index.js +32 -14
- package/dist/docs/index.js.map +1 -1
- package/dist/{index-CBGSQVm9.d.ts → index-BW02tH1-.d.cts} +2 -3
- package/dist/index-BW02tH1-.d.cts.map +1 -0
- package/dist/{index-f2-VIfCo.d.cts → index-C3UtsvgY.d.ts} +2 -3
- package/dist/index-C3UtsvgY.d.ts.map +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +3 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/{lazy-B_E2X0KR.cjs → lazy-qPy4cMnv.cjs} +8 -3
- package/dist/lazy-qPy4cMnv.cjs.map +1 -0
- package/dist/{lazy-D6nL_iKJ.js → lazy-xrzxwnru.js} +7 -2
- package/dist/lazy-xrzxwnru.js.map +1 -0
- package/dist/prompt/clack/index.cjs +34 -0
- package/dist/prompt/clack/index.cjs.map +1 -0
- package/dist/prompt/clack/index.d.cts +18 -0
- package/dist/prompt/clack/index.d.cts.map +1 -0
- package/dist/prompt/clack/index.d.ts +18 -0
- package/dist/prompt/clack/index.d.ts.map +1 -0
- package/dist/prompt/clack/index.js +32 -0
- package/dist/prompt/clack/index.js.map +1 -0
- package/dist/prompt/index.cjs +7 -0
- package/dist/prompt/index.d.cts +108 -0
- package/dist/prompt/index.d.cts.map +1 -0
- package/dist/prompt/index.d.ts +108 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +3 -0
- package/dist/prompt/inquirer/index.cjs +49 -0
- package/dist/prompt/inquirer/index.cjs.map +1 -0
- package/dist/prompt/inquirer/index.d.cts +18 -0
- package/dist/prompt/inquirer/index.d.cts.map +1 -0
- package/dist/prompt/inquirer/index.d.ts +18 -0
- package/dist/prompt/inquirer/index.d.ts.map +1 -0
- package/dist/prompt/inquirer/index.js +47 -0
- package/dist/prompt/inquirer/index.js.map +1 -0
- package/dist/prompt-BKHqGrFw.js +172 -0
- package/dist/prompt-BKHqGrFw.js.map +1 -0
- package/dist/prompt-aXfSf27y.cjs +196 -0
- package/dist/prompt-aXfSf27y.cjs.map +1 -0
- package/dist/{runner-Bx2S6_Id.js → runner-CnG-Ncz0.js} +17 -5
- package/dist/{runner-Bx2S6_Id.js.map → runner-CnG-Ncz0.js.map} +1 -1
- package/dist/{runner-U86FIDHT.cjs → runner-DA48D-3K.cjs} +17 -5
- package/dist/{runner-U86FIDHT.cjs.map → runner-DA48D-3K.cjs.map} +1 -1
- package/dist/{subcommand-router-Bu3YTw_f.js → subcommand-router-BhYVuS83.js} +2 -2
- package/dist/{subcommand-router-Bu3YTw_f.js.map → subcommand-router-BhYVuS83.js.map} +1 -1
- package/dist/{subcommand-router-BTOzDQnY.cjs → subcommand-router-BnHpqyRk.cjs} +2 -2
- package/dist/{subcommand-router-BTOzDQnY.cjs.map → subcommand-router-BnHpqyRk.cjs.map} +1 -1
- package/package.json +51 -9
- package/dist/arg-registry-BlXeCM4p.d.cts.map +0 -1
- package/dist/arg-registry-D0MimRYf.d.ts.map +0 -1
- package/dist/completion-BADAzqT9.cjs.map +0 -1
- package/dist/completion-Dj7ytbLu.js.map +0 -1
- package/dist/index-CBGSQVm9.d.ts.map +0 -1
- package/dist/index-f2-VIfCo.d.cts.map +0 -1
- package/dist/lazy-B_E2X0KR.cjs.map +0 -1
- package/dist/lazy-D6nL_iKJ.js.map +0 -1
- package/dist/schema-extractor-CAZi3kK1.d.ts +0 -117
- package/dist/schema-extractor-CAZi3kK1.d.ts.map +0 -1
- package/dist/schema-extractor-D-eGlm4W.d.cts +0 -117
- package/dist/schema-extractor-D-eGlm4W.d.cts.map +0 -1
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ From simple scripts to complex CLI tools with subcommands, validation, and auto-
|
|
|
13
13
|
- **Lifecycle Management**: Guaranteed `setup` → `run` → `cleanup` execution order
|
|
14
14
|
- **Signal Handling**: Proper SIGINT/SIGTERM handling with guaranteed cleanup execution
|
|
15
15
|
- **Auto Help Generation**: Automatically generate help text from definitions
|
|
16
|
+
- **Interactive Prompts**: Prompt for missing arguments with pluggable adapters (clack, inquirer)
|
|
16
17
|
- **Discriminated Union**: Support for mutually exclusive argument sets
|
|
17
18
|
|
|
18
19
|
## Requirements
|
|
@@ -278,14 +279,15 @@ if (result.success) {
|
|
|
278
279
|
|
|
279
280
|
Attach metadata to an argument.
|
|
280
281
|
|
|
281
|
-
| Metadata | Type
|
|
282
|
-
| ------------- |
|
|
283
|
-
| `positional` | `boolean?`
|
|
284
|
-
| `alias` | `string?`
|
|
285
|
-
| `description` | `string?`
|
|
286
|
-
| `placeholder` | `string?`
|
|
287
|
-
| `env` | `string?`
|
|
288
|
-
| `completion` | `object?`
|
|
282
|
+
| Metadata | Type | Description |
|
|
283
|
+
| ------------- | ------------- | ------------------------------------------------------------------------ |
|
|
284
|
+
| `positional` | `boolean?` | Treat as positional argument |
|
|
285
|
+
| `alias` | `string?` | Short alias (e.g., `-v`) |
|
|
286
|
+
| `description` | `string?` | Argument description |
|
|
287
|
+
| `placeholder` | `string?` | Placeholder shown in help |
|
|
288
|
+
| `env` | `string?` | Environment variable name (fallback) |
|
|
289
|
+
| `completion` | `object?` | Shell completion configuration |
|
|
290
|
+
| `prompt` | `PromptMeta?` | Interactive prompt configuration ([docs](./docs/interactive-prompts.md)) |
|
|
289
291
|
|
|
290
292
|
## Shell Completion
|
|
291
293
|
|
|
@@ -375,6 +377,7 @@ For detailed documentation, see the `docs/` directory:
|
|
|
375
377
|
- [Getting Started](./docs/getting-started.md) - Installation and creating your first command
|
|
376
378
|
- [Essentials](./docs/essentials.md) - Core concepts explained
|
|
377
379
|
- [Advanced Features](./docs/advanced-features.md) - Subcommands, Discriminated Union
|
|
380
|
+
- [Interactive Prompts](./docs/interactive-prompts.md) - Prompt for missing arguments interactively
|
|
378
381
|
- [Recipes](./docs/recipes.md) - Testing, configuration, error handling
|
|
379
382
|
- [API Reference](./docs/api-reference.md) - Detailed API reference
|
|
380
383
|
- [Doc Generation](./docs/doc-generation.md) - Automatic documentation generation
|
|
@@ -1,5 +1,119 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
|
+
//#region src/core/schema-extractor.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Resolved metadata for an argument field
|
|
6
|
+
*/
|
|
7
|
+
interface ResolvedFieldMeta {
|
|
8
|
+
/** Field name (camelCase, as defined in schema) */
|
|
9
|
+
name: string;
|
|
10
|
+
/** CLI option name (kebab-case, for command line usage) */
|
|
11
|
+
cliName: string;
|
|
12
|
+
/** Short alias (e.g., 'v' for --verbose) */
|
|
13
|
+
alias?: string | undefined;
|
|
14
|
+
/** Argument description */
|
|
15
|
+
description?: string | undefined;
|
|
16
|
+
/** Whether this is a positional argument */
|
|
17
|
+
positional: boolean;
|
|
18
|
+
/** Placeholder for help display */
|
|
19
|
+
placeholder?: string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Environment variable name(s) to read value from.
|
|
22
|
+
* If an array, earlier entries take priority.
|
|
23
|
+
*/
|
|
24
|
+
env?: string | string[] | undefined;
|
|
25
|
+
/** Whether this argument is required */
|
|
26
|
+
required: boolean;
|
|
27
|
+
/** Default value if any */
|
|
28
|
+
defaultValue?: unknown;
|
|
29
|
+
/** Detected type from schema */
|
|
30
|
+
type: "string" | "number" | "boolean" | "array" | "unknown";
|
|
31
|
+
/** Original Zod schema */
|
|
32
|
+
schema: z.ZodType;
|
|
33
|
+
/** True if this overrides built-in aliases (-h, -H) */
|
|
34
|
+
overrideBuiltinAlias?: true;
|
|
35
|
+
/** Enum values if detected from schema (z.enum) */
|
|
36
|
+
enumValues?: string[] | undefined;
|
|
37
|
+
/** Completion metadata from arg() */
|
|
38
|
+
completion?: CompletionMeta | undefined;
|
|
39
|
+
/** Prompt metadata from arg() for interactive input */
|
|
40
|
+
prompt?: PromptMeta | undefined;
|
|
41
|
+
/** Side-effect callback from arg() metadata */
|
|
42
|
+
effect?: ((value: unknown, context: EffectContext) => void | PromiseLike<void>) | undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extracted fields from a schema
|
|
46
|
+
*/
|
|
47
|
+
interface ExtractedFields {
|
|
48
|
+
/** All field definitions */
|
|
49
|
+
fields: ResolvedFieldMeta[];
|
|
50
|
+
/** Original schema for validation */
|
|
51
|
+
schema: ArgsSchema;
|
|
52
|
+
/** Schema type */
|
|
53
|
+
schemaType: "object" | "discriminatedUnion" | "union" | "xor" | "intersection";
|
|
54
|
+
/** Discriminator key (for discriminatedUnion) */
|
|
55
|
+
discriminator?: string;
|
|
56
|
+
/** Variants (for discriminatedUnion) */
|
|
57
|
+
variants?: Array<{
|
|
58
|
+
discriminatorValue: string;
|
|
59
|
+
fields: ResolvedFieldMeta[];
|
|
60
|
+
description?: string;
|
|
61
|
+
}>;
|
|
62
|
+
/** Options (for union) */
|
|
63
|
+
unionOptions?: ExtractedFields[];
|
|
64
|
+
/** Schema description */
|
|
65
|
+
description?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Unknown keys handling mode
|
|
68
|
+
* - "strict": Unknown keys cause validation errors (z.strictObject or z.object().strict())
|
|
69
|
+
* - "strip": Unknown keys trigger warnings (default, z.object())
|
|
70
|
+
* - "passthrough": Unknown keys are silently ignored (z.looseObject or z.object().passthrough())
|
|
71
|
+
*/
|
|
72
|
+
unknownKeysMode: UnknownKeysMode;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Unknown keys handling mode for object schemas
|
|
76
|
+
* - "strict": Unknown keys cause validation errors
|
|
77
|
+
* - "strip": Unknown keys are silently ignored (default)
|
|
78
|
+
* - "passthrough": Unknown keys are passed through
|
|
79
|
+
*/
|
|
80
|
+
type UnknownKeysMode = "strict" | "strip" | "passthrough";
|
|
81
|
+
/**
|
|
82
|
+
* Detect unknown keys handling mode from a Zod object schema
|
|
83
|
+
*
|
|
84
|
+
* In Zod v4:
|
|
85
|
+
* - Default (strip): _def.catchall is undefined
|
|
86
|
+
* - strict: _def.catchall is ZodNever (type = "never")
|
|
87
|
+
* - passthrough: _def.catchall is ZodUnknown (type = "unknown")
|
|
88
|
+
*/
|
|
89
|
+
declare function getUnknownKeysMode(schema: z.ZodType): UnknownKeysMode;
|
|
90
|
+
/**
|
|
91
|
+
* Convert camelCase to kebab-case
|
|
92
|
+
* @example toKebabCase("dryRun") => "dry-run"
|
|
93
|
+
* @example toKebabCase("outputDir") => "output-dir"
|
|
94
|
+
* @example toKebabCase("XMLParser") => "xml-parser"
|
|
95
|
+
*/
|
|
96
|
+
declare function toKebabCase(str: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* Convert hyphen-separated sequences to camelCase.
|
|
99
|
+
*
|
|
100
|
+
* Replaces `-x` (hyphen followed by a lowercase letter) with the uppercase
|
|
101
|
+
* variant. Non-hyphenated input (e.g., already camelCase) is returned as-is.
|
|
102
|
+
*
|
|
103
|
+
* @param str - A string that may contain hyphens
|
|
104
|
+
* @example toCamelCase("dry-run") => "dryRun"
|
|
105
|
+
* @example toCamelCase("output-dir") => "outputDir"
|
|
106
|
+
* @example toCamelCase("dryRun") => "dryRun"
|
|
107
|
+
*/
|
|
108
|
+
declare function toCamelCase(str: string): string;
|
|
109
|
+
/**
|
|
110
|
+
* Extract all fields from a schema
|
|
111
|
+
*
|
|
112
|
+
* @param schema - The args schema (ZodObject, ZodDiscriminatedUnion, etc.)
|
|
113
|
+
* @returns Extracted field information
|
|
114
|
+
*/
|
|
115
|
+
declare function extractFields(schema: ArgsSchema): ExtractedFields;
|
|
116
|
+
//#endregion
|
|
3
117
|
//#region src/lazy.d.ts
|
|
4
118
|
/**
|
|
5
119
|
* A lazily-loaded command that carries synchronous metadata for
|
|
@@ -184,6 +298,12 @@ type SubCommandValue = AnyCommand | (() => Promise<AnyCommand>) | LazyCommand;
|
|
|
184
298
|
* Record of subcommands indexed by name
|
|
185
299
|
*/
|
|
186
300
|
type SubCommandsRecord = Record<string, SubCommandValue>;
|
|
301
|
+
/**
|
|
302
|
+
* Async callback to resolve missing argument values interactively.
|
|
303
|
+
* Called after env fallback, before Zod validation.
|
|
304
|
+
* Provided by adapter subpath modules (e.g. `politty/prompt/clack`).
|
|
305
|
+
*/
|
|
306
|
+
type PromptResolver = (rawArgs: Record<string, unknown>, extracted: ExtractedFields) => Promise<Record<string, unknown>>;
|
|
187
307
|
/**
|
|
188
308
|
* Options for runMain (CLI entry point)
|
|
189
309
|
*/
|
|
@@ -206,6 +326,8 @@ interface MainOptions {
|
|
|
206
326
|
cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
|
|
207
327
|
/** Whether to display errors to stderr before process.exit (default: true) */
|
|
208
328
|
displayErrors?: boolean;
|
|
329
|
+
/** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
|
|
330
|
+
prompt?: PromptResolver | undefined;
|
|
209
331
|
}
|
|
210
332
|
/**
|
|
211
333
|
* Options for runCommand (programmatic/test usage)
|
|
@@ -225,6 +347,8 @@ interface RunCommandOptions {
|
|
|
225
347
|
setup?: ((context: GlobalSetupContext) => void | Promise<void>) | undefined;
|
|
226
348
|
/** Global cleanup hook (runs after command execution, always executes even on error) */
|
|
227
349
|
cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
|
|
350
|
+
/** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
|
|
351
|
+
prompt?: PromptResolver | undefined;
|
|
228
352
|
}
|
|
229
353
|
/**
|
|
230
354
|
* Log level type
|
|
@@ -344,6 +468,52 @@ type CompletionMeta = {
|
|
|
344
468
|
/** Glob patterns for file matching (only applies when type is "file") */matcher?: string[];
|
|
345
469
|
extensions?: never;
|
|
346
470
|
});
|
|
471
|
+
/**
|
|
472
|
+
* Prompt input type for interactive prompts
|
|
473
|
+
*
|
|
474
|
+
* - "text": free-form text input (default for string schemas)
|
|
475
|
+
* - "password": masked text input
|
|
476
|
+
* - "confirm": yes/no prompt (default for boolean schemas)
|
|
477
|
+
* - "select": single selection from choices (default for enum schemas)
|
|
478
|
+
* - "file": file path input (inherited from completion type)
|
|
479
|
+
* - "directory": directory path input (inherited from completion type)
|
|
480
|
+
*/
|
|
481
|
+
type PromptType = "text" | "password" | "confirm" | "select" | "file" | "directory";
|
|
482
|
+
/**
|
|
483
|
+
* Prompt metadata for interactive input when a value is missing.
|
|
484
|
+
* Used by the `politty/prompt` module to request user input for unresolved arguments.
|
|
485
|
+
*
|
|
486
|
+
* @example
|
|
487
|
+
* ```ts
|
|
488
|
+
* // Custom prompt message
|
|
489
|
+
* name: arg(z.string(), {
|
|
490
|
+
* prompt: { message: "What is your name?" }
|
|
491
|
+
* })
|
|
492
|
+
*
|
|
493
|
+
* // Password input (masked)
|
|
494
|
+
* token: arg(z.string(), {
|
|
495
|
+
* prompt: { type: "password", message: "Enter API token" }
|
|
496
|
+
* })
|
|
497
|
+
*
|
|
498
|
+
* // Select with custom choices
|
|
499
|
+
* region: arg(z.string(), {
|
|
500
|
+
* prompt: { choices: ["us-east-1", "eu-west-1", "ap-northeast-1"] }
|
|
501
|
+
* })
|
|
502
|
+
* ```
|
|
503
|
+
*/
|
|
504
|
+
interface PromptMeta {
|
|
505
|
+
/** Prompt message shown to the user. Defaults to the field's description or name. */
|
|
506
|
+
message?: string;
|
|
507
|
+
/** Explicit prompt type. Overrides auto-detection from schema/completion. */
|
|
508
|
+
type?: PromptType;
|
|
509
|
+
/** Choices for select prompt. Overrides enum values from schema. */
|
|
510
|
+
choices?: Array<string | {
|
|
511
|
+
label: string;
|
|
512
|
+
value: string;
|
|
513
|
+
}>;
|
|
514
|
+
/** Whether to enable prompting for this field (default: true when prompt is set) */
|
|
515
|
+
enabled?: boolean;
|
|
516
|
+
}
|
|
347
517
|
/**
|
|
348
518
|
* Context provided to effect callbacks.
|
|
349
519
|
* When GlobalArgs is extended via declaration merging, `globalArgs` is typed accordingly.
|
|
@@ -383,6 +553,20 @@ interface BaseArgMeta<TValue = unknown> {
|
|
|
383
553
|
env?: string | string[];
|
|
384
554
|
/** Completion configuration for shell tab-completion */
|
|
385
555
|
completion?: CompletionMeta;
|
|
556
|
+
/**
|
|
557
|
+
* Interactive prompt configuration for missing values.
|
|
558
|
+
* When set, the `politty/prompt` module will prompt the user interactively
|
|
559
|
+
* if this argument is not provided via CLI args or environment variables.
|
|
560
|
+
*
|
|
561
|
+
* @example
|
|
562
|
+
* ```ts
|
|
563
|
+
* name: arg(z.string(), {
|
|
564
|
+
* description: "User name",
|
|
565
|
+
* prompt: { message: "What is your name?" },
|
|
566
|
+
* })
|
|
567
|
+
* ```
|
|
568
|
+
*/
|
|
569
|
+
prompt?: PromptMeta;
|
|
386
570
|
/**
|
|
387
571
|
* Side-effect callback executed after argument parsing and validation.
|
|
388
572
|
* Runs before the command lifecycle (setup/run/cleanup).
|
|
@@ -457,5 +641,5 @@ type ValidateArgMeta<M> = M extends {
|
|
|
457
641
|
declare function arg<T extends z.ZodType>(schema: T): T;
|
|
458
642
|
declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M>): T;
|
|
459
643
|
//#endregion
|
|
460
|
-
export {
|
|
461
|
-
//# sourceMappingURL=arg-registry-
|
|
644
|
+
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 };
|
|
645
|
+
//# sourceMappingURL=arg-registry-6E4C5MTC.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arg-registry-6E4C5MTC.d.ts","names":[],"sources":["../src/core/schema-extractor.ts","../src/lazy.ts","../src/types.ts","../src/core/arg-registry.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,119 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
|
+
//#region src/core/schema-extractor.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Resolved metadata for an argument field
|
|
6
|
+
*/
|
|
7
|
+
interface ResolvedFieldMeta {
|
|
8
|
+
/** Field name (camelCase, as defined in schema) */
|
|
9
|
+
name: string;
|
|
10
|
+
/** CLI option name (kebab-case, for command line usage) */
|
|
11
|
+
cliName: string;
|
|
12
|
+
/** Short alias (e.g., 'v' for --verbose) */
|
|
13
|
+
alias?: string | undefined;
|
|
14
|
+
/** Argument description */
|
|
15
|
+
description?: string | undefined;
|
|
16
|
+
/** Whether this is a positional argument */
|
|
17
|
+
positional: boolean;
|
|
18
|
+
/** Placeholder for help display */
|
|
19
|
+
placeholder?: string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Environment variable name(s) to read value from.
|
|
22
|
+
* If an array, earlier entries take priority.
|
|
23
|
+
*/
|
|
24
|
+
env?: string | string[] | undefined;
|
|
25
|
+
/** Whether this argument is required */
|
|
26
|
+
required: boolean;
|
|
27
|
+
/** Default value if any */
|
|
28
|
+
defaultValue?: unknown;
|
|
29
|
+
/** Detected type from schema */
|
|
30
|
+
type: "string" | "number" | "boolean" | "array" | "unknown";
|
|
31
|
+
/** Original Zod schema */
|
|
32
|
+
schema: z.ZodType;
|
|
33
|
+
/** True if this overrides built-in aliases (-h, -H) */
|
|
34
|
+
overrideBuiltinAlias?: true;
|
|
35
|
+
/** Enum values if detected from schema (z.enum) */
|
|
36
|
+
enumValues?: string[] | undefined;
|
|
37
|
+
/** Completion metadata from arg() */
|
|
38
|
+
completion?: CompletionMeta | undefined;
|
|
39
|
+
/** Prompt metadata from arg() for interactive input */
|
|
40
|
+
prompt?: PromptMeta | undefined;
|
|
41
|
+
/** Side-effect callback from arg() metadata */
|
|
42
|
+
effect?: ((value: unknown, context: EffectContext) => void | PromiseLike<void>) | undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extracted fields from a schema
|
|
46
|
+
*/
|
|
47
|
+
interface ExtractedFields {
|
|
48
|
+
/** All field definitions */
|
|
49
|
+
fields: ResolvedFieldMeta[];
|
|
50
|
+
/** Original schema for validation */
|
|
51
|
+
schema: ArgsSchema;
|
|
52
|
+
/** Schema type */
|
|
53
|
+
schemaType: "object" | "discriminatedUnion" | "union" | "xor" | "intersection";
|
|
54
|
+
/** Discriminator key (for discriminatedUnion) */
|
|
55
|
+
discriminator?: string;
|
|
56
|
+
/** Variants (for discriminatedUnion) */
|
|
57
|
+
variants?: Array<{
|
|
58
|
+
discriminatorValue: string;
|
|
59
|
+
fields: ResolvedFieldMeta[];
|
|
60
|
+
description?: string;
|
|
61
|
+
}>;
|
|
62
|
+
/** Options (for union) */
|
|
63
|
+
unionOptions?: ExtractedFields[];
|
|
64
|
+
/** Schema description */
|
|
65
|
+
description?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Unknown keys handling mode
|
|
68
|
+
* - "strict": Unknown keys cause validation errors (z.strictObject or z.object().strict())
|
|
69
|
+
* - "strip": Unknown keys trigger warnings (default, z.object())
|
|
70
|
+
* - "passthrough": Unknown keys are silently ignored (z.looseObject or z.object().passthrough())
|
|
71
|
+
*/
|
|
72
|
+
unknownKeysMode: UnknownKeysMode;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Unknown keys handling mode for object schemas
|
|
76
|
+
* - "strict": Unknown keys cause validation errors
|
|
77
|
+
* - "strip": Unknown keys are silently ignored (default)
|
|
78
|
+
* - "passthrough": Unknown keys are passed through
|
|
79
|
+
*/
|
|
80
|
+
type UnknownKeysMode = "strict" | "strip" | "passthrough";
|
|
81
|
+
/**
|
|
82
|
+
* Detect unknown keys handling mode from a Zod object schema
|
|
83
|
+
*
|
|
84
|
+
* In Zod v4:
|
|
85
|
+
* - Default (strip): _def.catchall is undefined
|
|
86
|
+
* - strict: _def.catchall is ZodNever (type = "never")
|
|
87
|
+
* - passthrough: _def.catchall is ZodUnknown (type = "unknown")
|
|
88
|
+
*/
|
|
89
|
+
declare function getUnknownKeysMode(schema: z.ZodType): UnknownKeysMode;
|
|
90
|
+
/**
|
|
91
|
+
* Convert camelCase to kebab-case
|
|
92
|
+
* @example toKebabCase("dryRun") => "dry-run"
|
|
93
|
+
* @example toKebabCase("outputDir") => "output-dir"
|
|
94
|
+
* @example toKebabCase("XMLParser") => "xml-parser"
|
|
95
|
+
*/
|
|
96
|
+
declare function toKebabCase(str: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* Convert hyphen-separated sequences to camelCase.
|
|
99
|
+
*
|
|
100
|
+
* Replaces `-x` (hyphen followed by a lowercase letter) with the uppercase
|
|
101
|
+
* variant. Non-hyphenated input (e.g., already camelCase) is returned as-is.
|
|
102
|
+
*
|
|
103
|
+
* @param str - A string that may contain hyphens
|
|
104
|
+
* @example toCamelCase("dry-run") => "dryRun"
|
|
105
|
+
* @example toCamelCase("output-dir") => "outputDir"
|
|
106
|
+
* @example toCamelCase("dryRun") => "dryRun"
|
|
107
|
+
*/
|
|
108
|
+
declare function toCamelCase(str: string): string;
|
|
109
|
+
/**
|
|
110
|
+
* Extract all fields from a schema
|
|
111
|
+
*
|
|
112
|
+
* @param schema - The args schema (ZodObject, ZodDiscriminatedUnion, etc.)
|
|
113
|
+
* @returns Extracted field information
|
|
114
|
+
*/
|
|
115
|
+
declare function extractFields(schema: ArgsSchema): ExtractedFields;
|
|
116
|
+
//#endregion
|
|
3
117
|
//#region src/lazy.d.ts
|
|
4
118
|
/**
|
|
5
119
|
* A lazily-loaded command that carries synchronous metadata for
|
|
@@ -184,6 +298,12 @@ type SubCommandValue = AnyCommand | (() => Promise<AnyCommand>) | LazyCommand;
|
|
|
184
298
|
* Record of subcommands indexed by name
|
|
185
299
|
*/
|
|
186
300
|
type SubCommandsRecord = Record<string, SubCommandValue>;
|
|
301
|
+
/**
|
|
302
|
+
* Async callback to resolve missing argument values interactively.
|
|
303
|
+
* Called after env fallback, before Zod validation.
|
|
304
|
+
* Provided by adapter subpath modules (e.g. `politty/prompt/clack`).
|
|
305
|
+
*/
|
|
306
|
+
type PromptResolver = (rawArgs: Record<string, unknown>, extracted: ExtractedFields) => Promise<Record<string, unknown>>;
|
|
187
307
|
/**
|
|
188
308
|
* Options for runMain (CLI entry point)
|
|
189
309
|
*/
|
|
@@ -206,6 +326,8 @@ interface MainOptions {
|
|
|
206
326
|
cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
|
|
207
327
|
/** Whether to display errors to stderr before process.exit (default: true) */
|
|
208
328
|
displayErrors?: boolean;
|
|
329
|
+
/** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
|
|
330
|
+
prompt?: PromptResolver | undefined;
|
|
209
331
|
}
|
|
210
332
|
/**
|
|
211
333
|
* Options for runCommand (programmatic/test usage)
|
|
@@ -225,6 +347,8 @@ interface RunCommandOptions {
|
|
|
225
347
|
setup?: ((context: GlobalSetupContext) => void | Promise<void>) | undefined;
|
|
226
348
|
/** Global cleanup hook (runs after command execution, always executes even on error) */
|
|
227
349
|
cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
|
|
350
|
+
/** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
|
|
351
|
+
prompt?: PromptResolver | undefined;
|
|
228
352
|
}
|
|
229
353
|
/**
|
|
230
354
|
* Log level type
|
|
@@ -344,6 +468,52 @@ type CompletionMeta = {
|
|
|
344
468
|
/** Glob patterns for file matching (only applies when type is "file") */matcher?: string[];
|
|
345
469
|
extensions?: never;
|
|
346
470
|
});
|
|
471
|
+
/**
|
|
472
|
+
* Prompt input type for interactive prompts
|
|
473
|
+
*
|
|
474
|
+
* - "text": free-form text input (default for string schemas)
|
|
475
|
+
* - "password": masked text input
|
|
476
|
+
* - "confirm": yes/no prompt (default for boolean schemas)
|
|
477
|
+
* - "select": single selection from choices (default for enum schemas)
|
|
478
|
+
* - "file": file path input (inherited from completion type)
|
|
479
|
+
* - "directory": directory path input (inherited from completion type)
|
|
480
|
+
*/
|
|
481
|
+
type PromptType = "text" | "password" | "confirm" | "select" | "file" | "directory";
|
|
482
|
+
/**
|
|
483
|
+
* Prompt metadata for interactive input when a value is missing.
|
|
484
|
+
* Used by the `politty/prompt` module to request user input for unresolved arguments.
|
|
485
|
+
*
|
|
486
|
+
* @example
|
|
487
|
+
* ```ts
|
|
488
|
+
* // Custom prompt message
|
|
489
|
+
* name: arg(z.string(), {
|
|
490
|
+
* prompt: { message: "What is your name?" }
|
|
491
|
+
* })
|
|
492
|
+
*
|
|
493
|
+
* // Password input (masked)
|
|
494
|
+
* token: arg(z.string(), {
|
|
495
|
+
* prompt: { type: "password", message: "Enter API token" }
|
|
496
|
+
* })
|
|
497
|
+
*
|
|
498
|
+
* // Select with custom choices
|
|
499
|
+
* region: arg(z.string(), {
|
|
500
|
+
* prompt: { choices: ["us-east-1", "eu-west-1", "ap-northeast-1"] }
|
|
501
|
+
* })
|
|
502
|
+
* ```
|
|
503
|
+
*/
|
|
504
|
+
interface PromptMeta {
|
|
505
|
+
/** Prompt message shown to the user. Defaults to the field's description or name. */
|
|
506
|
+
message?: string;
|
|
507
|
+
/** Explicit prompt type. Overrides auto-detection from schema/completion. */
|
|
508
|
+
type?: PromptType;
|
|
509
|
+
/** Choices for select prompt. Overrides enum values from schema. */
|
|
510
|
+
choices?: Array<string | {
|
|
511
|
+
label: string;
|
|
512
|
+
value: string;
|
|
513
|
+
}>;
|
|
514
|
+
/** Whether to enable prompting for this field (default: true when prompt is set) */
|
|
515
|
+
enabled?: boolean;
|
|
516
|
+
}
|
|
347
517
|
/**
|
|
348
518
|
* Context provided to effect callbacks.
|
|
349
519
|
* When GlobalArgs is extended via declaration merging, `globalArgs` is typed accordingly.
|
|
@@ -383,6 +553,20 @@ interface BaseArgMeta<TValue = unknown> {
|
|
|
383
553
|
env?: string | string[];
|
|
384
554
|
/** Completion configuration for shell tab-completion */
|
|
385
555
|
completion?: CompletionMeta;
|
|
556
|
+
/**
|
|
557
|
+
* Interactive prompt configuration for missing values.
|
|
558
|
+
* When set, the `politty/prompt` module will prompt the user interactively
|
|
559
|
+
* if this argument is not provided via CLI args or environment variables.
|
|
560
|
+
*
|
|
561
|
+
* @example
|
|
562
|
+
* ```ts
|
|
563
|
+
* name: arg(z.string(), {
|
|
564
|
+
* description: "User name",
|
|
565
|
+
* prompt: { message: "What is your name?" },
|
|
566
|
+
* })
|
|
567
|
+
* ```
|
|
568
|
+
*/
|
|
569
|
+
prompt?: PromptMeta;
|
|
386
570
|
/**
|
|
387
571
|
* Side-effect callback executed after argument parsing and validation.
|
|
388
572
|
* Runs before the command lifecycle (setup/run/cleanup).
|
|
@@ -457,5 +641,5 @@ type ValidateArgMeta<M> = M extends {
|
|
|
457
641
|
declare function arg<T extends z.ZodType>(schema: T): T;
|
|
458
642
|
declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M>): T;
|
|
459
643
|
//#endregion
|
|
460
|
-
export {
|
|
461
|
-
//# sourceMappingURL=arg-registry-
|
|
644
|
+
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 };
|
|
645
|
+
//# sourceMappingURL=arg-registry-CeIRoLaB.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arg-registry-CeIRoLaB.d.cts","names":[],"sources":["../src/core/schema-extractor.ts","../src/lazy.ts","../src/types.ts","../src/core/arg-registry.ts"],"mappings":"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"}
|
package/dist/augment.d.cts
CHANGED
package/dist/augment.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
require('../
|
|
3
|
-
const require_completion = require('../completion-BADAzqT9.cjs');
|
|
2
|
+
const require_completion = require('../completion-D3LUac1o.cjs');
|
|
4
3
|
|
|
5
4
|
exports.CompletionDirective = require_completion.CompletionDirective;
|
|
6
5
|
exports.createCompletionCommand = require_completion.createCompletionCommand;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-
|
|
1
|
+
import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-BW02tH1-.cjs";
|
|
2
2
|
export { CandidateResult, CompletableOption, CompletableSubcommand, CompletionCandidate, CompletionContext, CompletionData, CompletionDirective, CompletionGenerator, CompletionOptions, CompletionResult, CompletionType, ShellFormatOptions, ShellType, ValueCompletionField, WithCompletionOptions, createCompletionCommand, createDynamicCompleteCommand, detectShell, extractCompletionData, extractPositionals, formatForShell, generateCandidates, generateCompletion, getSupportedShells, hasCompleteCommand, parseCompletionContext, resolveValueCompletion, withCompletionCommand };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-
|
|
1
|
+
import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-C3UtsvgY.js";
|
|
2
2
|
export { CandidateResult, CompletableOption, CompletableSubcommand, CompletionCandidate, CompletionContext, CompletionData, CompletionDirective, CompletionGenerator, CompletionOptions, CompletionResult, CompletionType, ShellFormatOptions, ShellType, ValueCompletionField, WithCompletionOptions, createCompletionCommand, createDynamicCompleteCommand, detectShell, extractCompletionData, extractPositionals, formatForShell, generateCandidates, generateCompletion, getSupportedShells, hasCompleteCommand, parseCompletionContext, resolveValueCompletion, withCompletionCommand };
|
package/dist/completion/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import { a as withCompletionCommand, c as formatForShell, d as generateCandidates, f as extractCompletionData, i as getSupportedShells, l as parseCompletionContext, m as resolveValueCompletion, n as detectShell, o as createDynamicCompleteCommand, p as extractPositionals, r as generateCompletion, s as hasCompleteCommand, t as createCompletionCommand, u as CompletionDirective } from "../completion-Dj7ytbLu.js";
|
|
1
|
+
import { a as withCompletionCommand, c as formatForShell, d as generateCandidates, f as extractCompletionData, i as getSupportedShells, l as parseCompletionContext, m as resolveValueCompletion, n as detectShell, o as createDynamicCompleteCommand, p as extractPositionals, r as generateCompletion, s as hasCompleteCommand, t as createCompletionCommand, u as CompletionDirective } from "../completion-DzaT2YCN.js";
|
|
3
2
|
|
|
4
3
|
export { CompletionDirective, createCompletionCommand, createDynamicCompleteCommand, detectShell, extractCompletionData, extractPositionals, formatForShell, generateCandidates, generateCompletion, getSupportedShells, hasCompleteCommand, parseCompletionContext, resolveValueCompletion, withCompletionCommand };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_subcommand_router = require('./subcommand-router-
|
|
2
|
-
const require_lazy = require('./lazy-
|
|
1
|
+
const require_subcommand_router = require('./subcommand-router-BnHpqyRk.cjs');
|
|
2
|
+
const require_lazy = require('./lazy-qPy4cMnv.cjs');
|
|
3
3
|
let zod = require("zod");
|
|
4
4
|
let node_child_process = require("node:child_process");
|
|
5
5
|
|
|
@@ -1872,4 +1872,4 @@ Object.defineProperty(exports, 'withCompletionCommand', {
|
|
|
1872
1872
|
return withCompletionCommand;
|
|
1873
1873
|
}
|
|
1874
1874
|
});
|
|
1875
|
-
//# sourceMappingURL=completion-
|
|
1875
|
+
//# sourceMappingURL=completion-D3LUac1o.cjs.map
|