@alcyone-labs/arg-parser 2.7.2 → 2.8.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 +152 -73
- package/dist/core/ArgParserBase.d.ts +6 -0
- package/dist/core/ArgParserBase.d.ts.map +1 -1
- package/dist/core/FlagManager.d.ts +1 -0
- package/dist/core/FlagManager.d.ts.map +1 -1
- package/dist/core/types.d.ts +20 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.cjs +178 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.min.mjs +3712 -3586
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +178 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -31,6 +31,8 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
31
31
|
- [Hierarchical CLIs (Sub-Commands)](#hierarchical-clis-sub-commands)
|
|
32
32
|
- [MCP Exposure Control](#mcp-exposure-control)
|
|
33
33
|
- [Flag Inheritance (`inheritParentFlags`)](#flag-inheritance-inheritparentflags)
|
|
34
|
+
- [Dynamic Flags (`dynamicRegister`)](#dynamic-flags-dynamicregister)
|
|
35
|
+
|
|
34
36
|
- [MCP & Claude Desktop Integration](#mcp--claude-desktop-integration)
|
|
35
37
|
- [Output Schema Support](#output-schema-support)
|
|
36
38
|
- [Basic Usage](#basic-usage)
|
|
@@ -74,6 +76,7 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
74
76
|
- [Typical Errors](#typical-errors)
|
|
75
77
|
- [System Flags & Configuration](#system-flags--configuration)
|
|
76
78
|
- [Changelog](#changelog)
|
|
79
|
+
- [v2.8.1](#v281)
|
|
77
80
|
- [v2.7.2](#v272)
|
|
78
81
|
- [v2.7.0](#v270)
|
|
79
82
|
- [v2.6.0](#v260)
|
|
@@ -90,6 +93,7 @@ A modern, type-safe command line argument parser with built-in MCP (Model Contex
|
|
|
90
93
|
- [v1.3.0](#v130)
|
|
91
94
|
- [v1.2.0](#v120)
|
|
92
95
|
- [v1.1.0](#v110)
|
|
96
|
+
|
|
93
97
|
- [Backlog](#backlog)
|
|
94
98
|
- [(known) Bugs / DX improvement points](#known-bugs--dx-improvement-points)
|
|
95
99
|
|
|
@@ -354,13 +358,18 @@ const cli = ArgParser.withMcp({
|
|
|
354
358
|
});
|
|
355
359
|
|
|
356
360
|
// Now, this will NOT automatically execute the parser if the script is imported, but will execute if called directly:
|
|
357
|
-
await cli
|
|
358
|
-
|
|
359
|
-
|
|
361
|
+
await cli
|
|
362
|
+
.parse(undefined, {
|
|
363
|
+
importMetaUrl: import.meta.url,
|
|
364
|
+
})
|
|
365
|
+
.catch(handleError);
|
|
360
366
|
|
|
361
367
|
// Or, using the manual APIs:
|
|
362
368
|
await cli.parseIfExecutedDirectly(import.meta.url).catch((error) => {
|
|
363
|
-
console.error(
|
|
369
|
+
console.error(
|
|
370
|
+
"Fatal error:",
|
|
371
|
+
error instanceof Error ? error.message : String(error),
|
|
372
|
+
);
|
|
364
373
|
process.exit(1);
|
|
365
374
|
});
|
|
366
375
|
```
|
|
@@ -986,6 +995,49 @@ const childParser = new ArgParser({ inheritParentFlags: true }).addFlags([
|
|
|
986
995
|
parentParser.addSubCommand({ name: "deploy", parser: childParser });
|
|
987
996
|
```
|
|
988
997
|
|
|
998
|
+
### Dynamic Flags (`dynamicRegister`)
|
|
999
|
+
|
|
1000
|
+
Register flags at runtime from another flag's value (e.g., load a manifest and add flags programmatically). This works in normal runs and when showing `--help`.
|
|
1001
|
+
|
|
1002
|
+
- Two-phase parsing: loader flags run first, can register more flags, then parsing continues with the full set
|
|
1003
|
+
- Help preload: when `--help` is present, dynamic loaders run to show complete help (no command handlers execute)
|
|
1004
|
+
- Cleanup: dynamic flags are removed between parses (no accumulation)
|
|
1005
|
+
- Async-friendly: loaders can be async (e.g., `fs.readFile`)
|
|
1006
|
+
|
|
1007
|
+
```ts
|
|
1008
|
+
import { readFile } from "node:fs/promises";
|
|
1009
|
+
import { ArgParser } from "@alcyone-labs/arg-parser";
|
|
1010
|
+
|
|
1011
|
+
const cli = new ArgParser().addFlags([
|
|
1012
|
+
{
|
|
1013
|
+
name: "manifest",
|
|
1014
|
+
options: ["-w", "--manifest"],
|
|
1015
|
+
type: "string",
|
|
1016
|
+
description: "Path to manifest.json that defines extra flags",
|
|
1017
|
+
dynamicRegister: async ({ value, registerFlags }) => {
|
|
1018
|
+
const json = JSON.parse(await readFile(value, "utf8"));
|
|
1019
|
+
if (Array.isArray(json.flags)) {
|
|
1020
|
+
// Each entry should be a valid IFlag
|
|
1021
|
+
registerFlags(json.flags);
|
|
1022
|
+
}
|
|
1023
|
+
},
|
|
1024
|
+
},
|
|
1025
|
+
]);
|
|
1026
|
+
|
|
1027
|
+
// Examples:
|
|
1028
|
+
// my-cli -w manifest.json --help → help includes dynamic flags
|
|
1029
|
+
// my-cli -w manifest.json --foo bar → dynamic flag "--foo" parsed/validated normally
|
|
1030
|
+
```
|
|
1031
|
+
|
|
1032
|
+
Notes:
|
|
1033
|
+
|
|
1034
|
+
- Inherited behavior works normally: if loader lives on a parent parser and children use `inheritParentFlags`, dynamic flags will be visible to children
|
|
1035
|
+
- For heavy loaders, implement app-level caching inside your `dynamicRegister` (e.g., memoize by absolute path + mtime); library-level caching may be added later
|
|
1036
|
+
|
|
1037
|
+
parentParser.addSubCommand({ name: "deploy", parser: childParser });
|
|
1038
|
+
|
|
1039
|
+
````
|
|
1040
|
+
|
|
989
1041
|
---
|
|
990
1042
|
|
|
991
1043
|
## MCP & Claude Desktop Integration
|
|
@@ -1040,7 +1092,7 @@ import { z } from "zod";
|
|
|
1040
1092
|
|
|
1041
1093
|
// CLI usage (outputSchema ignored): mycli process-file --path /my/file.txt
|
|
1042
1094
|
// MCP usage (outputSchema provides structure): mycli --s-mcp-serve
|
|
1043
|
-
|
|
1095
|
+
````
|
|
1044
1096
|
|
|
1045
1097
|
#### Predefined Schema Patterns
|
|
1046
1098
|
|
|
@@ -1322,35 +1374,37 @@ CORS is often required when connecting a Web UI to an MCP server over HTTP.
|
|
|
1322
1374
|
```ts
|
|
1323
1375
|
import type { McpTransportConfig } from "@alcyone-labs/arg-parser";
|
|
1324
1376
|
|
|
1325
|
-
const defaultTransports: McpTransportConfig[] = [
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1377
|
+
const defaultTransports: McpTransportConfig[] = [
|
|
1378
|
+
{
|
|
1379
|
+
type: "streamable-http",
|
|
1380
|
+
port: 3002,
|
|
1381
|
+
path: "/api/mcp",
|
|
1382
|
+
cors: {
|
|
1383
|
+
origins: ["http://localhost:5173", /^https?:\/\/example\.com$/],
|
|
1384
|
+
methods: ["GET", "POST", "OPTIONS"],
|
|
1385
|
+
headers: ["Content-Type", "Authorization", "MCP-Session-Id"],
|
|
1386
|
+
exposedHeaders: ["MCP-Session-Id"],
|
|
1387
|
+
credentials: true,
|
|
1388
|
+
maxAge: 600,
|
|
1389
|
+
},
|
|
1390
|
+
auth: {
|
|
1391
|
+
required: true,
|
|
1392
|
+
scheme: "jwt", // or "bearer"
|
|
1393
|
+
// Bearer allowlist:
|
|
1394
|
+
// allowedTokens: ["token1","token2"],
|
|
1395
|
+
// JWT verification (HS256):
|
|
1396
|
+
// jwt: { algorithms: ["HS256"], secret: process.env.JWT_SECRET },
|
|
1397
|
+
// JWT verification (RS256 with static public key):
|
|
1398
|
+
// jwt: { algorithms: ["RS256"], publicKey: process.env.RS256_PUBLIC_KEY },
|
|
1399
|
+
// JWT verification (RS256 with dynamic JWKS):
|
|
1400
|
+
// jwt: { algorithms: ["RS256"], getPublicKey: async (header)=>{ /* fetch JWKS and return PEM */ } },
|
|
1401
|
+
publicPaths: ["/health"],
|
|
1402
|
+
protectedPaths: undefined, // if set, only listed paths require auth
|
|
1403
|
+
// Optional custom validator to add extra checks
|
|
1404
|
+
validator: async (req, token) => true,
|
|
1405
|
+
},
|
|
1352
1406
|
},
|
|
1353
|
-
|
|
1407
|
+
];
|
|
1354
1408
|
```
|
|
1355
1409
|
|
|
1356
1410
|
- CLI flags (JSON strings):
|
|
@@ -1374,6 +1428,7 @@ httpServer: {
|
|
|
1374
1428
|
```
|
|
1375
1429
|
|
|
1376
1430
|
See examples:
|
|
1431
|
+
|
|
1377
1432
|
- examples/streamable-http/secure-mcp.ts (HS256)
|
|
1378
1433
|
- examples/streamable-http/rs256-mcp.ts (RS256)
|
|
1379
1434
|
- examples/streamable-http/jwks-mcp.ts (JWKS)
|
|
@@ -1400,9 +1455,12 @@ export type CorsOptions = {
|
|
|
1400
1455
|
```ts
|
|
1401
1456
|
export type JwtVerifyOptions = {
|
|
1402
1457
|
algorithms?: ("HS256" | "RS256")[];
|
|
1403
|
-
secret?: string;
|
|
1404
|
-
publicKey?: string;
|
|
1405
|
-
getPublicKey?: (
|
|
1458
|
+
secret?: string; // HS256
|
|
1459
|
+
publicKey?: string; // RS256 static
|
|
1460
|
+
getPublicKey?: (
|
|
1461
|
+
header: Record<string, unknown>,
|
|
1462
|
+
payload: Record<string, unknown>,
|
|
1463
|
+
) => Promise<string> | string; // RS256 dynamic
|
|
1406
1464
|
audience?: string | string[];
|
|
1407
1465
|
issuer?: string | string[];
|
|
1408
1466
|
clockToleranceSec?: number;
|
|
@@ -1412,10 +1470,13 @@ export type AuthOptions = {
|
|
|
1412
1470
|
required?: boolean; // default true for MCP endpoint
|
|
1413
1471
|
scheme?: "bearer" | "jwt";
|
|
1414
1472
|
allowedTokens?: string[]; // simple bearer allowlist
|
|
1415
|
-
validator?: (
|
|
1473
|
+
validator?: (
|
|
1474
|
+
req: any,
|
|
1475
|
+
token: string | undefined,
|
|
1476
|
+
) => boolean | Promise<boolean>;
|
|
1416
1477
|
jwt?: JwtVerifyOptions;
|
|
1417
|
-
publicPaths?: string[];
|
|
1418
|
-
protectedPaths?: string[];
|
|
1478
|
+
publicPaths?: string[]; // paths that skip auth
|
|
1479
|
+
protectedPaths?: string[]; // if provided, only these paths require auth
|
|
1419
1480
|
customMiddleware?: (req: any, res: any, next: any) => any; // full control hook
|
|
1420
1481
|
};
|
|
1421
1482
|
```
|
|
@@ -1429,17 +1490,17 @@ export type HttpServerOptions = {
|
|
|
1429
1490
|
```
|
|
1430
1491
|
|
|
1431
1492
|
Notes:
|
|
1432
|
-
|
|
1493
|
+
|
|
1494
|
+
- When credentials are true, Access-Control-Allow-Origin echoes the request Origin rather than using "\*".
|
|
1433
1495
|
- You can manage CORS for non-MCP routes in configureExpress.
|
|
1434
1496
|
- Use publicPaths to allow some routes without auth; use protectedPaths to only require auth for certain routes.
|
|
1435
1497
|
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
// LEGACY: logPath: '/var/log/my-mcp-server.log' // Still works
|
|
1498
|
+
log: {
|
|
1499
|
+
level: 'debug', // Capture all log levels
|
|
1500
|
+
logToFile: '/var/log/my-mcp-server.log',
|
|
1501
|
+
prefix: 'MyTool'
|
|
1502
|
+
}
|
|
1503
|
+
// LEGACY: logPath: '/var/log/my-mcp-server.log' // Still works
|
|
1443
1504
|
}
|
|
1444
1505
|
|
|
1445
1506
|
### Adding custom HTTP routes (e.g., /health)
|
|
@@ -1451,10 +1512,18 @@ const cli = ArgParser.withMcp({
|
|
|
1451
1512
|
mcp: {
|
|
1452
1513
|
serverInfo: { name: "my-mcp", version: "1.0.0" },
|
|
1453
1514
|
defaultTransports: [
|
|
1454
|
-
{
|
|
1515
|
+
{
|
|
1516
|
+
type: "streamable-http",
|
|
1517
|
+
port: 3002,
|
|
1518
|
+
path: "/api/mcp",
|
|
1519
|
+
auth: { required: true, publicPaths: ["/health"] },
|
|
1520
|
+
},
|
|
1455
1521
|
],
|
|
1456
|
-
httpServer: {
|
|
1457
|
-
|
|
1522
|
+
httpServer: {
|
|
1523
|
+
configureExpress: (app) =>
|
|
1524
|
+
app.get("/health", (_req, res) => res.json({ ok: true })),
|
|
1525
|
+
},
|
|
1526
|
+
},
|
|
1458
1527
|
});
|
|
1459
1528
|
```
|
|
1460
1529
|
|
|
@@ -1464,29 +1533,30 @@ const cli = ArgParser.withMcp({
|
|
|
1464
1533
|
### Multiple transports and improved logging
|
|
1465
1534
|
|
|
1466
1535
|
const cli = ArgParser.withMcp({
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1536
|
+
appName: 'multi-tool',
|
|
1537
|
+
appCommandName: 'multi-tool',
|
|
1538
|
+
mcp: {
|
|
1539
|
+
// NEW: improved logging configuration
|
|
1540
|
+
log: {
|
|
1541
|
+
level: 'info',
|
|
1542
|
+
logToFile: './logs/multi-tool-mcp.log',
|
|
1543
|
+
prefix: 'MultiTool'
|
|
1544
|
+
},
|
|
1545
|
+
serverInfo: {
|
|
1546
|
+
name: 'multi-tool-mcp',
|
|
1547
|
+
version: '1.0.0'
|
|
1548
|
+
},
|
|
1549
|
+
transports: [
|
|
1550
|
+
// Can be a single string...
|
|
1551
|
+
"stdio",
|
|
1552
|
+
// or one of the other transport types supported by @modelcontextprotocol/sdk
|
|
1553
|
+
{ type: "sse", port: 3000, host: "0.0.0.0" },
|
|
1554
|
+
{ type: "websocket", port: 3001, path: "/ws" }
|
|
1555
|
+
]
|
|
1556
|
+
}
|
|
1488
1557
|
});
|
|
1489
|
-
|
|
1558
|
+
|
|
1559
|
+
````
|
|
1490
1560
|
|
|
1491
1561
|
### MCP Logging Configuration
|
|
1492
1562
|
|
|
@@ -1510,7 +1580,7 @@ const parser = ArgParser.withMcp({
|
|
|
1510
1580
|
},
|
|
1511
1581
|
},
|
|
1512
1582
|
});
|
|
1513
|
-
|
|
1583
|
+
````
|
|
1514
1584
|
|
|
1515
1585
|
**Available log levels**: `"debug"` | `"info"` | `"warn"` | `"error"` | `"silent"`
|
|
1516
1586
|
|
|
@@ -2064,6 +2134,15 @@ ArgParser includes built-in `--s-*` flags for development, debugging, and config
|
|
|
2064
2134
|
|
|
2065
2135
|
## Changelog
|
|
2066
2136
|
|
|
2137
|
+
### v2.8.1
|
|
2138
|
+
|
|
2139
|
+
- Feature: Dynamic flags via `IFlag.dynamicRegister(ctx)` to register additional flags at runtime (e.g., from a manifest file)
|
|
2140
|
+
- Help: `--help` preloads dynamic flags without executing handlers; help output includes both static and dynamic flags
|
|
2141
|
+
- Flow: Two-phase parsing (load dynamic flags → re-parse with full flag set)
|
|
2142
|
+
- Cleanup: Dynamically registered flags are reset between parses to avoid accumulation
|
|
2143
|
+
- Types: Exported `DynamicRegisterContext` and `DynamicRegisterFn`
|
|
2144
|
+
- Internal: `FlagManager.removeFlag(name)` to support cleanup
|
|
2145
|
+
|
|
2067
2146
|
### v2.7.2
|
|
2068
2147
|
|
|
2069
2148
|
**Feat**
|
|
@@ -98,6 +98,12 @@ export interface IParseOptions {
|
|
|
98
98
|
* @internal
|
|
99
99
|
*/
|
|
100
100
|
isMcp?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Internal: when true, this parse call is only for dynamic flag preloading for help
|
|
103
|
+
* Suppresses side effects and handler execution
|
|
104
|
+
* @internal
|
|
105
|
+
*/
|
|
106
|
+
dynamicHelpPreload?: boolean;
|
|
101
107
|
/**
|
|
102
108
|
* When true, automatically executes the CLI if the script is being run directly (not imported).
|
|
103
109
|
* When false, disables auto-execution detection even if importMetaUrl is provided.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/core/ArgParserBase.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,aAAa,EACb,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,EACb,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,OAAO,CAAC;CAC9B;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;;;;;;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;AAOF,qBAAa,aAAa,CAAC,cAAc,GAAG,GAAG;;
|
|
1
|
+
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/core/ArgParserBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export declare class FlagManager {
|
|
|
9
9
|
_setProcessedFlagForInheritance(processedFlag: ProcessedFlag): this;
|
|
10
10
|
addFlags(flags: readonly IFlag[]): this;
|
|
11
11
|
hasFlag(name: string): boolean;
|
|
12
|
+
removeFlag(name: string): boolean;
|
|
12
13
|
getFlag(name: string): ProcessedFlag | undefined;
|
|
13
14
|
get flags(): ProcessedFlag[];
|
|
14
15
|
get flagNames(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/core/FlagManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,WAAW;;gBAKpB,OAAO,GAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAO,EAClD,YAAY,GAAE,SAAS,KAAK,EAAO;IAMrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa;IA0C5C,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAoB1B,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAQnE,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAOvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD,IAAI,KAAK,IAAI,aAAa,EAAE,CAE3B;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;CACF"}
|
|
1
|
+
{"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/core/FlagManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,WAAW;;gBAKpB,OAAO,GAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAO,EAClD,YAAY,GAAE,SAAS,KAAK,EAAO;IAMrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa;IA0C5C,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAoB1B,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAQnE,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAOvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD,IAAI,KAAK,IAAI,aAAa,EAAE,CAE3B;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;CACF"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ export declare const zodFlagSchema: z.ZodPipe<z.ZodObject<{
|
|
|
48
48
|
default: z.ZodOptional<z.ZodAny>;
|
|
49
49
|
title: z.ZodOptional<z.ZodString>;
|
|
50
50
|
}, z.core.$strict>>;
|
|
51
|
+
dynamicRegister: z.ZodOptional<z.ZodCustom<DynamicRegisterFn, DynamicRegisterFn>>;
|
|
51
52
|
}, z.core.$strip>, z.ZodTransform<{
|
|
52
53
|
[key: string]: any;
|
|
53
54
|
}, {
|
|
@@ -73,6 +74,7 @@ export declare const zodFlagSchema: z.ZodPipe<z.ZodObject<{
|
|
|
73
74
|
default?: any;
|
|
74
75
|
title?: string | undefined;
|
|
75
76
|
} | undefined;
|
|
77
|
+
dynamicRegister?: DynamicRegisterFn | undefined;
|
|
76
78
|
}>>;
|
|
77
79
|
/**
|
|
78
80
|
* The raw input type for defining a flag, before Zod processing (aliases, defaults).
|
|
@@ -126,7 +128,24 @@ export type IFlag = IFlagCore & {
|
|
|
126
128
|
env?: string | string[];
|
|
127
129
|
/** DXT-specific configuration options for enhanced DXT manifest generation */
|
|
128
130
|
dxtOptions?: IDxtOptions;
|
|
131
|
+
/** Optional callback to dynamically register additional flags when this flag is present */
|
|
132
|
+
dynamicRegister?: DynamicRegisterFn;
|
|
129
133
|
};
|
|
134
|
+
/**
|
|
135
|
+
* Context for dynamic flag registration callbacks.
|
|
136
|
+
*/
|
|
137
|
+
export type DynamicRegisterContext = {
|
|
138
|
+
value: any | any[];
|
|
139
|
+
argsSoFar: Record<string, any>;
|
|
140
|
+
parser: ArgParserInstance;
|
|
141
|
+
processArgs: string[];
|
|
142
|
+
forHelp?: boolean;
|
|
143
|
+
registerFlags: (flags: readonly IFlag[]) => void;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Function signature for dynamic flag loader/registrar.
|
|
147
|
+
*/
|
|
148
|
+
export type DynamicRegisterFn = (ctx: DynamicRegisterContext) => Promise<readonly IFlag[] | void> | readonly IFlag[] | void;
|
|
130
149
|
/**
|
|
131
150
|
* A more refined type for a flag after it has been fully processed by ArgParser,
|
|
132
151
|
* particularly its `type` property and validation/enum/mandatory functions.
|
|
@@ -137,6 +156,7 @@ export type ProcessedFlag = Omit<ProcessedFlagCore, "validate" | "enum" | "manda
|
|
|
137
156
|
enum?: any[];
|
|
138
157
|
mandatory?: boolean | ((parsedArgs: TParsedArgs<ProcessedFlag[]>) => boolean);
|
|
139
158
|
env?: string | string[];
|
|
159
|
+
dynamicRegister?: DynamicRegisterFn;
|
|
140
160
|
};
|
|
141
161
|
/**
|
|
142
162
|
* 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":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAKzC,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|