politty 0.4.3 → 0.4.6

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 (60) hide show
  1. package/dist/{arg-registry-BUUhZ7JR.d.ts → arg-registry-2m40k1Et.d.ts} +1 -1
  2. package/dist/{arg-registry-BUUhZ7JR.d.ts.map → arg-registry-2m40k1Et.d.ts.map} +1 -1
  3. package/dist/augment.d.ts +1 -1
  4. package/dist/completion/index.cjs +16 -168
  5. package/dist/completion/index.d.cts +2 -77
  6. package/dist/completion/index.d.ts +2 -77
  7. package/dist/completion/index.js +3 -154
  8. package/dist/{zsh-CASZWn0o.cjs → completion-Df0eZ70u.cjs} +326 -37
  9. package/dist/completion-Df0eZ70u.cjs.map +1 -0
  10. package/dist/{zsh-hjvdI8uZ.js → completion-_AnQsWh9.js} +298 -27
  11. package/dist/completion-_AnQsWh9.js.map +1 -0
  12. package/dist/docs/index.cjs +276 -29
  13. package/dist/docs/index.cjs.map +1 -1
  14. package/dist/docs/index.d.cts +62 -7
  15. package/dist/docs/index.d.cts.map +1 -1
  16. package/dist/docs/index.d.ts +62 -7
  17. package/dist/docs/index.d.ts.map +1 -1
  18. package/dist/docs/index.js +271 -30
  19. package/dist/docs/index.js.map +1 -1
  20. package/dist/{value-completion-resolver-BQgHsX7b.d.cts → index-BZalbMeu.d.ts} +83 -4
  21. package/dist/index-BZalbMeu.d.ts.map +1 -0
  22. package/dist/{value-completion-resolver-C9LTGr0O.d.ts → index-C5-0RXiH.d.cts} +83 -4
  23. package/dist/index-C5-0RXiH.d.cts.map +1 -0
  24. package/dist/index.cjs +8 -7
  25. package/dist/index.d.cts +67 -13
  26. package/dist/index.d.cts.map +1 -1
  27. package/dist/index.d.ts +68 -14
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -5
  30. package/dist/{lazy-BEDnSR0m.cjs → lazy-DHlvJiQQ.cjs} +44 -8
  31. package/dist/lazy-DHlvJiQQ.cjs.map +1 -0
  32. package/dist/{lazy-BrEg8SgI.js → lazy-DSyfzR-F.js} +38 -8
  33. package/dist/lazy-DSyfzR-F.js.map +1 -0
  34. package/dist/{runner-C4fSHJMe.cjs → runner-C1Aah5c5.cjs} +365 -23
  35. package/dist/runner-C1Aah5c5.cjs.map +1 -0
  36. package/dist/{runner-D6k4BgB4.js → runner-DjG0uBxQ.js} +365 -23
  37. package/dist/runner-DjG0uBxQ.js.map +1 -0
  38. package/dist/{schema-extractor-n9288WJ6.d.ts → schema-extractor-C9APqeSL.d.ts} +30 -3
  39. package/dist/schema-extractor-C9APqeSL.d.ts.map +1 -0
  40. package/dist/{schema-extractor-DFaAZzaY.d.cts → schema-extractor-CVf0J4An.d.cts} +29 -2
  41. package/dist/schema-extractor-CVf0J4An.d.cts.map +1 -0
  42. package/dist/{subcommand-router-CAzBsLSI.js → subcommand-router-CKuy6D2b.js} +2 -2
  43. package/dist/{subcommand-router-CAzBsLSI.js.map → subcommand-router-CKuy6D2b.js.map} +1 -1
  44. package/dist/{subcommand-router-ZjNjFaUL.cjs → subcommand-router-sZHhUP7b.cjs} +2 -2
  45. package/dist/{subcommand-router-ZjNjFaUL.cjs.map → subcommand-router-sZHhUP7b.cjs.map} +1 -1
  46. package/package.json +9 -9
  47. package/dist/completion/index.cjs.map +0 -1
  48. package/dist/completion/index.d.cts.map +0 -1
  49. package/dist/completion/index.d.ts.map +0 -1
  50. package/dist/completion/index.js.map +0 -1
  51. package/dist/lazy-BEDnSR0m.cjs.map +0 -1
  52. package/dist/lazy-BrEg8SgI.js.map +0 -1
  53. package/dist/runner-C4fSHJMe.cjs.map +0 -1
  54. package/dist/runner-D6k4BgB4.js.map +0 -1
  55. package/dist/schema-extractor-DFaAZzaY.d.cts.map +0 -1
  56. package/dist/schema-extractor-n9288WJ6.d.ts.map +0 -1
  57. package/dist/value-completion-resolver-BQgHsX7b.d.cts.map +0 -1
  58. package/dist/value-completion-resolver-C9LTGr0O.d.ts.map +0 -1
  59. package/dist/zsh-CASZWn0o.cjs.map +0 -1
  60. package/dist/zsh-hjvdI8uZ.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { d as Command, n as ResolvedFieldMeta, s as AnyCommand } from "./schema-extractor-DFaAZzaY.cjs";
1
+ import { c as AnyCommand, f as Command, l as ArgsSchema, n as ResolvedFieldMeta } from "./schema-extractor-C9APqeSL.js";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/completion/types.d.ts
@@ -18,6 +18,8 @@ interface CompletionOptions {
18
18
  includeSubcommands?: boolean;
19
19
  /** Include description in completions where supported (default: true) */
20
20
  includeDescriptions?: boolean;
21
+ /** Global args schema for deriving global options in completion */
22
+ globalArgsSchema?: ArgsSchema;
21
23
  }
