@kubb/cli 3.16.2 → 3.16.4
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/chunk-DWy1uDak.cjs +39 -0
- package/dist/generate-B9o-QjSi.cjs +6641 -0
- package/dist/generate-B9o-QjSi.cjs.map +1 -0
- package/dist/generate-BpnRmhKq.cjs +255 -0
- package/dist/generate-BpnRmhKq.cjs.map +1 -0
- package/dist/generate-COcFbC_i.js +254 -0
- package/dist/generate-COcFbC_i.js.map +1 -0
- package/dist/generate-CUJ2_P-U.js +6669 -0
- package/dist/generate-CUJ2_P-U.js.map +1 -0
- package/dist/index.cjs +53 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +52 -48
- package/dist/index.js.map +1 -1
- package/dist/mcp-Cmiw4RpU.cjs +44 -0
- package/dist/mcp-Cmiw4RpU.cjs.map +1 -0
- package/dist/mcp-DcaOAt6B.js +43 -0
- package/dist/mcp-DcaOAt6B.js.map +1 -0
- package/dist/validate-ClewPP5U.cjs +55 -0
- package/dist/validate-ClewPP5U.cjs.map +1 -0
- package/dist/validate-DD5UaudC.js +54 -0
- package/dist/validate-DD5UaudC.js.map +1 -0
- package/package.json +19 -19
- package/src/commands/generate.ts +10 -13
- package/src/commands/mcp.ts +2 -2
- package/src/runners/generate.ts +4 -4
- package/src/utils/Writables.ts +2 -2
- package/src/utils/executeHooks.ts +3 -3
- package/src/utils/getSummary.ts +8 -8
- package/src/utils/watcher.ts +3 -3
- package/dist/chunk-OKWBGMAG.cjs +0 -52
- package/dist/chunk-OKWBGMAG.cjs.map +0 -1
- package/dist/generate-65TMSGIL.js +0 -273
- package/dist/generate-65TMSGIL.js.map +0 -1
- package/dist/generate-HUWFJ4IA.js +0 -209
- package/dist/generate-HUWFJ4IA.js.map +0 -1
- package/dist/generate-IO6M6WPG.cjs +0 -7590
- package/dist/generate-IO6M6WPG.cjs.map +0 -1
- package/dist/generate-YZYI2YSX.cjs +0 -311
- package/dist/generate-YZYI2YSX.cjs.map +0 -1
- package/dist/mcp-KL42HRWB.cjs +0 -57
- package/dist/mcp-KL42HRWB.cjs.map +0 -1
- package/dist/mcp-LTBICXYR.js +0 -49
- package/dist/mcp-LTBICXYR.js.map +0 -1
- package/dist/validate-7QEOABSE.cjs +0 -67
- package/dist/validate-7QEOABSE.cjs.map +0 -1
- package/dist/validate-ONN45RYY.js +0 -58
- package/dist/validate-ONN45RYY.js.map +0 -1
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import * as process3 from 'process';
|
|
2
|
-
import process3__default from 'process';
|
|
3
|
-
import { setup, safeBuild } from '@kubb/core';
|
|
4
|
-
import { LogMapper, createLogger, randomCliColour } from '@kubb/core/logger';
|
|
5
|
-
import { SingleBar, Presets } from 'cli-progress';
|
|
6
|
-
import { colors } from 'consola/utils';
|
|
7
|
-
import { execa } from 'execa';
|
|
8
|
-
import { parseArgsStringToArgv } from 'string-argv';
|
|
9
|
-
import { Writable } from 'stream';
|
|
10
|
-
import path from 'path';
|
|
11
|
-
|
|
12
|
-
// src/runners/generate.ts
|
|
13
|
-
var ConsolaWritable = class extends Writable {
|
|
14
|
-
consola;
|
|
15
|
-
command;
|
|
16
|
-
constructor(consola, command, opts) {
|
|
17
|
-
super(opts);
|
|
18
|
-
this.command = command;
|
|
19
|
-
this.consola = consola;
|
|
20
|
-
}
|
|
21
|
-
_write(chunk, _encoding, callback) {
|
|
22
|
-
process3.stdout.write(`${colors.dim(chunk?.toString())}`);
|
|
23
|
-
callback();
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
async function executeHooks({ hooks, logger }) {
|
|
27
|
-
const commands = Array.isArray(hooks.done) ? hooks.done : [hooks.done].filter(Boolean);
|
|
28
|
-
for (const command of commands) {
|
|
29
|
-
const consolaWritable = new ConsolaWritable(logger.consola, command);
|
|
30
|
-
const [cmd, ..._args] = [...parseArgsStringToArgv(command)];
|
|
31
|
-
if (!cmd) {
|
|
32
|
-
continue;
|
|
33
|
-
}
|
|
34
|
-
logger?.emit("start", `Executing hook ${logger.logLevel !== LogMapper.silent ? colors.dim(command) : ""}`);
|
|
35
|
-
await execa(cmd, _args, {
|
|
36
|
-
detached: true,
|
|
37
|
-
stdout: logger?.logLevel === LogMapper.silent ? void 0 : ["pipe", consolaWritable],
|
|
38
|
-
stripFinalNewline: true
|
|
39
|
-
});
|
|
40
|
-
logger?.emit("success", `Executed hook ${logger.logLevel !== LogMapper.silent ? colors.dim(command) : ""}`);
|
|
41
|
-
}
|
|
42
|
-
logger?.emit("success", "Executed hooks");
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// src/utils/getErrorCauses.ts
|
|
46
|
-
function getErrorCauses(errors) {
|
|
47
|
-
return errors.reduce((prev, error) => {
|
|
48
|
-
const causedError = error?.cause;
|
|
49
|
-
if (causedError) {
|
|
50
|
-
prev = [...prev, ...getErrorCauses([causedError])];
|
|
51
|
-
return prev;
|
|
52
|
-
}
|
|
53
|
-
prev = [...prev, error];
|
|
54
|
-
return prev;
|
|
55
|
-
}, []).filter(Boolean);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// src/utils/parseHrtimeToSeconds.ts
|
|
59
|
-
function parseHrtimeToSeconds(hrtime) {
|
|
60
|
-
const seconds = (hrtime[0] + hrtime[1] / 1e9).toFixed(3);
|
|
61
|
-
return seconds;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// src/utils/getSummary.ts
|
|
65
|
-
function getSummary({ pluginManager, filesCreated, status, hrStart, config }) {
|
|
66
|
-
const logs = /* @__PURE__ */ new Set();
|
|
67
|
-
const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart));
|
|
68
|
-
const buildStartPlugins = pluginManager.executed.filter((item) => item.hookName === "buildStart" && item.plugin.name !== "core").map((item) => item.plugin.name);
|
|
69
|
-
const buildEndPlugins = pluginManager.executed.filter((item) => item.hookName === "buildEnd" && item.plugin.name !== "core").map((item) => item.plugin.name);
|
|
70
|
-
const failedPlugins = config.plugins?.filter((plugin) => !buildEndPlugins.includes(plugin.name))?.map((plugin) => plugin.name);
|
|
71
|
-
const pluginsCount = config.plugins?.length || 0;
|
|
72
|
-
const meta = {
|
|
73
|
-
plugins: status === "success" ? `${colors.green(`${buildStartPlugins.length} successful`)}, ${pluginsCount} total` : `${colors.red(`${failedPlugins?.length ?? 1} failed`)}, ${pluginsCount} total`,
|
|
74
|
-
pluginsFailed: status === "failed" ? failedPlugins?.map((name) => randomCliColour(name))?.join(", ") : void 0,
|
|
75
|
-
filesCreated,
|
|
76
|
-
time: `${colors.yellow(`${elapsedSeconds}s`)}`,
|
|
77
|
-
output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root
|
|
78
|
-
};
|
|
79
|
-
logs.add(
|
|
80
|
-
[
|
|
81
|
-
[`${colors.bold("Plugins:")} ${meta.plugins}`, true],
|
|
82
|
-
[`${colors.dim("Failed:")} ${meta.pluginsFailed || "none"}`, !!meta.pluginsFailed],
|
|
83
|
-
[`${colors.bold("Generated:")} ${meta.filesCreated} files in ${meta.time}`, true],
|
|
84
|
-
[`${colors.bold("Output:")} ${meta.output}`, true]
|
|
85
|
-
].map((item) => {
|
|
86
|
-
if (item.at(1)) {
|
|
87
|
-
return item.at(0);
|
|
88
|
-
}
|
|
89
|
-
return void 0;
|
|
90
|
-
}).filter(Boolean).join("\n")
|
|
91
|
-
);
|
|
92
|
-
return [...logs];
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// src/runners/generate.ts
|
|
96
|
-
async function generate({ input, config, progressCache, args }) {
|
|
97
|
-
const hrStart = process3__default.hrtime();
|
|
98
|
-
const logLevel = LogMapper[args.logLevel] || 3;
|
|
99
|
-
const logger = createLogger({
|
|
100
|
-
logLevel,
|
|
101
|
-
name: config.name
|
|
102
|
-
});
|
|
103
|
-
const { root = process3__default.cwd(), ...userConfig } = config;
|
|
104
|
-
const inputPath = input ?? ("path" in userConfig.input ? userConfig.input.path : void 0);
|
|
105
|
-
if (logger.logLevel !== LogMapper.debug) {
|
|
106
|
-
logger.on("progress_start", ({ id, size, message = "" }) => {
|
|
107
|
-
logger.consola?.pauseLogs();
|
|
108
|
-
const payload = { id, message };
|
|
109
|
-
const progressBar = new SingleBar(
|
|
110
|
-
{
|
|
111
|
-
format: "{percentage}% {bar} {value}/{total} | {message}",
|
|
112
|
-
barsize: 30,
|
|
113
|
-
clearOnComplete: true,
|
|
114
|
-
emptyOnZero: true
|
|
115
|
-
},
|
|
116
|
-
Presets.shades_grey
|
|
117
|
-
);
|
|
118
|
-
if (!progressCache.has(id)) {
|
|
119
|
-
progressCache.set(id, progressBar);
|
|
120
|
-
progressBar.start(size, 1, payload);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
logger.on("progress_stop", ({ id }) => {
|
|
124
|
-
progressCache.get(id)?.stop();
|
|
125
|
-
logger.consola?.resumeLogs();
|
|
126
|
-
});
|
|
127
|
-
logger.on("progressed", ({ id, message = "" }) => {
|
|
128
|
-
const payload = { id, message };
|
|
129
|
-
progressCache.get(id)?.increment(1, payload);
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
const definedConfig = {
|
|
133
|
-
root,
|
|
134
|
-
...userConfig,
|
|
135
|
-
input: inputPath ? {
|
|
136
|
-
...userConfig.input,
|
|
137
|
-
path: inputPath
|
|
138
|
-
} : userConfig.input,
|
|
139
|
-
output: {
|
|
140
|
-
write: true,
|
|
141
|
-
barrelType: "named",
|
|
142
|
-
extension: {
|
|
143
|
-
".ts": ".ts"
|
|
144
|
-
},
|
|
145
|
-
...userConfig.output
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
const pluginManager = await setup({
|
|
149
|
-
config: definedConfig,
|
|
150
|
-
logger
|
|
151
|
-
});
|
|
152
|
-
logger.emit("start", `Building ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath) : ""}`);
|
|
153
|
-
const { files, error } = await safeBuild({
|
|
154
|
-
config: definedConfig,
|
|
155
|
-
pluginManager,
|
|
156
|
-
logger
|
|
157
|
-
});
|
|
158
|
-
if (logger.logLevel === LogMapper.debug) {
|
|
159
|
-
logger.consola?.start("Writing logs");
|
|
160
|
-
const logFiles = await logger.writeLogs();
|
|
161
|
-
logger.consola?.success(`Written logs:
|
|
162
|
-
${logFiles.join("\n")}`);
|
|
163
|
-
}
|
|
164
|
-
const summary = getSummary({
|
|
165
|
-
filesCreated: files.length,
|
|
166
|
-
pluginManager,
|
|
167
|
-
config: definedConfig,
|
|
168
|
-
status: error ? "failed" : "success",
|
|
169
|
-
hrStart
|
|
170
|
-
});
|
|
171
|
-
if (error && logger.consola) {
|
|
172
|
-
logger.consola?.resumeLogs();
|
|
173
|
-
logger.consola.error(`Build failed ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath) : ""}`);
|
|
174
|
-
logger.consola.box({
|
|
175
|
-
title: `${config.name || ""}`,
|
|
176
|
-
message: summary.join(""),
|
|
177
|
-
style: {
|
|
178
|
-
padding: 2,
|
|
179
|
-
borderColor: "red",
|
|
180
|
-
borderStyle: "rounded"
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
const errors = getErrorCauses([error]);
|
|
184
|
-
if (logger.consola && errors.length && logger.logLevel === LogMapper.debug) {
|
|
185
|
-
errors.forEach((err) => {
|
|
186
|
-
logger.consola?.error(err);
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
logger.consola?.error(error);
|
|
190
|
-
process3__default.exit(1);
|
|
191
|
-
}
|
|
192
|
-
if (config.hooks) {
|
|
193
|
-
await executeHooks({ hooks: config.hooks, logger });
|
|
194
|
-
}
|
|
195
|
-
logger.consola?.log(`\u26A1Build completed ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath) : ""}`);
|
|
196
|
-
logger.consola?.box({
|
|
197
|
-
title: `${config.name || ""}`,
|
|
198
|
-
message: summary.join(""),
|
|
199
|
-
style: {
|
|
200
|
-
padding: 2,
|
|
201
|
-
borderColor: "green",
|
|
202
|
-
borderStyle: "rounded"
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
export { generate };
|
|
208
|
-
//# sourceMappingURL=generate-HUWFJ4IA.js.map
|
|
209
|
-
//# sourceMappingURL=generate-HUWFJ4IA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/Writables.ts","../src/utils/executeHooks.ts","../src/utils/getErrorCauses.ts","../src/utils/parseHrtimeToSeconds.ts","../src/utils/getSummary.ts","../src/runners/generate.ts"],"names":["process2","colors","process","LogMapper"],"mappings":"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","file":"generate-HUWFJ4IA.js","sourcesContent":["import { Writable } from 'node:stream'\n\nimport { colors } from 'consola/utils'\n\nimport * as process from 'node:process'\nimport type { WritableOptions } from 'node:stream'\nimport type { ConsolaInstance } from 'consola'\n\nexport class ConsolaWritable extends Writable {\n consola: ConsolaInstance | undefined\n command: string\n constructor(consola: ConsolaInstance | undefined, command: string, opts?: WritableOptions) {\n super(opts)\n\n this.command = command\n this.consola = consola\n }\n _write(chunk: any, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n process.stdout.write(`${colors.dim(chunk?.toString())}`)\n\n callback()\n }\n}\n","import type { Logger } from '@kubb/core/logger'\nimport { execa } from 'execa'\nimport { parseArgsStringToArgv } from 'string-argv'\nimport { colors } from 'consola/utils'\n\nimport { ConsolaWritable } from './Writables.ts'\n\nimport type { Config } from '@kubb/core'\nimport { LogMapper } from '@kubb/core/logger'\n\ntype ExecutingHooksProps = {\n hooks: NonNullable<Config['hooks']>\n logger: Logger\n}\n\nexport async function executeHooks({ hooks, logger }: ExecutingHooksProps): Promise<void> {\n const commands = Array.isArray(hooks.done) ? hooks.done : [hooks.done].filter(Boolean)\n\n for (const command of commands) {\n const consolaWritable = new ConsolaWritable(logger.consola!, command)\n const [cmd, ..._args] = [...parseArgsStringToArgv(command)]\n\n if (!cmd) {\n continue\n }\n\n logger?.emit('start', `Executing hook ${logger.logLevel !== LogMapper.silent ? colors.dim(command) : ''}`)\n\n await execa(cmd, _args, {\n detached: true,\n stdout: logger?.logLevel === LogMapper.silent ? undefined : ['pipe', consolaWritable],\n stripFinalNewline: true,\n })\n\n logger?.emit('success', `Executed hook ${logger.logLevel !== LogMapper.silent ? colors.dim(command) : ''}`)\n }\n\n logger?.emit('success', 'Executed hooks')\n}\n","export function getErrorCauses(errors: Error[]): Error[] {\n return errors\n .reduce((prev, error) => {\n const causedError = error?.cause as Error\n if (causedError) {\n prev = [...prev, ...getErrorCauses([causedError])]\n return prev\n }\n prev = [...prev, error]\n\n return prev\n }, [] as Error[])\n .filter(Boolean)\n}\n","export function parseHrtimeToSeconds(hrtime: [number, number]): string {\n const seconds = (hrtime[0] + hrtime[1] / 1e9).toFixed(3)\n return seconds\n}\n","import path from 'node:path'\n\nimport { randomCliColour } from '@kubb/core/logger'\n\nimport { colors } from 'consola/utils'\n\nimport { parseHrtimeToSeconds } from './parseHrtimeToSeconds.ts'\n\nimport type { Config, PluginManager } from '@kubb/core'\n\ntype SummaryProps = {\n pluginManager: PluginManager\n status: 'success' | 'failed'\n hrStart: [number, number]\n filesCreated: number\n config: Config\n}\n\nexport function getSummary({ pluginManager, filesCreated, status, hrStart, config }: SummaryProps): string[] {\n const logs = new Set<string>()\n const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart))\n\n const buildStartPlugins = pluginManager.executed\n .filter((item) => item.hookName === 'buildStart' && item.plugin.name !== 'core')\n .map((item) => item.plugin.name)\n\n const buildEndPlugins = pluginManager.executed.filter((item) => item.hookName === 'buildEnd' && item.plugin.name !== 'core').map((item) => item.plugin.name)\n\n const failedPlugins = config.plugins?.filter((plugin) => !buildEndPlugins.includes(plugin.name))?.map((plugin) => plugin.name)\n const pluginsCount = config.plugins?.length || 0\n\n const meta = {\n plugins:\n status === 'success'\n ? `${colors.green(`${buildStartPlugins.length} successful`)}, ${pluginsCount} total`\n : `${colors.red(`${failedPlugins?.length ?? 1} failed`)}, ${pluginsCount} total`,\n pluginsFailed: status === 'failed' ? failedPlugins?.map((name) => randomCliColour(name))?.join(', ') : undefined,\n filesCreated: filesCreated,\n time: `${colors.yellow(`${elapsedSeconds}s`)}`,\n output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root,\n } as const\n\n logs.add(\n [\n [`${colors.bold('Plugins:')} ${meta.plugins}`, true],\n [`${colors.dim('Failed:')} ${meta.pluginsFailed || 'none'}`, !!meta.pluginsFailed],\n [`${colors.bold('Generated:')} ${meta.filesCreated} files in ${meta.time}`, true],\n [`${colors.bold('Output:')} ${meta.output}`, true],\n ]\n .map((item) => {\n if (item.at(1)) {\n return item.at(0)\n }\n return undefined\n })\n .filter(Boolean)\n .join('\\n'),\n )\n\n return [...logs]\n}\n","import process from 'node:process'\nimport { type Config, safeBuild, setup } from '@kubb/core'\nimport { createLogger, LogMapper } from '@kubb/core/logger'\nimport { Presets, SingleBar } from 'cli-progress'\nimport { colors } from 'consola/utils'\nimport type { Args } from '../commands/generate.ts'\nimport { executeHooks } from '../utils/executeHooks.ts'\nimport { getErrorCauses } from '../utils/getErrorCauses.ts'\nimport { getSummary } from '../utils/getSummary.ts'\n\ntype GenerateProps = {\n input?: string\n config: Config\n args: Args\n progressCache: Map<string, SingleBar>\n}\n\nexport async function generate({ input, config, progressCache, args }: GenerateProps): Promise<void> {\n const hrStart = process.hrtime()\n const logLevel = LogMapper[args.logLevel as keyof typeof LogMapper] || 3\n\n const logger = createLogger({\n logLevel,\n name: config.name,\n })\n\n const { root = process.cwd(), ...userConfig } = config\n const inputPath = input ?? ('path' in userConfig.input ? userConfig.input.path : undefined)\n\n if (logger.logLevel !== LogMapper.debug) {\n logger.on('progress_start', ({ id, size, message = '' }) => {\n logger.consola?.pauseLogs()\n const payload = { id, message }\n const progressBar = new SingleBar(\n {\n format: '{percentage}% {bar} {value}/{total} | {message}',\n barsize: 30,\n clearOnComplete: true,\n emptyOnZero: true,\n },\n Presets.shades_grey,\n )\n\n if (!progressCache.has(id)) {\n progressCache.set(id, progressBar)\n progressBar.start(size, 1, payload)\n }\n })\n\n logger.on('progress_stop', ({ id }) => {\n progressCache.get(id)?.stop()\n logger.consola?.resumeLogs()\n })\n\n logger.on('progressed', ({ id, message = '' }) => {\n const payload = { id, message }\n\n progressCache.get(id)?.increment(1, payload)\n })\n }\n\n const definedConfig: Config = {\n root,\n ...userConfig,\n input: inputPath\n ? {\n ...userConfig.input,\n path: inputPath,\n }\n : userConfig.input,\n output: {\n write: true,\n barrelType: 'named',\n extension: {\n '.ts': '.ts',\n },\n ...userConfig.output,\n },\n }\n\n const pluginManager = await setup({\n config: definedConfig,\n logger,\n })\n\n logger.emit('start', `Building ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath!) : ''}`)\n\n const { files, error } = await safeBuild({\n config: definedConfig,\n pluginManager,\n logger,\n })\n\n if (logger.logLevel === LogMapper.debug) {\n logger.consola?.start('Writing logs')\n\n const logFiles = await logger.writeLogs()\n\n logger.consola?.success(`Written logs: \\n${logFiles.join('\\n')}`)\n }\n\n const summary = getSummary({\n filesCreated: files.length,\n pluginManager,\n config: definedConfig,\n status: error ? 'failed' : 'success',\n hrStart,\n })\n\n if (error && logger.consola) {\n logger.consola?.resumeLogs()\n logger.consola.error(`Build failed ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath!) : ''}`)\n\n logger.consola.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'red',\n borderStyle: 'rounded',\n },\n })\n\n const errors = getErrorCauses([error])\n if (logger.consola && errors.length && logger.logLevel === LogMapper.debug) {\n errors.forEach((err) => {\n logger.consola?.error(err)\n })\n }\n\n logger.consola?.error(error)\n\n process.exit(1)\n }\n\n if (config.hooks) {\n await executeHooks({ hooks: config.hooks, logger })\n }\n\n logger.consola?.log(`⚡Build completed ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath!) : ''}`)\n\n logger.consola?.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'green',\n borderStyle: 'rounded',\n },\n })\n}\n"]}
|