@kubb/cli 5.0.0-beta.29 → 5.0.0-beta.30

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.
Files changed (40) hide show
  1. package/dist/{agent-C5Fwtkwy.js → agent-CPKt8QQU.js} +2 -2
  2. package/dist/{agent-C5Fwtkwy.js.map → agent-CPKt8QQU.js.map} +1 -1
  3. package/dist/{agent-BBnJ3z1X.cjs → agent-lxTI4Krn.cjs} +2 -2
  4. package/dist/{agent-BBnJ3z1X.cjs.map → agent-lxTI4Krn.cjs.map} +1 -1
  5. package/dist/{generate-DoOmhbH4.cjs → generate-DgTJz23F.cjs} +2 -2
  6. package/dist/{generate-DoOmhbH4.cjs.map → generate-DgTJz23F.cjs.map} +1 -1
  7. package/dist/{generate-Ga3rWDun.js → generate-qCPyPiD6.js} +2 -2
  8. package/dist/{generate-Ga3rWDun.js.map → generate-qCPyPiD6.js.map} +1 -1
  9. package/dist/index.cjs +6 -6
  10. package/dist/index.js +6 -6
  11. package/dist/{init-zA8dUkIL.cjs → init-CM61rK5A.cjs} +2 -2
  12. package/dist/{init-zA8dUkIL.cjs.map → init-CM61rK5A.cjs.map} +1 -1
  13. package/dist/{init-DBl4w2eq.js → init-_-CN-ASE.js} +2 -2
  14. package/dist/{init-DBl4w2eq.js.map → init-_-CN-ASE.js.map} +1 -1
  15. package/dist/{mcp-Dy2q0IpZ.js → mcp-1ld_vD4n.js} +2 -2
  16. package/dist/{mcp-Dy2q0IpZ.js.map → mcp-1ld_vD4n.js.map} +1 -1
  17. package/dist/{mcp-vcwhUjDa.cjs → mcp-IMkVgOtF.cjs} +2 -2
  18. package/dist/{mcp-vcwhUjDa.cjs.map → mcp-IMkVgOtF.cjs.map} +1 -1
  19. package/dist/package-BDL80yHv.js +6 -0
  20. package/dist/package-BDL80yHv.js.map +1 -0
  21. package/dist/{package-DlcR7TDy.cjs → package-CHmy7tzG.cjs} +2 -2
  22. package/dist/package-CHmy7tzG.cjs.map +1 -0
  23. package/dist/{run-Cmub7x_z.js → run-BonExv0-.js} +111 -125
  24. package/dist/run-BonExv0-.js.map +1 -0
  25. package/dist/{run-BGQSMjOH.cjs → run-e1Pda1tW.cjs} +111 -125
  26. package/dist/run-e1Pda1tW.cjs.map +1 -0
  27. package/dist/{validate-DVs01Mu6.js → validate-26X6uBG3.js} +2 -2
  28. package/dist/{validate-DVs01Mu6.js.map → validate-26X6uBG3.js.map} +1 -1
  29. package/dist/{validate-B8z4X5Cc.cjs → validate-BAEo4Dcd.cjs} +2 -2
  30. package/dist/{validate-B8z4X5Cc.cjs.map → validate-BAEo4Dcd.cjs.map} +1 -1
  31. package/package.json +6 -6
  32. package/src/loggers/clackLogger.ts +18 -42
  33. package/src/loggers/githubActionsLogger.ts +51 -106
  34. package/src/loggers/plainLogger.ts +25 -83
  35. package/src/loggers/utils.ts +76 -1
  36. package/dist/package-DlcR7TDy.cjs.map +0 -1
  37. package/dist/package-DmWpQ3SY.js +0 -6
  38. package/dist/package-DmWpQ3SY.js.map +0 -1
  39. package/dist/run-BGQSMjOH.cjs.map +0 -1
  40. package/dist/run-Cmub7x_z.js.map +0 -1
@@ -2,7 +2,7 @@ import "./chunk-BvFE5Tac.js";
2
2
  import { n as toCause, r as toError } from "./errors-CINO1EIv.js";
3
3
  import { a as canUseTTY, i as executeIfOnline, o as isGitHubActions, r as sendTelemetry, t as buildTelemetryEvent } from "./telemetry-BkektVz6.js";
4
4
  import { n as tokenize } from "./shell-CN6DNqeC.js";
5
- import { t as version } from "./package-DmWpQ3SY.js";
5
+ import { t as version } from "./package-BDL80yHv.js";
6
6
  import { a as WATCHER_IGNORED_PATHS, i as SUMMARY_SEPARATOR, t as KUBB_NPM_PACKAGE_URL } from "./constants-B2JTeRBb.js";
