@runa-cmd/completions 0.1.0 → 0.2.0-beta.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 +3 -1
- package/dist/generators/bash.js +4 -4
- package/dist/generators/bash.js.map +1 -1
- package/dist/generators/fish.d.ts.map +1 -1
- package/dist/generators/fish.js +8 -6
- package/dist/generators/fish.js.map +1 -1
- package/dist/generators/zsh.d.ts.map +1 -1
- package/dist/generators/zsh.js +20 -13
- package/dist/generators/zsh.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +15 -2
- package/dist/plugin.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -7,12 +7,14 @@ Your Zod schema is the source of truth: enum values become completion candidates
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
pnpm add @runa-cmd/completions
|
|
10
|
+
pnpm add @runa-cmd/completions@beta
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
> Peer dependencies: `@runa-cmd/core` and `zod ^4.0.0`.
|
|
14
14
|
> Zero runtime dependencies.
|
|
15
15
|
|
|
16
|
+
For a single command, use `runCLI(cmd, { plugins: [completionsPlugin()] })`: its options complete at the top level. With `defineCLI` and one command, this plugin makes the command name required in argv.
|
|
17
|
+
|
|
16
18
|
## Quick Start
|
|
17
19
|
|
|
18
20
|
```ts
|
package/dist/generators/bash.js
CHANGED
|
@@ -11,9 +11,9 @@ function safeName(name) {
|
|
|
11
11
|
}
|
|
12
12
|
/** Build --long option names for an option, including --no-* for booleans */
|
|
13
13
|
function optionFlags(opt) {
|
|
14
|
-
const flags = [`--${opt.
|
|
14
|
+
const flags = [`--${opt.flag}`];
|
|
15
15
|
if (opt.type === 'boolean') {
|
|
16
|
-
flags.push(`--no-${opt.
|
|
16
|
+
flags.push(`--no-${opt.flag}`);
|
|
17
17
|
}
|
|
18
18
|
if (opt.alias) {
|
|
19
19
|
for (const a of opt.alias) {
|
|
@@ -32,8 +32,8 @@ function buildPrevCases(options, globalOptions) {
|
|
|
32
32
|
const lines = [];
|
|
33
33
|
const all = [...options, ...globalOptions];
|
|
34
34
|
for (const opt of all) {
|
|
35
|
-
if (opt.
|
|
36
|
-
const triggers = [`--${opt.
|
|
35
|
+
if (opt.enumValues?.length) {
|
|
36
|
+
const triggers = [`--${opt.flag}`];
|
|
37
37
|
if (opt.alias) {
|
|
38
38
|
for (const a of opt.alias) {
|
|
39
39
|
triggers.push(a);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/generators/bash.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,yDAAyD;AACzD,SAAS,QAAQ,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,6EAA6E;AAC7E,SAAS,WAAW,CAAC,GAAiB;IACrC,MAAM,KAAK,GAAa,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,sEAAsE;AACtE,SAAS,aAAa,CAAC,OAAuB,EAAE,aAA6B;IAC5E,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC;IAC3C,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,wDAAwD;AACxD,SAAS,cAAc,CAAC,OAAuB,EAAE,aAA6B;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/generators/bash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fish.d.ts","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"fish.d.ts","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;AA8E7E;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA4BlF"}
|
package/dist/generators/fish.js
CHANGED
|
@@ -8,25 +8,27 @@ import { escapeFish } from './escape.js';
|
|
|
8
8
|
/** Generate complete directives for a single option */
|
|
9
9
|
function optionDirectives(binName, opt, condition) {
|
|
10
10
|
const lines = [];
|
|
11
|
-
const
|
|
11
|
+
const repeats = opt.type === 'array' ? 'Can be repeated' : '';
|
|
12
|
+
const text = [opt.description, repeats].filter(Boolean).join('. ');
|
|
13
|
+
const desc = text ? ` -d '${escapeFish(text)}'` : '';
|
|
12
14
|
const shortAlias = opt.alias?.find((a) => a.startsWith('-') && !a.startsWith('--'));
|
|
13
15
|
const shortFlag = shortAlias ? ` -s ${shortAlias.replace(/^-/, '')}` : '';
|
|
14
16
|
const condPart = condition ? ` -n '${condition}'` : '';
|
|
15
17
|
if (opt.type === 'boolean') {
|
|
16
18
|
// Boolean flags don't take values — no -r
|
|
17
|
-
lines.push(`complete -c ${binName}${condPart}` + ` -l ${opt.
|
|
19
|
+
lines.push(`complete -c ${binName}${condPart}` + ` -l ${opt.flag}${shortFlag}${desc}`);
|
|
18
20
|
// --no-* variant
|
|
19
|
-
lines.push(`complete -c ${binName}${condPart}` + ` -l no-${opt.
|
|
21
|
+
lines.push(`complete -c ${binName}${condPart}` + ` -l no-${opt.flag}${desc}`);
|
|
20
22
|
}
|
|
21
|
-
else if (opt.
|
|
23
|
+
else if (opt.enumValues?.length) {
|
|
22
24
|
const vals = opt.enumValues.map((v) => escapeFish(v)).join(' ');
|
|
23
25
|
lines.push(`complete -c ${binName}${condPart}` +
|
|
24
|
-
` -l ${opt.
|
|
26
|
+
` -l ${opt.flag}${shortFlag}${desc}` +
|
|
25
27
|
` -r -a '${vals}'`);
|
|
26
28
|
}
|
|
27
29
|
else {
|
|
28
30
|
// string, number, array — require argument
|
|
29
|
-
lines.push(`complete -c ${binName}${condPart}` + ` -l ${opt.
|
|
31
|
+
lines.push(`complete -c ${binName}${condPart}` + ` -l ${opt.flag}${shortFlag}${desc} -r`);
|
|
30
32
|
}
|
|
31
33
|
return lines;
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fish.js","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,uDAAuD;AACvD,SAAS,gBAAgB,CAAC,OAAe,EAAE,GAAiB,EAAE,SAAiB;IAC9E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"fish.js","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zsh.d.ts","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"zsh.d.ts","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;AAwI7E;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA0DjF"}
|
package/dist/generators/zsh.js
CHANGED
|
@@ -14,37 +14,44 @@ function formatOptionSpec(opt) {
|
|
|
14
14
|
const specs = [];
|
|
15
15
|
const desc = opt.description ? escapeZsh(opt.description) : '';
|
|
16
16
|
const shortAlias = opt.alias?.find((a) => a.startsWith('-') && !a.startsWith('--'));
|
|
17
|
-
|
|
17
|
+
// `*` tells zsh the option can repeat, so it keeps offering it
|
|
18
|
+
if (opt.type === 'array') {
|
|
19
|
+
const vals = opt.enumValues?.map((v) => escapeZsh(v)).join(' ');
|
|
20
|
+
const value = `:${opt.flag}:${vals ? `(${vals})` : ''}`;
|
|
21
|
+
const flags = shortAlias ? `'*'{${shortAlias},--${opt.flag}}'` : `'*--${opt.flag}`;
|
|
22
|
+
specs.push(`${flags}[${desc}]${value}'`);
|
|
23
|
+
}
|
|
24
|
+
else if (opt.type === 'boolean') {
|
|
18
25
|
// Boolean with alias
|
|
19
26
|
if (shortAlias) {
|
|
20
|
-
specs.push(`'(${shortAlias} --${opt.
|
|
21
|
-
specs.push(`'--no-${opt.
|
|
27
|
+
specs.push(`'(${shortAlias} --${opt.flag})'` + `{${shortAlias},--${opt.flag}}` + `'[${desc}]'`);
|
|
28
|
+
specs.push(`'--no-${opt.flag}[${desc}]'`);
|
|
22
29
|
}
|
|
23
30
|
else {
|
|
24
|
-
specs.push(`'--${opt.
|
|
25
|
-
specs.push(`'--no-${opt.
|
|
31
|
+
specs.push(`'--${opt.flag}[${desc}]'`);
|
|
32
|
+
specs.push(`'--no-${opt.flag}[${desc}]'`);
|
|
26
33
|
}
|
|
27
34
|
}
|
|
28
35
|
else if (opt.type === 'enum' && opt.enumValues?.length) {
|
|
29
36
|
const vals = opt.enumValues.map((v) => escapeZsh(v)).join(' ');
|
|
30
37
|
if (shortAlias) {
|
|
31
|
-
specs.push(`'(${shortAlias} --${opt.
|
|
32
|
-
`{${shortAlias},--${opt.
|
|
33
|
-
`'[${desc}]:${opt.
|
|
38
|
+
specs.push(`'(${shortAlias} --${opt.flag})'` +
|
|
39
|
+
`{${shortAlias},--${opt.flag}}` +
|
|
40
|
+
`'[${desc}]:${opt.flag}:(${vals})'`);
|
|
34
41
|
}
|
|
35
42
|
else {
|
|
36
|
-
specs.push(`'--${opt.
|
|
43
|
+
specs.push(`'--${opt.flag}[${desc}]` + `:${opt.flag}:(${vals})'`);
|
|
37
44
|
}
|
|
38
45
|
}
|
|
39
46
|
else {
|
|
40
47
|
// string, number, array — require value but no candidates
|
|
41
48
|
if (shortAlias) {
|
|
42
|
-
specs.push(`'(${shortAlias} --${opt.
|
|
43
|
-
`{${shortAlias},--${opt.
|
|
44
|
-
`'[${desc}]:${opt.
|
|
49
|
+
specs.push(`'(${shortAlias} --${opt.flag})'` +
|
|
50
|
+
`{${shortAlias},--${opt.flag}}` +
|
|
51
|
+
`'[${desc}]:${opt.flag}:'`);
|
|
45
52
|
}
|
|
46
53
|
else {
|
|
47
|
-
specs.push(`'--${opt.
|
|
54
|
+
specs.push(`'--${opt.flag}[${desc}]` + `:${opt.flag}:'`);
|
|
48
55
|
}
|
|
49
56
|
}
|
|
50
57
|
return specs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zsh.js","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,yDAAyD;AACzD,SAAS,QAAQ,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,2CAA2C;AAC3C,SAAS,gBAAgB,CAAC,GAAiB;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpF,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"zsh.js","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9D,OAAO,KAAK,EAAE,wBAAwB,EAAS,MAAM,YAAY,CAAC;AA0BlE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,wBAA6B,GAAG,YAAY,CAyCnF"}
|
package/dist/plugin.js
CHANGED
|
@@ -9,6 +9,20 @@ const generators = {
|
|
|
9
9
|
zsh: generateZshCompletions,
|
|
10
10
|
fish: generateFishCompletions,
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* A root command runs without its name, so for the generators its options sit
|
|
14
|
+
* at the top level, like globals, and it isn't a subcommand to complete.
|
|
15
|
+
*/
|
|
16
|
+
function withRootAtTopLevel(schema) {
|
|
17
|
+
const root = schema.commands.find((command) => command.name === schema.root);
|
|
18
|
+
if (!root)
|
|
19
|
+
return schema;
|
|
20
|
+
return {
|
|
21
|
+
...schema,
|
|
22
|
+
commands: schema.commands.filter((command) => command !== root),
|
|
23
|
+
globalOptions: [...schema.globalOptions, ...root.options],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
12
26
|
/**
|
|
13
27
|
* Create a completions plugin that adds a `completions` command.
|
|
14
28
|
*
|
|
@@ -24,7 +38,6 @@ export function completionsPlugin(opts = {}) {
|
|
|
24
38
|
return definePlugin({
|
|
25
39
|
meta: {
|
|
26
40
|
name: '@runa-cmd/completions',
|
|
27
|
-
version: '0.1.0',
|
|
28
41
|
description: 'Shell completion script generation',
|
|
29
42
|
},
|
|
30
43
|
capabilities: { addCommands: true },
|
|
@@ -45,7 +58,7 @@ export function completionsPlugin(opts = {}) {
|
|
|
45
58
|
.describe('Print install instructions instead of the script'),
|
|
46
59
|
},
|
|
47
60
|
run({ args, options }) {
|
|
48
|
-
const schema = api.getSchema();
|
|
61
|
+
const schema = withRootAtTopLevel(api.getSchema());
|
|
49
62
|
const binName = schema.meta.name;
|
|
50
63
|
if (options.instructions) {
|
|
51
64
|
process.stdout.write(getInstallInstructions(args.shell, binName));
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,UAAU,GAGZ;IACH,IAAI,EAAE,uBAAuB;IAC7B,GAAG,EAAE,sBAAsB;IAC3B,IAAI,EAAE,uBAAuB;CAC7B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC,EAAE;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC;IAEtD,OAAO,YAAY,CAAC;QACnB,IAAI,EAAE;YACL,IAAI,EAAE,uBAAuB;YAC7B,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,UAAU,GAGZ;IACH,IAAI,EAAE,uBAAuB;IAC7B,GAAG,EAAE,sBAAsB;IAC3B,IAAI,EAAE,uBAAuB;CAC7B,CAAC;AAEF;;;GAGG;AACH,SAAS,kBAAkB,CAAC,MAAiB;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEzB,OAAO;QACN,GAAG,MAAM;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;QAC/D,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;KACzD,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC,EAAE;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC;IAEtD,OAAO,YAAY,CAAC;QACnB,IAAI,EAAE;YACL,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,oCAAoC;SACjD;QACD,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QACnC,KAAK,CAAC,GAAG;YACR,MAAM,cAAc,GAAG,aAAa,CAAC;gBACpC,IAAI,EAAE;oBACL,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,kCAAkC;iBAC/C;gBACD,IAAI,EAAE;oBACL,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;iBAC/D;gBACD,OAAO,EAAE;oBACR,YAAY,EAAE,CAAC;yBACb,OAAO,EAAE;yBACT,QAAQ,EAAE;yBACV,OAAO,CAAC,KAAK,CAAC;yBACd,QAAQ,CAAC,kDAAkD,CAAC;iBAC9D;gBACD,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;oBACpB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;oBACnD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBAEjC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;wBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;wBAClE,OAAO;oBACR,CAAC;oBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/D,CAAC;aACD,CAAC,CAAC;YAEH,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC7C,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runa-cmd/completions",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-beta.1",
|
|
4
4
|
"description": "Shell completion script generation for Runa CLIs. Auto-generate bash, zsh, and fish completions from your Zod schemas.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"
|
|
27
|
-
"
|
|
26
|
+
"@runa-cmd/core": "^0.2.0-beta.1",
|
|
27
|
+
"zod": "^4.0.0"
|
|
28
28
|
},
|
|
29
29
|
"engines": {
|
|
30
|
-
"node": ">=
|
|
30
|
+
"node": ">=24.0.0"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@types/node": "^25.6.0",
|
|
50
50
|
"typescript": "^6.0.2",
|
|
51
51
|
"zod": "^4.3.6",
|
|
52
|
-
"@runa-cmd/core": "0.
|
|
52
|
+
"@runa-cmd/core": "0.2.0-beta.1"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "tsc",
|