bob-core 3.0.0-beta.4 → 3.0.0-beta.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 (183) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{src/Cli.d.ts → Cli.d.ts} +20 -0
  3. package/dist/cjs/Command.d.ts +91 -0
  4. package/dist/cjs/CommandParser.d.ts +122 -0
  5. package/dist/cjs/{src/CommandRegistry.d.ts → CommandRegistry.d.ts} +12 -0
  6. package/dist/cjs/ExceptionHandler.d.ts +14 -0
  7. package/dist/cjs/HelpFlag.d.ts +27 -0
  8. package/dist/cjs/StringSimilarity.d.ts +31 -0
  9. package/dist/cjs/args/index.d.ts +131 -0
  10. package/dist/{esm/src → cjs}/errors/BadCommandArgument.d.ts +4 -2
  11. package/dist/cjs/{src/errors → errors}/BadCommandFlag.d.ts +4 -2
  12. package/dist/cjs/errors/BobError.d.ts +13 -0
  13. package/dist/cjs/errors/CommandNotFoundError.d.ts +9 -0
  14. package/dist/{esm/src → cjs}/errors/InvalidFlag.d.ts +4 -2
  15. package/dist/cjs/errors/MissingRequiredArgumentValue.d.ts +9 -0
  16. package/dist/cjs/errors/MissingRequiredFlagValue.d.ts +9 -0
  17. package/dist/cjs/errors/TooManyArguments.d.ts +10 -0
  18. package/dist/cjs/errors/ValidationError.d.ts +10 -0
  19. package/dist/{esm/src → cjs}/errors/renderError.d.ts +2 -2
  20. package/dist/cjs/flags/boolean.d.ts +20 -0
  21. package/dist/cjs/flags/custom.d.ts +12 -0
  22. package/dist/cjs/flags/directory.d.ts +27 -0
  23. package/dist/cjs/flags/file.d.ts +27 -0
  24. package/dist/cjs/flags/helpers.d.ts +9 -0
  25. package/dist/cjs/flags/index.d.ts +160 -0
  26. package/dist/cjs/flags/number.d.ts +32 -0
  27. package/dist/cjs/flags/option.d.ts +8 -0
  28. package/dist/cjs/flags/string.d.ts +19 -0
  29. package/dist/cjs/flags/url.d.ts +19 -0
  30. package/dist/cjs/index.js +10 -0
  31. package/dist/cjs/{src/lib → lib}/helpers.d.ts +1 -1
  32. package/dist/cjs/lib/types.d.ts +99 -0
  33. package/dist/cjs/shared/ask-helpers.d.ts +7 -0
  34. package/dist/cjs/shared/flagsUtils.d.ts +5 -0
  35. package/dist/cjs/ux/askForConfirmation.d.ts +10 -0
  36. package/dist/cjs/{src/ux → ux}/askForToggle.d.ts +5 -1
  37. package/dist/cjs/ux/helpers.d.ts +6 -0
  38. package/dist/{esm/src → cjs}/ux/index.d.ts +30 -2
  39. package/dist/esm/{src/Cli.d.ts → Cli.d.ts} +20 -0
  40. package/dist/esm/Command.d.ts +91 -0
  41. package/dist/esm/CommandParser.d.ts +122 -0
  42. package/dist/esm/{src/CommandRegistry.d.ts → CommandRegistry.d.ts} +12 -0
  43. package/dist/esm/ExceptionHandler.d.ts +14 -0
  44. package/dist/esm/HelpFlag.d.ts +27 -0
  45. package/dist/esm/StringSimilarity.d.ts +31 -0
  46. package/dist/esm/args/index.d.ts +131 -0
  47. package/dist/{cjs/src → esm}/errors/BadCommandArgument.d.ts +4 -2
  48. package/dist/esm/{src/errors → errors}/BadCommandFlag.d.ts +4 -2
  49. package/dist/esm/errors/BobError.d.ts +13 -0
  50. package/dist/esm/errors/CommandNotFoundError.d.ts +9 -0
  51. package/dist/{cjs/src → esm}/errors/InvalidFlag.d.ts +4 -2
  52. package/dist/esm/errors/MissingRequiredArgumentValue.d.ts +9 -0
  53. package/dist/esm/errors/MissingRequiredFlagValue.d.ts +9 -0
  54. package/dist/esm/errors/TooManyArguments.d.ts +10 -0
  55. package/dist/esm/errors/ValidationError.d.ts +10 -0
  56. package/dist/{cjs/src → esm}/errors/renderError.d.ts +2 -2
  57. package/dist/esm/flags/boolean.d.ts +20 -0
  58. package/dist/esm/flags/custom.d.ts +12 -0
  59. package/dist/esm/flags/directory.d.ts +27 -0
  60. package/dist/esm/flags/file.d.ts +27 -0
  61. package/dist/esm/flags/helpers.d.ts +9 -0
  62. package/dist/esm/flags/index.d.ts +160 -0
  63. package/dist/esm/flags/number.d.ts +32 -0
  64. package/dist/esm/flags/option.d.ts +8 -0
  65. package/dist/esm/flags/string.d.ts +19 -0
  66. package/dist/esm/flags/url.d.ts +19 -0
  67. package/dist/esm/{src/index.js → index.js} +346 -267
  68. package/dist/esm/{src/lib → lib}/helpers.d.ts +1 -1
  69. package/dist/esm/lib/types.d.ts +99 -0
  70. package/dist/esm/shared/ask-helpers.d.ts +7 -0
  71. package/dist/esm/shared/flagsUtils.d.ts +5 -0
  72. package/dist/esm/ux/askForConfirmation.d.ts +10 -0
  73. package/dist/esm/{src/ux → ux}/askForToggle.d.ts +5 -1
  74. package/dist/esm/ux/helpers.d.ts +6 -0
  75. package/dist/{cjs/src → esm}/ux/index.d.ts +30 -2
  76. package/package.json +1 -1
  77. package/dist/cjs/package-BYPkkzPN.cjs +0 -1
  78. package/dist/cjs/src/Command.d.ts +0 -48
  79. package/dist/cjs/src/CommandParser.d.ts +0 -110
  80. package/dist/cjs/src/ExceptionHandler.d.ts +0 -6
  81. package/dist/cjs/src/HelpFlag.d.ts +0 -12
  82. package/dist/cjs/src/StringSimilarity.d.ts +0 -26
  83. package/dist/cjs/src/args/index.d.ts +0 -67
  84. package/dist/cjs/src/errors/BobError.d.ts +0 -5
  85. package/dist/cjs/src/errors/CommandNotFoundError.d.ts +0 -7
  86. package/dist/cjs/src/errors/MissingRequiredArgumentValue.d.ts +0 -7
  87. package/dist/cjs/src/errors/MissingRequiredFlagValue.d.ts +0 -7
  88. package/dist/cjs/src/errors/TooManyArguments.d.ts +0 -8
  89. package/dist/cjs/src/errors/ValidationError.d.ts +0 -3
  90. package/dist/cjs/src/flags/boolean.d.ts +0 -9
  91. package/dist/cjs/src/flags/custom.d.ts +0 -9
  92. package/dist/cjs/src/flags/directory.d.ts +0 -14
  93. package/dist/cjs/src/flags/file.d.ts +0 -14
  94. package/dist/cjs/src/flags/helpers.d.ts +0 -3
  95. package/dist/cjs/src/flags/index.d.ts +0 -76
  96. package/dist/cjs/src/flags/number.d.ts +0 -17
  97. package/dist/cjs/src/flags/option.d.ts +0 -6
  98. package/dist/cjs/src/flags/string.d.ts +0 -8
  99. package/dist/cjs/src/flags/url.d.ts +0 -8
  100. package/dist/cjs/src/index.js +0 -10
  101. package/dist/cjs/src/lib/types.d.ts +0 -59
  102. package/dist/cjs/src/shared/ask-helpers.d.ts +0 -7
  103. package/dist/cjs/src/ux/askForConfirmation.d.ts +0 -5
  104. package/dist/cjs/src/ux/helpers.d.ts +0 -1
  105. package/dist/esm/package-LkysKcR6.js +0 -60
  106. package/dist/esm/src/Command.d.ts +0 -48
  107. package/dist/esm/src/CommandParser.d.ts +0 -110
  108. package/dist/esm/src/ExceptionHandler.d.ts +0 -6
  109. package/dist/esm/src/HelpFlag.d.ts +0 -12
  110. package/dist/esm/src/StringSimilarity.d.ts +0 -26
  111. package/dist/esm/src/args/index.d.ts +0 -67
  112. package/dist/esm/src/errors/BobError.d.ts +0 -5
  113. package/dist/esm/src/errors/CommandNotFoundError.d.ts +0 -7
  114. package/dist/esm/src/errors/MissingRequiredArgumentValue.d.ts +0 -7
  115. package/dist/esm/src/errors/MissingRequiredFlagValue.d.ts +0 -7
  116. package/dist/esm/src/errors/TooManyArguments.d.ts +0 -8
  117. package/dist/esm/src/errors/ValidationError.d.ts +0 -3
  118. package/dist/esm/src/flags/boolean.d.ts +0 -9
  119. package/dist/esm/src/flags/custom.d.ts +0 -9
  120. package/dist/esm/src/flags/directory.d.ts +0 -14
  121. package/dist/esm/src/flags/file.d.ts +0 -14
  122. package/dist/esm/src/flags/helpers.d.ts +0 -3
  123. package/dist/esm/src/flags/index.d.ts +0 -76
  124. package/dist/esm/src/flags/number.d.ts +0 -17
  125. package/dist/esm/src/flags/option.d.ts +0 -6
  126. package/dist/esm/src/flags/string.d.ts +0 -8
  127. package/dist/esm/src/flags/url.d.ts +0 -8
  128. package/dist/esm/src/lib/types.d.ts +0 -59
  129. package/dist/esm/src/shared/ask-helpers.d.ts +0 -7
  130. package/dist/esm/src/ux/askForConfirmation.d.ts +0 -5
  131. package/dist/esm/src/ux/helpers.d.ts +0 -1
  132. /package/dist/cjs/{src/CommandSignatureParser.d.ts → CommandSignatureParser.d.ts} +0 -0
  133. /package/dist/cjs/{src/CommandWithSignature.d.ts → CommandWithSignature.d.ts} +0 -0
  134. /package/dist/cjs/{src/Logger.d.ts → Logger.d.ts} +0 -0
  135. /package/dist/cjs/{src/commands → commands}/HelpCommand.d.ts +0 -0
  136. /package/dist/cjs/{src/contracts → contracts}/LoggerContract.d.ts +0 -0
  137. /package/dist/cjs/{src/contracts → contracts}/index.d.ts +0 -0
  138. /package/dist/cjs/{src/errors → errors}/index.d.ts +0 -0
  139. /package/dist/cjs/{src/index.d.ts → index.d.ts} +0 -0
  140. /package/dist/cjs/{src/lib → lib}/string.d.ts +0 -0
  141. /package/dist/cjs/{src/shared → shared}/parsers.d.ts +0 -0
  142. /package/dist/cjs/{src/ux → ux}/askForCheckbox.d.ts +0 -0
  143. /package/dist/cjs/{src/ux → ux}/askForEditor.d.ts +0 -0
  144. /package/dist/cjs/{src/ux → ux}/askForExpand.d.ts +0 -0
  145. /package/dist/cjs/{src/ux → ux}/askForFileSelector.d.ts +0 -0
  146. /package/dist/cjs/{src/ux → ux}/askForInput.d.ts +0 -0
  147. /package/dist/cjs/{src/ux → ux}/askForList.d.ts +0 -0
  148. /package/dist/cjs/{src/ux → ux}/askForNumber.d.ts +0 -0
  149. /package/dist/cjs/{src/ux → ux}/askForPassword.d.ts +0 -0
  150. /package/dist/cjs/{src/ux → ux}/askForRawList.d.ts +0 -0
  151. /package/dist/cjs/{src/ux → ux}/askForSearch.d.ts +0 -0
  152. /package/dist/cjs/{src/ux → ux}/askForSelect.d.ts +0 -0
  153. /package/dist/cjs/{src/ux → ux}/keyValue.d.ts +0 -0
  154. /package/dist/cjs/{src/ux → ux}/loader.d.ts +0 -0
  155. /package/dist/cjs/{src/ux → ux}/progressBar.d.ts +0 -0
  156. /package/dist/cjs/{src/ux → ux}/table.d.ts +0 -0
  157. /package/dist/cjs/{src/ux → ux}/types.d.ts +0 -0
  158. /package/dist/esm/{src/CommandSignatureParser.d.ts → CommandSignatureParser.d.ts} +0 -0
  159. /package/dist/esm/{src/CommandWithSignature.d.ts → CommandWithSignature.d.ts} +0 -0
  160. /package/dist/esm/{src/Logger.d.ts → Logger.d.ts} +0 -0
  161. /package/dist/esm/{src/commands → commands}/HelpCommand.d.ts +0 -0
  162. /package/dist/esm/{src/contracts → contracts}/LoggerContract.d.ts +0 -0
  163. /package/dist/esm/{src/contracts → contracts}/index.d.ts +0 -0
  164. /package/dist/esm/{src/errors → errors}/index.d.ts +0 -0
  165. /package/dist/esm/{src/index.d.ts → index.d.ts} +0 -0
  166. /package/dist/esm/{src/lib → lib}/string.d.ts +0 -0
  167. /package/dist/esm/{src/shared → shared}/parsers.d.ts +0 -0
  168. /package/dist/esm/{src/ux → ux}/askForCheckbox.d.ts +0 -0
  169. /package/dist/esm/{src/ux → ux}/askForEditor.d.ts +0 -0
  170. /package/dist/esm/{src/ux → ux}/askForExpand.d.ts +0 -0
  171. /package/dist/esm/{src/ux → ux}/askForFileSelector.d.ts +0 -0
  172. /package/dist/esm/{src/ux → ux}/askForInput.d.ts +0 -0
  173. /package/dist/esm/{src/ux → ux}/askForList.d.ts +0 -0
  174. /package/dist/esm/{src/ux → ux}/askForNumber.d.ts +0 -0
  175. /package/dist/esm/{src/ux → ux}/askForPassword.d.ts +0 -0
  176. /package/dist/esm/{src/ux → ux}/askForRawList.d.ts +0 -0
  177. /package/dist/esm/{src/ux → ux}/askForSearch.d.ts +0 -0
  178. /package/dist/esm/{src/ux → ux}/askForSelect.d.ts +0 -0
  179. /package/dist/esm/{src/ux → ux}/keyValue.d.ts +0 -0
  180. /package/dist/esm/{src/ux → ux}/loader.d.ts +0 -0
  181. /package/dist/esm/{src/ux → ux}/progressBar.d.ts +0 -0
  182. /package/dist/esm/{src/ux → ux}/table.d.ts +0 -0
  183. /package/dist/esm/{src/ux → ux}/types.d.ts +0 -0
