@mudah-cli/mudah 0.1.0 → 0.2.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/dist/run.d.ts +13 -1
- package/dist/run.js +91 -13
- package/dist/run.js.map +1 -1
- package/dist/tui.d.ts +1 -0
- package/dist/tui.js +2 -0
- package/dist/tui.js.map +1 -0
- package/package.json +14 -9
package/dist/run.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type Application as App } from '@mudah-cli/core';
|
|
1
|
+
import { type Application as App, type MudahManifest } from '@mudah-cli/core';
|
|
2
|
+
import { type CommandModule } from '@mudah-cli/console';
|
|
2
3
|
export interface RunOptions {
|
|
3
4
|
/** Raw arguments (default: `process.argv.slice(2)`). */
|
|
4
5
|
argv?: string[];
|
|
@@ -15,6 +16,17 @@ export interface RunOptions {
|
|
|
15
16
|
stderr?: {
|
|
16
17
|
write(data: string): unknown;
|
|
17
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Bake the manifest instead of reading `mudah.json` from `cwd`. Use this
|
|
21
|
+
* for bundled/single-file tools that run from arbitrary directories.
|
|
22
|
+
*/
|
|
23
|
+
manifest?: MudahManifest;
|
|
24
|
+
/**
|
|
25
|
+
* Register command modules explicitly (bundled apps that can't rely on
|
|
26
|
+
* filesystem discovery). Registered after discovered commands; duplicates
|
|
27
|
+
* are skipped with a warning.
|
|
28
|
+
*/
|
|
29
|
+
commands?: CommandModule[];
|
|
18
30
|
}
|
|
19
31
|
/**
|
|
20
32
|
* The Mudah entry point. An app's `bin/<name>` stub is:
|
package/dist/run.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Application, loadManifest, } from '@mudah-cli/core';
|
|
1
|
+
import { Application, UsageError, loadManifest, } from '@mudah-cli/core';
|
|
2
2
|
import { detectCapabilities } from '@mudah-cli/terminal';
|
|
3
3
|
import { Output, resolveTheme } from '@mudah-cli/ui';
|
|
4
|
-
import { ConsoleKernel, renderError, renderCommandHelp, renderCommandList } from '@mudah-cli/console';
|
|
4
|
+
import { ConsoleKernel, renderError, renderCommandHelp, renderCommandList, parseSignature } from '@mudah-cli/console';
|
|
5
5
|
import HelpCommand from './commands/help.command.js';
|
|
6
6
|
import VersionCommand from './commands/version.command.js';
|
|
7
7
|
import MakeCommand from './commands/make.command.js';
|
|
@@ -28,7 +28,7 @@ export async function run(options = {}) {
|
|
|
28
28
|
const caps = detectCapabilities({ env });
|
|
29
29
|
let manifest;
|
|
30
30
|
try {
|
|
31
|
-
manifest = loadManifest(cwd);
|
|
31
|
+
manifest = options.manifest ?? loadManifest(cwd);
|
|
32
32
|
}
|
|
33
33
|
catch (error) {
|
|
34
34
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -45,20 +45,47 @@ export async function run(options = {}) {
|
|
|
45
45
|
unicode: caps.unicode,
|
|
46
46
|
osc9: caps.osc9,
|
|
47
47
|
});
|
|
48
|
+
// Output-mode flags (--json / --plain) may appear anywhere.
|
|
49
|
+
if (argv.includes('--json')) {
|
|
50
|
+
output.setMode('json');
|
|
51
|
+
}
|
|
52
|
+
else if (argv.includes('--plain')) {
|
|
53
|
+
output.setMode('plain');
|
|
54
|
+
}
|
|
55
|
+
const jsonMode = output.isMachineReadable;
|
|
56
|
+
const startedAt = Date.now();
|
|
48
57
|
// Providers: discover app providers, boot, then evaluate lazy predicates.
|
|
49
58
|
await app.discoverProviders();
|
|
50
59
|
await app.boot();
|
|
51
60
|
await app.evaluateLazy();
|
|
52
|
-
// Kernel: built-ins first, then discovered app commands,
|
|
61
|
+
// Kernel: built-ins first, then — in order — discovered app commands,
|
|
62
|
+
// manifest extras, and explicitly injected modules (bundled apps).
|
|
63
|
+
// First registration of a name wins; later duplicates are skipped so a
|
|
64
|
+
// checkout that both discovers and injects the same command stays clean.
|
|
53
65
|
const kernel = new ConsoleKernel(app, output);
|
|
54
66
|
registerBuiltIns(kernel);
|
|
55
|
-
const
|
|
67
|
+
const seen = new Set(kernel.list().map((entry) => entry.name));
|
|
68
|
+
const candidates = [
|
|
69
|
+
...(await app.discoverCommandModules()),
|
|
70
|
+
...(options.commands ?? []),
|
|
71
|
+
];
|
|
56
72
|
for (const extra of manifest.commands ?? []) {
|
|
57
73
|
const mod = (await app.importModule(extra));
|
|
58
74
|
if (mod.default)
|
|
59
|
-
|
|
75
|
+
candidates.push(mod);
|
|
60
76
|
}
|
|
61
|
-
for (const mod of
|
|
77
|
+
for (const mod of candidates) {
|
|
78
|
+
try {
|
|
79
|
+
const name = parseSignature(new mod.default().signature ?? '').name;
|
|
80
|
+
if (name === '')
|
|
81
|
+
continue;
|
|
82
|
+
if (seen.has(name))
|
|
83
|
+
continue;
|
|
84
|
+
seen.add(name);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// register() below surfaces the real error.
|
|
88
|
+
}
|
|
62
89
|
try {
|
|
63
90
|
kernel.register(mod);
|
|
64
91
|
}
|
|
@@ -66,29 +93,80 @@ export async function run(options = {}) {
|
|
|
66
93
|
(options.stderr ?? process.stderr).write((error instanceof Error ? error.message : String(error)) + '\n');
|
|
67
94
|
}
|
|
68
95
|
}
|
|
96
|
+
// Strip the mode flags before dispatch so commands don't see them as
|
|
97
|
+
// unknown options; remember the command name for envelopes/errors.
|
|
98
|
+
const dispatchArgv = argv.filter((a) => a !== '--json' && a !== '--plain');
|
|
99
|
+
const commandName = dispatchArgv[0];
|
|
69
100
|
// Global flags.
|
|
70
|
-
const [first] =
|
|
71
|
-
if (first ===
|
|
101
|
+
const [first] = dispatchArgv;
|
|
102
|
+
if (first === undefined || first === '--help' || first === '-h') {
|
|
103
|
+
if (jsonMode) {
|
|
104
|
+
options.stdout?.write(output.jsonEnvelope({ ok: true, exitCode: 0, command: 'help', commands: kernel.list().map((c) => c.name) }));
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
72
107
|
const lines = [];
|
|
73
108
|
renderCommandList(manifest.name, manifest.version, kernel.list(), lines);
|
|
74
109
|
output.raw(lines.join('\n'));
|
|
75
110
|
return 0;
|
|
76
111
|
}
|
|
77
112
|
if (first === '--version') {
|
|
113
|
+
if (jsonMode) {
|
|
114
|
+
options.stdout?.write(output.jsonEnvelope({ ok: true, exitCode: 0, command: 'version', version: manifest.version }));
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
78
117
|
output.info(`${manifest.name} v${manifest.version}`);
|
|
79
118
|
return 0;
|
|
80
119
|
}
|
|
81
|
-
if (
|
|
120
|
+
if ((argv[1] === '--help' || argv[1] === '-h') && kernel.has(first)) {
|
|
121
|
+
if (jsonMode) {
|
|
122
|
+
const entry = kernel.get(first);
|
|
123
|
+
options.stdout?.write(output.jsonEnvelope({
|
|
124
|
+
ok: true,
|
|
125
|
+
exitCode: 0,
|
|
126
|
+
command: first,
|
|
127
|
+
help: { usage: entry.signature.name, description: entry.description },
|
|
128
|
+
}));
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
82
131
|
const lines = [];
|
|
83
132
|
renderCommandHelp(manifest.name, kernel.get(first), lines);
|
|
84
133
|
output.raw(lines.join('\n'));
|
|
85
134
|
return 0;
|
|
86
135
|
}
|
|
87
136
|
try {
|
|
88
|
-
|
|
137
|
+
const code = await kernel.dispatch(dispatchArgv);
|
|
138
|
+
if (jsonMode) {
|
|
139
|
+
options.stdout?.write(output.jsonEnvelope({
|
|
140
|
+
ok: code === 0,
|
|
141
|
+
exitCode: code,
|
|
142
|
+
command: commandName,
|
|
143
|
+
durationMs: Date.now() - startedAt,
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
return code;
|
|
89
147
|
}
|
|
90
|
-
catch (
|
|
91
|
-
|
|
148
|
+
catch (rawError) {
|
|
149
|
+
let parsed;
|
|
150
|
+
if (rawError instanceof UsageError) {
|
|
151
|
+
parsed = { message: rawError.message, hint: rawError.hint, usage: rawError.usage };
|
|
152
|
+
}
|
|
153
|
+
else if (rawError instanceof Error) {
|
|
154
|
+
parsed = { message: rawError.message };
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
parsed = { message: String(rawError) };
|
|
158
|
+
}
|
|
159
|
+
const code = renderError(rawError, output);
|
|
160
|
+
if (jsonMode) {
|
|
161
|
+
options.stdout?.write(output.jsonEnvelope({
|
|
162
|
+
ok: false,
|
|
163
|
+
exitCode: code,
|
|
164
|
+
command: commandName,
|
|
165
|
+
durationMs: Date.now() - startedAt,
|
|
166
|
+
error: parsed,
|
|
167
|
+
}));
|
|
168
|
+
}
|
|
169
|
+
return code;
|
|
92
170
|
}
|
|
93
171
|
}
|
|
94
172
|
function registerBuiltIns(kernel) {
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/tui.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@mudah-cli/tui';
|
package/dist/tui.js
ADDED
package/dist/tui.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mudah-cli/mudah",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "An ergonomic, animation-rich CLI framework — speed, sleek design, and developer ergonomics for Node and Bun.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
"types": "./dist/animation.d.ts",
|
|
25
25
|
"default": "./dist/animation.js"
|
|
26
26
|
},
|
|
27
|
+
"./tui": {
|
|
28
|
+
"types": "./dist/tui.d.ts",
|
|
29
|
+
"default": "./dist/tui.js"
|
|
30
|
+
},
|
|
27
31
|
"./testing": {
|
|
28
32
|
"types": "./dist/testing.d.ts",
|
|
29
33
|
"default": "./dist/testing.js"
|
|
@@ -35,14 +39,15 @@
|
|
|
35
39
|
],
|
|
36
40
|
"sideEffects": false,
|
|
37
41
|
"dependencies": {
|
|
38
|
-
"@mudah-cli/animation": "^0.
|
|
39
|
-
"@mudah-cli/config": "^0.
|
|
40
|
-
"@mudah-cli/console": "^0.
|
|
41
|
-
"@mudah-cli/container": "^0.
|
|
42
|
-
"@mudah-cli/core": "^0.
|
|
43
|
-
"@mudah-cli/terminal": "^0.
|
|
44
|
-
"@mudah-cli/testing": "^0.
|
|
45
|
-
"@mudah-cli/
|
|
42
|
+
"@mudah-cli/animation": "^0.2.0",
|
|
43
|
+
"@mudah-cli/config": "^0.2.0",
|
|
44
|
+
"@mudah-cli/console": "^0.2.0",
|
|
45
|
+
"@mudah-cli/container": "^0.2.0",
|
|
46
|
+
"@mudah-cli/core": "^0.2.0",
|
|
47
|
+
"@mudah-cli/terminal": "^0.2.0",
|
|
48
|
+
"@mudah-cli/testing": "^0.2.0",
|
|
49
|
+
"@mudah-cli/tui": "^0.2.0",
|
|
50
|
+
"@mudah-cli/ui": "^0.2.0"
|
|
46
51
|
},
|
|
47
52
|
"publishConfig": {
|
|
48
53
|
"access": "public"
|