padrone 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # padrone
2
+
3
+ ## 1.0.0
4
+
5
+ Initial stable release of Padrone - a TypeScript CLI framework with Zod schema support.
6
+
7
+ ### Features
8
+
9
+ - Type-safe argument and option parsing with Zod schemas
10
+ - Interactive prompts with validation
11
+ - AI integration support via Vercel AI SDK
12
+ - Standard Schema compatibility
13
+ - Terminal UI components
14
+ - Command builder pattern
package/README.md CHANGED
@@ -51,7 +51,7 @@ import * as z from 'zod/v4';
51
51
  const program = createPadrone('myapp')
52
52
  .command('greet', (c) =>
53
53
  c
54
- .options(
54
+ .arguments(
55
55
  z.object({
56
56
  names: z.array(z.string()).describe('Names to greet'),
57
57
  prefix: z
@@ -120,7 +120,7 @@ api.greet({ names: ['Alice', 'Bob'], prefix: 'Dr.' });
120
120
  const program = createPadrone('weather')
121
121
  .command('forecast', (c) =>
122
122
  c
123
- .options(
123
+ .arguments(
124
124
  z.object({
125
125
  city: z.string().describe('City name'),
126
126
  days: z.number().optional().default(3).describe('Number of days'),
@@ -132,7 +132,7 @@ const program = createPadrone('weather')
132
132
  })
133
133
  .command('extended', (c) =>
134
134
  c
135
- .options(
135
+ .arguments(
136
136
  z.object({
137
137
  city: z.string().describe('City name'),
138
138
  }),
@@ -154,7 +154,7 @@ program.cli('forecast extended London');
154
154
  const program = createPadrone('app')
155
155
  .command('serve', (c) =>
156
156
  c
157
- .options(
157
+ .arguments(
158
158
  z.object({
159
159
  port: z
160
160
  .number()
@@ -181,26 +181,37 @@ const program = createPadrone('app')
181
181
 
182
182
  ### Environment Variables and Config Files
183
183
 
184
- Padrone supports binding options to environment variables and config files:
184
+ Padrone supports loading options from environment variables and config files using dedicated schema methods:
185
185
 
186
186
  ```typescript
187
187
  const program = createPadrone('app')
188
- .configure({
189
- configFiles: ['app.config.json', '.apprc'],
190
- })
191
188
  .command('serve', (c) =>
192
189
  c
193
- .options(
190
+ .arguments(
194
191
  z.object({
195
192
  port: z.number().default(3000).describe('Port to listen on'),
196
193
  apiKey: z.string().describe('API key for authentication'),
197
194
  }),
198
- {
199
- options: {
200
- port: { env: 'APP_PORT', configKey: 'server.port' },
201
- apiKey: { env: ['API_KEY', 'APP_API_KEY'] },
202
- },
203
- },
195
+ )
196
+ // Map environment variables to options
197
+ .env(
198
+ z
199
+ .object({
200
+ APP_PORT: z.coerce.number().optional(),
201
+ API_KEY: z.string().optional(),
202
+ })
203
+ .transform((env) => ({
204
+ port: env.APP_PORT,
205
+ apiKey: env.API_KEY,
206
+ })),
207
+ )
208
+ // Load config from JSON file with matching schema
209
+ .configFile(
210
+ 'app.config.json',
211
+ z.object({
212
+ port: z.number().optional(),
213
+ apiKey: z.string().optional(),
214
+ }),
204
215
  )
205
216
  .action((options) => {
206
217
  console.log(`Server running on port ${options.port}`);
@@ -208,6 +219,8 @@ const program = createPadrone('app')
208
219
  );
209
220
  ```
210
221
 
222
+ **Precedence order** (highest to lowest): CLI args > environment variables > config file
223
+
211
224
  ## 🤖 AI SDK Integration
212
225
 
213
226
  Padrone provides first-class support for the [Vercel AI SDK](https://ai-sdk.dev/), making it easy to expose your CLI as an AI tool:
@@ -220,7 +233,7 @@ import * as z from 'zod/v4';
220
233
  const weatherCli = createPadrone('weather')
221
234
  .command('current', (c) =>
222
235
  c
223
- .options(
236
+ .arguments(
224
237
  z.object({
225
238
  city: z.string().describe('City name'),
226
239
  }),
@@ -271,9 +284,11 @@ Creates a new CLI program with the given name.
271
284
 
272
285
  | Method | Description |
273
286
  |--------|-------------|
274
- | `.configure(config)` | Configure program properties (title, description, version, configFiles) |
287
+ | `.configure(config)` | Configure program properties (title, description, version) |
275
288
  | `.command(name, builder)` | Add a command to the program |
276
- | `.options(schema, meta?)` | Define options schema with optional positional args |
289
+ | `.arguments(schema, meta?)` | Define options schema with optional positional args |
290
+ | `.env(schema)` | Define schema for parsing environment variables into options |
291
+ | `.configFile(file, schema?)` | Configure config file path(s) and schema |
277
292
  | `.action(handler)` | Set the command handler function |
278
293
  | `.cli(input?)` | Run as CLI (parses `process.argv` or input string) |
279
294
  | `.run(command, options)` | Run a command programmatically |
@@ -286,14 +301,14 @@ Creates a new CLI program with the given name.
286
301
 
287
302
  ### Options Meta
288
303
 
289
- Use the second argument of `.options()` to configure positional arguments and per-option metadata:
304
+ Use the second argument of `.arguments()` to configure positional arguments and per-option metadata:
290
305
 
291
306
  ```typescript
292
- .options(schema, {
307
+ .arguments(schema, {
293
308
  positional: ['source', '...files', 'dest'], // '...files' is variadic
294
309
  options: {
295
- verbose: { alias: 'v', env: 'VERBOSE' },
296
- config: { configKey: 'settings.config' },
310
+ verbose: { alias: 'v' },
311
+ format: { deprecated: 'Use --output instead' },
297
312
  },
298
313
  })
299
314
  ```
@@ -308,8 +323,6 @@ z.string().meta({
308
323
  examples: ['value'], // Example values for help text
309
324
  deprecated: 'message', // Mark as deprecated
310
325
  hidden: true, // Hide from help output
311
- env: 'MY_VAR', // Bind to environment variable
312
- configKey: 'path.key', // Bind to config file key
313
326
  })
314
327
  ```
315
328
 
package/dist/index.d.mts CHANGED
@@ -89,7 +89,7 @@ type PositionalArgs<TObj> = TObj extends Record<string, any> ? { [K in keyof TOb
89
89
  *
90
90
  * @example
91
91
  * ```ts
92
- * .options(schema, {
92
+ * .arguments(schema, {
93
93
  * positional: ['source', '...files', 'dest'], // '...files' is variadic
94
94
  * })
95
95
  * ```
@@ -154,6 +154,59 @@ type CommandIsUnknownable<TCommand> = IsGeneric<TCommand> extends true ? true :
154
154
  */
155
155
  type PickCommandByPossibleCommands<TCommands extends AnyPadroneCommand[], TCommand extends PossibleCommands<TCommands, true, true> | SafeString> = CommandIsUnknownable<TCommand> extends true ? FlattenCommands<TCommands> : TCommand extends AnyPadroneCommand ? TCommand : TCommand extends string ? TCommand extends GetCommandPathsOrAliases<TCommands> ? PickCommandByName<TCommands, TCommand> : SplitLastSpace<TCommand> extends [infer Prefix extends string, infer Rest] ? IsNever<Rest> extends true ? PickCommandByName<TCommands, Prefix> : PickCommandByPossibleCommands<TCommands, Prefix> : never : never;
156
156
  //#endregion
157
+ //#region src/wrap.d.ts
158
+ /**
159
+ * Configuration options for wrapping an external CLI tool.
160
+ */
161
+ type WrapConfig<TCommandOpts extends PadroneSchema = PadroneSchema, TWrapOpts extends PadroneSchema = TCommandOpts> = {
162
+ /**
163
+ * The command to execute (e.g., 'git', 'docker', 'npm').
164
+ */
165
+ command: string;
166
+ /**
167
+ * Optional fixed arguments that always precede the options (e.g., ['commit'] for 'git commit').
168
+ */
169
+ args?: string[];
170
+ /**
171
+ * Positional argument configuration for the external command.
172
+ * If not provided, defaults to the wrapping command's positional configuration.
173
+ */
174
+ positional?: string[];
175
+ /**
176
+ * Whether to inherit stdio streams (stdin, stdout, stderr) from the parent process.
177
+ * Default: true
178
+ */
179
+ inheritStdio?: boolean;
180
+ /**
181
+ * Optional schema that transforms command options to external CLI arguments.
182
+ * The schema's input type should match the command options, and its output type defines
183
+ * the arguments expected by the external command.
184
+ * If not provided, command options are passed through as-is.
185
+ */
186
+ schema?: TWrapOpts | ((commandOptions: TCommandOpts) => TWrapOpts);
187
+ };
188
+ /**
189
+ * Result from executing a wrapped CLI tool.
190
+ */
191
+ type WrapResult = {
192
+ /**
193
+ * The exit code of the process.
194
+ */
195
+ exitCode: number;
196
+ /**
197
+ * Standard output from the process (only if inheritStdio is false).
198
+ */
199
+ stdout?: string;
200
+ /**
201
+ * Standard error from the process (only if inheritStdio is false).
202
+ */
203
+ stderr?: string;
204
+ /**
205
+ * Whether the process exited successfully (exit code 0).
206
+ */
207
+ success: boolean;
208
+ };
209
+ //#endregion
157
210
  //#region src/types.d.ts
158
211
  type UnknownRecord = Record<string, unknown>;
159
212
  type EmptyRecord = Record<string, never>;
@@ -253,7 +306,7 @@ type PadroneBuilderMethods<TProgramName extends string, TName extends string, TP
253
306
  * @example
254
307
  * ```ts
255
308
  * // Direct schema
256
- * .options(z.object({
309
+ * .arguments(z.object({
257
310
  * source: z.string(),
258
311
  * files: z.string().array(),
259
312
  * dest: z.string(),
@@ -266,7 +319,7 @@ type PadroneBuilderMethods<TProgramName extends string, TName extends string, TP
266
319
  * @example
267
320
  * ```ts
268
321
  * // Function-based schema extending parent options
269
- * .options((parentOpts) => {
322
+ * .arguments((parentOpts) => {
270
323
  * return z.object({
271
324
  * ...parentOpts.shape,
272
325
  * verbose: z.boolean().default(false),
@@ -274,7 +327,7 @@ type PadroneBuilderMethods<TProgramName extends string, TName extends string, TP
274
327
  * })
275
328
  * ```
276
329
  */
277
- options: <TNewOpts extends PadroneSchema = PadroneSchema<void>>(options?: TNewOpts | ((parentOptions: TParentOpts) => TNewOpts), meta?: GetMeta<TNewOpts>) => BuilderOrProgram<TReturn, TProgramName, TName, TParentName, TNewOpts, TRes, TCommands, TParentOpts, TConfig, TEnv>;
330
+ arguments: <TNewOpts extends PadroneSchema = PadroneSchema<void>>(options?: TNewOpts | ((parentOptions: TParentOpts) => TNewOpts), meta?: GetMeta<TNewOpts>) => BuilderOrProgram<TReturn, TProgramName, TName, TParentName, TNewOpts, TRes, TCommands, TParentOpts, TConfig, TEnv>;
278
331
  /**
279
332
  * Configures config file path(s) and schema for parsing config files.
280
333
  * @example
@@ -297,6 +350,63 @@ type PadroneBuilderMethods<TProgramName extends string, TName extends string, TP
297
350
  * Defines the handler function to be executed when the command is run.
298
351
  */
299
352
  action: <TNewRes>(handler?: (options: StandardSchemaV1.InferOutput<TOpts>) => TNewRes) => BuilderOrProgram<TReturn, TProgramName, TName, TParentName, TOpts, TNewRes, TCommands, TParentOpts, TConfig, TEnv>;
353
+ /**
354
+ * Wraps an external CLI tool with optional schema transformation.
355
+ * The config can include a schema that transforms command options to external CLI arguments.
356
+ *
357
+ * @example
358
+ * ```ts
359
+ * // No transformation - pass options as-is
360
+ * .arguments(z.object({
361
+ * message: z.string(),
362
+ * }))
363
+ * .wrap({
364
+ * command: 'echo',
365
+ * })
366
+ * ```
367
+ *
368
+ * @example
369
+ * ```ts
370
+ * // With transformation schema
371
+ * .arguments(z.object({
372
+ * message: z.string(),
373
+ * all: z.boolean().optional(),
374
+ * }), {
375
+ * positional: ['message'],
376
+ * })
377
+ * .wrap({
378
+ * command: 'git',
379
+ * args: ['commit'],
380
+ * positional: ['m'],
381
+ * schema: z.object({
382
+ * message: z.string(),
383
+ * all: z.boolean().optional(),
384
+ * }).transform(opts => ({
385
+ * m: opts.message,
386
+ * a: opts.all,
387
+ * })),
388
+ * })
389
+ * ```
390
+ *
391
+ * @example
392
+ * ```ts
393
+ * // Using function-based schema for type inference
394
+ * .arguments(z.object({
395
+ * image: z.string(),
396
+ * detach: z.boolean().optional(),
397
+ * }))
398
+ * .wrap({
399
+ * command: 'docker',
400
+ * args: ['run'],
401
+ * positional: ['image'],
402
+ * schema: (cmdOpts) => cmdOpts.transform(opts => ({
403
+ * d: opts.detach,
404
+ * image: opts.image,
405
+ * })),
406
+ * })
407
+ * ```
408
+ */
409
+ wrap: <TWrapOpts extends PadroneSchema = TOpts>(config: WrapConfig<TOpts, TWrapOpts>) => BuilderOrProgram<TReturn, TProgramName, TName, TParentName, TOpts, Promise<WrapResult>, TCommands, TParentOpts, TConfig, TEnv>;
300
410
  /**
301
411
  * Creates a nested command within the current command with the given name and builder function.
302
412
  * The name can be a single string or a tuple of [name, ...aliases] where additional strings are aliases.
@@ -478,8 +588,8 @@ type InferEnvOutput<T extends AnyPadroneCommand> = T['envSchema'] extends Padron
478
588
  * ```ts
479
589
  * const program = createPadrone('cli')
480
590
  * .command('config', c => c
481
- * .command('set', c => c.options(...).action(...))
482
- * .command('get', c => c.options(...).action(...))
591
+ * .command('set', c => c.arguments(...).action(...))
592
+ * .command('get', c => c.arguments(...).action(...))
483
593
  * );
484
594
  *
485
595
  * type SetCommand = InferCommand<typeof program, 'config set'>;
@@ -488,5 +598,5 @@ type InferEnvOutput<T extends AnyPadroneCommand> = T['envSchema'] extends Padron
488
598
  */
489
599
  type InferCommand<T extends AnyPadroneCommand | AnyPadroneProgram, TPath extends PossibleCommands<T extends AnyPadroneCommand ? [T] : T['~types']['commands'], true, true>> = T extends AnyPadroneProgram ? PickCommandByName<[PadroneCommand<'', '', any, any, T['~types']['commands']>], TPath> : T extends AnyPadroneCommand ? PickCommandByName<[T], TPath> : never;
490
600
  //#endregion
491
- export { type AnyPadroneCommand, type AnyPadroneProgram, type HelpArgumentInfo, type HelpFormat, type HelpInfo, type HelpOptionInfo, type HelpOptions, type HelpSubcommandInfo, type InferCommand, type InferConfigInput, type InferConfigOutput, type InferEnvInput, type InferEnvOutput, type InferOptionsInput, type InferOptionsOutput, type PadroneBuilder, type PadroneCommand, type PadroneCommandConfig, type PadroneCommandResult, type PadroneOptionsMeta, type PadroneParseOptions, type PadroneParseResult, type PadroneProgram, type PadroneSchema, createPadrone };
601
+ export { type AnyPadroneCommand, type AnyPadroneProgram, type HelpArgumentInfo, type HelpFormat, type HelpInfo, type HelpOptionInfo, type HelpOptions, type HelpSubcommandInfo, type InferCommand, type InferConfigInput, type InferConfigOutput, type InferEnvInput, type InferEnvOutput, type InferOptionsInput, type InferOptionsOutput, type PadroneBuilder, type PadroneCommand, type PadroneCommandConfig, type PadroneCommandResult, type PadroneOptionsMeta, type PadroneParseOptions, type PadroneParseResult, type PadroneProgram, type PadroneSchema, type WrapConfig, type WrapResult, createPadrone };
492
602
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/formatter.ts","../src/help.ts","../src/options.ts","../src/type-utils.ts","../src/types.ts","../src/create.ts","../src/type-helpers.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/formatter.ts","../src/help.ts","../src/options.ts","../src/type-utils.ts","../src/wrap.ts","../src/types.ts","../src/create.ts","../src/type-helpers.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1147,6 +1147,80 @@ function parseArrayItems(input) {
1147
1147
  return items;
1148
1148
  }
1149
1149
 
1150
+ //#endregion
1151
+ //#region src/wrap.ts
1152
+ /**
1153
+ * Converts parsed options to CLI arguments for an external command.
1154
+ */
1155
+ function optionsToArgs(options, positional = []) {
1156
+ const args = [];
1157
+ if (!options) return args;
1158
+ const positionalValues = {};
1159
+ const regularOptions = {};
1160
+ for (const [key, value] of Object.entries(options)) if (positional.includes(key) || positional.includes(`...${key}`)) positionalValues[key] = value;
1161
+ else regularOptions[key] = value;
1162
+ for (const [key, value] of Object.entries(regularOptions)) {
1163
+ if (value === void 0 || value === null) continue;
1164
+ const flag = `--${key}`;
1165
+ if (typeof value === "boolean") {
1166
+ if (value) args.push(flag);
1167
+ } else if (Array.isArray(value)) for (const item of value) args.push(flag, String(item));
1168
+ else args.push(flag, String(value));
1169
+ }
1170
+ for (const posKey of positional) {
1171
+ const isVariadic = posKey.startsWith("...");
1172
+ const value = positionalValues[isVariadic ? posKey.slice(3) : posKey];
1173
+ if (value === void 0 || value === null) continue;
1174
+ if (isVariadic && Array.isArray(value)) args.push(...value.map(String));
1175
+ else args.push(String(value));
1176
+ }
1177
+ return args;
1178
+ }
1179
+ /**
1180
+ * Creates an action handler that wraps an external CLI tool.
1181
+ * @param config - Configuration for wrapping the external command (includes optional schema)
1182
+ * @param commandOptions - The command's options schema
1183
+ * @param commandPositional - Default positional config from the wrapping command
1184
+ */
1185
+ function createWrapHandler(config, commandOptions, commandPositional) {
1186
+ return async (options) => {
1187
+ const { command, args: fixedArgs = [], inheritStdio = true, positional = commandPositional, schema: wrapSchema } = config;
1188
+ const result = (wrapSchema ? typeof wrapSchema === "function" ? wrapSchema(commandOptions) : wrapSchema : commandOptions)["~standard"].validate(options);
1189
+ if (result instanceof Promise) throw new Error("Async validation is not supported. Wrap schema validate() must return a synchronous result.");
1190
+ if (result.issues) {
1191
+ const issueMessages = result.issues.map((i) => ` - ${i.path?.join(".") || "root"}: ${i.message}`).join("\n");
1192
+ throw new Error(`Wrap schema validation failed:\n${issueMessages}`);
1193
+ }
1194
+ const externalOptions = result.value;
1195
+ const optionArgs = optionsToArgs(externalOptions, positional);
1196
+ const allArgs = [...fixedArgs, ...optionArgs];
1197
+ const proc = Bun.spawn([command, ...allArgs], {
1198
+ stdout: inheritStdio ? "inherit" : "pipe",
1199
+ stderr: inheritStdio ? "inherit" : "pipe",
1200
+ stdin: inheritStdio ? "inherit" : "ignore"
1201
+ });
1202
+ const exitCode = await proc.exited;
1203
+ let stdout;
1204
+ let stderr;
1205
+ if (!inheritStdio) {
1206
+ if (proc.stdout) {
1207
+ const stdoutBuffer = await new Response(proc.stdout).arrayBuffer();
1208
+ stdout = new TextDecoder().decode(stdoutBuffer);
1209
+ }
1210
+ if (proc.stderr) {
1211
+ const stderrBuffer = await new Response(proc.stderr).arrayBuffer();
1212
+ stderr = new TextDecoder().decode(stderrBuffer);
1213
+ }
1214
+ }
1215
+ return {
1216
+ exitCode,
1217
+ stdout,
1218
+ stderr,
1219
+ success: exitCode === 0
1220
+ };
1221
+ };
1222
+ }
1223
+
1150
1224
  //#endregion
1151
1225
  //#region src/create.ts
1152
1226
  const commandSymbol = Symbol("padrone_command");
@@ -1519,6 +1593,21 @@ function createPadroneBuilder(existingCommand) {
1519
1593
  envData,
1520
1594
  configData
1521
1595
  });
1596
+ if (optionsResult?.issues) {
1597
+ const issueMessages = optionsResult.issues.map((i) => ` - ${i.path?.join(".") || "root"}: ${i.message}`).join("\n");
1598
+ if (input === void 0) {
1599
+ const helpText = generateHelp(existingCommand, command, { format: "text" });
1600
+ console.error(`Validation error:\n${issueMessages}`);
1601
+ console.error(helpText);
1602
+ throw new Error(`Validation error:\n${issueMessages}`);
1603
+ }
1604
+ return {
1605
+ command,
1606
+ options: void 0,
1607
+ optionsResult,
1608
+ result: void 0
1609
+ };
1610
+ }
1522
1611
  return {
1523
1612
  ...run(command, options),
1524
1613
  optionsResult
@@ -1589,7 +1678,7 @@ ${generateHelp(existingCommand, void 0, {
1589
1678
  ...config
1590
1679
  });
1591
1680
  },
1592
- options(options, meta) {
1681
+ arguments(options, meta) {
1593
1682
  const resolvedOptions = typeof options === "function" ? options(existingCommand.options) : options;
1594
1683
  return createPadroneBuilder({
1595
1684
  ...existingCommand,
@@ -1619,6 +1708,13 @@ ${generateHelp(existingCommand, void 0, {
1619
1708
  handler
1620
1709
  });
1621
1710
  },
1711
+ wrap(config) {
1712
+ const handler = createWrapHandler(config, existingCommand.options, existingCommand.meta?.positional);
1713
+ return createPadroneBuilder({
1714
+ ...existingCommand,
1715
+ handler
1716
+ });
1717
+ },
1622
1718
  command(nameOrNames, builderFn) {
1623
1719
  const name = Array.isArray(nameOrNames) ? nameOrNames[0] : nameOrNames;
1624
1720
  const aliases = Array.isArray(nameOrNames) && nameOrNames.length > 1 ? nameOrNames.slice(1) : void 0;