@@ -0,0 +1,10 @@
1
+ import { LoggerContract } from '../contracts/index.js';
2
+ import { BobError } from './BobError.js';
3
+ /** Thrown in strict mode when more positional arguments were supplied than the schema declares. */
4
+ export declare class TooManyArguments extends BobError {
5
+ readonly expected: number;
6
+ readonly received: number;
7
+ readonly $type: "TooManyArguments";
8
+ constructor(expected: number, received: number);
9
+ pretty(logger: LoggerContract): void;
10
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Raised by `parse`/`ask` validators to signal user-facing input problems.
3
+ *
4
+ * `safeParse` in {@link CommandParser} catches this specifically (and re-wraps
5
+ * it as {@link BadCommandFlag} or {@link BadCommandArgument}) — anything else
6
+ * is treated as a programmer bug and propagates unchanged.
7
+ */
8
+ export declare class ValidationError extends Error {
9
+ constructor(message: string);
10
+ }
@@ -1,4 +1,4 @@
1
- import { Logger } from '../Logger.js';
1
+ import { LoggerContract } from '../contracts/index.js';
2
2
  export type ErrorDetail = [label: string, value: string];
3
3
  export type RenderErrorOptions = {
4
4
  title: string;
@@ -6,4 +6,4 @@ export type RenderErrorOptions = {
6
6
  hint?: string;
7
7
  };
8
8
  export declare function quote(name: string): string;
9
- export declare function renderError(logger: Logger, opts: RenderErrorOptions): void;
9
+ export declare function renderError(logger: LoggerContract, opts: RenderErrorOptions): void;
@@ -0,0 +1,20 @@
1
+ import { FlagOpts } from '../lib/types.js';
2
+ /** Boolean flag (`--debug` / `--no-debug`). Defaults to `false` when omitted. */
3
+ export declare const booleanFlag: <const O extends Partial<import('../lib/types.js').FlagDefinition<boolean, import('../lib/types.js').CustomOptions>>>(overrides?: O | undefined) => {
4
+ [x: string]: unknown;
5
+ } & {
6
+ parse: (input: any, opts: FlagOpts<any, import('../lib/types.js').CustomOptions>) => boolean;
7
+ type?: import('../lib/types.js').FlagKind;
8
+ ask?: (opts: FlagOpts) => Promise<any>;
9
+ description?: string;
10
+ required?: boolean;
11
+ default?: boolean | boolean[] | (() => boolean | boolean[] | null) | (() => Promise<boolean | boolean[] | null>) | null | undefined;
12
+ multiple?: boolean;
13
+ help?: string;
14
+ alias?: string | readonly string[];
15
+ handler?: ((value: boolean, opts: FlagOpts) => {
16
+ shouldStop: boolean;
17
+ } | void) | undefined;
18
+ } & Omit<import('../lib/types.js').FlagDefinition<boolean, import('../lib/types.js').CustomOptions>, "parse"> & {
19
+ parse?: ((input: any, opts: FlagOpts<any, import('../lib/types.js').CustomOptions>) => boolean) | undefined;
20
+ } & O;
@@ -0,0 +1,12 @@
1
+ import { CustomOptions, FlagDefinition, InitFlagDefinition } from '../lib/types.js';
2
+ /**
3
+ * Escape hatch for declaring arbitrary parameter types. Returns a builder
4
+ * function — call it with overrides to produce a `FlagDefinition`.
5
+ *
6
+ * `parse` is required when there's no built-in for the target type. `multiple`
7
+ * defaults the value to `[]`; non-multiple flags default to `null`.
8
+ *
9
+ * The `type` literal supplied in `defaults` is preserved in the returned shape
10
+ * so downstream consumers can rely on it (e.g. for help rendering).
11
+ */
12
+ export declare function custom<T, C extends CustomOptions = CustomOptions, const D extends InitFlagDefinition<T, C> = InitFlagDefinition<T, C>>(defaults?: D): <const O extends Partial<FlagDefinition<T, C>>>(overrides?: O) => FlagDefinition<T, C> & D & O;
@@ -0,0 +1,27 @@
1
+ /** Filesystem directory flag. Pass `exists: true` to require the directory to exist at parse time. */
2
+ export declare const directoryFlag: <const O extends Partial<import('../index.js').FlagDefinition<string, {
3
+ exists?: boolean;
4
+ }>>>(overrides?: O | undefined) => {
5
+ exists?: boolean | undefined;
6
+ } & {
7
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, {
8
+ exists?: boolean;
9
+ }>) => string;
10
+ type?: import('../index.js').FlagKind;
11
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
12
+ description?: string;
13
+ required?: boolean;
14
+ default?: string | string[] | (() => string | string[] | null) | (() => Promise<string | string[] | null>) | null | undefined;
15
+ multiple?: boolean;
16
+ help?: string;
17
+ alias?: string | readonly string[];
18
+ handler?: ((value: string, opts: import('../index.js').FlagOpts) => {
19
+ shouldStop: boolean;
20
+ } | void) | undefined;
21
+ } & Omit<import('../index.js').FlagDefinition<string, {
22
+ exists?: boolean;
23
+ }>, "parse"> & {
24
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, {
25
+ exists?: boolean;
26
+ }>) => string) | undefined;
27
+ } & O;
@@ -0,0 +1,27 @@
1
+ /** Filesystem file flag. Pass `exists: true` to require the path to exist at parse time. */
2
+ export declare const fileFlag: <const O extends Partial<import('../index.js').FlagDefinition<string, {
3
+ exists?: boolean;
4
+ }>>>(overrides?: O | undefined) => {
5
+ exists?: boolean | undefined;
6
+ } & {
7
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, {
8
+ exists?: boolean;
9
+ }>) => string;
10
+ type?: import('../index.js').FlagKind;
11
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
12
+ description?: string;
13
+ required?: boolean;
14
+ default?: string | string[] | (() => string | string[] | null) | (() => Promise<string | string[] | null>) | null | undefined;
15
+ multiple?: boolean;
16
+ help?: string;
17
+ alias?: string | readonly string[];
18
+ handler?: ((value: string, opts: import('../index.js').FlagOpts) => {
19
+ shouldStop: boolean;
20
+ } | void) | undefined;
21
+ } & Omit<import('../index.js').FlagDefinition<string, {
22
+ exists?: boolean;
23
+ }>, "parse"> & {
24
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, {
25
+ exists?: boolean;
26
+ }>) => string) | undefined;
27
+ } & O;
@@ -0,0 +1,9 @@
1
+ import { FlagDefinition } from '../lib/types.js';
2
+ export declare function formatPromptMessage(name: string, definition: FlagDefinition): string;
3
+ export declare function normalizeAliases(alias: string | readonly string[] | undefined): readonly string[];
4
+ /**
5
+ * Formats an alias with the correct dash prefix for help/error output:
6
+ * single-character aliases get one dash (`-v`), multi-character aliases get
7
+ * two (`--verbose`). This matches POSIX/minimist parsing conventions.
8
+ */
9
+ export declare function formatAlias(alias: string): string;
@@ -0,0 +1,160 @@
1
+ import { custom } from './custom.js';
2
+ import { optionFlag } from './option.js';
3
+ /**
4
+ * Flag builders used in `static flags = { ... }` schemas.
5
+ *
6
+ * - `Flags.string({ secret? })` — text input; `secret` masks the prompt.
7
+ * - `Flags.number({ min?, max? })` — numeric input with range validation.
8
+ * - `Flags.boolean()` — toggle flag (`--debug` / `--no-debug`).
9
+ * - `Flags.option({ options: [...] as const })` — fixed enum.
10
+ * - `Flags.file({ exists? })` / `Flags.directory({ exists? })` — filesystem
11
+ * paths; `exists` validates presence at parse time.
12
+ * - `Flags.url()` — `URL`-typed input.
13
+ * - `Flags.custom<T>({ parse, ... })` — escape hatch for arbitrary types;
14
+ * `parse` is required.
15
+ *
16
+ * Every builder accepts the common `FlagProps` (description, alias, required,
17
+ * default, multiple, ask, handler, help) plus its builder-specific extras.
18
+ */
19
+ export declare const Flags: {
20
+ string: <const O extends Partial<import('../index.js').FlagDefinition<string, import('../index.js').CustomOptions>>>(overrides?: O | undefined) => {
21
+ [x: string]: unknown;
22
+ } & {
23
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => string;
24
+ type?: import('../index.js').FlagKind;
25
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
26
+ description?: string;
27
+ required?: boolean;
28
+ default?: string | string[] | (() => string | string[] | null) | (() => Promise<string | string[] | null>) | null | undefined;
29
+ multiple?: boolean;
30
+ help?: string;
31
+ alias?: string | readonly string[];
32
+ handler?: ((value: string, opts: import('../index.js').FlagOpts) => {
33
+ shouldStop: boolean;
34
+ } | void) | undefined;
35
+ } & Omit<import('../index.js').FlagDefinition<string, import('../index.js').CustomOptions>, "parse"> & {
36
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => string) | undefined;
37
+ } & O;
38
+ number: <const O extends Partial<import('../index.js').FlagDefinition<number, {
39
+ min?: number;
40
+ max?: number;
41
+ }>>>(overrides?: O | undefined) => {
42
+ min?: number | undefined;
43
+ max?: number | undefined;
44
+ } & {
45
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, {
46
+ min?: number;
47
+ max?: number;
48
+ }>) => number;
49
+ type?: import('../index.js').FlagKind;
50
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
51
+ description?: string;
52
+ required?: boolean;
53
+ default?: number | number[] | (() => number | number[] | null) | (() => Promise<number | number[] | null>) | null | undefined;
54
+ multiple?: boolean;
55
+ help?: string;
56
+ alias?: string | readonly string[];
57
+ handler?: ((value: number, opts: import('../index.js').FlagOpts) => {
58
+ shouldStop: boolean;
59
+ } | void) | undefined;
60
+ } & Omit<import('../index.js').FlagDefinition<number, {
61
+ min?: number;
62
+ max?: number;
63
+ }>, "parse"> & {
64
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, {
65
+ min?: number;
66
+ max?: number;
67
+ }>) => number) | undefined;
68
+ } & O;
69
+ boolean: <const O extends Partial<import('../index.js').FlagDefinition<boolean, import('../index.js').CustomOptions>>>(overrides?: O | undefined) => {
70
+ [x: string]: unknown;
71
+ } & {
72
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => boolean;
73
+ type?: import('../index.js').FlagKind;
74
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
75
+ description?: string;
76
+ required?: boolean;
77
+ default?: boolean | boolean[] | (() => boolean | boolean[] | null) | (() => Promise<boolean | boolean[] | null>) | null | undefined;
78
+ multiple?: boolean;
79
+ help?: string;
80
+ alias?: string | readonly string[];
81
+ handler?: ((value: boolean, opts: import('../index.js').FlagOpts) => {
82
+ shouldStop: boolean;
83
+ } | void) | undefined;
84
+ } & Omit<import('../index.js').FlagDefinition<boolean, import('../index.js').CustomOptions>, "parse"> & {
85
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => boolean) | undefined;
86
+ } & O;
87
+ option: typeof optionFlag;
88
+ file: <const O extends Partial<import('../index.js').FlagDefinition<string, {
89
+ exists?: boolean;
90
+ }>>>(overrides?: O | undefined) => {
91
+ exists?: boolean | undefined;
92
+ } & {
93
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, {
94
+ exists?: boolean;
95
+ }>) => string;
96
+ type?: import('../index.js').FlagKind;
97
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
98
+ description?: string;
99
+ required?: boolean;
100
+ default?: string | string[] | (() => string | string[] | null) | (() => Promise<string | string[] | null>) | null | undefined;
101
+ multiple?: boolean;
102
+ help?: string;
103
+ alias?: string | readonly string[];
104
+ handler?: ((value: string, opts: import('../index.js').FlagOpts) => {
105
+ shouldStop: boolean;
106
+ } | void) | undefined;
107
+ } & Omit<import('../index.js').FlagDefinition<string, {
108
+ exists?: boolean;
109
+ }>, "parse"> & {
110
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, {
111
+ exists?: boolean;
112
+ }>) => string) | undefined;
113
+ } & O;
114
+ directory: <const O extends Partial<import('../index.js').FlagDefinition<string, {
115
+ exists?: boolean;
116
+ }>>>(overrides?: O | undefined) => {
117
+ exists?: boolean | undefined;
118
+ } & {
119
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, {
120
+ exists?: boolean;
121
+ }>) => string;
122
+ type?: import('../index.js').FlagKind;
123
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
124
+ description?: string;
125
+ required?: boolean;
126
+ default?: string | string[] | (() => string | string[] | null) | (() => Promise<string | string[] | null>) | null | undefined;
127
+ multiple?: boolean;
128
+ help?: string;
129
+ alias?: string | readonly string[];
130
+ handler?: ((value: string, opts: import('../index.js').FlagOpts) => {
131
+ shouldStop: boolean;
132
+ } | void) | undefined;
133
+ } & Omit<import('../index.js').FlagDefinition<string, {
134
+ exists?: boolean;
135
+ }>, "parse"> & {
136
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, {
137
+ exists?: boolean;
138
+ }>) => string) | undefined;
139
+ } & O;
140
+ url: <const O extends Partial<import('../index.js').FlagDefinition<URL, import('../index.js').CustomOptions>>>(overrides?: O | undefined) => {
141
+ [x: string]: unknown;
142
+ } & {
143
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => URL;
144
+ type?: import('../index.js').FlagKind;
145
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
146
+ description?: string;
147
+ required?: boolean;
148
+ default?: URL | URL[] | (() => URL | URL[] | null) | (() => Promise<URL | URL[] | null>) | null | undefined;
149
+ multiple?: boolean;
150
+ help?: string;
151
+ alias?: string | readonly string[];
152
+ handler?: ((value: URL, opts: import('../index.js').FlagOpts) => {
153
+ shouldStop: boolean;
154
+ } | void) | undefined;
155
+ } & Omit<import('../index.js').FlagDefinition<URL, import('../index.js').CustomOptions>, "parse"> & {
156
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => URL) | undefined;
157
+ } & O;
158
+ custom: typeof custom;
159
+ };
160
+ export { Args } from '../args/index.js';
@@ -0,0 +1,32 @@
1
+ /** Numeric flag. Optional `min`/`max` clamp the accepted range and surface as `BadCommandFlag`. */
2
+ export declare const numberFlag: <const O extends Partial<import('../index.js').FlagDefinition<number, {
3
+ min?: number;
4
+ max?: number;
5
+ }>>>(overrides?: O | undefined) => {
6
+ min?: number | undefined;
7
+ max?: number | undefined;
8
+ } & {
9
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, {
10
+ min?: number;
11
+ max?: number;
12
+ }>) => number;
13
+ type?: import('../index.js').FlagKind;
14
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
15
+ description?: string;
16
+ required?: boolean;
17
+ default?: number | number[] | (() => number | number[] | null) | (() => Promise<number | number[] | null>) | null | undefined;
18
+ multiple?: boolean;
19
+ help?: string;
20
+ alias?: string | readonly string[];
21
+ handler?: ((value: number, opts: import('../index.js').FlagOpts) => {
22
+ shouldStop: boolean;
23
+ } | void) | undefined;
24
+ } & Omit<import('../index.js').FlagDefinition<number, {
25
+ min?: number;
26
+ max?: number;
27
+ }>, "parse"> & {
28
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, {
29
+ min?: number;
30
+ max?: number;
31
+ }>) => number) | undefined;
32
+ } & O;
@@ -0,0 +1,8 @@
1
+ import { FlagDefinition, InitFlagDefinition } from '../lib/types.js';
2
+ export declare function optionFlag<const T extends readonly string[], const O extends Partial<InitFlagDefinition<T[number], {
3
+ options: T;
4
+ }>>>(opts: {
5
+ options: T;
6
+ } & O): FlagDefinition<T[number], {
7
+ options: T;
8
+ }> & O;
@@ -0,0 +1,19 @@
1
+ /** Text input flag. Pass `secret: true` to mask the prompt as a password. */
2
+ export declare const stringFlag: <const O extends Partial<import('../index.js').FlagDefinition<string, import('../index.js').CustomOptions>>>(overrides?: O | undefined) => {
3
+ [x: string]: unknown;
4
+ } & {
5
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => string;
6
+ type?: import('../index.js').FlagKind;
7
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
8
+ description?: string;
9
+ required?: boolean;
10
+ default?: string | string[] | (() => string | string[] | null) | (() => Promise<string | string[] | null>) | null | undefined;
11
+ multiple?: boolean;
12
+ help?: string;
13
+ alias?: string | readonly string[];
14
+ handler?: ((value: string, opts: import('../index.js').FlagOpts) => {
15
+ shouldStop: boolean;
16
+ } | void) | undefined;
17
+ } & Omit<import('../index.js').FlagDefinition<string, import('../index.js').CustomOptions>, "parse"> & {
18
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => string) | undefined;
19
+ } & O;
@@ -0,0 +1,19 @@
1
+ /** URL flag — parses the input with `new URL()` and returns the resulting `URL` object. */
2
+ export declare const urlFlag: <const O extends Partial<import('../index.js').FlagDefinition<URL, import('../index.js').CustomOptions>>>(overrides?: O | undefined) => {
3
+ [x: string]: unknown;
4
+ } & {
5
+ parse: (input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => URL;
6
+ type?: import('../index.js').FlagKind;
7
+ ask?: (opts: import('../index.js').FlagOpts) => Promise<any>;
8
+ description?: string;
9
+ required?: boolean;
10
+ default?: URL | URL[] | (() => URL | URL[] | null) | (() => Promise<URL | URL[] | null>) | null | undefined;
11
+ multiple?: boolean;
12
+ help?: string;
13
+ alias?: string | readonly string[];
14
+ handler?: ((value: URL, opts: import('../index.js').FlagOpts) => {
15
+ shouldStop: boolean;
16
+ } | void) | undefined;
17
+ } & Omit<import('../index.js').FlagDefinition<URL, import('../index.js').CustomOptions>, "parse"> & {
18
+ parse?: ((input: any, opts: import('../index.js').FlagOpts<any, import('../index.js').CustomOptions>) => URL) | undefined;
19
+ } & O;