@mudah-cli/mudah 0.2.0 → 0.4.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/commands/doctor.command.js +2 -0
- package/dist/commands/doctor.command.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/run.d.ts +24 -0
- package/dist/run.js +117 -16
- package/dist/run.js.map +1 -1
- package/package.json +10 -10
|
@@ -46,6 +46,8 @@ export default class DoctorCommand extends Command {
|
|
|
46
46
|
this.output.keyValue('animations', String(caps.animations));
|
|
47
47
|
this.output.keyValue('notifications', caps.osc9 ? 'osc 9' : 'none');
|
|
48
48
|
this.output.keyValue('semantic prompts', caps.osc133 ? 'osc 133' : 'none');
|
|
49
|
+
this.output.keyValue('graphics', caps.kittyGraphics ? 'kitty' : 'none');
|
|
50
|
+
this.output.keyValue('keyboard', caps.kittyKeyboard ? 'kitty key-up' : 'legacy');
|
|
49
51
|
this.output.line();
|
|
50
52
|
this.output.success('doctor complete');
|
|
51
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.command.js","sourceRoot":"","sources":["../../src/commands/doctor.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,SAAS,GAAG,QAAQ,CAAC;IACrB,WAAW,GAAG,4CAA4C,CAAC;IAE3D,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,6BAA6B,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,wBAAwB,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.command.js","sourceRoot":"","sources":["../../src/commands/doctor.command.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { run, type RunOptions } from './run.js';
|
|
2
2
|
export { createWatcher, type WatcherOptions } from './watcher.js';
|
|
3
3
|
export { Command } from '@mudah-cli/console';
|
|
4
|
-
export { Application, EventBus, ServiceProvider, UsageError, ExitError, CommandCancelled, loadManifest, type MudahManifest, type LazyProviderOptions, type ProviderClass, type AppEvents, } from '@mudah-cli/core';
|
|
5
|
-
export { ConfigRepository, defineConfig, env, loadEnvFile, loadConfigFiles } from '@mudah-cli/config';
|
|
4
|
+
export { Application, EventBus, ServiceProvider, UsageError, ExitError, CommandCancelled, checkForUpdate, clearUpdateCache, compareSemVer, discoverPlugins, findPluginPackages, formatUpdateNudge, loadManifest, loadPlugin, parseSemVer, type MudahManifest, type LazyProviderOptions, type PluginDiscoveryOptions, type PluginInfo, type ProviderClass, type AppEvents, type UpdateCheckOptions, type UpdateCheckResult, } from '@mudah-cli/core';
|
|
5
|
+
export { ConfigRepository, ConfigValidationError, assertSchema, defineConfig, env, loadEnvFile, loadConfigFiles, s, validateSchema, type Schema, type SchemaIssue, type SchemaResult, } from '@mudah-cli/config';
|
|
6
6
|
export { Container } from '@mudah-cli/container';
|
|
7
7
|
export { detectCapabilities, type TerminalCapabilities } from '@mudah-cli/terminal';
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,8 @@ export { run } from './run.js';
|
|
|
2
2
|
export { createWatcher } from './watcher.js';
|
|
3
3
|
// App-facing re-exports: `import { Command } from '@mudah-cli/mudah'` is all users need.
|
|
4
4
|
export { Command } from '@mudah-cli/console';
|
|
5
|
-
export { Application, EventBus, ServiceProvider, UsageError, ExitError, CommandCancelled, loadManifest, } from '@mudah-cli/core';
|
|
6
|
-
export { ConfigRepository, defineConfig, env, loadEnvFile, loadConfigFiles } from '@mudah-cli/config';
|
|
5
|
+
export { Application, EventBus, ServiceProvider, UsageError, ExitError, CommandCancelled, checkForUpdate, clearUpdateCache, compareSemVer, discoverPlugins, findPluginPackages, formatUpdateNudge, loadManifest, loadPlugin, parseSemVer, } from '@mudah-cli/core';
|
|
6
|
+
export { ConfigRepository, ConfigValidationError, assertSchema, defineConfig, env, loadEnvFile, loadConfigFiles, s, validateSchema, } from '@mudah-cli/config';
|
|
7
7
|
export { Container } from '@mudah-cli/container';
|
|
8
8
|
export { detectCapabilities } from '@mudah-cli/terminal';
|
|
9
9
|
//# 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":"AAAA,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AAElE,yFAAyF;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AAElE,yFAAyF;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,WAAW,GASZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,GAAG,EACH,WAAW,EACX,eAAe,EACf,CAAC,EACD,cAAc,GAIf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAA6B,MAAM,qBAAqB,CAAC"}
|
package/dist/run.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Application as App, type MudahManifest } from '@mudah-cli/core';
|
|
2
|
+
import { type ThemeQueryInput } from '@mudah-cli/terminal';
|
|
2
3
|
import { type CommandModule } from '@mudah-cli/console';
|
|
3
4
|
export interface RunOptions {
|
|
4
5
|
/** Raw arguments (default: `process.argv.slice(2)`). */
|
|
@@ -16,6 +17,29 @@ export interface RunOptions {
|
|
|
16
17
|
stderr?: {
|
|
17
18
|
write(data: string): unknown;
|
|
18
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Stream the `'auto'` theme query reads from. Overriding it (and `stdout`)
|
|
22
|
+
* lets tests answer the query without a real terminal.
|
|
23
|
+
*/
|
|
24
|
+
stdin?: ThemeQueryInput;
|
|
25
|
+
/**
|
|
26
|
+
* Set false to never query the terminal for its colors. Tests and
|
|
27
|
+
* non-interactive runs use it to keep startup synchronous.
|
|
28
|
+
*/
|
|
29
|
+
allowThemeQuery?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Publishable package name for the update nudge. Omit (or set
|
|
32
|
+
* `checkUpdates: false`) to skip the check entirely — the default, since
|
|
33
|
+
* only published apps can be compared against a registry.
|
|
34
|
+
*/
|
|
35
|
+
updatePackage?: string;
|
|
36
|
+
/** Override the update-check cache directory (tests). */
|
|
37
|
+
updateCacheDir?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Skip plugin discovery. Bundled apps with no `node_modules` (and tests
|
|
40
|
+
* that don't want filesystem scanning) set this.
|
|
41
|
+
*/
|
|
42
|
+
disablePlugins?: boolean;
|
|
19
43
|
/**
|
|
20
44
|
* Bake the manifest instead of reading `mudah.json` from `cwd`. Use this
|
|
21
45
|
* for bundled/single-file tools that run from arbitrary directories.
|
package/dist/run.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Application, UsageError, loadManifest, } from '@mudah-cli/core';
|
|
1
|
+
import { Application, UsageError, loadManifest, checkForUpdate, formatUpdateNudge, } from '@mudah-cli/core';
|
|
2
2
|
import { detectCapabilities } from '@mudah-cli/terminal';
|
|
3
|
-
import { Output,
|
|
3
|
+
import { Output, detectTheme, renderTable } from '@mudah-cli/ui';
|
|
4
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';
|
|
@@ -26,20 +26,29 @@ export async function run(options = {}) {
|
|
|
26
26
|
const argv = options.argv ?? process.argv.slice(2);
|
|
27
27
|
const env = options.env;
|
|
28
28
|
const caps = detectCapabilities({ env });
|
|
29
|
+
// Resolved once: every later write (envelopes included) targets these, so
|
|
30
|
+
// output modes work with or without injected streams.
|
|
31
|
+
const stdout = options.stdout ?? process.stdout;
|
|
32
|
+
const stderr = options.stderr ?? process.stderr;
|
|
29
33
|
let manifest;
|
|
30
34
|
try {
|
|
31
35
|
manifest = options.manifest ?? loadManifest(cwd);
|
|
32
36
|
}
|
|
33
37
|
catch (error) {
|
|
34
38
|
const message = error instanceof Error ? error.message : String(error);
|
|
35
|
-
|
|
39
|
+
stderr.write(message + '\n');
|
|
36
40
|
return 1;
|
|
37
41
|
}
|
|
38
42
|
const app = options.app ?? new Application(cwd, manifest);
|
|
39
|
-
const theme =
|
|
43
|
+
const theme = await detectTheme({
|
|
44
|
+
name: manifest.ui?.theme,
|
|
45
|
+
allowQuery: caps.themeQuery && options.allowThemeQuery !== false,
|
|
46
|
+
stdout,
|
|
47
|
+
stdin: options.stdin,
|
|
48
|
+
});
|
|
40
49
|
const output = new Output({
|
|
41
|
-
stream:
|
|
42
|
-
errorStream:
|
|
50
|
+
stream: stdout,
|
|
51
|
+
errorStream: stderr,
|
|
43
52
|
theme,
|
|
44
53
|
colorLevel: caps.colorLevel,
|
|
45
54
|
unicode: caps.unicode,
|
|
@@ -53,10 +62,28 @@ export async function run(options = {}) {
|
|
|
53
62
|
output.setMode('plain');
|
|
54
63
|
}
|
|
55
64
|
const jsonMode = output.isMachineReadable;
|
|
65
|
+
const profileMode = argv.includes('--profile');
|
|
56
66
|
const startedAt = Date.now();
|
|
67
|
+
// Update nudge: opt-in per app (a package name must be given) and never in
|
|
68
|
+
// the way of scripts, CI, or machine-readable output.
|
|
69
|
+
const ci = env?.['CI'] ?? process.env['CI'];
|
|
70
|
+
const updateOptions = options.updatePackage === undefined ||
|
|
71
|
+
manifest.updates === false ||
|
|
72
|
+
jsonMode ||
|
|
73
|
+
!caps.isTty ||
|
|
74
|
+
(ci !== undefined && ci !== '' && ci !== 'false')
|
|
75
|
+
? undefined
|
|
76
|
+
: {
|
|
77
|
+
packageName: options.updatePackage,
|
|
78
|
+
currentVersion: manifest.version,
|
|
79
|
+
cacheDir: options.updateCacheDir,
|
|
80
|
+
};
|
|
81
|
+
// Plugins first: their providers must be registered before boot, and their
|
|
82
|
+
// commands join the same discovery list as the app's own.
|
|
83
|
+
const plugins = options.disablePlugins === true ? [] : await app.discoverPlugins();
|
|
57
84
|
// Providers: discover app providers, boot, then evaluate lazy predicates.
|
|
58
85
|
await app.discoverProviders();
|
|
59
|
-
await app.boot();
|
|
86
|
+
const bootProfile = await app.boot({ profile: profileMode });
|
|
60
87
|
await app.evaluateLazy();
|
|
61
88
|
// Kernel: built-ins first, then — in order — discovered app commands,
|
|
62
89
|
// manifest extras, and explicitly injected modules (bundled apps).
|
|
@@ -68,6 +95,9 @@ export async function run(options = {}) {
|
|
|
68
95
|
const candidates = [
|
|
69
96
|
...(await app.discoverCommandModules()),
|
|
70
97
|
...(options.commands ?? []),
|
|
98
|
+
// Plugin commands go last: registration is first-wins, so an app command
|
|
99
|
+
// with the same name keeps precedence over the plugin's.
|
|
100
|
+
...plugins.flatMap((plugin) => plugin.commands),
|
|
71
101
|
];
|
|
72
102
|
for (const extra of manifest.commands ?? []) {
|
|
73
103
|
const mod = (await app.importModule(extra));
|
|
@@ -90,28 +120,29 @@ export async function run(options = {}) {
|
|
|
90
120
|
kernel.register(mod);
|
|
91
121
|
}
|
|
92
122
|
catch (error) {
|
|
93
|
-
|
|
123
|
+
stderr.write((error instanceof Error ? error.message : String(error)) + '\n');
|
|
94
124
|
}
|
|
95
125
|
}
|
|
96
|
-
// Strip the
|
|
126
|
+
// Strip the global flags before dispatch so commands don't see them as
|
|
97
127
|
// unknown options; remember the command name for envelopes/errors.
|
|
98
|
-
const dispatchArgv = argv.filter((a) => a !== '--json' && a !== '--plain');
|
|
128
|
+
const dispatchArgv = argv.filter((a) => a !== '--json' && a !== '--plain' && a !== '--profile');
|
|
99
129
|
const commandName = dispatchArgv[0];
|
|
100
130
|
// Global flags.
|
|
101
131
|
const [first] = dispatchArgv;
|
|
102
132
|
if (first === undefined || first === '--help' || first === '-h') {
|
|
103
133
|
if (jsonMode) {
|
|
104
|
-
|
|
134
|
+
stdout.write(output.jsonEnvelope({ ok: true, exitCode: 0, command: 'help', commands: kernel.list().map((c) => c.name) }));
|
|
105
135
|
return 0;
|
|
106
136
|
}
|
|
107
137
|
const lines = [];
|
|
108
138
|
renderCommandList(manifest.name, manifest.version, kernel.list(), lines);
|
|
109
139
|
output.raw(lines.join('\n'));
|
|
140
|
+
output.raw('\n\nGlobal flags:\n --help/-h Show this help\n --version Show the version\n --json Machine-readable JSON output\n --plain Strip all ANSI styling\n --profile Print boot and command timings');
|
|
110
141
|
return 0;
|
|
111
142
|
}
|
|
112
143
|
if (first === '--version') {
|
|
113
144
|
if (jsonMode) {
|
|
114
|
-
|
|
145
|
+
stdout.write(output.jsonEnvelope({ ok: true, exitCode: 0, command: 'version', version: manifest.version }));
|
|
115
146
|
return 0;
|
|
116
147
|
}
|
|
117
148
|
output.info(`${manifest.name} v${manifest.version}`);
|
|
@@ -120,7 +151,7 @@ export async function run(options = {}) {
|
|
|
120
151
|
if ((argv[1] === '--help' || argv[1] === '-h') && kernel.has(first)) {
|
|
121
152
|
if (jsonMode) {
|
|
122
153
|
const entry = kernel.get(first);
|
|
123
|
-
|
|
154
|
+
stdout.write(output.jsonEnvelope({
|
|
124
155
|
ok: true,
|
|
125
156
|
exitCode: 0,
|
|
126
157
|
command: first,
|
|
@@ -134,15 +165,27 @@ export async function run(options = {}) {
|
|
|
134
165
|
return 0;
|
|
135
166
|
}
|
|
136
167
|
try {
|
|
137
|
-
const code = await kernel.dispatch(dispatchArgv);
|
|
168
|
+
const code = await kernel.dispatch(resolveGroup(kernel, dispatchArgv));
|
|
138
169
|
if (jsonMode) {
|
|
139
|
-
|
|
170
|
+
stdout.write(output.jsonEnvelope({
|
|
140
171
|
ok: code === 0,
|
|
141
172
|
exitCode: code,
|
|
142
173
|
command: commandName,
|
|
143
174
|
durationMs: Date.now() - startedAt,
|
|
175
|
+
...(bootProfile === undefined ? {} : { boot: bootProfile }),
|
|
144
176
|
}));
|
|
145
177
|
}
|
|
178
|
+
else {
|
|
179
|
+
if (profileMode) {
|
|
180
|
+
renderProfile(output, bootProfile, caps, {
|
|
181
|
+
command: commandName,
|
|
182
|
+
commandMs: Date.now() - startedAt - (bootProfile?.totalMs ?? 0),
|
|
183
|
+
totalMs: Date.now() - startedAt,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
if (code === 0)
|
|
187
|
+
await nudgeUpdate(output, manifest, updateOptions);
|
|
188
|
+
}
|
|
146
189
|
return code;
|
|
147
190
|
}
|
|
148
191
|
catch (rawError) {
|
|
@@ -158,17 +201,75 @@ export async function run(options = {}) {
|
|
|
158
201
|
}
|
|
159
202
|
const code = renderError(rawError, output);
|
|
160
203
|
if (jsonMode) {
|
|
161
|
-
|
|
204
|
+
stdout.write(output.jsonEnvelope({
|
|
162
205
|
ok: false,
|
|
163
206
|
exitCode: code,
|
|
164
207
|
command: commandName,
|
|
165
208
|
durationMs: Date.now() - startedAt,
|
|
209
|
+
...(bootProfile === undefined ? {} : { boot: bootProfile }),
|
|
166
210
|
error: parsed,
|
|
167
211
|
}));
|
|
168
212
|
}
|
|
169
213
|
return code;
|
|
170
214
|
}
|
|
171
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Render the `--profile` report. Uses `Output` so it respects `--plain`
|
|
218
|
+
* (no ANSI) and keeps the timing data machine-readable under `--json`.
|
|
219
|
+
*/
|
|
220
|
+
function renderProfile(output, boot, caps, totals) {
|
|
221
|
+
const rows = [['total', `${totals.totalMs}ms`]];
|
|
222
|
+
if (boot !== undefined) {
|
|
223
|
+
rows.push(['boot', `${boot.totalMs}ms`]);
|
|
224
|
+
// Every hook is listed, including sub-millisecond ones: which providers
|
|
225
|
+
// are effectively free is exactly what you profile for.
|
|
226
|
+
for (const timing of boot.providers) {
|
|
227
|
+
rows.push([` ${timing.provider}.${timing.hook}`, `${timing.durationMs}ms`]);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (totals.command !== undefined) {
|
|
231
|
+
rows.push([`command ${totals.command}`, `${totals.commandMs}ms`]);
|
|
232
|
+
}
|
|
233
|
+
output.line();
|
|
234
|
+
output.raw(renderTable([
|
|
235
|
+
{ header: 'stage', align: 'left' },
|
|
236
|
+
{ header: 'time', align: 'right' },
|
|
237
|
+
], rows, { level: caps.colorLevel, unicode: caps.unicode }));
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Let a bare namespace run its group's `default` command, the way
|
|
241
|
+
* `git remote` falls back to `git remote -h` style helpers: `db` runs
|
|
242
|
+
* `db:default` when that command exists.
|
|
243
|
+
*
|
|
244
|
+
* Everything else is passed through untouched, so grouping never changes
|
|
245
|
+
* how a real command resolves.
|
|
246
|
+
*/
|
|
247
|
+
function resolveGroup(kernel, argv) {
|
|
248
|
+
const [name, ...rest] = argv;
|
|
249
|
+
if (name === undefined || kernel.has(name) || !kernel.hasGroup(name))
|
|
250
|
+
return argv;
|
|
251
|
+
const fallback = `${name}:default`;
|
|
252
|
+
if (!kernel.has(fallback))
|
|
253
|
+
return argv;
|
|
254
|
+
return [fallback, ...rest];
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Mention a newer published version, at most once per cache window.
|
|
258
|
+
*
|
|
259
|
+
* Deliberately narrow: only on success, only for a TTY, never in JSON mode,
|
|
260
|
+
* and off entirely when the manifest says `updates: false` or CI is set. The
|
|
261
|
+
* check is bounded by its own timeout, so a slow registry can't stall exit.
|
|
262
|
+
*/
|
|
263
|
+
async function nudgeUpdate(output, manifest, options) {
|
|
264
|
+
if (options === undefined)
|
|
265
|
+
return;
|
|
266
|
+
const info = await checkForUpdate(options).catch(() => undefined);
|
|
267
|
+
if (info === undefined)
|
|
268
|
+
return;
|
|
269
|
+
const line = formatUpdateNudge(info, manifest.bin);
|
|
270
|
+
if (line !== null)
|
|
271
|
+
output.muted(line);
|
|
272
|
+
}
|
|
172
273
|
function registerBuiltIns(kernel) {
|
|
173
274
|
kernel.register({
|
|
174
275
|
default: class extends HelpCommand {
|
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,UAAU,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mudah-cli/mudah",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.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",
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
],
|
|
40
40
|
"sideEffects": false,
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@mudah-cli/animation": "^0.
|
|
43
|
-
"@mudah-cli/config": "^0.
|
|
44
|
-
"@mudah-cli/console": "^0.
|
|
45
|
-
"@mudah-cli/container": "^0.
|
|
46
|
-
"@mudah-cli/core": "^0.
|
|
47
|
-
"@mudah-cli/terminal": "^0.
|
|
48
|
-
"@mudah-cli/testing": "^0.
|
|
49
|
-
"@mudah-cli/tui": "^0.
|
|
50
|
-
"@mudah-cli/ui": "^0.
|
|
42
|
+
"@mudah-cli/animation": "^0.4.0",
|
|
43
|
+
"@mudah-cli/config": "^0.4.0",
|
|
44
|
+
"@mudah-cli/console": "^0.4.0",
|
|
45
|
+
"@mudah-cli/container": "^0.4.0",
|
|
46
|
+
"@mudah-cli/core": "^0.4.0",
|
|
47
|
+
"@mudah-cli/terminal": "^0.4.0",
|
|
48
|
+
"@mudah-cli/testing": "^0.4.0",
|
|
49
|
+
"@mudah-cli/tui": "^0.4.0",
|
|
50
|
+
"@mudah-cli/ui": "^0.4.0"
|
|
51
51
|
},
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|