22
24
  /**
23
25
  * Value completion specification for shell scripts
@@ -253,8 +255,13 @@ declare function formatForShell(result: CandidateResult, options: ShellFormatOpt
253
255
  declare function extractPositionals(command: AnyCommand): ResolvedFieldMeta[];
254
256
  /**
255
257
  * Extract completion data from a command tree
258
+ *
259
+ * @param command - The root command
260
+ * @param programName - Program name for completion scripts
261
+ * @param globalArgsSchema - Optional global args schema. When provided, global options
262
+ * are derived from this schema instead of the root command's options.
256
263
  */
257
- declare function extractCompletionData(command: AnyCommand, programName: string): CompletionData;
264
+ declare function extractCompletionData(command: AnyCommand, programName: string, globalArgsSchema?: ArgsSchema): CompletionData;
258
265
  //#endregion
259
266
  //#region src/completion/value-completion-resolver.d.ts
260
267
  /**
@@ -287,5 +294,77 @@ interface ValueCompletionField {
287
294
  */
288
295
  declare function resolveValueCompletion(field: ValueCompletionField): ValueCompletion | undefined;
289
296
  //#endregion
290
- export { ShellType as S, CompletableSubcommand as _, ShellFormatOptions as a, CompletionOptions as b, hasCompleteCommand as c, CompletionDirective as d, generateCandidates as f, CompletableOption as g, parseCompletionContext as h, extractPositionals as i, CandidateResult as l, CompletionType as m, resolveValueCompletion as n, formatForShell as o, CompletionContext as p, extractCompletionData as r, createDynamicCompleteCommand as s, ValueCompletionField as t, CompletionCandidate as u, CompletionData as v, CompletionResult as x, CompletionGenerator as y };
291
- //# sourceMappingURL=value-completion-resolver-BQgHsX7b.d.cts.map
297
+ //#region src/completion/index.d.ts
298
+ /**
299
+ * Generate completion script for the specified shell
300
+ */
301
+ declare function generateCompletion(command: AnyCommand, options: CompletionOptions): CompletionResult;
302
+ /**
303
+ * Get the list of supported shells
304
+ */
305
+ declare function getSupportedShells(): ShellType[];
306
+ /**
307
+ * Detect the current shell from environment
308
+ */
309
+ declare function detectShell(): ShellType | null;
310
+ /**
311
+ * Schema for the completion command arguments
312
+ */
313
+ declare const completionArgsSchema: z.ZodObject<{
314
+ shell: z.ZodOptional<z.ZodEnum<{
315
+ bash: "bash";
316
+ zsh: "zsh";
317
+ fish: "fish";
318
+ }>>;
319
+ instructions: z.ZodDefault<z.ZodBoolean>;
320
+ }, z.core.$strip>;
321
+ type CompletionArgs = z.infer<typeof completionArgsSchema>;
322
+ /**
323
+ * Create a completion subcommand for your CLI
324
+ *
325
+ * This creates a ready-to-use subcommand that generates completion scripts.
326
+ *
327
+ * @example
328
+ * ```typescript
329
+ * const mainCommand = defineCommand({
330
+ * name: "mycli",
331
+ * subCommands: {
332
+ * completion: createCompletionCommand(mainCommand)
333
+ * }
334
+ * });
335
+ * ```
336
+ */
337
+ declare function createCompletionCommand(rootCommand: AnyCommand, programName?: string, globalArgsSchema?: ArgsSchema): Command<typeof completionArgsSchema, CompletionArgs, any>;
338
+ /**
339
+ * Options for withCompletionCommand
340
+ */
341
+ interface WithCompletionOptions {
342
+ /** Override the program name (defaults to command.name) */
343
+ programName?: string;
344
+ /** Global args schema for deriving global options in completion */
345
+ globalArgsSchema?: ArgsSchema;
346
+ }
347
+ /**
348
+ * Wrap a command with a completion subcommand
349
+ *
350
+ * This avoids circular references that occur when a command references itself
351
+ * in its subCommands (e.g., for completion generation).
352
+ *
353
+ * @param command - The command to wrap
354
+ * @param options - Options including programName
355
+ * @returns A new command with the completion subcommand added
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * const mainCommand = withCompletionCommand(
360
+ * defineCommand({
361
+ * name: "mycli",
362
+ * subCommands: { ... },
363
+ * }),
364
+ * );
365
+ * ```
366
+ */
367
+ declare function withCompletionCommand<T extends AnyCommand>(command: T, options?: string | WithCompletionOptions): T;
368
+ //#endregion
369
+ 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 };
370
+ //# sourceMappingURL=index-BZalbMeu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BZalbMeu.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":";;;;AASA;;;AAAA,KAAY,SAAA;;AAKZ;;UAAiB,iBAAA;EAUc;EAR7B,KAAA,EAAO,SAAA;EAAA;EAEP,WAAA;EAEA;EAAA,kBAAA;EAIA;EAFA,mBAAA;EAE6B;EAA7B,gBAAA,GAAmB,UAAA;AAAA;;;;KAMT,eAAA;EAIV,sBAFA,IAAA,yDAMoD;EAJpD,OAAA,aAM6D;EAJ7D,YAAA;AAAA;EAEoD,UAAA;EAAuB,OAAA;AAAA;0DAEd,OAAA;EACzD,UAAA;AAAA;;;;UAOW,iBAAA;EAYf;EAVA,IAAA;EAcA;EAZA,OAAA;EAYiC;EAVjC,KAAA;EAgBe;EAdf,WAAA;;EAEA,UAAA;EAcA;EAZA,SAAA;EAgBA;EAdA,QAAA;EAkBA;EAhBA,eAAA,GAAkB,eAAA;AAAA;;;;UAMH,qBAAA;EAoBqB;EAlBpC,IAAA;EAwBa;EAtBb,OAAA;EA0Ba;EAxBb,QAAA;EAwBkC;EAtBlC,WAAA;EAgBA;EAdA,QAAA;EAgBa;EAdb,QAAA;EAgBS;EAdT,eAAA,GAAkB,eAAA;AAAA;;;AAsBpB;UAhBiB,qBAAA;;EAEf,IAAA;EAgBA;EAdA,WAAA;EAgBA;EAdA,WAAA,EAAa,qBAAA;EAgBE;EAdf,OAAA,EAAS,iBAAA;EAcuB;EAZhC,WAAA,EAAa,qBAAA;AAAA;;;;UAME,cAAA;EAgBR;EAdP,OAAA,EAAS,qBAAA;EAgBU;EAdnB,WAAA;EAoBU;EAlBV,aAAA,EAAe,iBAAA;AAAA;;;;UAMA,gBAAA;EAeI;EAbnB,MAAA;EAWA;EATA,KAAA,EAAO,SAAA;EAUP;EARA,mBAAA;AAAA;;;;KAMU,mBAAA,IACV,OAAA,EAAS,UAAA,EACT,OAAA,EAAS,iBAAA,KACN,gBAAA;;;;;;KCxHO,cAAA;ADCZ;;;AAAA,UCQiB,iBAAA;EDNf;ECQA,cAAA;EDNA;ECQA,cAAA,EAAgB,UAAA;EDJhB;ECMA,WAAA;EDJmB;ECMnB,YAAA;EDN6B;ECQ7B,cAAA,EAAgB,cAAA;EDFS;ECIzB,YAAA,GAAe,iBAAA;EDJU;ECMzB,eAAA;EDFA;ECIA,OAAA,EAAS,iBAAA;EDA2C;ECEpD,WAAA;EDA6D;ECE7D,WAAA,EAAa,qBAAA;EDDC;ECGd,WAAA,EAAa,GAAA;EDIE;ECFf,uBAAA;AAAA;;;;;;;;iBAyHc,sBAAA,CAAuB,IAAA,YAAgB,WAAA,EAAa,UAAA,GAAa,iBAAA;;;AD9JjF;;;AAAA,cEGa,mBAAA;EFHQ,uDAKa;EAAA,qBAUH;EAAA,8BARtB;EAAA,0BAIP;EAAA,uBAIA;EAAA,6BAA6B;EAAA,kCAMnB;EAAA;;;;;UEIK,mBAAA;EFIqC;EEFpD,KAAA;EFI6D;EEF7D,WAAA;EFGc;EEDd,IAAA;AAAA;;;;UAMe,eAAA;EFMf;EEJA,UAAA,EAAY,mBAAA;EFQZ;EENA,SAAA;EFUA;EERA,cAAA;EFYA;EEVA,YAAA;AAAA;;AFgBF;;iBEVgB,kBAAA,CAAmB,OAAA,EAAS,iBAAA,GAAoB,eAAA;;;;;;cCxB1D,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;KAYnB,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;;;;;;;;iBASnB,4BAAA,CACd,WAAA,EAAa,UAAA,EACb,YAAA,YAEC,OAAA,QAAe,kBAAA,EAAoB,YAAA;;;;iBAgCtB,kBAAA,CAAmB,OAAA,EAAS,UAAA;;;;AH/E5C;;UIGiB,kBAAA;EJOc;EIL7B,KAAA,EAAO,SAAA;EJHA;EIKP,WAAA;EJDA;EIGA,YAAA;AAAA;;;;AJOF;;iBICgB,cAAA,CAAe,MAAA,EAAQ,eAAA,EAAiB,OAAA,EAAS,kBAAA;;;;;;iBCyCjD,kBAAA,CAAmB,OAAA,EAAS,UAAA,GAAa,iBAAA;;;;;;;;;iBA8JzC,qBAAA,CACd,OAAA,EAAS,UAAA,EACT,WAAA,UACA,gBAAA,GAAmB,UAAA,GAClB,cAAA;;;;;AL5NH;;UMDiB,oBAAA;EACf,UAAA;IAEM,IAAA;IACA,MAAA;MAAW,OAAA;MAAoB,YAAA;IAAA;EAAA;IAC1B,UAAA;IAAuB,OAAA;EAAA;IAAsB,OAAA;IAAoB,UAAA;EAAA;EAE5E,UAAA;AAAA;;;;;;;;;iBAWc,sBAAA,CAAuB,KAAA,EAAO,oBAAA,GAAuB,eAAA;;;;;;iBCqCrD,kBAAA,CACd,OAAA,EAAS,UAAA,EACT,OAAA,EAAS,iBAAA,GACR,gBAAA;;;;iBAgBa,kBAAA,CAAA,GAAsB,SAAA;;;;iBAOtB,WAAA,CAAA,GAAe,SAAA;;;;cAoBzB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;KAkBrB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;;;;;;;;;AP1CrC;;;;;;;iBO2DgB,uBAAA,CACd,WAAA,EAAa,UAAA,EACb,WAAA,WACA,gBAAA,GAAmB,UAAA,GAElB,OAAA,QAAe,oBAAA,EAAsB,cAAA;;;;UA2CvB,qBAAA;EPnGf;EOqGA,WAAA;EPnGA;EOqGA,gBAAA,GAAmB,UAAA;AAAA;;AP/FrB;;;;;;;;;;;AAYA;;;;;;;;iBO0GgB,qBAAA,WAAgC,UAAA,CAAA,CAC9C,OAAA,EAAS,CAAA,EACT,OAAA,YAAmB,qBAAA,GAClB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { d as Command, n as ResolvedFieldMeta, s as AnyCommand } from "./schema-extractor-n9288WJ6.js";
1
+ import { c as AnyCommand, f as Command, l as ArgsSchema, n as ResolvedFieldMeta } from "./schema-extractor-CVf0J4An.cjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/completion/types.d.ts
@@ -18,6 +18,8 @@ interface CompletionOptions {
18
18
  includeSubcommands?: boolean;
19
19
  /** Include description in completions where supported (default: true) */
20
20
  includeDescriptions?: boolean;
21
+ /** Global args schema for deriving global options in completion */
22
+ globalArgsSchema?: ArgsSchema;
21
23
  }
