politty 0.0.1 → 0.1.1

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 (56) hide show
  1. package/README.md +297 -28
  2. package/dist/arg-registry-ClI2WGgH.d.cts +89 -0
  3. package/dist/arg-registry-ClI2WGgH.d.cts.map +1 -0
  4. package/dist/arg-registry-D4NsqcNZ.d.ts +89 -0
  5. package/dist/arg-registry-D4NsqcNZ.d.ts.map +1 -0
  6. package/dist/augment.cjs +0 -0
  7. package/dist/augment.d.cts +17 -0
  8. package/dist/augment.d.cts.map +1 -0
  9. package/dist/augment.d.ts +17 -0
  10. package/dist/augment.d.ts.map +1 -0
  11. package/dist/augment.js +1 -0
  12. package/dist/command-Bgd-yIwv.cjs +25 -0
  13. package/dist/command-Bgd-yIwv.cjs.map +1 -0
  14. package/dist/command-CvKyk4ag.js +20 -0
  15. package/dist/command-CvKyk4ag.js.map +1 -0
  16. package/dist/completion/index.cjs +595 -0
  17. package/dist/completion/index.cjs.map +1 -0
  18. package/dist/completion/index.d.cts +153 -0
  19. package/dist/completion/index.d.cts.map +1 -0
  20. package/dist/completion/index.d.ts +153 -0
  21. package/dist/completion/index.d.ts.map +1 -0
  22. package/dist/completion/index.js +588 -0
  23. package/dist/completion/index.js.map +1 -0
  24. package/dist/docs/index.cjs +1239 -0
  25. package/dist/docs/index.cjs.map +1 -0
  26. package/dist/docs/index.d.cts +500 -0
  27. package/dist/docs/index.d.cts.map +1 -0
  28. package/dist/docs/index.d.ts +500 -0
  29. package/dist/docs/index.d.ts.map +1 -0
  30. package/dist/docs/index.js +1182 -0
  31. package/dist/docs/index.js.map +1 -0
  32. package/dist/index.cjs +29 -0
  33. package/dist/index.d.cts +478 -0
  34. package/dist/index.d.cts.map +1 -0
  35. package/dist/index.d.ts +478 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +5 -0
  38. package/dist/runner-BZuYiRhi.cjs +1492 -0
  39. package/dist/runner-BZuYiRhi.cjs.map +1 -0
  40. package/dist/runner-D2BXiWtg.cjs +4 -0
  41. package/dist/runner-DceWXOwD.js +1372 -0
  42. package/dist/runner-DceWXOwD.js.map +1 -0
  43. package/dist/runner-KCql2UKz.js +4 -0
  44. package/dist/schema-extractor-B9D3Rf22.cjs +354 -0
  45. package/dist/schema-extractor-B9D3Rf22.cjs.map +1 -0
  46. package/dist/schema-extractor-D-Eo7I77.d.cts +303 -0
  47. package/dist/schema-extractor-D-Eo7I77.d.cts.map +1 -0
  48. package/dist/schema-extractor-Dk5Z0Iei.js +324 -0
  49. package/dist/schema-extractor-Dk5Z0Iei.js.map +1 -0
  50. package/dist/schema-extractor-kkajLb9E.d.ts +303 -0
  51. package/dist/schema-extractor-kkajLb9E.d.ts.map +1 -0
  52. package/dist/subcommand-router-BiSvDXHg.js +153 -0
  53. package/dist/subcommand-router-BiSvDXHg.js.map +1 -0
  54. package/dist/subcommand-router-Vf-0w9P4.cjs +189 -0
  55. package/dist/subcommand-router-Vf-0w9P4.cjs.map +1 -0
  56. package/package.json +108 -6
