@alcyone-labs/arg-parser 2.12.3 → 2.13.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.
- package/README.md +139 -1
- 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 +55 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.min.mjs +1281 -1243
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +55 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,8 +34,8 @@ 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
|
- [MCP & Claude Desktop Integration](#mcp--claude-desktop-integration)
|
|
40
40
|
- [Output Schema Support](#output-schema-support)
|
|
41
41
|
- [Basic Usage](#basic-usage)
|
|
@@ -79,6 +79,8 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
79
79
|
- [Typical Errors](#typical-errors)
|
|
80
80
|
- [System Flags & Configuration](#system-flags--configuration)
|
|
81
81
|
- [Changelog](#changelog)
|
|
82
|
+
- [v2.13.1](#v2131)
|
|
83
|
+
- [v2.13.0](#v2130)
|
|
82
84
|
- [v2.12.3](#v2123)
|
|
83
85
|
- [v2.12.2](#v2122)
|
|
84
86
|
- [v2.12.0](#v2120)
|
|
@@ -682,6 +684,7 @@ interface IFlag {
|
|
|
682
684
|
validate?: (value: any, parsedArgs?: any) => boolean | string | void; // Custom validation function
|
|
683
685
|
allowMultiple?: boolean; // Allow the flag to be provided multiple times
|
|
684
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.
|
|
685
688
|
dxtOptions?: DxtOptions; // Customizes how this flag appears in DXT package user_config
|
|
686
689
|
}
|
|
687
690
|
|
|
@@ -1198,6 +1201,97 @@ Notes:
|
|
|
1198
1201
|
- Inherited behavior works normally: if loader lives on a parent parser and children use `inheritParentFlags`, dynamic flags will be visible to children
|
|
1199
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
|
|
1200
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
|
+
|
|
1210
|
+
```bash
|
|
1211
|
+
workflow show --id 8fadf090-xxx
|
|
1212
|
+
```
|
|
1213
|
+
|
|
1214
|
+
**After:**
|
|
1215
|
+
|
|
1216
|
+
```bash
|
|
1217
|
+
workflow show 8fadf090-xxx
|
|
1218
|
+
```
|
|
1219
|
+
|
|
1220
|
+
#### Basic Usage
|
|
1221
|
+
|
|
1222
|
+
Add the `positional` property to a flag definition. The value is 1-indexed (first trailing arg = 1, second = 2, etc.):
|
|
1223
|
+
|
|
1224
|
+
```typescript
|
|
1225
|
+
const cli = new ArgParser()
|
|
1226
|
+
.addFlag({
|
|
1227
|
+
name: "id",
|
|
1228
|
+
type: "string",
|
|
1229
|
+
mandatory: true,
|
|
1230
|
+
options: ["--id"], // Fallback syntax: --id <value>
|
|
1231
|
+
positional: 1, // Primary: captures first trailing arg
|
|
1232
|
+
description: "Resource ID to show",
|
|
1233
|
+
valueHint: "ID", // Used in help text: <ID>
|
|
1234
|
+
})
|
|
1235
|
+
.setHandler((ctx) => {
|
|
1236
|
+
console.log(`Showing: ${ctx.args.id}`);
|
|
1237
|
+
});
|
|
1238
|
+
|
|
1239
|
+
// Both work:
|
|
1240
|
+
// cli.parse(["abc123"]) → id = "abc123"
|
|
1241
|
+
// cli.parse(["--id", "abc123"]) → id = "abc123"
|
|
1242
|
+
```
|
|
1243
|
+
|
|
1244
|
+
#### Multiple Positional Arguments
|
|
1245
|
+
|
|
1246
|
+
Capture multiple trailing arguments using different positional indices:
|
|
1247
|
+
|
|
1248
|
+
```typescript
|
|
1249
|
+
const cli = new ArgParser().addFlags([
|
|
1250
|
+
{
|
|
1251
|
+
name: "source",
|
|
1252
|
+
type: "string",
|
|
1253
|
+
mandatory: true,
|
|
1254
|
+
options: ["--source", "-s"],
|
|
1255
|
+
positional: 1, // First trailing arg
|
|
1256
|
+
valueHint: "SOURCE",
|
|
1257
|
+
},
|
|
1258
|
+
{
|
|
1259
|
+
name: "dest",
|
|
1260
|
+
type: "string",
|
|
1261
|
+
mandatory: true,
|
|
1262
|
+
options: ["--dest", "-d"],
|
|
1263
|
+
positional: 2, // Second trailing arg
|
|
1264
|
+
valueHint: "DEST",
|
|
1265
|
+
},
|
|
1266
|
+
]);
|
|
1267
|
+
|
|
1268
|
+
// Usage: copy file.txt backup/
|
|
1269
|
+
// Result: source = "file.txt", dest = "backup/"
|
|
1270
|
+
```
|
|
1271
|
+
|
|
1272
|
+
#### Precedence Rules
|
|
1273
|
+
|
|
1274
|
+
- **Flag syntax takes priority**: If both `--flag value` AND a positional arg are provided, the flag value is used
|
|
1275
|
+
- **Either satisfies mandatory**: A mandatory flag is satisfied by EITHER positional or flag syntax
|
|
1276
|
+
- **Order matters**: Positional args are assigned in index order (1, 2, 3...)
|
|
1277
|
+
- **Type coercion applies**: Positional values go through the same type coercion as flag values
|
|
1278
|
+
|
|
1279
|
+
#### Help Text
|
|
1280
|
+
|
|
1281
|
+
When positional arguments are defined, help text automatically shows a usage pattern:
|
|
1282
|
+
|
|
1283
|
+
```
|
|
1284
|
+
Usage: workflow show [OPTIONS] <ID>
|
|
1285
|
+
|
|
1286
|
+
Flags:
|
|
1287
|
+
--id Resource ID to show
|
|
1288
|
+
Type: string
|
|
1289
|
+
Example: --id value
|
|
1290
|
+
Positional argument #1
|
|
1291
|
+
```
|
|
1292
|
+
|
|
1293
|
+
Mandatory positional args appear as `<NAME>`, optional as `[NAME]`.
|
|
1294
|
+
|
|
1201
1295
|
### Automatic Help Display
|
|
1202
1296
|
|
|
1203
1297
|
ArgParser provides features to automatically show help messages when a command is invoked incorrectly or as a "container" command.
|
|
@@ -2304,6 +2398,50 @@ ArgParser includes built-in `--s-*` flags for development, debugging, and config
|
|
|
2304
2398
|
|
|
2305
2399
|
## Changelog
|
|
2306
2400
|
|
|
2401
|
+
### v2.13.1
|
|
2402
|
+
|
|
2403
|
+
**Fixes**
|
|
2404
|
+
|
|
2405
|
+
- OpenTUI implementation now properly exits and cleans the context
|
|
2406
|
+
- Sub-command description now properly displays in displayHelp() screen
|
|
2407
|
+
|
|
2408
|
+
### v2.13.0
|
|
2409
|
+
|
|
2410
|
+
**New Feature: Positional Arguments**
|
|
2411
|
+
|
|
2412
|
+
Added support for positional (trailing) arguments, enabling more natural CLI syntax:
|
|
2413
|
+
|
|
2414
|
+
```bash
|
|
2415
|
+
# Before: flags required
|
|
2416
|
+
workflow show --id 8fadf090-xxx
|
|
2417
|
+
|
|
2418
|
+
# After: positional syntax works too!
|
|
2419
|
+
workflow show 8fadf090-xxx
|
|
2420
|
+
```
|
|
2421
|
+
|
|
2422
|
+
Flags can now specify `positional: N` (1-indexed) to capture trailing arguments:
|
|
2423
|
+
|
|
2424
|
+
```typescript
|
|
2425
|
+
.addFlag({
|
|
2426
|
+
name: "id",
|
|
2427
|
+
type: "string",
|
|
2428
|
+
mandatory: true,
|
|
2429
|
+
options: ["--id"], // Still works as fallback
|
|
2430
|
+
positional: 1, // Captures first trailing arg
|
|
2431
|
+
description: "Resource ID",
|
|
2432
|
+
})
|
|
2433
|
+
```
|
|
2434
|
+
|
|
2435
|
+
Key features:
|
|
2436
|
+
|
|
2437
|
+
- **Dual syntax**: Both `--flag value` and positional work interchangeably
|
|
2438
|
+
- **Precedence**: Flag syntax takes priority if both provided
|
|
2439
|
+
- **Multiple positional args**: Use `positional: 1`, `positional: 2`, etc.
|
|
2440
|
+
- **Help text enhancement**: Shows usage pattern like `Usage: cmd [OPTIONS] <ID>`
|
|
2441
|
+
- **Full validation**: Works with `mandatory`, type coercion, and enum validation
|
|
2442
|
+
|
|
2443
|
+
See [Positional Arguments](#positional-arguments) for complete documentation.
|
|
2444
|
+
|
|
2307
2445
|
### v2.12.3
|
|
2308
2446
|
|
|
2309
2447
|
**Fixes**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/core/ArgParserBase.ts"],"names":[],"mappings":"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
|
|
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":"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"}
|
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 };
|
|
@@ -4104,6 +4107,9 @@ class ArgParserBase {
|
|
|
4104
4107
|
if (!subParser.#appCommandName && this.#appCommandName) {
|
|
4105
4108
|
subParser.#appCommandName = this.#appCommandName;
|
|
4106
4109
|
}
|
|
4110
|
+
if (subCommandConfig.description) {
|
|
4111
|
+
subParser.#description = subCommandConfig.description;
|
|
4112
|
+
}
|
|
4107
4113
|
subParser.#autoExit = this.#autoExit;
|
|
4108
4114
|
subParser.#triggerAutoHelpIfNoHandler = this.#triggerAutoHelpIfNoHandler;
|
|
4109
4115
|
const shouldInherit = subParser.#inheritParentFlags === true || subParser.#inheritParentFlags === FlagInheritance.DirectParentOnly || subParser.#inheritParentFlags === FlagInheritance.AllParents;
|
|
@@ -4472,7 +4478,11 @@ class ArgParserBase {
|
|
|
4472
4478
|
const autoDiscoveredEnvFile = this.#configurationManager.discoverEnvFile(basePath);
|
|
4473
4479
|
if (autoDiscoveredEnvFile) {
|
|
4474
4480
|
console.warn(`Auto-discovered env file: ${autoDiscoveredEnvFile}`);
|
|
4475
|
-
dotenv.config({
|
|
4481
|
+
dotenv.config({
|
|
4482
|
+
path: autoDiscoveredEnvFile,
|
|
4483
|
+
quiet: true,
|
|
4484
|
+
override: true
|
|
4485
|
+
});
|
|
4476
4486
|
try {
|
|
4477
4487
|
const { finalParser: envFinalParser, parserChain: envParserChain } = this.#_identifyCommandChainAndParsers(
|
|
4478
4488
|
processArgs,
|
|
@@ -5217,6 +5227,31 @@ class ArgParserBase {
|
|
|
5217
5227
|
}
|
|
5218
5228
|
}
|
|
5219
5229
|
}
|
|
5230
|
+
const trailingArgs = [];
|
|
5231
|
+
for (let i = 0; i < args.length; i++) {
|
|
5232
|
+
if (!consumedIndices.has(i)) {
|
|
5233
|
+
const arg = args[i];
|
|
5234
|
+
if (!arg.startsWith("-")) {
|
|
5235
|
+
trailingArgs.push({ index: i, value: arg });
|
|
5236
|
+
}
|
|
5237
|
+
}
|
|
5238
|
+
}
|
|
5239
|
+
const positionalFlags = flags.filter(
|
|
5240
|
+
(f) => typeof f["positional"] === "number" && f["positional"] > 0
|
|
5241
|
+
).sort(
|
|
5242
|
+
(a, b) => a["positional"] - b["positional"]
|
|
5243
|
+
);
|
|
5244
|
+
for (const posFlag of positionalFlags) {
|
|
5245
|
+
const posIndex = posFlag["positional"] - 1;
|
|
5246
|
+
const existingValue = output[posFlag["name"]];
|
|
5247
|
+
const hasExistingValue = posFlag["allowMultiple"] ? Array.isArray(existingValue) && existingValue.length > 0 : existingValue !== void 0;
|
|
5248
|
+
if (hasExistingValue) continue;
|
|
5249
|
+
if (posIndex < trailingArgs.length) {
|
|
5250
|
+
const trailing = trailingArgs[posIndex];
|
|
5251
|
+
await this._addToOutput(posFlag, trailing.value, output, options);
|
|
5252
|
+
consumedIndices.add(trailing.index);
|
|
5253
|
+
}
|
|
5254
|
+
}
|
|
5220
5255
|
let firstUnconsumedIndex = args.length;
|
|
5221
5256
|
for (let i = 0; i < args.length; i++) {
|
|
5222
5257
|
if (!consumedIndices.has(i)) {
|
|
@@ -5250,6 +5285,22 @@ class ArgParserBase {
|
|
|
5250
5285
|
`;
|
|
5251
5286
|
}
|
|
5252
5287
|
const indent = (level = 1) => " ".repeat(level);
|
|
5288
|
+
const positionalFlagsForUsage = this.#flagManager.flags.filter(
|
|
5289
|
+
(f) => typeof f["positional"] === "number" && f["positional"] > 0
|
|
5290
|
+
).sort(
|
|
5291
|
+
(a, b) => a["positional"] - b["positional"]
|
|
5292
|
+
);
|
|
5293
|
+
if (positionalFlagsForUsage.length > 0) {
|
|
5294
|
+
const commandName = this.#subCommandName || this.#appCommandName || this.#appName;
|
|
5295
|
+
const posArgs = positionalFlagsForUsage.map((f) => {
|
|
5296
|
+
const isMandatory = typeof f["mandatory"] === "function" ? true : f["mandatory"];
|
|
5297
|
+
const argName = f["valueHint"] || f["name"].toUpperCase();
|
|
5298
|
+
return isMandatory ? `<${argName}>` : `[${argName}]`;
|
|
5299
|
+
}).join(" ");
|
|
5300
|
+
help += `${cyan("Usage:")} ${commandName} [OPTIONS] ${posArgs}
|
|
5301
|
+
|
|
5302
|
+
`;
|
|
5303
|
+
}
|
|
5253
5304
|
if (this.#subCommands.size > 0) {
|
|
5254
5305
|
help += `${cyan("Available sub-commands:")}
|
|
5255
5306
|
`;
|
|
@@ -5386,6 +5437,9 @@ ${cyan("Flags:")}
|
|
|
5386
5437
|
`Allowed values: ${flag["enum"].map((v) => `'${v}'`).join(", ")}`
|
|
5387
5438
|
);
|
|
5388
5439
|
}
|
|
5440
|
+
if (typeof flag["positional"] === "number" && flag["positional"] > 0) {
|
|
5441
|
+
metaLines.push(`Positional argument #${flag["positional"]}`);
|
|
5442
|
+
}
|
|
5389
5443
|
const maxOptionLength = Math.max(
|
|
5390
5444
|
...localFlags.map(
|
|
5391
5445
|
(f) => f["options"].join(", ").length
|