22
24
  /**
23
25
  * Value completion specification for shell scripts
@@ -253,8 +255,13 @@ declare function formatForShell(result: CandidateResult, options: ShellFormatOpt
253
255
  declare function extractPositionals(command: AnyCommand): ResolvedFieldMeta[];
254
256
  /**
255
257
  * Extract completion data from a command tree
258
+ *
259
+ * @param command - The root command
260
+ * @param programName - Program name for completion scripts
261
+ * @param globalArgsSchema - Optional global args schema. When provided, global options
262
+ * are derived from this schema instead of the root command's options.
256
263
  */
257
- declare function extractCompletionData(command: AnyCommand, programName: string): CompletionData;
264
+ declare function extractCompletionData(command: AnyCommand, programName: string, globalArgsSchema?: ArgsSchema): CompletionData;
258
265
  //#endregion
259
266
  //#region src/completion/value-completion-resolver.d.ts
260
267
  /**
@@ -287,5 +294,77 @@ interface ValueCompletionField {
287
294
  */
288
295
  declare function resolveValueCompletion(field: ValueCompletionField): ValueCompletion | undefined;
289
296
  //#endregion
290
- export { ShellType as S, CompletableSubcommand as _, ShellFormatOptions as a, CompletionOptions as b, hasCompleteCommand as c, CompletionDirective as d, generateCandidates as f, CompletableOption as g, parseCompletionContext as h, extractPositionals as i, CandidateResult as l, CompletionType as m, resolveValueCompletion as n, formatForShell as o, CompletionContext as p, extractCompletionData as r, createDynamicCompleteCommand as s, ValueCompletionField as t, CompletionCandidate as u, CompletionData as v, CompletionResult as x, CompletionGenerator as y };
291
- //# sourceMappingURL=value-completion-resolver-C9LTGr0O.d.ts.map
297
+ //#region src/completion/index.d.ts
298
+ /**
299
+ * Generate completion script for the specified shell
300
+ */
301
+ declare function generateCompletion(command: AnyCommand, options: CompletionOptions): CompletionResult;
302
+ /**
303
+ * Get the list of supported shells
304
+ */
305
+ declare function getSupportedShells(): ShellType[];
306
+ /**
307
+ * Detect the current shell from environment
308
+ */
309
+ declare function detectShell(): ShellType | null;
310
+ /**
311
+ * Schema for the completion command arguments
312
+ */
313
+ declare const completionArgsSchema: z.ZodObject<{
314
+ shell: z.ZodOptional<z.ZodEnum<{
315
+ bash: "bash";
316
+ zsh: "zsh";
317
+ fish: "fish";
318
+ }>>;
319
+ instructions: z.ZodDefault<z.ZodBoolean>;
320
+ }, z.core.$strip>;
321
+ type CompletionArgs = z.infer<typeof completionArgsSchema>;
322
+ /**
323
+ * Create a completion subcommand for your CLI
324
+ *
325
+ * This creates a ready-to-use subcommand that generates completion scripts.
326
+ *
327
+ * @example
328
+ * ```typescript
329
+ * const mainCommand = defineCommand({
330
+ * name: "mycli",
331
+ * subCommands: {
332
+ * completion: createCompletionCommand(mainCommand)
333
+ * }
334
+ * });
335
+ * ```
336
+ */
337
+ declare function createCompletionCommand(rootCommand: AnyCommand, programName?: string, globalArgsSchema?: ArgsSchema): Command<typeof completionArgsSchema, CompletionArgs, any>;
338
+ /**
339
+ * Options for withCompletionCommand
340
+ */
341
+ interface WithCompletionOptions {
342
+ /** Override the program name (defaults to command.name) */
343
+ programName?: string;
344
+ /** Global args schema for deriving global options in completion */
345
+ globalArgsSchema?: ArgsSchema;
346
+ }
347
+ /**
348
+ * Wrap a command with a completion subcommand
349
+ *
350
+ * This avoids circular references that occur when a command references itself
351
+ * in its subCommands (e.g., for completion generation).
352
+ *
353
+ * @param command - The command to wrap
354
+ * @param options - Options including programName
355
+ * @returns A new command with the completion subcommand added
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * const mainCommand = withCompletionCommand(
360
+ * defineCommand({
361
+ * name: "mycli",
362
+ * subCommands: { ... },
363
+ * }),
364
+ * );
365
+ * ```
366
+ */
367
+ declare function withCompletionCommand<T extends AnyCommand>(command: T, options?: string | WithCompletionOptions): T;
368
+ //#endregion
369
+ 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 };
370
+ //# sourceMappingURL=index-C5-0RXiH.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-C5-0RXiH.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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"}
package/dist/index.cjs CHANGED
@@ -1,19 +1,19 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_lazy = require('./lazy-BEDnSR0m.cjs');
3
- const require_zsh = require('./zsh-CASZWn0o.cjs');
4
- const require_completion_index = require('./completion/index.cjs');
5
- const require_runner = require('./runner-C4fSHJMe.cjs');
2
+ const require_lazy = require('./lazy-DHlvJiQQ.cjs');
3
+ const require_completion = require('./completion-Df0eZ70u.cjs');
4
+ const require_runner = require('./runner-C1Aah5c5.cjs');
6
5
 