@@ -0,0 +1,478 @@
1
+ import { n as arg, t as ArgMeta } from "./arg-registry-ClI2WGgH.cjs";
2
+ import { C as RunResultSuccess, D as SubCommandsRecord, E as SubCommandValue, 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, 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-D-Eo7I77.cjs";
3
+ import { z } from "zod";
4
+
5
+ //#region src/core/command.d.ts
6
+ /**
7
+ * Infer args type from schema, defaults to empty object if undefined
8
+ */
9
+ type InferArgs<TArgsSchema> = TArgsSchema extends z.ZodType ? z.infer<TArgsSchema> : Record<string, never>;
10
+ /**
11
+ * Config for defining a command
12
+ * @template TArgsSchema - The Zod schema type for arguments
13
+ * @template TResult - The return type of run function (void if no run)
14
+ */
15
+ interface DefineCommandConfig<TArgsSchema extends ArgsSchema | undefined, TResult> {
16
+ name: string;
17
+ description?: string;
18
+ args?: TArgsSchema;
19
+ subCommands?: SubCommandsRecord;
20
+ setup?: (context: {
21
+ args: InferArgs<TArgsSchema>;
22
+ }) => void | Promise<void>;
23
+ run?: (args: InferArgs<TArgsSchema>) => TResult;
24
+ cleanup?: (context: {
25
+ args: InferArgs<TArgsSchema>;
26
+ error?: Error | undefined;
27
+ }) => void | Promise<void>;
28
+ notes?: string;
29
+ examples?: Example[];
30
+ }
31
+ /**
32
+ * Config with run function (runnable command)
33
+ */
34
+ interface RunnableConfig<TArgsSchema extends ArgsSchema | undefined, TResult> extends DefineCommandConfig<TArgsSchema, TResult> {
35
+ run: (args: InferArgs<TArgsSchema>) => TResult;
36
+ }
37
+ /**
38
+ * Config without run function (non-runnable command)
39
+ */
40
+ interface NonRunnableConfig<TArgsSchema extends ArgsSchema | undefined> extends Omit<DefineCommandConfig<TArgsSchema, void>, "run"> {
41
+ run?: undefined;
42
+ }
43
+ /**
44
+ * Define a CLI command with type-safe arguments
45
+ *
46
+ * @param config - Command configuration
47
+ * @returns A defined command with preserved type information
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * import { z } from "zod";
52
+ * import { arg, defineCommand } from "politty";
53
+ *
54
+ * const command = defineCommand({
55
+ * name: "greet",
56
+ * args: z.object({
57
+ * name: arg(z.string(), { description: "Name to greet", positional: true }),
58
+ * loud: arg(z.boolean().default(false), { alias: "l", description: "Use uppercase" }),
59
+ * }),
60
+ * run: (args) => {
61
+ * const greeting = `Hello, ${args.name}!`;
62
+ * console.log(args.loud ? greeting.toUpperCase() : greeting);
63
+ * },
64
+ * });
65
+ *
66
+ * // Type of command.argsSchema is preserved as z.ZodObject<...>
67
+ * // Type of command.run is (args: { name: string; loud: boolean }) => void
68
+ * ```
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * // With discriminated union for subcommand-like behavior
73
+ * const command = defineCommand({
74
+ * name: "resource",
75
+ * args: z.discriminatedUnion("action", [
76
+ * z.object({
77
+ * action: z.literal("create"),
78
+ * name: arg(z.string(), { description: "Resource name" }),
79
+ * }),
80
+ * z.object({
81
+ * action: z.literal("delete"),
82
+ * id: arg(z.coerce.number(), { description: "Resource ID" }),
83
+ * }),
84
+ * ]),
85
+ * run: (args) => {
86
+ * if (args.action === "create") {
87
+ * console.log(`Creating ${args.name}`);
88
+ * } else {
89
+ * console.log(`Deleting ${args.id}`);
90
+ * }
91
+ * },
92
+ * });
93
+ * ```
94
+ */
95
+ declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined, TResult = void>(config: RunnableConfig<TArgsSchema, TResult>): RunnableCommand<TArgsSchema, InferArgs<TArgsSchema>, TResult>;
96
+ declare function defineCommand<TArgsSchema extends ArgsSchema | undefined = undefined>(config: NonRunnableConfig<TArgsSchema>): NonRunnableCommand<TArgsSchema, InferArgs<TArgsSchema>>;
97
+ //#endregion
98
+ //#region src/core/runner.d.ts
99
+ /**
100
+ * Run a command with the given arguments (programmatic/test usage)
101
+ *
102
+ * This function parses arguments, validates them, routes to subcommands,
103
+ * and executes the command. It does NOT call process.exit.
104
+ *
105
+ * @param command - The command to run
106
+ * @param argv - Command line arguments to parse
107
+ * @param options - Run options
108
+ * @returns The result of command execution
109
+ *
110
+ * @example
111
+ * ```ts
112
+ * import { defineCommand, runCommand } from "politty";
113
+ *
114
+ * const command = defineCommand({
115
+ * name: "my-cli",
116
+ * args: z.object({ name: z.string() }),
117
+ * run: ({ name }) => console.log(`Hello, ${name}!`),
118
+ * });
119
+ *
120
+ * // In tests
121
+ * const result = await runCommand(command, ["--name", "World"]);
122
+ * expect(result.exitCode).toBe(0);
123
+ * ```
124
+ */
125
+ declare function runCommand<TResult = unknown>(command: AnyCommand, argv: string[], options?: RunCommandOptions): Promise<RunResult<TResult>>;
126
+ /**
127
+ * Run a CLI command as the main entry point
128
+ *
129
+ * This function:
130
+ * - Uses process.argv for arguments
131
+ * - Handles SIGINT/SIGTERM signals
132
+ * - Calls process.exit with the appropriate exit code
133
+ *
134
+ * @param command - The command to run
135
+ * @param options - Main options (version, debug)
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * import { defineCommand, runMain } from "politty";
140
+ *
141
+ * const command = defineCommand({
142
+ * name: "my-cli",
143
+ * run: () => console.log("Hello!"),
144
+ * });
145
+ *
146
+ * runMain(command, { version: "1.0.0" });
147
+ * ```
148
+ */
149
+ declare function runMain(command: AnyCommand, options?: MainOptions): Promise<never>;
150
+ //#endregion
151
+ //#region src/output/help-generator.d.ts
152
+ /**
153
+ * Descriptions for built-in options
154
+ */
155
+ interface BuiltinOptionDescriptions {
156
+ /** Description for --help option */
157
+ help?: string;
158
+ /** Description for --help-all option */
159
+ helpAll?: string;
160
+ /** Description for --version option */
161
+ version?: string;
162
+ }
163
+ /**
164
+ * Context for command hierarchy
165
+ */
166
+ interface CommandContext {
167
+ /** Full command path (e.g., ["config", "get"]) */
168
+ commandPath?: string[] | undefined;
169
+ /** Root command name */
170
+ rootName?: string | undefined;
171
+ /** Root command version */
172
+ rootVersion?: string | undefined;
173
+ }
174
+ /**
175
+ * Options for help generation
176
+ */
177
+ interface HelpOptions {
178
+ /** Show subcommand list */
179
+ showSubcommands?: boolean | undefined;
180
+ /** Show subcommand options */
181
+ showSubcommandOptions?: boolean | undefined;
182
+ /** Custom descriptions for built-in options */
183
+ descriptions?: BuiltinOptionDescriptions | undefined;
184
+ /** Command hierarchy context */
185
+ context?: CommandContext | undefined;
186
+ }
187
+ /**
188
+ * Generate help text for a command
189
+ *
190
+ * @param command - The command to generate help for
191
+ * @param options - Help generation options
192
+ * @returns Formatted help text
193
+ */
194
+ declare function generateHelp(command: AnyCommand, options: HelpOptions): string;
195
+ //#endregion
196
+ //#region src/output/logger.d.ts
197
+ /**
198
+ * Enable or disable color output programmatically
199
+ */
200
+ declare function setColorEnabled(enabled: boolean): void;
201
+ /**
202
+ * Check if color output is currently enabled
203
+ */
204
+ declare function isColorEnabled(): boolean;
205
+ /**
206
+ * Semantic style functions for inline text styling
207
+ */
208
+ declare const styles: {
209
+ success: (text: string) => string;
210
+ error: (text: string) => string;
211
+ warning: (text: string) => string;
212
+ info: (text: string) => string;
213
+ bold: (text: string) => string;
214
+ dim: (text: string) => string;
215
+ italic: (text: string) => string;
216
+ underline: (text: string) => string;
217
+ red: (text: string) => string;
218
+ green: (text: string) => string;
219
+ yellow: (text: string) => string;
220
+ blue: (text: string) => string;
221
+ magenta: (text: string) => string;
222
+ cyan: (text: string) => string;
223
+ white: (text: string) => string;
224
+ gray: (text: string) => string;
225
+ command: (text: string) => string;
226
+ commandName: (text: string) => string;
227
+ option: (text: string) => string;
228
+ optionName: (text: string) => string;
229
+ placeholder: (text: string) => string;
230
+ defaultValue: (text: string) => string;
231
+ required: (text: string) => string;
232
+ description: (text: string) => string;
233
+ sectionHeader: (text: string) => string;
234
+ version: (text: string) => string;
235
+ };
236
+ /**
237
+ * Standardized symbols for CLI output
238
+ */
239
+ declare const symbols: {
240
+ success: string;
241
+ error: string;
242
+ warning: string;
243
+ info: string;
244
+ bullet: string;
245
+ arrow: string;
246
+ };
247
+ /**
248
+ * Logger for CLI output
249
+ */
250
+ declare const logger: {
251
+ /**
252
+ * Log informational message
253
+ */
254
+ info(message: string): void;
255
+ /**
256
+ * Log success message
257
+ */
258
+ success(message: string): void;
259
+ /**
260
+ * Log warning message
261
+ */
262
+ warn(message: string): void;
263
+ /**
264
+ * Log error message
265
+ */
266
+ error(message: string): void;
267
+ /**
268
+ * Log raw message without prefix
269
+ */
270
+ log(message: string): void;
271
+ /**
272
+ * Log empty line
273
+ */
274
+ newline(): void;
275
+ /**
276
+ * Log debug message with dim color
277
+ */
278
+ debug(message: string): void;
279
+ };
280
+ //#endregion
281
+ //#region src/parser/argv-parser.d.ts
282
+ /**
283
+ * Parsed arguments result
284
+ */
285
+ interface ParsedArgv {
286
+ /** Named options (--flag, -f) */
287
+ options: Record<string, unknown>;
288
+ /** Positional arguments */
289
+ positionals: string[];
290
+ /** Arguments after -- */
291
+ rest: string[];
292
+ }
293
+ /**
294
+ * Parser options
295
+ */
296
+ interface ParserOptions {
297
+ /** Alias map (short -> long) */
298
+ aliasMap?: Map<string, string>;
299
+ /** Boolean flags (no value expected) */
300
+ booleanFlags?: Set<string>;
301
+ /** Array flags (can be repeated) */
302
+ arrayFlags?: Set<string>;
303
+ }
304
+ /**
305
+ * Parse argv into a flat record
306
+ *
307
+ * Supports:
308
+ * - Long options: --flag, --flag=value, --flag value
309
+ * - Short options: -f, -f=value, -f value
310
+ * - Combined short options: -abc (treated as -a -b -c if all are boolean)
311
+ * - Positional arguments
312
+ * - -- to stop parsing options
313
+ *
314
+ * @param argv - Command line arguments
315
+ * @param options - Parser options
316
+ * @returns Parsed arguments
317
+ */
318
+ declare function parseArgv(argv: string[], options?: ParserOptions): ParsedArgv;
319
+ //#endregion
320
+ //#region src/validator/validation-errors.d.ts
321
+ /**
322
+ * Error thrown when positional argument configuration is invalid
323
+ */
324
+ declare class PositionalConfigError extends Error {
325
+ constructor(message: string);
326
+ }
327
+ /**
328
+ * Error thrown when a reserved alias is used
329
+ */
330
+ declare class ReservedAliasError extends Error {
331
+ constructor(message: string);
332
+ }
333
+ /**
334
+ * Error thrown when duplicate field names are detected
335
+ */
336
+ declare class DuplicateFieldError extends Error {
337
+ constructor(message: string);
338
+ }
339
+ /**
340
+ * Error thrown when duplicate aliases are detected
341
+ */
342
+ declare class DuplicateAliasError extends Error {
343
+ constructor(message: string);
344
+ }
345
+ //#endregion
346
+ //#region src/validator/command-validator.d.ts
347
+ /**
348
+ * Error detail for command validation
349
+ */
350
+ interface CommandValidationError {
351
+ /** Path to the command (e.g., ["cli", "build", "watch"]) */
352
+ commandPath: string[];
353
+ /** Error type */
354
+ type: "duplicate_field" | "duplicate_alias" | "positional_config" | "reserved_alias";
355
+ /** Error message */
356
+ message: string;
357
+ /** Related field name (if applicable) */
358
+ field?: string;
359
+ }
360
+ /**
361
+ * Result of command validation
362
+ */
363
+ type CommandValidationResult = {
364
+ valid: true;
365
+ } | {
366
+ valid: false;
367
+ errors: CommandValidationError[];
368
+ };
369
+ /**
370
+ * Options for validateCommand
371
+ */
372
+ interface ValidateCommandOptions {
373
+ /** Starting command path (for nested validation) */
374
+ commandPath?: string[];
375
+ }
376
+ /**
377
+ * Validate that no duplicate field names exist
378
+ *
379
+ * @param extracted - Extracted fields from schema
380
+ * @throws {DuplicateFieldError} If duplicate field names are found
381
+ */
382
+ declare function validateDuplicateFields(extracted: ExtractedFields): void;
383
+ /**
384
+ * Validate that no duplicate aliases exist
385
+ *
386
+ * Also checks for conflicts between aliases and field names
387
+ *
388
+ * @param extracted - Extracted fields from schema
389
+ * @throws {DuplicateAliasError} If duplicate aliases are found or alias conflicts with field name
390
+ */
391
+ declare function validateDuplicateAliases(extracted: ExtractedFields): void;
392
+ /**
393
+ * Validate positional argument configuration
394
+ *
395
+ * Rules:
396
+ * - Array positional arguments must be the last positional
397
+ * - No positional arguments can follow an array positional
398
+ * - Required positional arguments cannot follow optional positional arguments
399
+ * - Array positional and optional positional cannot be used together (ambiguous parsing)
400
+ *
401
+ * @param extracted - Extracted fields from schema
402
+ * @throws {PositionalConfigError} If configuration is invalid
403
+ */
404
+ declare function validatePositionalConfig(extracted: ExtractedFields): void;
405
+ /**
406
+ * Validate that no reserved aliases are used without explicit override
407
+ *
408
+ * Reserved aliases:
409
+ * - 'h' is reserved for --help
410
+ * - 'H' is reserved for --help-all
411
+ *
412
+ * Users can override these by setting overrideBuiltinAlias: true
413
+ *
414
+ * @param extracted - Extracted fields from schema
415
+ * @param _hasSubCommands - Whether the command has subcommands (reserved for future use)
416
+ * @throws {ReservedAliasError} If a reserved alias is used without override flag
417
+ */
418
+ declare function validateReservedAliases(extracted: ExtractedFields, _hasSubCommands: boolean): void;
419
+ /**
420
+ * Validate a command and all its subcommands recursively
421
+ *
422
+ * This function collects all validation errors without throwing,
423
+ * making it suitable for test assertions.
424
+ *
425
+ * @param command - The command to validate
426
+ * @param options - Validation options
427
+ * @returns Validation result with all errors collected
428
+ *
429
+ * @example
430
+ * ```ts
431
+ * const result = await validateCommand(myCommand);
432
+ * if (!result.valid) {
433
+ * console.error(result.errors);
434
+ * }
435
+ * ```
436
+ */
437
+ declare function validateCommand(command: AnyCommand, options?: ValidateCommandOptions): Promise<CommandValidationResult>;
438
+ /**
439
+ * Format command validation errors for display
440
+ *
441
+ * @param errors - Array of validation errors
442
+ * @returns Formatted error message
443
+ */
444
+ declare function formatCommandValidationErrors(errors: CommandValidationError[]): string;
445
+ //#endregion
446
+ //#region src/validator/zod-validator.d.ts
447
+ /**
448
+ * Validation error details
449
+ */
450
+ interface ValidationError {
451
+ /** Path to the invalid field */
452
+ path: string[];
453
+ /** Error message */
454
+ message: string;
455
+ /** Zod error code */
456
+ code: string;
457
+ /** Value that was received */
458
+ received?: unknown | undefined;
459
+ /** Expected type or value */
460
+ expected?: string | undefined;
461
+ }
462
+ /**
463
+ * Validation result
464
+ */
465
+ type ValidationResult<T> = {
466
+ success: true;
467
+ data: T;
468
+ } | {
469
+ success: false;
470
+ errors: ValidationError[];
471
+ };
472
+ /**
473
+ * Format validation errors for display
474
+ */
475
+ declare function formatValidationErrors(errors: ValidationError[]): string;
476
+ //#endregion
477
+ export { type AnyCommand, type ArgMeta, type ArgsSchema, type BuiltinOptionDescriptions, type CleanupContext, type CollectedLogs, type Command, type CommandBase, type CommandContext, type CommandValidationError, type CommandValidationResult, DuplicateAliasError, DuplicateFieldError, type Example, type ExtractedFields, type HelpOptions, 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, arg, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateHelp, getUnknownKeysMode, isColorEnabled, logger, parseArgv, runCommand, runMain, setColorEnabled, styles, symbols, toKebabCase, validateCommand, validateDuplicateAliases, validateDuplicateFields, validatePositionalConfig, validateReservedAliases };
478
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +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/parser/argv-parser.ts","../src/validator/validation-errors.ts","../src/validator/command-validator.ts","../src/validator/zod-validator.ts"],"sourcesContent":[],"mappings":"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"}