@runa-cmd/create 0.2.0-beta.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/README.md +23 -3
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +86 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.js +12 -52
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/template/runa.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# @runa-cmd/create
|
|
2
2
|
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- a6bdd11: **Runa 1.0.** The API is stable: from here on, what [`VERSIONING.md`](https://github.com/jrodrigopuca/runa-cmd/blob/main/VERSIONING.md) covers only breaks in a major version.
|
|
8
|
+
|
|
9
|
+
Coming from a `0.2.0` beta, there's nothing new to do in this version. Coming from `0.1.0`, read the entries of the betas below: each one says what changed and how to migrate. The main changes since `0.1.0` are:
|
|
10
|
+
|
|
11
|
+
- Commands, options and arguments are Zod schemas, and the same schema validates the terminal, env, the config file and an MCP tool call.
|
|
12
|
+
- `--help` and `--version` work without plugins; `help` works where a command goes; usage errors exit with 2, and a command that doesn't exist with 127.
|
|
13
|
+
- A config file per CLI, with one shape and errors that name the file and the key.
|
|
14
|
+
- `testCLI()` runs a CLI in the same process, and gives back its exit code, output, result and error.
|
|
15
|
+
- Error codes are a list, `ERROR_CODES`, read with `isRunaError()`.
|
|
16
|
+
- Mistakes in a CLI's own definition stop it at startup, with a message that says how to fix them.
|
|
17
|
+
|
|
18
|
+
`@runa-cmd/mcp` stays at `0.x` for now, since it's where the API may still change: see its changelog.
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
21
|
+
|
|
22
|
+
- ba3be24: New package: `npm create @runa-cmd@beta my-tool` creates a CLI ready to run, test and build. It makes the project of the getting started guide, named after yours, and installs nothing on its own.
|
|
23
|
+
- 4140fe9: The generator's command line follows the rules of a CLI made with Runa. A usage error exits with 2, says what's wrong in its own words, and where the help is:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
$ npm create @runa-cmd
|
|
27
|
+
Missing the name of the project, as in 'npm create @runa-cmd my-tool'.
|
|
28
|
+
Run 'npm create @runa-cmd -- --help' for usage.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Before, a missing name or an extra argument printed the usage without saying what was wrong, and an unknown option showed Node's text. The README lists its arguments and exit codes, and says that npm reads its own flags first, so `--help` and `--version` go after `--`.
|
|
32
|
+
|
|
33
|
+
**Breaking:** `-v` is gone, as in every Runa CLI, where it's left for `--verbose`. Use `--version`.
|
|
34
|
+
|
|
35
|
+
## 0.2.0-beta.7
|
|
36
|
+
|
|
37
|
+
### Minor Changes
|
|
38
|
+
|
|
39
|
+
- 4140fe9: The generator's command line follows the rules of a CLI made with Runa. A usage error exits with 2, says what's wrong in its own words, and where the help is:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
$ npm create @runa-cmd
|
|
43
|
+
Missing the name of the project, as in 'npm create @runa-cmd my-tool'.
|
|
44
|
+
Run 'npm create @runa-cmd -- --help' for usage.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Before, a missing name or an extra argument printed the usage without saying what was wrong, and an unknown option showed Node's text. The README lists its arguments and exit codes, and says that npm reads its own flags first, so `--help` and `--version` go after `--`.
|
|
48
|
+
|
|
49
|
+
**Breaking:** `-v` is gone, as in every Runa CLI, where it's left for `--verbose`. Use `--version`.
|
|
50
|
+
|
|
3
51
|
## 0.2.0-beta.6
|
|
4
52
|
|
|
5
53
|
## 0.2.0-beta.5
|
package/README.md
CHANGED
|
@@ -3,15 +3,35 @@
|
|
|
3
3
|
Create a CLI made with [Runa](https://github.com/jrodrigopuca/runa-cmd), ready to run, test and publish.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm create @runa-cmd
|
|
6
|
+
npm create @runa-cmd my-tool
|
|
7
7
|
cd my-tool
|
|
8
8
|
npm install
|
|
9
9
|
node src/main.ts hello Ana
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
It works with pnpm, yarn and bun too, as `pnpm create @runa-cmd my-tool`, and the next steps it prints use the one you ran it with.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
npm create @runa-cmd <name>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
| Argument | What it does |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `<name>` | The folder, the package and the command, as in `my-tool` |
|
|
23
|
+
| `-h`, `--help` | Shows how to use it |
|
|
24
|
+
| `--version` | Shows its version |
|
|
25
|
+
|
|
26
|
+
npm reads its own flags first: to reach these, put them after `--`, as in `npm create @runa-cmd -- --help`.
|
|
27
|
+
|
|
28
|
+
| Exit | When |
|
|
29
|
+
|---|---|
|
|
30
|
+
| `0` | The project was created, or it showed the help or the version |
|
|
31
|
+
| `2` | A usage error, with what's wrong: an unknown option, no name or more than one, a name that can't be one, or a folder that already has files |
|
|
32
|
+
| `1` | Something else failed, as a file it couldn't write |
|
|
33
|
+
|
|
34
|
+
Like any CLI made with Runa, there's no `-v`, which other tools use for `--verbose`.
|
|
15
35
|
|
|
16
36
|
## What you get
|
|
17
37
|
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface CliContext {
|
|
2
|
+
/** This package's version, for --version */
|
|
3
|
+
version: string;
|
|
4
|
+
templateDir: string;
|
|
5
|
+
/** The core the template was built with */
|
|
6
|
+
runaVersion: string;
|
|
7
|
+
cwd: string;
|
|
8
|
+
/** npm_config_user_agent: the package manager that ran it */
|
|
9
|
+
userAgent: string | undefined;
|
|
10
|
+
out: (text: string) => void;
|
|
11
|
+
err: (text: string) => void;
|
|
12
|
+
}
|
|
13
|
+
/** Runs the generator, and returns its exit code. */
|
|
14
|
+
export declare function main(argv: string[], ctx: CliContext): number;
|
|
15
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAkDD,qDAAqD;AACrD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CA8B5D"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The command line of `npm create @runa-cmd`, with Runa's rules and without
|
|
3
|
+
* Runa: --help, -h and --version, no -v (ADR-0021), and exit 2 on a usage
|
|
4
|
+
* error, saying what's wrong and where the help is (T-239).
|
|
5
|
+
*/
|
|
6
|
+
import { parseArgs } from 'node:util';
|
|
7
|
+
import { CreateError, createProject, nextSteps } from './create.js';
|
|
8
|
+
const USAGE = `Create a CLI made with Runa.
|
|
9
|
+
|
|
10
|
+
Usage: npm create @runa-cmd <name>
|
|
11
|
+
|
|
12
|
+
<name> The folder, the package and the command, as in my-tool
|
|
13
|
+
-h, --help Show this
|
|
14
|
+
--version Show the version`;
|
|
15
|
+
/** npm reads its own flags first: these only reach the generator after -- */
|
|
16
|
+
const HINT = "Run 'npm create @runa-cmd -- --help' for usage.";
|
|
17
|
+
const OPTIONS = { help: { type: 'boolean', short: 'h' }, version: { type: 'boolean' } };
|
|
18
|
+
class UsageError extends Error {
|
|
19
|
+
}
|
|
20
|
+
/** What was asked for, or why it can't be read, in our words and not parseArgs'. */
|
|
21
|
+
function read(argv) {
|
|
22
|
+
const { tokens } = parseArgs({
|
|
23
|
+
args: argv,
|
|
24
|
+
options: OPTIONS,
|
|
25
|
+
allowPositionals: true,
|
|
26
|
+
strict: false,
|
|
27
|
+
tokens: true,
|
|
28
|
+
});
|
|
29
|
+
const asked = { help: false, version: false };
|
|
30
|
+
const names = [];
|
|
31
|
+
for (const token of tokens) {
|
|
32
|
+
if (token.kind === 'positional')
|
|
33
|
+
names.push(token.value);
|
|
34
|
+
if (token.kind !== 'option')
|
|
35
|
+
continue;
|
|
36
|
+
if (!(token.name in OPTIONS))
|
|
37
|
+
throw new UsageError(`Unknown option '${token.rawName}'.`);
|
|
38
|
+
if (token.value !== undefined)
|
|
39
|
+
throw new UsageError(`Option '--${token.name}' takes no value.`);
|
|
40
|
+
asked[token.name] = true;
|
|
41
|
+
}
|
|
42
|
+
if (asked.help || asked.version)
|
|
43
|
+
return { ...asked, name: '' };
|
|
44
|
+
const [name, extra] = names;
|
|
45
|
+
if (name === undefined) {
|
|
46
|
+
throw new UsageError("Missing the name of the project, as in 'npm create @runa-cmd my-tool'.");
|
|
47
|
+
}
|
|
48
|
+
if (extra !== undefined) {
|
|
49
|
+
throw new UsageError(`Unexpected argument '${extra}': the name is a single word, as in 'my-tool'.`);
|
|
50
|
+
}
|
|
51
|
+
return { ...asked, name };
|
|
52
|
+
}
|
|
53
|
+
/** Runs the generator, and returns its exit code. */
|
|
54
|
+
export function main(argv, ctx) {
|
|
55
|
+
let args;
|
|
56
|
+
try {
|
|
57
|
+
args = read(argv);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
if (!(error instanceof UsageError))
|
|
61
|
+
throw error;
|
|
62
|
+
ctx.err(`${error.message}\n${HINT}`);
|
|
63
|
+
return 2;
|
|
64
|
+
}
|
|
65
|
+
if (args.help) {
|
|
66
|
+
ctx.out(USAGE);
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
if (args.version) {
|
|
70
|
+
ctx.out(ctx.version);
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const { templateDir, runaVersion, cwd } = ctx;
|
|
75
|
+
createProject({ name: args.name, cwd, templateDir, runaVersion });
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (!(error instanceof CreateError))
|
|
79
|
+
throw error;
|
|
80
|
+
ctx.err(error.message);
|
|
81
|
+
return 2;
|
|
82
|
+
}
|
|
83
|
+
ctx.out(nextSteps(args.name, ctx.userAgent));
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,66 +3,26 @@
|
|
|
3
3
|
* @runa-cmd/create — `npm create @runa-cmd my-tool`
|
|
4
4
|
*
|
|
5
5
|
* No dependencies, Runa included: `npm create` downloads this every time, and
|
|
6
|
-
* it should take a moment, not Zod.
|
|
6
|
+
* it should take a moment, not Zod. The command line is in cli.ts, so tests
|
|
7
|
+
* can run it without a process.
|
|
7
8
|
*/
|
|
8
9
|
import { readFileSync } from 'node:fs';
|
|
9
10
|
import { dirname, join } from 'node:path';
|
|
10
11
|
import { fileURLToPath } from 'node:url';
|
|
11
|
-
import {
|
|
12
|
-
import { CreateError, createProject, nextSteps } from './create.js';
|
|
12
|
+
import { main } from './cli.js';
|
|
13
13
|
const root = join(dirname(fileURLToPath(import.meta.url)), '..');
|
|
14
14
|
const templateDir = join(root, 'template');
|
|
15
15
|
const readJson = (path) => JSON.parse(readFileSync(path, 'utf8'));
|
|
16
16
|
const { version } = readJson(join(root, 'package.json'));
|
|
17
17
|
// The core this was built with, which isn't always this package's version
|
|
18
18
|
const runaVersion = readJson(join(templateDir, 'runa.json')).core;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
try {
|
|
29
|
-
parsed = parseArgs({
|
|
30
|
-
allowPositionals: true,
|
|
31
|
-
options: {
|
|
32
|
-
help: { type: 'boolean', short: 'h' },
|
|
33
|
-
version: { type: 'boolean', short: 'v' },
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
console.error(`${error.message}\n\n${USAGE}`);
|
|
39
|
-
return 2;
|
|
40
|
-
}
|
|
41
|
-
const { values, positionals } = parsed;
|
|
42
|
-
if (values.help) {
|
|
43
|
-
console.log(USAGE);
|
|
44
|
-
return 0;
|
|
45
|
-
}
|
|
46
|
-
if (values.version) {
|
|
47
|
-
console.log(version);
|
|
48
|
-
return 0;
|
|
49
|
-
}
|
|
50
|
-
const [name, ...extra] = positionals;
|
|
51
|
-
if (!name || extra.length > 0) {
|
|
52
|
-
console.error(USAGE);
|
|
53
|
-
return 2;
|
|
54
|
-
}
|
|
55
|
-
try {
|
|
56
|
-
createProject({ name, cwd: process.cwd(), templateDir, runaVersion });
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
if (!(error instanceof CreateError))
|
|
60
|
-
throw error;
|
|
61
|
-
console.error(error.message);
|
|
62
|
-
return 2;
|
|
63
|
-
}
|
|
64
|
-
console.log(nextSteps(name, process.env.npm_config_user_agent));
|
|
65
|
-
return 0;
|
|
66
|
-
}
|
|
67
|
-
process.exitCode = main();
|
|
19
|
+
process.exitCode = main(process.argv.slice(2), {
|
|
20
|
+
version,
|
|
21
|
+
templateDir,
|
|
22
|
+
runaVersion,
|
|
23
|
+
cwd: process.cwd(),
|
|
24
|
+
userAgent: process.env.npm_config_user_agent,
|
|
25
|
+
out: (text) => console.log(text),
|
|
26
|
+
err: (text) => console.error(text),
|
|
27
|
+
});
|
|
68
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;AACzD,0EAA0E;AAC1E,MAAM,WAAW,GAAW,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAE1E,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC9C,OAAO;IACP,WAAW;IACX,WAAW;IACX,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;IAC5C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;CAClC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runa-cmd/create",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Create a CLI made with Runa: npm create @runa-cmd my-tool",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
"@types/node": "^24.19.2",
|
|
40
40
|
"typescript": "^7.0.2",
|
|
41
41
|
"zod": "^4.6.7",
|
|
42
|
-
"@runa-cmd/core": "0.
|
|
42
|
+
"@runa-cmd/core": "1.0.0"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "tsc && node scripts/copy-template.mjs",
|
|
46
|
-
"typecheck": "tsc --noEmit",
|
|
46
|
+
"typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
|
|
47
47
|
"test": "vitest run --dir src",
|
|
48
48
|
"lint": "biome check .",
|
|
49
49
|
"clean": "rm -rf dist template"
|
package/template/runa.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"core":"0.
|
|
1
|
+
{"core":"1.0.0"}
|