7
6
  exports.DuplicateAliasError = require_runner.DuplicateAliasError;
8
7
  exports.DuplicateFieldError = require_runner.DuplicateFieldError;
9
8
  exports.PositionalConfigError = require_runner.PositionalConfigError;
10
9
  exports.ReservedAliasError = require_runner.ReservedAliasError;
11
10
  exports.arg = require_lazy.arg;
12
- exports.defineCommand = require_zsh.defineCommand;
11
+ exports.createDefineCommand = require_completion.createDefineCommand;
12
+ exports.defineCommand = require_completion.defineCommand;
13
13
  exports.extractFields = require_lazy.extractFields;
14
14
  exports.formatCommandValidationErrors = require_runner.formatCommandValidationErrors;
15
15
  exports.formatValidationErrors = require_runner.formatValidationErrors;
16
- exports.generateCompletion = require_completion_index.generateCompletion;
16
+ exports.generateCompletion = require_completion.generateCompletion;
17
17
  exports.generateHelp = require_runner.generateHelp;
18
18
  exports.getUnknownKeysMode = require_lazy.getUnknownKeysMode;
19
19
  exports.isColorEnabled = require_runner.isColorEnabled;
@@ -28,10 +28,11 @@ exports.runMain = require_runner.runMain;
28
28
  exports.setColorEnabled = require_runner.setColorEnabled;
