cli-forge 0.10.1 → 0.12.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/.eslintrc.json +35 -0
- package/LICENSE.md +5 -0
- package/README.md +181 -5
- package/cli.js +9 -0
- package/dist/bin/cli.d.ts +23 -0
- package/{bin → dist/bin}/cli.js +2 -2
- package/dist/bin/cli.js.map +1 -0
- package/dist/bin/commands/generate-documentation.d.ts +14 -0
- package/{bin → dist/bin}/commands/generate-documentation.js +58 -11
- package/dist/bin/commands/generate-documentation.js.map +1 -0
- package/{bin → dist/bin}/commands/init.d.ts +11 -11
- package/{bin → dist/bin}/commands/init.js +11 -6
- package/dist/bin/commands/init.js.map +1 -0
- package/dist/bin/utils/fs.js.map +1 -0
- package/{src → dist}/index.d.ts +2 -1
- package/dist/index.js.map +1 -0
- package/dist/lib/cli-option-groups.js.map +1 -0
- package/dist/lib/composable-builder.d.ts +24 -0
- package/dist/lib/composable-builder.js +17 -0
- package/dist/lib/composable-builder.js.map +1 -0
- package/dist/lib/configuration-providers.js.map +1 -0
- package/{src → dist}/lib/documentation.d.ts +3 -3
- package/dist/lib/documentation.js.map +1 -0
- package/dist/lib/format-help.js.map +1 -0
- package/{src → dist}/lib/interactive-shell.d.ts +1 -1
- package/{src → dist}/lib/interactive-shell.js +6 -3
- package/dist/lib/interactive-shell.js.map +1 -0
- package/{src → dist}/lib/internal-cli.d.ts +38 -21
- package/{src → dist}/lib/internal-cli.js +48 -3
- package/dist/lib/internal-cli.js.map +1 -0
- package/dist/lib/public-api.d.ts +332 -0
- package/dist/lib/public-api.js.map +1 -0
- package/dist/lib/test-harness.js.map +1 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/middleware/zod.d.ts +4 -0
- package/dist/middleware/zod.js +18 -0
- package/dist/middleware/zod.js.map +1 -0
- package/dist/middleware.d.ts +1 -0
- package/dist/middleware.js +5 -0
- package/dist/middleware.js.map +1 -0
- package/package.json +29 -10
- package/project.json +7 -0
- package/src/bin/cli.ts +17 -0
- package/src/bin/commands/generate-documentation.ts +403 -0
- package/src/bin/commands/init.ts +320 -0
- package/src/bin/utils/fs.ts +11 -0
- package/src/index.ts +12 -0
- package/src/lib/cli-option-groups.ts +69 -0
- package/src/lib/composable-builder.ts +57 -0
- package/src/lib/configuration-providers.ts +36 -0
- package/src/lib/documentation.spec.ts +156 -0
- package/src/lib/documentation.ts +107 -0
- package/src/lib/format-help.ts +149 -0
- package/src/lib/interactive-shell.ts +115 -0
- package/src/lib/internal-cli.spec.ts +345 -0
- package/src/lib/internal-cli.ts +689 -0
- package/src/lib/public-api.ts +943 -0
- package/src/lib/test-harness.spec.ts +29 -0
- package/src/lib/test-harness.ts +69 -0
- package/src/lib/utils.spec.ts +25 -0
- package/src/lib/utils.ts +144 -0
- package/src/middleware/zod.ts +21 -0
- package/src/middleware.ts +1 -0
- package/tsconfig.json +23 -0
- package/tsconfig.lib.json +20 -0
- package/tsconfig.lib.json.tsbuildinfo +1 -0
- package/tsconfig.spec.json +26 -0
- package/vitest.config.mts +18 -0
- package/bin/cli.d.ts +0 -6
- package/bin/cli.js.map +0 -1
- package/bin/commands/generate-documentation.d.ts +0 -14
- package/bin/commands/generate-documentation.js.map +0 -1
- package/bin/commands/init.js.map +0 -1
- package/bin/utils/fs.js.map +0 -1
- package/src/index.js.map +0 -1
- package/src/lib/cli-option-groups.js.map +0 -1
- package/src/lib/composable-builder.d.ts +0 -3
- package/src/lib/composable-builder.js +0 -7
- package/src/lib/composable-builder.js.map +0 -1
- package/src/lib/configuration-providers.js.map +0 -1
- package/src/lib/documentation.js.map +0 -1
- package/src/lib/format-help.js.map +0 -1
- package/src/lib/interactive-shell.js.map +0 -1
- package/src/lib/internal-cli.js.map +0 -1
- package/src/lib/public-api.d.ts +0 -215
- package/src/lib/public-api.js.map +0 -1
- package/src/lib/test-harness.js.map +0 -1
- package/src/lib/utils.js.map +0 -1
- /package/{bin → dist/bin}/utils/fs.d.ts +0 -0
- /package/{bin → dist/bin}/utils/fs.js +0 -0
- /package/{src → dist}/index.js +0 -0
- /package/{src → dist}/lib/cli-option-groups.d.ts +0 -0
- /package/{src → dist}/lib/cli-option-groups.js +0 -0
- /package/{src → dist}/lib/configuration-providers.d.ts +0 -0
- /package/{src → dist}/lib/configuration-providers.js +0 -0
- /package/{src → dist}/lib/documentation.js +0 -0
- /package/{src → dist}/lib/format-help.d.ts +0 -0
- /package/{src → dist}/lib/format-help.js +0 -0
- /package/{src → dist}/lib/public-api.js +0 -0
- /package/{src → dist}/lib/test-harness.d.ts +0 -0
- /package/{src → dist}/lib/test-harness.js +0 -0
- /package/{src → dist}/lib/utils.d.ts +0 -0
- /package/{src → dist}/lib/utils.js +0 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": ["../../.eslintrc.json"],
|
|
3
|
+
"ignorePatterns": [
|
|
4
|
+
"!**/*",
|
|
5
|
+
"node_modules",
|
|
6
|
+
"**/vite.config.*.timestamp*",
|
|
7
|
+
"**/vitest.config.*.timestamp*"
|
|
8
|
+
],
|
|
9
|
+
"overrides": [
|
|
10
|
+
{
|
|
11
|
+
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
|
12
|
+
"rules": {}
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"files": ["*.ts", "*.tsx"],
|
|
16
|
+
"rules": {}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"files": ["*.js", "*.jsx"],
|
|
20
|
+
"rules": {}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"files": ["*.json"],
|
|
24
|
+
"parser": "jsonc-eslint-parser",
|
|
25
|
+
"rules": {
|
|
26
|
+
"@nx/dependency-checks": [
|
|
27
|
+
"error",
|
|
28
|
+
{
|
|
29
|
+
"ignoredFiles": ["{projectRoot}/vite.config.{js,ts,mjs,mts}"]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Copyright 2024 Craigory Coppola
|
|
2
|
+
|
|
3
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
|
4
|
+
|
|
5
|
+
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,11 +1,187 @@
|
|
|
1
1
|
# cli-forge
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**A type-safe CLI builder for Node.js with first-class TypeScript support.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
CLI Forge is a modern framework for building command-line interfaces in Node.js, designed with TypeScript developers in mind. It provides full type inference for parsed arguments, automatic help generation, middleware support, and comprehensive documentation tooling.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Installation
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npm install cli-forge
|
|
11
|
+
```
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
Create a new CLI project:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx cli-forge init my-cli
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or add to an existing project:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { cli } from 'cli-forge';
|
|
25
|
+
|
|
26
|
+
cli('my-app')
|
|
27
|
+
.command('hello', {
|
|
28
|
+
description: 'Say hello to someone',
|
|
29
|
+
builder: (args) =>
|
|
30
|
+
args.option('name', {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Name to greet',
|
|
33
|
+
default: 'World',
|
|
34
|
+
}),
|
|
35
|
+
handler: (args) => {
|
|
36
|
+
console.log(`Hello, ${args.name}!`);
|
|
37
|
+
},
|
|
38
|
+
})
|
|
39
|
+
.forge();
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Run it:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
node my-app.js hello --name "Developer"
|
|
46
|
+
# Output: Hello, Developer!
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Key Features
|
|
50
|
+
|
|
51
|
+
- **Full type inference** for parsed arguments based on your option definitions
|
|
52
|
+
- **Flexible option types**: strings, numbers, booleans, arrays, and nested objects
|
|
53
|
+
- **Command hierarchy** with unlimited nesting and inherited options
|
|
54
|
+
- **Middleware system** for transforming arguments before handler execution
|
|
55
|
+
- **Interactive shell** (opt-in) for easier exploration of complex command trees
|
|
56
|
+
- **Automatic documentation generation** to markdown or JSON formats
|
|
57
|
+
- **Configuration file support** with inheritance via `extends`
|
|
58
|
+
- **Built-in test harness** for unit testing your CLI commands
|
|
59
|
+
- **Comprehensive validation** with custom validators, choices, and cross-option constraints
|
|
60
|
+
|
|
61
|
+
## Option Types
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
cli('app')
|
|
65
|
+
.option('name', { type: 'string' })
|
|
66
|
+
.option('port', { type: 'number', default: 3000 })
|
|
67
|
+
.option('verbose', { type: 'boolean', alias: ['v'] })
|
|
68
|
+
.option('tags', { type: 'array', items: 'string' })
|
|
69
|
+
.option('config', {
|
|
70
|
+
type: 'object',
|
|
71
|
+
properties: {
|
|
72
|
+
host: { type: 'string' },
|
|
73
|
+
timeout: { type: 'number' },
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Subcommands
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
cli('git')
|
|
82
|
+
.command('remote', {
|
|
83
|
+
builder: (args) =>
|
|
84
|
+
args
|
|
85
|
+
.command('add', {
|
|
86
|
+
builder: (a) =>
|
|
87
|
+
a
|
|
88
|
+
.positional('name', { type: 'string' })
|
|
89
|
+
.positional('url', { type: 'string' }),
|
|
90
|
+
handler: (args) => {
|
|
91
|
+
console.log(`Adding remote ${args.name}: ${args.url}`);
|
|
92
|
+
},
|
|
93
|
+
})
|
|
94
|
+
.command('remove', {
|
|
95
|
+
builder: (a) => a.positional('name', { type: 'string' }),
|
|
96
|
+
handler: (args) => {
|
|
97
|
+
console.log(`Removing remote ${args.name}`);
|
|
98
|
+
},
|
|
99
|
+
}),
|
|
100
|
+
})
|
|
101
|
+
.forge();
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Middleware
|
|
105
|
+
|
|
106
|
+
Transform arguments before they reach your handler:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
cli('app')
|
|
110
|
+
.middleware((args) => ({
|
|
111
|
+
...args,
|
|
112
|
+
timestamp: Date.now(),
|
|
113
|
+
}))
|
|
114
|
+
.command('run', {
|
|
115
|
+
handler: (args) => {
|
|
116
|
+
console.log(`Started at: ${args.timestamp}`);
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Zod Validation
|
|
122
|
+
|
|
123
|
+
Optional Zod integration for schema validation:
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
import { cli } from 'cli-forge';
|
|
127
|
+
import { zodMiddleware } from 'cli-forge/middleware/zod';
|
|
128
|
+
import { z } from 'zod';
|
|
129
|
+
|
|
130
|
+
cli('app')
|
|
131
|
+
.option('port', { type: 'number' })
|
|
132
|
+
.middleware(
|
|
133
|
+
zodMiddleware(
|
|
134
|
+
z.object({
|
|
135
|
+
port: z.number().min(1).max(65535),
|
|
136
|
+
})
|
|
137
|
+
)
|
|
138
|
+
)
|
|
139
|
+
.forge();
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Interactive Shell
|
|
143
|
+
|
|
144
|
+
Enable an interactive REPL for your CLI:
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
cli('my-app')
|
|
148
|
+
.enableInteractiveShell()
|
|
149
|
+
.command('hello', { /* ... */ })
|
|
150
|
+
.forge();
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Testing
|
|
154
|
+
|
|
155
|
+
Use the built-in test harness:
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
import { TestHarness } from 'cli-forge';
|
|
159
|
+
import myCLI from './my-cli';
|
|
160
|
+
|
|
161
|
+
const harness = new TestHarness(myCLI);
|
|
162
|
+
|
|
163
|
+
const { args, commandChain } = await harness.parse(['hello', '--name', 'World']);
|
|
164
|
+
assert.strictEqual(args.name, 'World');
|
|
165
|
+
assert.deepStrictEqual(commandChain, ['hello']);
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Documentation Generation
|
|
169
|
+
|
|
170
|
+
Generate markdown or JSON documentation:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npx cli-forge generate-docs ./my-cli.ts
|
|
174
|
+
npx cli-forge generate-docs ./my-cli.ts --format json
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Related Packages
|
|
178
|
+
|
|
179
|
+
- [`@cli-forge/parser`](https://www.npmjs.com/package/@cli-forge/parser) - Low-level argument parser with type inference
|
|
180
|
+
|
|
181
|
+
## Documentation
|
|
182
|
+
|
|
183
|
+
Full documentation available at: https://craigory.dev/cli-forge/
|
|
184
|
+
|
|
185
|
+
## License
|
|
186
|
+
|
|
187
|
+
ISC
|
package/cli.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
declare const mycli: import("../lib/public-api").CLI<{
|
|
3
|
+
unmatched: string[];
|
|
4
|
+
'--'?: string[];
|
|
5
|
+
}, void, import("../lib/public-api").CommandToChildEntry<import("../lib/public-api").CLI<any, any, any, undefined>, import("../lib/public-api").CLI<{
|
|
6
|
+
unmatched: string[];
|
|
7
|
+
'--'?: string[];
|
|
8
|
+
}, void, {}, undefined>> & import("../lib/public-api").CommandToChildEntry<import("../lib/public-api").CLI<{
|
|
9
|
+
unmatched: string[];
|
|
10
|
+
'--'?: string[];
|
|
11
|
+
} & {} & {
|
|
12
|
+
cliName: string;
|
|
13
|
+
} & {
|
|
14
|
+
output?: string | undefined;
|
|
15
|
+
} & {} & {} & {
|
|
16
|
+
format: "ts" | "js";
|
|
17
|
+
} & {} & {
|
|
18
|
+
initialVersion: string;
|
|
19
|
+
}, Promise<void>, {}, undefined>, import("../lib/public-api").CLI<{
|
|
20
|
+
unmatched: string[];
|
|
21
|
+
'--'?: string[];
|
|
22
|
+
}, void, {}, undefined>>, undefined>;
|
|
23
|
+
export default mycli;
|
package/{bin → dist/bin}/cli.js
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const
|
|
4
|
+
const public_api_1 = require("../lib/public-api");
|
|
5
5
|
const generate_documentation_1 = require("./commands/generate-documentation");
|
|
6
6
|
const init_1 = require("./commands/init");
|
|
7
|
-
const mycli = (0,
|
|
7
|
+
const mycli = (0, public_api_1.cli)('cli-forge', {
|
|
8
8
|
description: "CLI tool for working with cli-forge based CLI's.",
|
|
9
9
|
}).commands(generate_documentation_1.generateDocumentationCommand, init_1.initCommand);
|
|
10
10
|
exports.default = mycli;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";;;AAEA,kDAAwC;AACxC,8EAAiF;AACjF,0CAA8C;AAE9C,MAAM,KAAK,GAAG,IAAA,gBAAG,EAAC,WAAW,EAAE;IAC7B,WAAW,EAAE,kDAAkD;CAChE,CAAC,CAAC,QAAQ,CAAC,qDAA4B,EAAE,kBAAW,CAAC,CAAC;AAEvD,kBAAe,KAAK,CAAC;AAErB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,CAAC,KAAK,IAAI,EAAE;QACV,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ParsedArgs } from '@cli-forge/parser';
|
|
2
|
+
import { CLI } from '../..';
|
|
3
|
+
export declare function withGenerateDocumentationArgs<T extends ParsedArgs>(cmd: CLI<T>): CLI<T & {} & {
|
|
4
|
+
cli: string;
|
|
5
|
+
} & {} & {
|
|
6
|
+
output: string;
|
|
7
|
+
} & {} & {
|
|
8
|
+
format: "md" | "json";
|
|
9
|
+
} & {
|
|
10
|
+
export?: string | undefined;
|
|
11
|
+
} & {} & {
|
|
12
|
+
tsconfig?: string | undefined;
|
|
13
|
+
} & {}, void, {}, undefined>;
|
|
14
|
+
export declare const generateDocumentationCommand: CLI<any, any, any>;
|
|
@@ -7,10 +7,10 @@ const node_fs_1 = require("node:fs");
|
|
|
7
7
|
const node_path_1 = require("node:path");
|
|
8
8
|
const posix_1 = require("node:path/posix");
|
|
9
9
|
const node_url_1 = require("node:url");
|
|
10
|
-
const
|
|
11
|
-
const documentation_1 = require("../../
|
|
10
|
+
const __1 = tslib_1.__importDefault(require("../.."));
|
|
11
|
+
const documentation_1 = require("../../lib/documentation");
|
|
12
12
|
const fs_1 = require("../utils/fs");
|
|
13
|
-
const internal_cli_1 = require("../../
|
|
13
|
+
const internal_cli_1 = require("../../lib/internal-cli");
|
|
14
14
|
function withGenerateDocumentationArgs(cmd) {
|
|
15
15
|
return cmd
|
|
16
16
|
.positional('cli', {
|
|
@@ -39,7 +39,7 @@ function withGenerateDocumentationArgs(cmd) {
|
|
|
39
39
|
description: 'Specifies the `tsconfig` used when loading typescript based CLIs.',
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
exports.generateDocumentationCommand = (0,
|
|
42
|
+
exports.generateDocumentationCommand = (0, __1.default)('generate-documentation', {
|
|
43
43
|
description: 'Generate documentation for the given CLI',
|
|
44
44
|
examples: [
|
|
45
45
|
'cli-forge generate-documentation ./bin/my-cli',
|
|
@@ -193,6 +193,42 @@ function readCLIFromModule(cliModule, args) {
|
|
|
193
193
|
}
|
|
194
194
|
return cli;
|
|
195
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Detects whether a file should be loaded as ESM or CJS.
|
|
198
|
+
* Checks file extension first (.mjs/.mts = ESM, .cjs/.cts = CJS),
|
|
199
|
+
* then falls back to the nearest package.json's "type" field.
|
|
200
|
+
*/
|
|
201
|
+
function detectModuleType(filePath) {
|
|
202
|
+
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
203
|
+
// Explicit extensions take precedence
|
|
204
|
+
if (ext === 'mjs' || ext === 'mts') {
|
|
205
|
+
return 'esm';
|
|
206
|
+
}
|
|
207
|
+
if (ext === 'cjs' || ext === 'cts') {
|
|
208
|
+
return 'cjs';
|
|
209
|
+
}
|
|
210
|
+
// Find nearest package.json and check "type" field
|
|
211
|
+
const absolutePath = (0, node_path_1.isAbsolute)(filePath)
|
|
212
|
+
? filePath
|
|
213
|
+
: (0, node_path_1.join)(process.cwd(), filePath);
|
|
214
|
+
let dir = (0, node_path_1.dirname)(absolutePath);
|
|
215
|
+
const root = (0, node_path_1.dirname)(dir);
|
|
216
|
+
while (dir !== root) {
|
|
217
|
+
const pkgPath = (0, node_path_1.join)(dir, 'package.json');
|
|
218
|
+
if ((0, node_fs_1.existsSync)(pkgPath)) {
|
|
219
|
+
try {
|
|
220
|
+
const pkg = JSON.parse((0, node_fs_1.readFileSync)(pkgPath, 'utf-8'));
|
|
221
|
+
return pkg.type === 'module' ? 'esm' : 'cjs';
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
// Ignore parse errors, continue searching
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
dir = (0, node_path_1.dirname)(dir);
|
|
228
|
+
}
|
|
229
|
+
// Default to CJS (Node.js default)
|
|
230
|
+
return 'cjs';
|
|
231
|
+
}
|
|
196
232
|
async function loadCLIModule(args) {
|
|
197
233
|
if ((0, node_path_1.isAbsolute)(args.cli)) {
|
|
198
234
|
args.cli = (0, node_path_1.relative)(process.cwd(), args.cli);
|
|
@@ -207,18 +243,29 @@ async function loadCLIModule(args) {
|
|
|
207
243
|
(0, node_path_1.join)(args.cli, 'index.js'),
|
|
208
244
|
(0, node_path_1.join)(args.cli, 'index.cjs'),
|
|
209
245
|
(0, node_path_1.join)(args.cli, 'index.mjs'),
|
|
210
|
-
].find((f) =>
|
|
246
|
+
].find((f) => {
|
|
247
|
+
const p = (0, node_path_1.isAbsolute)(f) ? f : (0, node_path_1.join)(process.cwd(), f);
|
|
248
|
+
console.log('Checking for CLI at', p);
|
|
249
|
+
return (0, node_fs_1.existsSync)(p);
|
|
250
|
+
});
|
|
211
251
|
if (!cliPath) {
|
|
212
252
|
throw new Error(`Could not find CLI module at ${args.cli}
|
|
213
|
-
|
|
253
|
+
|
|
214
254
|
Ensure that the path is correct and that the CLI module exists.`);
|
|
215
255
|
}
|
|
256
|
+
const moduleType = detectModuleType(cliPath);
|
|
216
257
|
try {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
258
|
+
if (moduleType === 'esm') {
|
|
259
|
+
const tsx = (await import('tsx/esm/api'));
|
|
260
|
+
return tsx.tsImport(cliPath, {
|
|
261
|
+
tsconfig: args.tsconfig,
|
|
262
|
+
parentURL: (0, node_url_1.pathToFileURL)((0, node_path_1.join)(process.cwd(), 'fake-file-for-import.ts')).toString(),
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
const tsx = (await import('tsx/cjs/api'));
|
|
267
|
+
return tsx.require(cliPath, (0, node_path_1.join)(process.cwd(), 'fake-file-for-require.ts'));
|
|
268
|
+
}
|
|
222
269
|
}
|
|
223
270
|
catch {
|
|
224
271
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-documentation.js","sourceRoot":"","sources":["../../../src/bin/commands/generate-documentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import type { ParsedArgs } from '@cli-forge/parser';
|
|
2
|
-
import { CLI } from '
|
|
3
|
-
export declare function withInitArgs<T extends ParsedArgs>(cmd: CLI<T>): CLI<T & {
|
|
2
|
+
import { CLI } from '../..';
|
|
3
|
+
export declare function withInitArgs<T extends ParsedArgs>(cmd: CLI<T>): CLI<T & {} & {
|
|
4
4
|
cliName: string;
|
|
5
5
|
} & {
|
|
6
|
-
output
|
|
7
|
-
} & {
|
|
6
|
+
output?: string | undefined;
|
|
7
|
+
} & {} & {} & {
|
|
8
8
|
format: "ts" | "js";
|
|
9
|
-
} & {
|
|
9
|
+
} & {} & {
|
|
10
10
|
initialVersion: string;
|
|
11
|
-
}>;
|
|
11
|
+
}, void, {}, undefined>;
|
|
12
12
|
export declare const initCommand: CLI<{
|
|
13
13
|
unmatched: string[];
|
|
14
14
|
'--'?: string[];
|
|
15
|
-
} & {
|
|
15
|
+
} & {} & {
|
|
16
16
|
cliName: string;
|
|
17
17
|
} & {
|
|
18
|
-
output
|
|
19
|
-
} & {
|
|
18
|
+
output?: string | undefined;
|
|
19
|
+
} & {} & {} & {
|
|
20
20
|
format: "ts" | "js";
|
|
21
|
-
} & {
|
|
21
|
+
} & {} & {
|
|
22
22
|
initialVersion: string;
|
|
23
|
-
}>;
|
|
23
|
+
}, Promise<void>, {}, undefined>;
|
|
@@ -6,10 +6,15 @@ const tslib_1 = require("tslib");
|
|
|
6
6
|
const node_child_process_1 = require("node:child_process");
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = require("node:path");
|
|
9
|
-
const
|
|
10
|
-
const src_1 = tslib_1.__importDefault(require("../../src"));
|
|
11
|
-
// import { CLI } from '../../src/lib/cli-forge';
|
|
9
|
+
const __1 = tslib_1.__importDefault(require("../.."));
|
|
12
10
|
const fs_1 = require("../utils/fs");
|
|
11
|
+
const CLI_FORGE_PACKAGE_JSON = (() => {
|
|
12
|
+
let path = __dirname;
|
|
13
|
+
while (!(0, node_fs_1.existsSync)((0, node_path_1.join)(path, 'package.json'))) {
|
|
14
|
+
path = (0, node_path_1.dirname)(path);
|
|
15
|
+
}
|
|
16
|
+
return JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(path, 'package.json'), 'utf-8'));
|
|
17
|
+
})();
|
|
13
18
|
const CLI_FORGE_VERSION = CLI_FORGE_PACKAGE_JSON.version;
|
|
14
19
|
/**
|
|
15
20
|
* These are peer dependencies that **we** will call require/import on,
|
|
@@ -17,12 +22,12 @@ const CLI_FORGE_VERSION = CLI_FORGE_PACKAGE_JSON.version;
|
|
|
17
22
|
* and used when running `cli-forge` commands rather than the user's CLI.
|
|
18
23
|
*/
|
|
19
24
|
const DEV_PEER_DEPS = Object.entries(CLI_FORGE_PACKAGE_JSON.peerDependencies).reduce((acc, [dep, version]) => {
|
|
20
|
-
if (
|
|
21
25
|
// The dev prop doesn't actually do anything for npm/pnpm/yarn,
|
|
22
26
|
// but we are using it to mark when a peer dep is only used at dev time.
|
|
23
27
|
// In these cases, we can safely add them to the devDependencies of the
|
|
24
28
|
// generated CLI.
|
|
25
|
-
CLI_FORGE_PACKAGE_JSON.peerDependenciesMeta[dep]
|
|
29
|
+
const meta = CLI_FORGE_PACKAGE_JSON.peerDependenciesMeta[dep];
|
|
30
|
+
if (meta && 'dev' in meta && meta.dev) {
|
|
26
31
|
acc[dep] = version;
|
|
27
32
|
}
|
|
28
33
|
return acc;
|
|
@@ -51,7 +56,7 @@ function withInitArgs(cmd) {
|
|
|
51
56
|
description: 'Initial version used when creating the package.json for the new CLI.',
|
|
52
57
|
});
|
|
53
58
|
}
|
|
54
|
-
exports.initCommand = (0,
|
|
59
|
+
exports.initCommand = (0, __1.default)('init', {
|
|
55
60
|
description: 'Generate a new CLI',
|
|
56
61
|
builder: (b) => withInitArgs(b),
|
|
57
62
|
handler: async (args) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/bin/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/bin/utils/fs.ts"],"names":[],"mappings":";;AAEA,sCAQC;AAVD,qCAAgD;AAEhD,SAAgB,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/{src → dist}/index.d.ts
RENAMED
|
@@ -3,5 +3,6 @@ export * from './lib/public-api';
|
|
|
3
3
|
export { default } from './lib/public-api';
|
|
4
4
|
export { chain } from '@cli-forge/parser';
|
|
5
5
|
export { makeComposableBuilder } from './lib/composable-builder';
|
|
6
|
-
export {
|
|
6
|
+
export type { ComposableBuilder, ExtractArgs, ExtractChildren, } from './lib/composable-builder';
|
|
7
|
+
export type { ArgumentsOf } from './lib/utils';
|
|
7
8
|
export { ConfigurationProviders } from './lib/configuration-providers';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,mDAAiD;AAAxC,2GAAA,WAAW,OAAA;AACpB,2DAAiC;AACjC,+CAA2C;AAAlC,8HAAA,OAAO,OAAA;AAChB,4CAA0C;AAAjC,+FAAA,KAAK,OAAA;AACd,+DAAiE;AAAxD,2HAAA,qBAAqB,OAAA;AAO9B,yEAAuE;AAA9D,iIAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-option-groups.js","sourceRoot":"","sources":["../../src/lib/cli-option-groups.ts"],"names":[],"mappings":";;AAGA,wDAiEC;AAjED,SAAgB,sBAAsB,CAAC,SAA2B;IAChE,SAAS,qBAAqB,CAAC,GAAgB;QAC7C,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,sBAAsB,EAAE,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,KAAK;gBAChB,IAAI,EAAE,IAAI,GAAG,EAAE;gBACf,SAAS,EAAE,MAAM,CAAC,gBAAgB;aACnC,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;YACtC,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAA6D,EAAE,CAAC;IAC5E,4DAA4D;IAC5D,IAAI,OAAO,GAAqB,SAAS,CAAC;IAC1C,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAChD,OAAO,GAAG,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAClD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,aAAa,GACjB,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK;gBACvB,IAAI,EAAE,IAAI,GAAG,EAAE;gBACf,SAAS,EAAE,MAAM,CAAC,gBAAgB;aACnC,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAIf,EAAE,CAAC;IAER,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS;YAClC,IAAI,EAAE,EAA4B;YAClC,KAAK;SACN,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ParsedArgs } from '@cli-forge/parser';
|
|
2
|
+
import { CLI } from './public-api';
|
|
3
|
+
/**
|
|
4
|
+
* Extracts the TChildren type parameter from a CLI type.
|
|
5
|
+
*/
|
|
6
|
+
export type ExtractChildren<T> = T extends CLI<any, any, infer C, any> ? C : never;
|
|
7
|
+
/**
|
|
8
|
+
* Extracts the TArgs type parameter from a CLI type.
|
|
9
|
+
*/
|
|
10
|
+
export type ExtractArgs<T> = T extends CLI<infer A, any, any, any> ? A : never;
|
|
11
|
+
/**
|
|
12
|
+
* Type for a composable builder function that transforms a CLI.
|
|
13
|
+
* Used with `chain` to compose multiple builders.
|
|
14
|
+
*/
|
|
15
|
+
export type ComposableBuilder<TArgs2 extends ParsedArgs, TAddedChildren = {}> = <TInit extends ParsedArgs, THandlerReturn, TChildren, TParent>(init: CLI<TInit, THandlerReturn, TChildren, TParent>) => CLI<TInit & TArgs2, THandlerReturn, TChildren & TAddedChildren, TParent>;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a composable builder function that can be used with `chain`.
|
|
18
|
+
* Can be used to add options, commands, or any other CLI modifications.
|
|
19
|
+
* Children added by the builder function are properly tracked in the type.
|
|
20
|
+
*
|
|
21
|
+
* @typeParam TArgs2 - The args type after the builder runs
|
|
22
|
+
* @typeParam TChildren2 - The children type added by the builder
|
|
23
|
+
*/
|
|
24
|
+
export declare function makeComposableBuilder<TArgs2 extends ParsedArgs, TChildren2 = {}>(fn: (init: CLI<ParsedArgs, any, {}, any>) => CLI<TArgs2, any, TChildren2, any>): <TInit extends ParsedArgs, THandlerReturn, TChildren, TParent>(init: CLI<TInit, THandlerReturn, TChildren, TParent>) => CLI<TInit & TArgs2, THandlerReturn, TChildren & TChildren2, TParent>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeComposableBuilder = makeComposableBuilder;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a composable builder function that can be used with `chain`.
|
|
6
|
+
* Can be used to add options, commands, or any other CLI modifications.
|
|
7
|
+
* Children added by the builder function are properly tracked in the type.
|
|
8
|
+
*
|
|
9
|
+
* @typeParam TArgs2 - The args type after the builder runs
|
|
10
|
+
* @typeParam TChildren2 - The children type added by the builder
|
|
11
|
+
*/
|
|
12
|
+
function makeComposableBuilder(fn) {
|
|
13
|
+
return (init) =>
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
15
|
+
fn(init);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=composable-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composable-builder.js","sourceRoot":"","sources":["../../src/lib/composable-builder.ts"],"names":[],"mappings":";;AAmCA,sDAoBC;AA5BD;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAKnC,EAGsC;IAEtC,OAAO,CACL,IAAoD,EACpD,EAAE;IACF,wDAAwD;IACxD,EAAE,CAAC,IAAgD,CAKlD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-providers.js","sourceRoot":"","sources":["../../src/lib/configuration-providers.ts"],"names":[],"mappings":";;;AAAA,8CAAuD;AAEvD;;;;;;;;;;;GAWG;AACU,QAAA,sBAAsB,GAAG;IACpC;;;;OAIG;IACH,WAAW,CAAI,GAAW;QACxB,OAAO,2BAAkB,CAAC,iCAAiC,CAAI,GAAG,CAAC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAI,QAAgB,EAAE,GAAY;QACxC,OAAO,2BAAkB,CAAC,uBAAuB,CAAI,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACtE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnknownOptionConfig, OptionConfigToType } from '@cli-forge/parser';
|
|
2
2
|
import { InternalCLI } from './internal-cli';
|
|
3
3
|
export type Documentation = {
|
|
4
4
|
name: string;
|
|
@@ -14,10 +14,10 @@ export type Documentation = {
|
|
|
14
14
|
}>;
|
|
15
15
|
subcommands: Documentation[];
|
|
16
16
|
};
|
|
17
|
-
declare function normalizeOptionConfigForDocumentation<T extends
|
|
17
|
+
declare function normalizeOptionConfigForDocumentation<T extends UnknownOptionConfig>(option: T, key: string): Omit<T, "default"> & {
|
|
18
18
|
key: string;
|
|
19
19
|
default?: OptionConfigToType<T> | string | undefined;
|
|
20
20
|
};
|
|
21
|
-
type NormalizedOptionConfig<T extends
|
|
21
|
+
type NormalizedOptionConfig<T extends UnknownOptionConfig = UnknownOptionConfig> = ReturnType<typeof normalizeOptionConfigForDocumentation<T>>;
|
|
22
22
|
export declare function generateDocumentation(cli: InternalCLI, commandChain?: string[]): Documentation;
|
|
23
23
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation.js","sourceRoot":"","sources":["../../src/lib/documentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-help.js","sourceRoot":"","sources":["../../src/lib/format-help.ts"],"names":[],"mappings":"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"}
|