@alcyone-labs/arg-parser 2.12.2 → 2.13.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/README.md +136 -0
- package/dist/core/ArgParserBase.d.ts.map +1 -1
- package/dist/core/types.d.ts +26 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.cjs +58 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.min.mjs +1264 -1223
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +58 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,6 +34,7 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
34
34
|
- [MCP Exposure Control](#mcp-exposure-control)
|
|
35
35
|
- [Flag Inheritance (`inheritParentFlags`)](#flag-inheritance-inheritparentflags)
|
|
36
36
|
- [Dynamic Flags (`dynamicRegister`)](#dynamic-flags-dynamicregister)
|
|
37
|
+
- [Positional Arguments](#positional-arguments)
|
|
37
38
|
- [Automatic Help Display](#automatic-help-display)
|
|
38
39
|
|
|
39
40
|
- [MCP & Claude Desktop Integration](#mcp--claude-desktop-integration)
|
|
@@ -79,6 +80,8 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
79
80
|
- [Typical Errors](#typical-errors)
|
|
80
81
|
- [System Flags & Configuration](#system-flags--configuration)
|
|
81
82
|
- [Changelog](#changelog)
|
|
83
|
+
- [v2.13.0](#v2130)
|
|
84
|
+
- [v2.12.3](#v2123)
|
|
82
85
|
- [v2.12.2](#v2122)
|
|
83
86
|
- [v2.12.0](#v2120)
|
|
84
87
|
- [v2.11.0](#v2110)
|
|
@@ -681,6 +684,7 @@ interface IFlag {
|
|
|
681
684
|
validate?: (value: any, parsedArgs?: any) => boolean | string | void; // Custom validation function
|
|
682
685
|
allowMultiple?: boolean; // Allow the flag to be provided multiple times
|
|
683
686
|
env?: string | string[]; // Maps flag to environment variable(s). Logic: Fallback (Env -> Flag) and Sync (Flag -> Env). Precedence: Flag > Env > Default.
|
|
687
|
+
positional?: number; // Captures Nth trailing positional argument (1-indexed). See Positional Arguments section.
|
|
684
688
|
dxtOptions?: DxtOptions; // Customizes how this flag appears in DXT package user_config
|
|
685
689
|
}
|
|
686
690
|
|
|
@@ -1197,6 +1201,95 @@ Notes:
|
|
|
1197
1201
|
- Inherited behavior works normally: if loader lives on a parent parser and children use `inheritParentFlags`, dynamic flags will be visible to children
|
|
1198
1202
|
- For heavy loaders, implement app-level caching inside your `dynamicRegister` (e.g., memoize by absolute path + mtime); library-level caching may be added later
|
|
1199
1203
|
|
|
1204
|
+
### Positional Arguments
|
|
1205
|
+
|
|
1206
|
+
ArgParser supports positional (trailing) arguments for a more natural CLI syntax. Instead of requiring flags for every value, you can capture trailing arguments by position.
|
|
1207
|
+
|
|
1208
|
+
**Before:**
|
|
1209
|
+
```bash
|
|
1210
|
+
workflow show --id 8fadf090-xxx
|
|
1211
|
+
```
|
|
1212
|
+
|
|
1213
|
+
**After:**
|
|
1214
|
+
```bash
|
|
1215
|
+
workflow show 8fadf090-xxx
|
|
1216
|
+
```
|
|
1217
|
+
|
|
1218
|
+
#### Basic Usage
|
|
1219
|
+
|
|
1220
|
+
Add the `positional` property to a flag definition. The value is 1-indexed (first trailing arg = 1, second = 2, etc.):
|
|
1221
|
+
|
|
1222
|
+
```typescript
|
|
1223
|
+
const cli = new ArgParser()
|
|
1224
|
+
.addFlag({
|
|
1225
|
+
name: "id",
|
|
1226
|
+
type: "string",
|
|
1227
|
+
mandatory: true,
|
|
1228
|
+
options: ["--id"], // Fallback syntax: --id <value>
|
|
1229
|
+
positional: 1, // Primary: captures first trailing arg
|
|
1230
|
+
description: "Resource ID to show",
|
|
1231
|
+
valueHint: "ID", // Used in help text: <ID>
|
|
1232
|
+
})
|
|
1233
|
+
.setHandler((ctx) => {
|
|
1234
|
+
console.log(`Showing: ${ctx.args.id}`);
|
|
1235
|
+
});
|
|
1236
|
+
|
|
1237
|
+
// Both work:
|
|
1238
|
+
// cli.parse(["abc123"]) → id = "abc123"
|
|
1239
|
+
// cli.parse(["--id", "abc123"]) → id = "abc123"
|
|
1240
|
+
```
|
|
1241
|
+
|
|
1242
|
+
#### Multiple Positional Arguments
|
|
1243
|
+
|
|
1244
|
+
Capture multiple trailing arguments using different positional indices:
|
|
1245
|
+
|
|
1246
|
+
```typescript
|
|
1247
|
+
const cli = new ArgParser().addFlags([
|
|
1248
|
+
{
|
|
1249
|
+
name: "source",
|
|
1250
|
+
type: "string",
|
|
1251
|
+
mandatory: true,
|
|
1252
|
+
options: ["--source", "-s"],
|
|
1253
|
+
positional: 1, // First trailing arg
|
|
1254
|
+
valueHint: "SOURCE",
|
|
1255
|
+
},
|
|
1256
|
+
{
|
|
1257
|
+
name: "dest",
|
|
1258
|
+
type: "string",
|
|
1259
|
+
mandatory: true,
|
|
1260
|
+
options: ["--dest", "-d"],
|
|
1261
|
+
positional: 2, // Second trailing arg
|
|
1262
|
+
valueHint: "DEST",
|
|
1263
|
+
},
|
|
1264
|
+
]);
|
|
1265
|
+
|
|
1266
|
+
// Usage: copy file.txt backup/
|
|
1267
|
+
// Result: source = "file.txt", dest = "backup/"
|
|
1268
|
+
```
|
|
1269
|
+
|
|
1270
|
+
#### Precedence Rules
|
|
1271
|
+
|
|
1272
|
+
- **Flag syntax takes priority**: If both `--flag value` AND a positional arg are provided, the flag value is used
|
|
1273
|
+
- **Either satisfies mandatory**: A mandatory flag is satisfied by EITHER positional or flag syntax
|
|
1274
|
+
- **Order matters**: Positional args are assigned in index order (1, 2, 3...)
|
|
1275
|
+
- **Type coercion applies**: Positional values go through the same type coercion as flag values
|
|
1276
|
+
|
|
1277
|
+
#### Help Text
|
|
1278
|
+
|
|
1279
|
+
When positional arguments are defined, help text automatically shows a usage pattern:
|
|
1280
|
+
|
|
1281
|
+
```
|
|
1282
|
+
Usage: workflow show [OPTIONS] <ID>
|
|
1283
|
+
|
|
1284
|
+
Flags:
|
|
1285
|
+
--id Resource ID to show
|
|
1286
|
+
Type: string
|
|
1287
|
+
Example: --id value
|
|
1288
|
+
Positional argument #1
|
|
1289
|
+
```
|
|
1290
|
+
|
|
1291
|
+
Mandatory positional args appear as `<NAME>`, optional as `[NAME]`.
|
|
1292
|
+
|
|
1200
1293
|
### Automatic Help Display
|
|
1201
1294
|
|
|
1202
1295
|
ArgParser provides features to automatically show help messages when a command is invoked incorrectly or as a "container" command.
|
|
@@ -2303,6 +2396,49 @@ ArgParser includes built-in `--s-*` flags for development, debugging, and config
|
|
|
2303
2396
|
|
|
2304
2397
|
## Changelog
|
|
2305
2398
|
|
|
2399
|
+
### v2.13.0
|
|
2400
|
+
|
|
2401
|
+
**New Feature: Positional Arguments**
|
|
2402
|
+
|
|
2403
|
+
Added support for positional (trailing) arguments, enabling more natural CLI syntax:
|
|
2404
|
+
|
|
2405
|
+
```bash
|
|
2406
|
+
# Before: flags required
|
|
2407
|
+
workflow show --id 8fadf090-xxx
|
|
2408
|
+
|
|
2409
|
+
# After: positional syntax works too!
|
|
2410
|
+
workflow show 8fadf090-xxx
|
|
2411
|
+
```
|
|
2412
|
+
|
|
2413
|
+
Flags can now specify `positional: N` (1-indexed) to capture trailing arguments:
|
|
2414
|
+
|
|
2415
|
+
```typescript
|
|
2416
|
+
.addFlag({
|
|
2417
|
+
name: "id",
|
|
2418
|
+
type: "string",
|
|
2419
|
+
mandatory: true,
|
|
2420
|
+
options: ["--id"], // Still works as fallback
|
|
2421
|
+
positional: 1, // Captures first trailing arg
|
|
2422
|
+
description: "Resource ID",
|
|
2423
|
+
})
|
|
2424
|
+
```
|
|
2425
|
+
|
|
2426
|
+
Key features:
|
|
2427
|
+
- **Dual syntax**: Both `--flag value` and positional work interchangeably
|
|
2428
|
+
- **Precedence**: Flag syntax takes priority if both provided
|
|
2429
|
+
- **Multiple positional args**: Use `positional: 1`, `positional: 2`, etc.
|
|
2430
|
+
- **Help text enhancement**: Shows usage pattern like `Usage: cmd [OPTIONS] <ID>`
|
|
2431
|
+
- **Full validation**: Works with `mandatory`, type coercion, and enum validation
|
|
2432
|
+
|
|
2433
|
+
See [Positional Arguments](#positional-arguments) for complete documentation.
|
|
2434
|
+
|
|
2435
|
+
### v2.12.3
|
|
2436
|
+
|
|
2437
|
+
**Fixes**
|
|
2438
|
+
|
|
2439
|
+
- Make sure that when setWorkingDir is used, the newly discovered .env override process.env variables
|
|
2440
|
+
- Display subcommand descriptions on separate lines for better readability
|
|
2441
|
+
|
|
2306
2442
|
### v2.12.2
|
|
2307
2443
|
|
|
2308
2444
|
**Fixes**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/core/ArgParserBase.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAG/E,OAAO,EACL,uBAAuB,EACvB,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EACV,UAAU,EACV,KAAK,EACL,eAAe,EAEf,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,qBAAa,cAAe,SAAQ,KAAK;IAI9B,QAAQ,EAAE,MAAM,EAAE;IAHpB,YAAY,EAAE,MAAM,EAAE,CAAC;gBAE5B,OAAO,EAAE,MAAM,EACR,QAAQ,GAAE,MAAM,EAAO;CAMjC;AAED,MAAM,WAAW,gBAAgB,CAAC,cAAc,GAAG,GAAG;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,CACR,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,KAC3B,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IACtC;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,sBAAsB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;CACpE,CAAC;AAcF,qBAAa,aAAa,CACxB,cAAc,GAAG,GAAG,CACpB,YAAW,UAAU,CAAC,cAAc,CAAC;;gBA8CnC,OAAO,GAAE,gBAAgB,CAAC,cAAc,CAAM,EAC9C,YAAY,CAAC,EAAE,SAAS,KAAK,EAAE;IA4EjC,IAAI,KAAK,IAAI,aAAa,EAAE,CAE3B;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAEM,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAI9C;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,iBAAiB,IAAI,MAAM;IAI3B,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,WAAW,IAAI,OAAO;IAI7B;;;OAGG;IACH,OAAO,CAAC,WAAW;IA0BZ,UAAU,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,SAAS;IAI1D,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;YAInC,YAAY;IA8I1B,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAKvC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAK1B,aAAa,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;IA0FlD;;;;;;;OAOG;IACH,UAAU,CACR,OAAO,EAAE,CACP,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,KAC3B,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,GAC5C,IAAI;IAKP,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/core/ArgParserBase.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -114,6 +114,7 @@ export declare const zodFlagSchema: z.ZodPipe<z.ZodObject<{
|
|
|
114
114
|
}, z.core.$strict>>;
|
|
115
115
|
dynamicRegister: z.ZodOptional<z.ZodCustom<DynamicRegisterFn, DynamicRegisterFn>>;
|
|
116
116
|
setWorkingDirectory: z.ZodOptional<z.ZodBoolean>;
|
|
117
|
+
positional: z.ZodOptional<z.ZodNumber>;
|
|
117
118
|
}, z.core.$strip>, z.ZodTransform<{
|
|
118
119
|
[key: string]: any;
|
|
119
120
|
}, {
|
|
@@ -142,6 +143,7 @@ export declare const zodFlagSchema: z.ZodPipe<z.ZodObject<{
|
|
|
142
143
|
} | undefined;
|
|
143
144
|
dynamicRegister?: DynamicRegisterFn | undefined;
|
|
144
145
|
setWorkingDirectory?: boolean | undefined;
|
|
146
|
+
positional?: number | undefined;
|
|
145
147
|
}>>;
|
|
146
148
|
/**
|
|
147
149
|
* The raw input type for defining a flag, before Zod processing (aliases, defaults).
|
|
@@ -223,6 +225,29 @@ export type IFlag = IFlagCore & {
|
|
|
223
225
|
* ```
|
|
224
226
|
*/
|
|
225
227
|
setWorkingDirectory?: boolean;
|
|
228
|
+
/**
|
|
229
|
+
* Captures the Nth trailing positional argument (1-indexed).
|
|
230
|
+
*
|
|
231
|
+
* - `positional: 1` captures the first trailing arg
|
|
232
|
+
* - `positional: 2` captures the second trailing arg
|
|
233
|
+
* - etc.
|
|
234
|
+
*
|
|
235
|
+
* Positional args are assigned AFTER all flags and subcommands are parsed.
|
|
236
|
+
* The flag's `options` array still works as a fallback (e.g., `--id xxx`).
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```typescript
|
|
240
|
+
* .addFlag({
|
|
241
|
+
* name: "id",
|
|
242
|
+
* type: "string",
|
|
243
|
+
* mandatory: true,
|
|
244
|
+
* options: ["--id"], // Fallback: --id xxx
|
|
245
|
+
* positional: 1, // Primary: workflow show xxx
|
|
246
|
+
* description: "Workflow ID to show",
|
|
247
|
+
* })
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
positional?: number;
|
|
226
251
|
};
|
|
227
252
|
/**
|
|
228
253
|
* Context for dynamic flag registration callbacks.
|
|
@@ -250,6 +275,7 @@ export type ProcessedFlag = Omit<ProcessedFlagCore, "validate" | "enum" | "manda
|
|
|
250
275
|
mandatory?: boolean | ((parsedArgs: TParsedArgs<ProcessedFlag[]>) => boolean);
|
|
251
276
|
env?: string | string[];
|
|
252
277
|
dynamicRegister?: DynamicRegisterFn;
|
|
278
|
+
positional?: number;
|
|
253
279
|
};
|
|
254
280
|
/**
|
|
255
281
|
* Resolves the TypeScript type from a flag's `type` definition.
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAIzC,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,CACb,UAAU,CAAC,EAAE,GAAG,EAChB,WAAW,CAAC,EAAE,GAAG,EACjB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhB,2BAA2B,CACzB,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,GAAG,EACrB,WAAW,EAAE,GAAG,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,oCAAoC,CAClC,UAAU,EAAE,GAAG,EACf,UAAU,EAAE,GAAG,EAAE,EACjB,WAAW,EAAE,GAAG,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,kBAAkB,IAAI,GAAG,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,cAAc,GAAG,GAAG;IAE9C,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAAC;IACxC,iBAAiB,IAAI,MAAM,CAAC;IAC5B,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IACrC,WAAW,IAAI,OAAO,CAAC;IACvB,UAAU,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,GAAG,CAAC;IAGlB,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;IAC7B,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI,CAAC;IACxC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAG3D,aAAa,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACnD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAGrD,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAG3D,UAAU,CACR,OAAO,EAAE,CACP,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,KAC3B,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,GAC5C,IAAI,CAAC;IAGR,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,IAAI,MAAM,EAAE,CAAC;IAG5B,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,eAAe,IAAI,GAAG,EAAE,CAAC;IACzB,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAChC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,aAAa,IAAI,GAAG,EAAE,CAAC;IAGvB,kBAAkB,CAAC,IAAI,GAAG,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B;;OAEG;;IAEH;;;OAGG;;IAEH;;;OAGG;;CAEK,CAAC;AAEX,MAAM,MAAM,gBAAgB,GACxB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,GACtD,OAAO,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;kBAyD7B,CAAC;AAEJ,eAAO,MAAM,aAAa;;;;;;;;kHAuDD,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAA7B,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;qFA2B5B,GAAG,eAAe,GAAG,KAAK,OAAO,WAAjC,GAAG,eAAe,GAAG,KAAK,OAAO;;iDAkBzC,GAAG,eACE,GAAG,KACb,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,WAFrD,GAAG,eACE,GAAG,KACb,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCApB7C,GAAG,eAAe,GAAG,KAAK,OAAO;yBAkBzC,GAAG,eACE,GAAG,KACb,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;GAgEnE,CAAC;AAEL;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAClC,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,GACxB,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,GACjC,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,CAAC;AAEb;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,EAAE,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,0BAA0B,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+GAA+G;IAC/G,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,yFAAyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,kGAAkG;IAClG,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAE9D,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sEAAsE;IACtE,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG;IAC9B,0BAA0B;IAC1B,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC;IACjE,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,GAAG,EAAE,sBAAsB,KACxB,OAAO,CAAC,SAAS,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,KAAK,EAAE,GAAG,IAAI,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,iBAAiB,EACjB,UAAU,GAAG,MAAM,GAAG,WAAW,CAClC,GAAG;IAEF,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,GAAG,EACV,UAAU,CAAC,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,KACtC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;IAC9E,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,0BAA0B,IAC1D,CAAC,SAAS,iBAAiB,GACvB,MAAM,GACN,CAAC,SAAS,iBAAiB,GACzB,MAAM,GACN,CAAC,SAAS,kBAAkB,GAC1B,OAAO,GACP,CAAC,SAAS,gBAAgB,GACxB,GAAG,EAAE,GACL,CAAC,SAAS,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,CAAC,SAAS,UAAU,GAClB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GACV,CAAC,SAAS,QAAQ,GAChB,MAAM,GACN,CAAC,SAAS,QAAQ,GAChB,MAAM,GACN,CAAC,SAAS,SAAS,GACjB,OAAO,GACP,CAAC,SAAS,OAAO,GACf,GAAG,EAAE,GACL,CAAC,SAAS,QAAQ,GAChB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAClC,CAAC,GACD,GAAG,CAAC;AAEhC;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,aAAa,IACrD,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1B,KAAK,CAAC,eAAe,CAAC,SAAS,IAAI,GACjC,OAAO,EAAE,GACT,OAAO,GACT,KAAK,CAAC,eAAe,CAAC,SAAS,IAAI,GACjC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GACjC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnC;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,SAAS,aAAa,EAAE,IAAI;KAChE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe,CAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CACrC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,CACzB,mBAAmB,GAAG,GAAG,EACzB,kBAAkB,GAAG,GAAG,IACtB;IACF,wDAAwD;IACxD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,yEAAyE;IACzE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2FAA2F;IAC3F,MAAM,EAAE,iBAAiB,CAAC;IAC1B,wEAAwE;IACxE,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,0DAA0D;IAE1D,yFAAyF;IACzF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,EAAE,GAAG,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,aAAa,EAAE,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,0BAA0B,GACnC,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CA4CtD;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;OAGG;;;;;;IAcH;;;OAGG;4CAC4B,CAAC,CAAC,UAAU;;;;;;IAc3C;;;OAGG;iCACiB,CAAC,CAAC,UAAU;;;;;IAUhC;;;OAGG;;;;;;;;IAaH;;;OAGG;;;;;;;;CAYK,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,uBAAuB,GACvB,CAAC,CAAC,UAAU,GACZ,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,CAAC,CAAC,UAAU,CAkB5E;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAC1B,gBAAgB,SAAS,UAAU,GAAG,UAAU,EAChD,mBAAmB,SAAS,UAAU,GAAG,UAAU,EACnD,cAAc,GAAG,GAAG;IAEpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAE5E,MAAM,EAAE,iBAAiB,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CACR,GAAG,EAAE,eAAe,CAClB,WAAW,CAAC,gBAAgB,CAAC,EAC7B,WAAW,CAAC,mBAAmB,CAAC,CACjC,KACE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,qDAAqD;IACrD,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;CAC3D;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mHAAmH;IACnH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iGAAiG;IACjG,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,mHAAmH;IACnH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iGAAiG;IACjG,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CACrB,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,kBAAkB,SAAS,UAAU,GAAG,UAAU,EAClD,cAAc,GAAG,GAAG,IAClB,CACF,GAAG,EAAE,eAAe,CAClB,WAAW,CAAC,YAAY,CAAC,EACzB,WAAW,CAAC,kBAAkB,CAAC,CAChC,KACE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -1630,6 +1630,9 @@ const zodFlagSchema = zod.z.object({
|
|
|
1630
1630
|
),
|
|
1631
1631
|
setWorkingDirectory: zod.z.boolean().optional().describe(
|
|
1632
1632
|
"If true, this flag's value becomes the effective working directory for file operations."
|
|
1633
|
+
),
|
|
1634
|
+
positional: zod.z.number().int().positive("Positional index must be a positive integer (1, 2, 3...)").optional().describe(
|
|
1635
|
+
"If set, this flag captures the Nth trailing positional argument (1-indexed). Multiple flags can have different positional values to capture multiple trailing args in order."
|
|
1633
1636
|
)
|
|
1634
1637
|
}).transform((obj) => {
|
|
1635
1638
|
const newObj = { ...obj };
|
|
@@ -4472,7 +4475,11 @@ class ArgParserBase {
|
|
|
4472
4475
|
const autoDiscoveredEnvFile = this.#configurationManager.discoverEnvFile(basePath);
|
|
4473
4476
|
if (autoDiscoveredEnvFile) {
|
|
4474
4477
|
console.warn(`Auto-discovered env file: ${autoDiscoveredEnvFile}`);
|
|
4475
|
-
dotenv.config({
|
|
4478
|
+
dotenv.config({
|
|
4479
|
+
path: autoDiscoveredEnvFile,
|
|
4480
|
+
quiet: true,
|
|
4481
|
+
override: true
|
|
4482
|
+
});
|
|
4476
4483
|
try {
|
|
4477
4484
|
const { finalParser: envFinalParser, parserChain: envParserChain } = this.#_identifyCommandChainAndParsers(
|
|
4478
4485
|
processArgs,
|
|
@@ -5217,6 +5224,31 @@ class ArgParserBase {
|
|
|
5217
5224
|
}
|
|
5218
5225
|
}
|
|
5219
5226
|
}
|
|
5227
|
+
const trailingArgs = [];
|
|
5228
|
+
for (let i = 0; i < args.length; i++) {
|
|
5229
|
+
if (!consumedIndices.has(i)) {
|
|
5230
|
+
const arg = args[i];
|
|
5231
|
+
if (!arg.startsWith("-")) {
|
|
5232
|
+
trailingArgs.push({ index: i, value: arg });
|
|
5233
|
+
}
|
|
5234
|
+
}
|
|
5235
|
+
}
|
|
5236
|
+
const positionalFlags = flags.filter(
|
|
5237
|
+
(f) => typeof f["positional"] === "number" && f["positional"] > 0
|
|
5238
|
+
).sort(
|
|
5239
|
+
(a, b) => a["positional"] - b["positional"]
|
|
5240
|
+
);
|
|
5241
|
+
for (const posFlag of positionalFlags) {
|
|
5242
|
+
const posIndex = posFlag["positional"] - 1;
|
|
5243
|
+
const existingValue = output[posFlag["name"]];
|
|
5244
|
+
const hasExistingValue = posFlag["allowMultiple"] ? Array.isArray(existingValue) && existingValue.length > 0 : existingValue !== void 0;
|
|
5245
|
+
if (hasExistingValue) continue;
|
|
5246
|
+
if (posIndex < trailingArgs.length) {
|
|
5247
|
+
const trailing = trailingArgs[posIndex];
|
|
5248
|
+
await this._addToOutput(posFlag, trailing.value, output, options);
|
|
5249
|
+
consumedIndices.add(trailing.index);
|
|
5250
|
+
}
|
|
5251
|
+
}
|
|
5220
5252
|
let firstUnconsumedIndex = args.length;
|
|
5221
5253
|
for (let i = 0; i < args.length; i++) {
|
|
5222
5254
|
if (!consumedIndices.has(i)) {
|
|
@@ -5250,6 +5282,22 @@ class ArgParserBase {
|
|
|
5250
5282
|
`;
|
|
5251
5283
|
}
|
|
5252
5284
|
const indent = (level = 1) => " ".repeat(level);
|
|
5285
|
+
const positionalFlagsForUsage = this.#flagManager.flags.filter(
|
|
5286
|
+
(f) => typeof f["positional"] === "number" && f["positional"] > 0
|
|
5287
|
+
).sort(
|
|
5288
|
+
(a, b) => a["positional"] - b["positional"]
|
|
5289
|
+
);
|
|
5290
|
+
if (positionalFlagsForUsage.length > 0) {
|
|
5291
|
+
const commandName = this.#subCommandName || this.#appCommandName || this.#appName;
|
|
5292
|
+
const posArgs = positionalFlagsForUsage.map((f) => {
|
|
5293
|
+
const isMandatory = typeof f["mandatory"] === "function" ? true : f["mandatory"];
|
|
5294
|
+
const argName = f["valueHint"] || f["name"].toUpperCase();
|
|
5295
|
+
return isMandatory ? `<${argName}>` : `[${argName}]`;
|
|
5296
|
+
}).join(" ");
|
|
5297
|
+
help += `${cyan("Usage:")} ${commandName} [OPTIONS] ${posArgs}
|
|
5298
|
+
|
|
5299
|
+
`;
|
|
5300
|
+
}
|
|
5253
5301
|
if (this.#subCommands.size > 0) {
|
|
5254
5302
|
help += `${cyan("Available sub-commands:")}
|
|
5255
5303
|
`;
|
|
@@ -5258,7 +5306,12 @@ class ArgParserBase {
|
|
|
5258
5306
|
if (!(actualSubParserInstance instanceof ArgParserBase)) {
|
|
5259
5307
|
return `${indent()}${green(name.padEnd(20))} [Error: Subcommand '${name}' has an invalid parser configuration]`;
|
|
5260
5308
|
}
|
|
5261
|
-
let subHelp = `${indent()}${green(name
|
|
5309
|
+
let subHelp = `${indent()}${green(name)}`;
|
|
5310
|
+
const subDescription = actualSubParserInstance.#description;
|
|
5311
|
+
if (subDescription) {
|
|
5312
|
+
subHelp += `
|
|
5313
|
+
${indent(2)}${white(subDescription)}`;
|
|
5314
|
+
}
|
|
5262
5315
|
const flagsFromSubManager = actualSubParserInstance && actualSubParserInstance.#flagManager ? actualSubParserInstance.#flagManager.flags : void 0;
|
|
5263
5316
|
const subFlags = (flagsFromSubManager || []).filter(
|
|
5264
5317
|
(f) => f["name"] !== "help"
|
|
@@ -5381,6 +5434,9 @@ ${cyan("Flags:")}
|
|
|
5381
5434
|
`Allowed values: ${flag["enum"].map((v) => `'${v}'`).join(", ")}`
|
|
5382
5435
|
);
|
|
5383
5436
|
}
|
|
5437
|
+
if (typeof flag["positional"] === "number" && flag["positional"] > 0) {
|
|
5438
|
+
metaLines.push(`Positional argument #${flag["positional"]}`);
|
|
5439
|
+
}
|
|
5384
5440
|
const maxOptionLength = Math.max(
|
|
5385
5441
|
...localFlags.map(
|
|
5386
5442
|
(f) => f["options"].join(", ").length
|