29
29
  exports.styles = require_runner.styles;
30
30
  exports.symbols = require_runner.symbols;
31
+ exports.toCamelCase = require_lazy.toCamelCase;
31
32
  exports.toKebabCase = require_lazy.toKebabCase;
32
33
  exports.validateCommand = require_runner.validateCommand;
33
34
  exports.validateDuplicateAliases = require_runner.validateDuplicateAliases;
34
35
  exports.validateDuplicateFields = require_runner.validateDuplicateFields;
35
36
  exports.validatePositionalConfig = require_runner.validatePositionalConfig;
36
37
  exports.validateReservedAliases = require_runner.validateReservedAliases;
37
- exports.withCompletionCommand = require_completion_index.withCompletionCommand;
38
+ exports.withCompletionCommand = require_completion.withCompletionCommand;
package/dist/index.d.cts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { a as arg, i as CustomCompletion, n as CompletionMeta, r as CompletionType, t as ArgMeta } from "./arg-registry-BNoIwnNr.cjs";
2
- import { A as lazy, C as RunResultSuccess, D as SubCommandsRecord, E as SubCommandValue, O as LazyCommand, S as RunResultFailure, T as SetupContext, _ as Logger, a as getUnknownKeysMode, b as RunCommandOptions, c as ArgsSchema, d as Command, f as CommandBase, g as LogStream, h as LogLevel, i as extractFields, k as isLazyCommand, l as CleanupContext, m as LogEntry, n as ResolvedFieldMeta, o as toKebabCase, p as Example, r as UnknownKeysMode, s as AnyCommand, t as ExtractedFields, u as CollectedLogs, v as MainOptions, w as RunnableCommand, x as RunResult, y as NonRunnableCommand } from "./schema-extractor-DFaAZzaY.cjs";
3
- import { b as CompletionOptions, x as CompletionResult } from "./value-completion-resolver-BQgHsX7b.cjs";
4
- import { WithCompletionOptions, generateCompletion, withCompletionCommand } from "./completion/index.cjs";
2
+ import { A as LazyCommand, C as RunResult, D as SetupContext, E as RunnableCommand, M as lazy, O as SubCommandValue, S as RunCommandOptions, T as RunResultSuccess, _ as LogLevel, a as getUnknownKeysMode, b as MainOptions, c as AnyCommand, d as CollectedLogs, f as Command, g as LogEntry, h as GlobalArgs, i as extractFields, j as isLazyCommand, k as SubCommandsRecord, l as ArgsSchema, m as Example, n as ResolvedFieldMeta, o as toCamelCase, p as CommandBase, r as UnknownKeysMode, s as toKebabCase, t as ExtractedFields, u as CleanupContext, v as LogStream, w as RunResultFailure, x as NonRunnableCommand, y as Logger } from "./schema-extractor-CVf0J4An.cjs";
3
+ import { D as CompletionResult, E as CompletionOptions, i as generateCompletion, o as withCompletionCommand, t as WithCompletionOptions } from "./index-C5-0RXiH.cjs";
5
4
  import { z } from "zod";
6
5
 
7
6
  //#region src/core/command.d.ts
@@ -9,22 +8,36 @@ import { z } from "zod";
9
8
  * Infer args type from schema, defaults to empty object if undefined
10
9
  */
11
10
  type InferArgs<TArgsSchema> = TArgsSchema extends z.ZodType ? z.infer<TArgsSchema> : Record<string, never>;
11
+ /**
12
+ * Detect empty interface (used for GlobalArgs declaration merging)
13
+ */
14
+ type IsEmpty<T> = keyof T extends never ? true : false;
15
+ /**
16
+ * Merge local args with global args.
17
+ * No-op when TGlobalArgs is empty (default GlobalArgs not extended).
18
+ */
19
+ type MergedArgs<TLocalArgs, TGlobalArgs> = IsEmpty<TGlobalArgs> extends true ? TLocalArgs : TLocalArgs & TGlobalArgs;
20
+ /**
21
+ * Resolve merged args from schema and global args type
22
+ */
23
+ type ResolvedArgs<TArgsSchema, TGlobalArgs> = MergedArgs<InferArgs<TArgsSchema>, TGlobalArgs>;
12
24
  /**
13
25
  * Config for defining a command
14
26
  * @template TArgsSchema - The Zod schema type for arguments
15
27
  * @template TResult - The return type of run function (void if no run)
28
+ * @template TGlobalArgs - Global args type (from declaration merging or factory)
16
29
  */