7
7
  import { styleText } from "node:util";
8
8
  import { EventEmitter } from "node:events";
@@ -497,12 +497,7 @@ const clackLogger = defineLogger({
497
497
  install(context, options) {
498
498
  const logLevel$8 = options?.logLevel ?? logLevel.info;
499
499
  const state = {
500
- totalPlugins: 0,
501
- completedPlugins: 0,
502
- failedPlugins: 0,
503
- totalFiles: 0,
504
- processedFiles: 0,
505
- hrStart: process$1.hrtime(),
500
+ ...createProgressCounters(),
506
501
  spinner: clack.spinner(),
507
502
  isSpinning: false,
508
503
  activeProgress: /* @__PURE__ */ new Map(),
@@ -513,12 +508,7 @@ const clackLogger = defineLogger({
513
508
  if (active.interval) clearInterval(active.interval);
514
509
  active.progressBar?.stop();
515
510
  }
516
- state.totalPlugins = 0;
517
- state.completedPlugins = 0;
518
- state.failedPlugins = 0;
519
- state.totalFiles = 0;
520
- state.processedFiles = 0;
521
- state.hrStart = process$1.hrtime();
511
+ resetProgressCounters(state);
522
512
  state.spinner = clack.spinner();
523
513
  state.isSpinning = false;
524
514
  state.activeProgress.clear();
@@ -532,6 +522,12 @@ const clackLogger = defineLogger({
532
522
  function getMessage(message) {
533
523
  return formatMessage(message, logLevel$8);
534
524
  }
525
+ function onStep(event, message) {
526
+ context.on(event, () => {
527
+ if (logLevel$8 <= logLevel.silent) return;
528
+ clack.log.step(getMessage(message));
529
+ });
530
+ }
535
531
  function startSpinner(text) {
536
532
  state.spinner.start(text);
537
533
  state.isSpinning = true;
@@ -661,8 +657,7 @@ Run \`npm install -g @kubb/cli\` to update`, "Update available for `Kubb`", {
661
657
  const active = state.activeProgress.get(plugin.name);
662
658
  if (!active || logLevel$8 === logLevel.silent) return;
663
659
  clearInterval(active.interval);
664
- if (success) state.completedPlugins++;
665
- else state.failedPlugins++;
660
+ recordPluginResult(state, success);
666
661
  const durationStr = formatMsWithColor(duration);
667
662
  const text = getMessage(success ? `${styleText("bold", plugin.name)} completed in ${durationStr}` : `${styleText("bold", plugin.name)} failed in ${styleText("red", formatMs(duration))}`);
668
663
  active.progressBar.stop(text);
@@ -708,18 +703,9 @@ Run \`npm install -g @kubb/cli\` to update`, "Update available for `Kubb`", {
708
703
  const text = getMessage(config.name ? `Generation completed for ${styleText("dim", config.name)}` : "Generation completed");
709
704
  clack.outro(text);
710
705
  });
711
- context.on("kubb:format:start", () => {
712
- if (logLevel$8 <= logLevel.silent) return;
713
- clack.log.step(getMessage("Formatting"));
714
- });
715
- context.on("kubb:lint:start", () => {
716
- if (logLevel$8 <= logLevel.silent) return;
717
- clack.log.step(getMessage("Linting"));
718
- });
719
- context.on("kubb:hooks:start", () => {
720
- if (logLevel$8 <= logLevel.silent) return;
721
- clack.log.step(getMessage("Running hooks"));
722
- });
706
+ onStep("kubb:format:start", "Formatting");
707
+ onStep("kubb:lint:start", "Linting");
708
+ onStep("kubb:hooks:start", "Running hooks");
723
709
  context.on("kubb:hook:start", ({ id, command, args }) => {
724
710
  if (logLevel$8 <= logLevel.silent || !id) return;
725
711
  stopSpinner();
@@ -907,26 +893,16 @@ const githubActionsLogger = defineLogger({
907
893
  install(context, options) {
908
894
  const logLevel$7 = options?.logLevel ?? logLevel.info;
909
895
  const state = {
910
- totalPlugins: 0,
911
- completedPlugins: 0,
912
- failedPlugins: 0,
913
- totalFiles: 0,
914
- processedFiles: 0,
915
- hrStart: process$1.hrtime(),
896
+ ...createProgressCounters(),
916
897
  currentConfigs: [],
917
- hookStarts: /* @__PURE__ */ new Map(),
918
898
  openGroupDepth: 0
919
899
  };
900
+ const hookTimer = createHookTimer();
920
901
  function reset() {
921
902
  closeAllGroups();
922
- state.totalPlugins = 0;
923
- state.completedPlugins = 0;
924
- state.failedPlugins = 0;
925
- state.totalFiles = 0;
926
- state.processedFiles = 0;
927
- state.hrStart = process$1.hrtime();
903
+ resetProgressCounters(state);
928
904
  state.currentConfigs = [];
929
- state.hookStarts.clear();
905
+ hookTimer.clear();
930
906
  }
931
907
  function showProgressStep() {
932
908
  if (logLevel$7 <= logLevel.silent) return;
@@ -950,6 +926,20 @@ const githubActionsLogger = defineLogger({
950
926
  state.openGroupDepth--;
951
927
  }
952
928
  }
929
+ function onGroupStart(event, message, group) {
930
+ context.on(event, () => {
931
+ if (logLevel$7 <= logLevel.silent) return;
932
+ if (state.currentConfigs.length === 1) openGroup(group);
933
+ console.log(getMessage(message));
934
+ });
935
+ }
936
+ function onGroupEnd(event, message, group) {
937
+ context.on(event, () => {
938
+ if (logLevel$7 <= logLevel.silent) return;
939
+ console.log(getMessage(message));
940
+ if (state.currentConfigs.length === 1) closeGroup(group);
941
+ });
942
+ }
953
943
  context.on("kubb:info", ({ message, info = "" }) => {
954
944
  if (logLevel$7 <= logLevel.silent) return;
955
945
  const text = getMessage([
@@ -1028,8 +1018,7 @@ const githubActionsLogger = defineLogger({
1028
1018
  });
1029
1019
  context.on("kubb:plugin:end", ({ plugin, duration, success }) => {
1030
1020
  if (logLevel$7 <= logLevel.silent) return;
1031
- if (success) state.completedPlugins++;
1032
- else state.failedPlugins++;
1021
+ recordPluginResult(state, success);
1033
1022
  const durationStr = formatMsWithColor(duration);
1034
1023
  const text = getMessage(success ? `${styleText("bold", plugin.name)} completed in ${durationStr}` : `${styleText("bold", plugin.name)} failed in ${styleText("red", formatMs(duration))}`);
1035
1024
  console.log(text);
@@ -1060,43 +1049,15 @@ const githubActionsLogger = defineLogger({
1060
1049
  const text = getMessage(config.name ? `${styleText("blue", "✓")} Generation completed for ${styleText("dim", config.name)}` : `${styleText("blue", "✓")} Generation completed`);
1061
1050
  console.log(text);
1062
1051
  });
1063
- context.on("kubb:format:start", () => {
1064
- if (logLevel$7 <= logLevel.silent) return;
1065
- const text = getMessage("Format started");
1066
- if (state.currentConfigs.length === 1) openGroup("Formatting");
1067
- console.log(text);
1068
- });
1069
- context.on("kubb:format:end", () => {
1070
- if (logLevel$7 <= logLevel.silent) return;
1071
- const text = getMessage("Format completed");
1072
- console.log(text);
1073
- if (state.currentConfigs.length === 1) closeGroup("Formatting");
1074
- });
1075
- context.on("kubb:lint:start", () => {
1076
- if (logLevel$7 <= logLevel.silent) return;
1077
- const text = getMessage("Lint started");
1078
- if (state.currentConfigs.length === 1) openGroup("Linting");
1079
- console.log(text);
1080
- });
1081
- context.on("kubb:lint:end", () => {
1082
- if (logLevel$7 <= logLevel.silent) return;
1083
- const text = getMessage("Lint completed");
1084
- console.log(text);
1085
- if (state.currentConfigs.length === 1) closeGroup("Linting");
1086
- });
1087
- context.on("kubb:hooks:start", () => {
1088
- if (logLevel$7 <= logLevel.silent) return;
1089
- if (state.currentConfigs.length === 1) openGroup("Hooks");
1090
- console.log(getMessage("Hooks started"));
1091
- });
1092
- context.on("kubb:hooks:end", () => {
1093
- if (logLevel$7 <= logLevel.silent) return;
1094
- console.log(getMessage("Hooks completed"));
1095
- if (state.currentConfigs.length === 1) closeGroup("Hooks");
1096
- });
1052
+ onGroupStart("kubb:format:start", "Format started", "Formatting");
1053
+ onGroupEnd("kubb:format:end", "Format completed", "Formatting");
1054
+ onGroupStart("kubb:lint:start", "Lint started", "Linting");
1055
+ onGroupEnd("kubb:lint:end", "Lint completed", "Linting");
1056
+ onGroupStart("kubb:hooks:start", "Hooks started", "Hooks");
1057
+ onGroupEnd("kubb:hooks:end", "Hooks completed", "Hooks");
1097
1058
  context.on("kubb:hook:start", ({ id, command, args }) => {
1098
1059
  if (logLevel$7 <= logLevel.silent) return;
1099
- if (id) state.hookStarts.set(id, process$1.hrtime());
1060
+ if (id) hookTimer.start(id);
1100
1061
  const commandWithArgs = formatCommandWithArgs(command, args);
1101
1062
  const text = getMessage(`Hook ${styleText("dim", commandWithArgs)} started`);
1102
1063
  if (state.currentConfigs.length === 1) openGroup(`Hook ${commandWithArgs}`);
@@ -1104,9 +1065,8 @@ const githubActionsLogger = defineLogger({
1104
1065
  });
1105
1066
  context.on("kubb:hook:end", ({ id, command, args, success, error }) => {
1106
1067
  if (logLevel$7 <= logLevel.silent) return;
1107
- const hrStart = id ? state.hookStarts.get(id) : void 0;
1108
- if (id) state.hookStarts.delete(id);
1109
- const durationStr = hrStart ? ` in ${formatMsWithColor(getElapsedMs(hrStart))}` : "";
1068
+ const ms = id ? hookTimer.end(id) : void 0;
1069
+ const durationStr = ms !== void 0 ? ` in ${formatMsWithColor(ms)}` : "";
1110
1070
  const commandWithArgs = formatCommandWithArgs(command, args);
1111
1071
  if (success) console.log(getMessage(`${styleText("green", "✓")} Hook ${styleText("dim", commandWithArgs)} completed${durationStr}`));
1112
1072
  else {
@@ -1141,10 +1101,16 @@ const plainLogger = defineLogger({
1141
1101
  name: "plain",
1142
1102
  install(context, options) {
1143
1103
  const logLevel$6 = options?.logLevel ?? logLevel.info;
1144
- const hookStarts = /* @__PURE__ */ new Map();
1104
+ const hookTimer = createHookTimer();
1145
1105
  function getMessage(message) {
1146
1106
  return formatMessage(message, logLevel$6);
1147
1107
  }
1108
+ function onStep(event, message) {
1109
+ context.on(event, () => {
1110
+ if (logLevel$6 <= logLevel.silent) return;
1111
+ console.log(getMessage(message));
1112
+ });
1113
+ }
1148
1114
  context.on("kubb:info", ({ message, info }) => {
1149
1115
  if (logLevel$6 <= logLevel.silent) return;
1150
1116
  const text = getMessage([
@@ -1193,16 +1159,8 @@ const plainLogger = defineLogger({
1193
1159
  if (logLevel$6 <= logLevel.silent) return;
1194
1160
  console.log(getMessage(`Update available: v${currentVersion} → v${latestVersion}. Run \`npm install -g @kubb/cli\` to update.`));
1195
1161
  });
1196
- context.on("kubb:config:start", () => {
1197
- if (logLevel$6 <= logLevel.silent) return;
1198
- const text = getMessage("Configuration started");
1199
- console.log(text);
1200
- });
1201
- context.on("kubb:config:end", () => {
1202
- if (logLevel$6 <= logLevel.silent) return;
1203
- const text = getMessage("Configuration completed");
1204
- console.log(text);
1205
- });
1162
+ onStep("kubb:config:start", "Configuration started");
1163
+ onStep("kubb:config:end", "Configuration completed");
1206
1164
  context.on("kubb:generation:start", () => {
1207
1165
  const text = getMessage("Generation started");
1208
1166
  console.log(text);
@@ -1236,45 +1194,22 @@ const plainLogger = defineLogger({
1236
1194
  const text = getMessage(config.name ? `Generation completed for ${config.name}` : "Generation completed");
1237
1195
  console.log(text);
1238
1196
  });
1239
- context.on("kubb:format:start", () => {
1240
- if (logLevel$6 <= logLevel.silent) return;
1241
- const text = getMessage("Format started");
1242
- console.log(text);
1243
- });
1244
- context.on("kubb:format:end", () => {
1245
- if (logLevel$6 <= logLevel.silent) return;
1246
- const text = getMessage("Format completed");
1247
- console.log(text);
1248
- });
1249
- context.on("kubb:lint:start", () => {
1250
- if (logLevel$6 <= logLevel.silent) return;
1251
- const text = getMessage("Lint started");
1252
- console.log(text);
1253
- });
1254
- context.on("kubb:lint:end", () => {
1255
- if (logLevel$6 <= logLevel.silent) return;
1256
- const text = getMessage("Lint completed");
1257
- console.log(text);
1258
- });
1259
- context.on("kubb:hooks:start", () => {
1260
- if (logLevel$6 <= logLevel.silent) return;
1261
- console.log(getMessage("Hooks started"));
1262
- });
1263
- context.on("kubb:hooks:end", () => {
1264
- if (logLevel$6 <= logLevel.silent) return;
1265
- console.log(getMessage("Hooks completed"));
1266
- });
1197
+ onStep("kubb:format:start", "Format started");
1198
+ onStep("kubb:format:end", "Format completed");
1199
+ onStep("kubb:lint:start", "Lint started");
1200
+ onStep("kubb:lint:end", "Lint completed");
1201
+ onStep("kubb:hooks:start", "Hooks started");
1202
+ onStep("kubb:hooks:end", "Hooks completed");
1267
1203
  context.on("kubb:hook:start", ({ id, command, args }) => {
1268
1204
  if (logLevel$6 <= logLevel.silent) return;
1269
- if (id) hookStarts.set(id, process$1.hrtime());
1205
+ if (id) hookTimer.start(id);
1270
1206
  const commandWithArgs = formatCommandWithArgs(command, args);
1271
1207
  console.log(getMessage(`Hook ${commandWithArgs} started`));
1272
1208
  });
1273
1209
  context.on("kubb:hook:end", ({ id, command, args, success, error }) => {
1274
1210
  if (logLevel$6 <= logLevel.silent) return;
1275
- const hrStart = id ? hookStarts.get(id) : void 0;
1276
- if (id) hookStarts.delete(id);
1277
- const durationStr = hrStart ? ` in ${formatMs(getElapsedMs(hrStart))}` : "";
1211
+ const ms = id ? hookTimer.end(id) : void 0;
1212
+ const durationStr = ms !== void 0 ? ` in ${formatMs(ms)}` : "";
1278
1213
  const commandWithArgs = formatCommandWithArgs(command, args);
1279
1214
  if (success) console.log(getMessage(`✓ Hook ${commandWithArgs} completed${durationStr}`));
1280
1215
  else {
@@ -1333,6 +1268,57 @@ function buildProgressLine(state) {
1333
1268
  return parts.join(styleText("dim", " | "));
1334
1269
  }
1335
1270
  /**
1271
+ * Creates the per-run progress counters shared by the clack and GitHub Actions loggers.
1272
+ */
1273
+ function createProgressCounters() {
1274
+ return {
1275
+ totalPlugins: 0,
1276
+ completedPlugins: 0,
1277
+ failedPlugins: 0,
1278
+ totalFiles: 0,
1279
+ processedFiles: 0,
1280
+ hrStart: process$1.hrtime()
1281
+ };
1282
+ }
1283
+ /**
1284
+ * Resets the progress counters in place at the start/end of a generation run.
1285
+ */
1286
+ function resetProgressCounters(state) {
1287
+ state.totalPlugins = 0;
1288
+ state.completedPlugins = 0;
1289
+ state.failedPlugins = 0;
1290
+ state.totalFiles = 0;
1291
+ state.processedFiles = 0;
1292
+ state.hrStart = process$1.hrtime();
1293
+ }
1294
+ /**
1295
+ * Records a finished plugin against the progress counters.
1296
+ */
1297
+ function recordPluginResult(state, success) {
1298
+ if (success) state.completedPlugins++;
1299
+ else state.failedPlugins++;
1300
+ }
1301
+ /**
1302
+ * Creates a {@link HookTimer} backed by a private `id → hrtime` map.
1303
+ */
1304
+ function createHookTimer() {
1305
+ const starts = /* @__PURE__ */ new Map();
1306
+ return {
1307
+ start(id) {
1308
+ starts.set(id, process$1.hrtime());
1309
+ },
1310
+ end(id) {
1311
+ const hrStart = starts.get(id);
1312
+ if (!hrStart) return;
1313
+ starts.delete(id);
1314
+ return getElapsedMs(hrStart);
1315
+ },
1316
+ clear() {
1317
+ starts.clear();
1318
+ }
1319
+ };
1320
+ }
1321
+ /**
1336
1322
  * Join a command and its optional args into a single display string.
1337
1323
  * e.g. ("prettier", ["--write", "."]) → "prettier --write ."
1338
1324
  */
@@ -1832,4 +1818,4 @@ async function run({ input, configPath, logLevel: logLevelKey, watch }) {
1832
1818
  //#endregion
1833
1819
  export { run };
1834
1820
 
1835
- //# sourceMappingURL=run-Cmub7x_z.js.map
1821
+ //# sourceMappingURL=run-BonExv0-.js.map