17
- interface DefineCommandConfig<TArgsSchema extends ArgsSchema | undefined, TResult> {
30
+ interface DefineCommandConfig<TArgsSchema extends ArgsSchema | undefined, TResult, TGlobalArgs> {
18
31
  name: string;
19
32
  description?: string;
20
33
  args?: TArgsSchema;
21
34
  subCommands?: SubCommandsRecord;
22
35
  setup?: (context: {
23
- args: InferArgs<TArgsSchema>;
36
+ args: ResolvedArgs<TArgsSchema, TGlobalArgs>;
24
37
  }) => void | Promise<void>;
25
- run?: (args: InferArgs<TArgsSchema>) => TResult;
38
+ run?: (args: ResolvedArgs<TArgsSchema, TGlobalArgs>) => TResult;
26
39
  cleanup?: (context: {
27
- args: InferArgs<TArgsSchema>;
40
+ args: ResolvedArgs<TArgsSchema, TGlobalArgs>;
28
41
  error?: Error | undefined;
29
42
  }) => void | Promise<void>;
30
43
  notes?: string;
@@ -33,13 +46,13 @@ interface DefineCommandConfig<TArgsSchema extends ArgsSchema | undefined, TResul
33
46
  /**
34
47
  * Config with run function (runnable command)
35
48
  */
36
- interface RunnableConfig<TArgsSchema extends ArgsSchema | undefined, TResult> extends DefineCommandConfig<TArgsSchema, TResult> {
37
- run: (args: InferArgs<TArgsSchema>) => TResult;
49
+ interface RunnableConfig<TArgsSchema extends ArgsSchema | undefined, TResult, TGlobalArgs> extends DefineCommandConfig<TArgsSchema, TResult, TGlobalArgs> {
50
+ run: (args: ResolvedArgs<TArgsSchema, TGlobalArgs>) => TResult;
38
51
  }
39
52
  /**
40
53
  * Config without run function (non-runnable command)
41
54
  */
42
- interface NonRunnableConfig<TArgsSchema extends ArgsSchema | undefined> extends Omit<DefineCommandConfig<TArgsSchema, void>, "run"> {
55
+ interface NonRunnableConfig<TArgsSchema extends ArgsSchema | undefined, TGlobalArgs> extends Omit<DefineCommandConfig<TArgsSchema, void, TGlobalArgs>, "run"> {
43
56
  run?: undefined;
44
57
  }
45
58
  /**
@@ -94,8 +107,33 @@ interface NonRunnableConfig<TArgsSchema extends ArgsSchema | undefined> extends
94
107
  * });
95
108
  * ```
96
109
  */
97
- declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined, TResult = void>(config: RunnableConfig<TArgsSchema, TResult>): RunnableCommand<TArgsSchema, InferArgs<TArgsSchema>, TResult>;
98
- declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined>(config: NonRunnableConfig<TArgsSchema>): NonRunnableCommand<TArgsSchema, InferArgs<TArgsSchema>>;
110
+ declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined, TResult = void, TGlobalArgs = GlobalArgs>(config: RunnableConfig<TArgsSchema, TResult, TGlobalArgs>): RunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>, TResult>;
111
+ declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined, TGlobalArgs = GlobalArgs>(config: NonRunnableConfig<TArgsSchema, TGlobalArgs>): NonRunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>>;
112
+ /**
113
+ * Create a typed defineCommand factory with pre-bound global args type.
114
+ * This is the recommended pattern for type-safe global options.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * // global-args.ts
119
+ * type GlobalArgsType = { verbose: boolean; config?: string };
120
+ * export const defineAppCommand = createDefineCommand<GlobalArgsType>();
121
+ *
122
+ * // commands/build.ts
123
+ * export const buildCommand = defineAppCommand({
124
+ * name: "build",
125
+ * args: z.object({ output: arg(z.string().default("dist")) }),
126
+ * run: (args) => {
127
+ * args.verbose; // typed via GlobalArgsType
128
+ * args.output; // typed via local args
129
+ * },
130
+ * });
131
+ * ```
132
+ */
133
+ declare function createDefineCommand<TGlobalArgs>(): {
134
+ <TArgsSchema extends ArgsSchema | undefined = undefined, TResult = void>(config: RunnableConfig<TArgsSchema, TResult, TGlobalArgs>): RunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>, TResult>;
135
+ <TArgsSchema extends ArgsSchema | undefined = undefined>(config: NonRunnableConfig<TArgsSchema, TGlobalArgs>): NonRunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>>;
136
+ };
99
137
  //#endregion
100
138
  //#region src/core/runner.d.ts
101
139
  /**
@@ -172,6 +210,8 @@ interface CommandContext {
172
210
  rootName?: string | undefined;
173
211
  /** Root command version */
174
212
  rootVersion?: string | undefined;
213
+ /** Extracted fields from global args schema */
214
+ globalExtracted?: ExtractedFields | undefined;
175
215
  }
176
216
  /**
177
217
  * Options for help generation
@@ -331,6 +371,13 @@ interface ParserOptions {
331
371
  booleanFlags?: Set<string>;
332
372
  /** Array flags (can be repeated) */
333
373
  arrayFlags?: Set<string>;
374
+ /**
375
+ * All known canonical option names (as defined in the schema).
376
+ * Used to disambiguate negation: when `--no-flag` or `--noFlag` matches
377
+ * a name in this set, it is treated as a regular option rather than
378
+ * boolean negation of `flag`.
379
+ */
380
+ definedNames?: Set<string>;
334
381
  }
335
382
  /**
336
383
  * Parse argv into a flat record
@@ -341,6 +388,13 @@ interface ParserOptions {
341
388
  * - Combined short options: -abc (treated as -a -b -c if all are boolean)
342
389
  * - Positional arguments
343
390
  * - -- to stop parsing options
391
+ * - Boolean negation: --no-flag, --noFlag (requires `booleanFlags`)
392
+ *
393
+ * **Note:** When using negation detection (`--noFlag` / `--no-flag`),
394
+ * supply `definedNames` so that options whose names happen to start with
395
+ * "no" (e.g. `noDryRun`) are not mistaken for negation of another flag.
396
+ * Without `definedNames`, all `--noX` forms matching a boolean flag will
397
+ * be treated as negation.
344
398
  *
345
399
  * @param argv - Command line arguments
346
400
  * @param options - Parser options
@@ -505,5 +559,5 @@ type ValidationResult<T> = {
505
559
  */
506
560
  declare function formatValidationErrors(errors: ValidationError[]): string;
507
561
  //#endregion
508
- export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, 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 Example, type ExtractedFields, type HelpOptions, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, 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 WithCompletionOptions, arg, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toKebabCase, validateCommand, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
562
+ export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, 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 Example, type ExtractedFields, type GlobalArgs, type HelpOptions, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, 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 WithCompletionOptions, arg, createDefineCommand, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCommand, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
509
563
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../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/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,7 +1,6 @@
1
- import { a as arg, i as CustomCompletion, n as CompletionMeta, r as CompletionType, t as ArgMeta } from "./arg-registry-BUUhZ7JR.js";
2
- import { A as lazy, C as RunResultSuccess, D as SubCommandsRecord, E as SubCommandValue, O as LazyCommand, S as RunResultFailure, T as SetupContext, _ as Logger, a as getUnknownKeysMode, b as RunCommandOptions, c as ArgsSchema, d as Command, f as CommandBase, g as LogStream, h as LogLevel, i as extractFields, k as isLazyCommand, l as CleanupContext, m as LogEntry, n as ResolvedFieldMeta, o as toKebabCase, p as Example, r as UnknownKeysMode, s as AnyCommand, t as ExtractedFields, u as CollectedLogs, v as MainOptions, w as RunnableCommand, x as RunResult, y as NonRunnableCommand } from "./schema-extractor-n9288WJ6.js";
3
- import { b as CompletionOptions, x as CompletionResult } from "./value-completion-resolver-C9LTGr0O.js";
4
- import { WithCompletionOptions, generateCompletion, withCompletionCommand } from "./completion/index.js";
1
+ import { a as arg, i as CustomCompletion, n as CompletionMeta, r as CompletionType, t as ArgMeta } from "./arg-registry-2m40k1Et.js";
2
+ import { A as LazyCommand, C as RunResult, D as SetupContext, E as RunnableCommand, M as lazy, O as SubCommandValue, S as RunCommandOptions, T as RunResultSuccess, _ as LogLevel, a as getUnknownKeysMode, b as MainOptions, c as AnyCommand, d as CollectedLogs, f as Command, g as LogEntry, h as GlobalArgs, i as extractFields, j as isLazyCommand, k as SubCommandsRecord, l as ArgsSchema, m as Example, n as ResolvedFieldMeta, o as toCamelCase, p as CommandBase, r as UnknownKeysMode, s as toKebabCase, t as ExtractedFields, u as CleanupContext, v as LogStream, w as RunResultFailure, x as NonRunnableCommand, y as Logger } from "./schema-extractor-C9APqeSL.js";
3
+ import { D as CompletionResult, E as CompletionOptions, i as generateCompletion, o as withCompletionCommand, t as WithCompletionOptions } from "./index-BZalbMeu.js";
5
4
  import { z } from "zod";
6
5
 
7
6
  //#region src/core/command.d.ts
@@ -9,22 +8,36 @@ import { z } from "zod";
9
8
  * Infer args type from schema, defaults to empty object if undefined
10
9
  */
11
10
  type InferArgs<TArgsSchema> = TArgsSchema extends z.ZodType ? z.infer<TArgsSchema> : Record<string, never>;
11
+ /**
12
+ * Detect empty interface (used for GlobalArgs declaration merging)
13
+ */
14
+ type IsEmpty<T> = keyof T extends never ? true : false;
15
+ /**
16
+ * Merge local args with global args.
17
+ * No-op when TGlobalArgs is empty (default GlobalArgs not extended).
18
+ */
19
+ type MergedArgs<TLocalArgs, TGlobalArgs> = IsEmpty<TGlobalArgs> extends true ? TLocalArgs : TLocalArgs & TGlobalArgs;
20
+ /**
21
+ * Resolve merged args from schema and global args type
22
+ */
23
+ type ResolvedArgs<TArgsSchema, TGlobalArgs> = MergedArgs<InferArgs<TArgsSchema>, TGlobalArgs>;
12
24
  /**
13
25
  * Config for defining a command
14
26
  * @template TArgsSchema - The Zod schema type for arguments
15
27
  * @template TResult - The return type of run function (void if no run)
28
+ * @template TGlobalArgs - Global args type (from declaration merging or factory)
16
29
  */
17
- interface DefineCommandConfig<TArgsSchema extends ArgsSchema | undefined, TResult> {
30
+ interface DefineCommandConfig<TArgsSchema extends ArgsSchema | undefined, TResult, TGlobalArgs> {
18
31
  name: string;
19
32
  description?: string;
20
33
  args?: TArgsSchema;
21
34
  subCommands?: SubCommandsRecord;
22
35
  setup?: (context: {
23
- args: InferArgs<TArgsSchema>;
36
+ args: ResolvedArgs<TArgsSchema, TGlobalArgs>;
24
37
  }) => void | Promise<void>;
25
- run?: (args: InferArgs<TArgsSchema>) => TResult;
38
+ run?: (args: ResolvedArgs<TArgsSchema, TGlobalArgs>) => TResult;
26
39
  cleanup?: (context: {
27
- args: InferArgs<TArgsSchema>;
40
+ args: ResolvedArgs<TArgsSchema, TGlobalArgs>;
28
41
  error?: Error | undefined;
29
42
  }) => void | Promise<void>;
30
43
  notes?: string;
@@ -33,13 +46,13 @@ interface DefineCommandConfig<TArgsSchema extends ArgsSchema | undefined, TResul
33
46
  /**
34
47
  * Config with run function (runnable command)
35
48
  */
36
- interface RunnableConfig<TArgsSchema extends ArgsSchema | undefined, TResult> extends DefineCommandConfig<TArgsSchema, TResult> {
37
- run: (args: InferArgs<TArgsSchema>) => TResult;
49
+ interface RunnableConfig<TArgsSchema extends ArgsSchema | undefined, TResult, TGlobalArgs> extends DefineCommandConfig<TArgsSchema, TResult, TGlobalArgs> {
50
+ run: (args: ResolvedArgs<TArgsSchema, TGlobalArgs>) => TResult;
38
51
  }
39
52
  /**
40
53
  * Config without run function (non-runnable command)
41
54
  */
42
- interface NonRunnableConfig<TArgsSchema extends ArgsSchema | undefined> extends Omit<DefineCommandConfig<TArgsSchema, void>, "run"> {
55
+ interface NonRunnableConfig<TArgsSchema extends ArgsSchema | undefined, TGlobalArgs> extends Omit<DefineCommandConfig<TArgsSchema, void, TGlobalArgs>, "run"> {
43
56
  run?: undefined;
44
57
  }
45
58
  /**
@@ -94,8 +107,33 @@ interface NonRunnableConfig<TArgsSchema extends ArgsSchema | undefined> extends
94
107
  * });
95
108
  * ```
96
109
  */
97
- declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined, TResult = void>(config: RunnableConfig<TArgsSchema, TResult>): RunnableCommand<TArgsSchema, InferArgs<TArgsSchema>, TResult>;
98
- declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined>(config: NonRunnableConfig<TArgsSchema>): NonRunnableCommand<TArgsSchema, InferArgs<TArgsSchema>>;
110
+ declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined, TResult = void, TGlobalArgs = GlobalArgs>(config: RunnableConfig<TArgsSchema, TResult, TGlobalArgs>): RunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>, TResult>;
111
+ declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined, TGlobalArgs = GlobalArgs>(config: NonRunnableConfig<TArgsSchema, TGlobalArgs>): NonRunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>>;
112
+ /**
113
+ * Create a typed defineCommand factory with pre-bound global args type.
114
+ * This is the recommended pattern for type-safe global options.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * // global-args.ts
119
+ * type GlobalArgsType = { verbose: boolean; config?: string };
120
+ * export const defineAppCommand = createDefineCommand<GlobalArgsType>();
121
+ *
122
+ * // commands/build.ts
123
+ * export const buildCommand = defineAppCommand({
124
+ * name: "build",
125
+ * args: z.object({ output: arg(z.string().default("dist")) }),
126
+ * run: (args) => {
127
+ * args.verbose; // typed via GlobalArgsType
128
+ * args.output; // typed via local args
129
+ * },
130
+ * });
131
+ * ```
132
+ */
133
+ declare function createDefineCommand<TGlobalArgs>(): {
134
+ <TArgsSchema extends ArgsSchema | undefined = undefined, TResult = void>(config: RunnableConfig<TArgsSchema, TResult, TGlobalArgs>): RunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>, TResult>;
135
+ <TArgsSchema extends ArgsSchema | undefined = undefined>(config: NonRunnableConfig<TArgsSchema, TGlobalArgs>): NonRunnableCommand<TArgsSchema, ResolvedArgs<TArgsSchema, TGlobalArgs>>;
136
+ };
99
137
  //#endregion
100
138
  //#region src/core/runner.d.ts
101
139
  /**
@@ -172,6 +210,8 @@ interface CommandContext {
172
210
  rootName?: string | undefined;
173
211
  /** Root command version */
174
212
  rootVersion?: string | undefined;
213
+ /** Extracted fields from global args schema */
214
+ globalExtracted?: ExtractedFields | undefined;
175
215
  }
176
216
  /**
177
217
  * Options for help generation
@@ -331,6 +371,13 @@ interface ParserOptions {
331
371
  booleanFlags?: Set<string>;
332
372
  /** Array flags (can be repeated) */
333
373
  arrayFlags?: Set<string>;
374
+ /**
375
+ * All known canonical option names (as defined in the schema).
376
+ * Used to disambiguate negation: when `--no-flag` or `--noFlag` matches
377
+ * a name in this set, it is treated as a regular option rather than
378
+ * boolean negation of `flag`.
379
+ */
380
+ definedNames?: Set<string>;
334
381
  }
335
382
  /**
336
383
  * Parse argv into a flat record
@@ -341,6 +388,13 @@ interface ParserOptions {
341
388
  * - Combined short options: -abc (treated as -a -b -c if all are boolean)
342
389
  * - Positional arguments
343
390
  * - -- to stop parsing options
391
+ * - Boolean negation: --no-flag, --noFlag (requires `booleanFlags`)
392
+ *
393
+ * **Note:** When using negation detection (`--noFlag` / `--no-flag`),
394
+ * supply `definedNames` so that options whose names happen to start with
395
+ * "no" (e.g. `noDryRun`) are not mistaken for negation of another flag.
396
+ * Without `definedNames`, all `--noX` forms matching a boolean flag will
397
+ * be treated as negation.
344
398
  *
345
399
  * @param argv - Command line arguments
346
400
  * @param options - Parser options
@@ -505,5 +559,5 @@ type ValidationResult<T> = {
505
559
  */
506
560
  declare function formatValidationErrors(errors: ValidationError[]): string;
507
561
  //#endregion
508
- export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, 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 Example, type ExtractedFields, type HelpOptions, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, 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 WithCompletionOptions, arg, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toKebabCase, validateCommand, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
562
+ export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, 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 Example, type ExtractedFields, type GlobalArgs, type HelpOptions, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, 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 WithCompletionOptions, arg, createDefineCommand, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCommand, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases, withCompletionCommand };
509
563
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../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/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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"}