@reliverse/dler 1.7.122 → 1.7.124

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 (37) hide show
  1. package/bin/impl/build/binary-flow.js +24 -4
  2. package/bin/impl/build/build-regular.js +12 -9
  3. package/bin/impl/build/impl.d.ts +1 -1
  4. package/bin/impl/build/impl.js +23 -7
  5. package/bin/impl/build/library-flow.d.ts +1 -1
  6. package/bin/impl/build/library-flow.js +54 -5
  7. package/bin/impl/build/providers/build.js +13 -13
  8. package/bin/impl/build/providers/mkdist/mkdist-impl/make.js +1 -1
  9. package/bin/impl/build/providers/mkdist/mkdist-mod.js +1 -1
  10. package/bin/impl/build/regular-flow.js +136 -59
  11. package/bin/impl/config/prepare.js +3 -12
  12. package/bin/impl/init/use-template/cp-impl.js +1 -1
  13. package/bin/impl/init/use-template/cp-modules/cli-main-modules/cli-menu-items/showCloneProjectMenu.js +1 -1
  14. package/bin/impl/init/use-template/cp-modules/git-deploy-prompts/gdp-mod.js +1 -1
  15. package/bin/impl/init/use-template/cp-modules/git-deploy-prompts/vercel/vercel-create.js +1 -1
  16. package/bin/impl/init/use-template/cp-modules/git-deploy-prompts/vercel/vercel-deploy.js +1 -1
  17. package/bin/impl/merge/mod.js +71 -49
  18. package/bin/impl/migrate/codemods/anything-bun.js +1 -1
  19. package/bin/impl/providers/better-t-stack/types.d.ts +10 -10
  20. package/bin/impl/providers/reliverse-stack/rs-impl.d.ts +2 -2
  21. package/bin/impl/pub/impl.d.ts +1 -1
  22. package/bin/impl/pub/impl.js +31 -11
  23. package/bin/impl/pub/pub-library.d.ts +1 -1
  24. package/bin/impl/pub/pub-library.js +32 -9
  25. package/bin/impl/pub/pub-regular.d.ts +2 -2
  26. package/bin/impl/pub/pub-regular.js +9 -4
  27. package/bin/impl/rules/reliverse/missing-deps/formatter.js +1 -1
  28. package/bin/impl/utils/downloading/downloadRepo.js +58 -8
  29. package/bin/impl/utils/finalize.d.ts +2 -2
  30. package/bin/impl/utils/finalize.js +10 -11
  31. package/bin/impl/utils/init/init-tmpl.d.ts +1 -1
  32. package/bin/impl/utils/init/init-tmpl.js +2 -2
  33. package/bin/impl/utils/spinner.d.ts +243 -15
  34. package/bin/impl/utils/spinner.js +362 -46
  35. package/bin/mod.d.ts +2 -1
  36. package/bin/mod.js +25 -1
  37. package/package.json +1 -1
@@ -9,6 +9,7 @@ import {
9
9
  parseTargets,
10
10
  validateInputFile
11
11
  } from "./providers/bun/single-file.js";
12
+ import { createMultiStepSpinner } from "../utils/spinner.js";
12
13
  function getTargetPrefix(inputFile) {
13
14
  const filename = inputFile.split("/").pop()?.split("\\").pop() || "";
14
15
  const nameWithoutExt = filename.replace(/\.[^/.]+$/, "");
@@ -107,20 +108,39 @@ export async function binary_buildFlow(_timer, _isDev, config) {
107
108
  );
108
109
  }
109
110
  } else {
110
- relinka("success", `\u{1F389} Build completed! All executables available in: ${options.outdir}`);
111
+ relinka("success", `\u2705 Build completed! All executables available in: ${options.outdir}`);
111
112
  }
112
113
  } else {
113
114
  relinka("info", "Building targets sequentially...");
115
+ const shouldShowSpinner = config.displayBuildPubLogs === false;
116
+ let sequentialSpinner = null;
117
+ if (shouldShowSpinner) {
118
+ sequentialSpinner = createMultiStepSpinner(
119
+ "Binary Build Process",
120
+ targets.map((target) => `Building ${target}`),
121
+ { color: "yellow" }
122
+ );
123
+ }
114
124
  let sequentialSuccessCount = 0;
115
125
  let sequentialFailureCount = 0;
116
- for (const target of targets) {
126
+ for (const [index, target] of targets.entries()) {
117
127
  try {
118
128
  await buildForTarget(target, inputFile, options);
119
129
  sequentialSuccessCount++;
130
+ if (sequentialSpinner && index < targets.length - 1) {
131
+ sequentialSpinner.nextStep();
132
+ }
120
133
  } catch (error) {
134
+ if (sequentialSpinner) {
135
+ sequentialSpinner.error(error, index);
136
+ return;
137
+ }
121
138
  sequentialFailureCount++;
122
139
  }
123
140
  }
141
+ if (sequentialSpinner && sequentialSuccessCount > 0) {
142
+ sequentialSpinner.complete(`Built ${sequentialSuccessCount} targets successfully`);
143
+ }
124
144
  if (sequentialFailureCount > 0) {
125
145
  if (sequentialSuccessCount === 0) {
126
146
  relinka("error", `\u274C All builds failed! No executables were generated.`);
@@ -130,8 +150,8 @@ export async function binary_buildFlow(_timer, _isDev, config) {
130
150
  `\u26A0\uFE0F Build completed with ${sequentialFailureCount} failure(s). ${sequentialSuccessCount} executable(s) available in: ${options.outdir}`
131
151
  );
132
152
  }
133
- } else {
134
- relinka("success", `\u{1F389} Build completed! All executables available in: ${options.outdir}`);
153
+ } else if (!sequentialSpinner) {
154
+ relinka("success", `\u2705 Build completed! All executables available in: ${options.outdir}`);
135
155
  }
136
156
  }
137
157
  if (existsSync(options.outdir)) {
@@ -67,9 +67,9 @@ export async function regular_buildJsrDist(isDev, isJsr, coreIsCLI, coreEntrySrc
67
67
  const transpileFormattedDuration = prettyMilliseconds(duration, {
68
68
  verbose: true
69
69
  });
70
- relinka("success", `JSR distribution built in ${transpileFormattedDuration}`);
70
+ relinka("verbose", `JSR distribution built in ${transpileFormattedDuration}`);
71
71
  } else {
72
- relinka("success", "JSR distribution built successfully");
72
+ relinka("verbose", "JSR distribution built successfully");
73
73
  }
74
74
  } catch (error) {
75
75
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -116,9 +116,9 @@ export async function regular_buildNpmDist(isDev, coreIsCLI, coreEntrySrcDir, di
116
116
  const transpileFormattedDuration = prettyMilliseconds(duration, {
117
117
  verbose: true
118
118
  });
119
- relinka("success", `NPM distribution built in ${transpileFormattedDuration}`);
119
+ relinka("verbose", `NPM distribution built in ${transpileFormattedDuration}`);
120
120
  } else {
121
- relinka("success", "NPM distribution built successfully");
121
+ relinka("verbose", "NPM distribution built successfully");
122
122
  }
123
123
  } catch (error) {
124
124
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -162,7 +162,7 @@ async function regular_bundleUsingBun(coreEntryFile, outDirBin, transpileTarget,
162
162
  verbose: true
163
163
  });
164
164
  relinka(
165
- "success",
165
+ "verbose",
166
166
  `Regular bun build completed in ${transpileFormattedDuration} with ${buildResult.outputs.length} output file(s).`
167
167
  );
168
168
  if (buildResult.logs && buildResult.logs.length > 0) {
@@ -189,7 +189,7 @@ async function regular_bundleUsingJsr(src, dest) {
189
189
  await fs.copy(src, dest, { overwrite: true });
190
190
  relinka("verbose", `Copied directory from ${src} to ${dest}`);
191
191
  relinka(
192
- "success",
192
+ "verbose",
193
193
  `Completed regular bundling via 'jsr' builder`
194
194
  // `${successCount} files processed, ${changedCount} modified`,
195
195
  );
@@ -248,7 +248,7 @@ async function regular_bundleUsingUnified(coreIsCLI, coreEntryFile, outDirBin, b
248
248
  verbose: true
249
249
  });
250
250
  relinka(
251
- "success",
251
+ "verbose",
252
252
  `Regular bundle completed in ${transpileFormattedDuration} using ${builder} builder`
253
253
  );
254
254
  } catch (error) {
@@ -321,7 +321,7 @@ async function regular_performCommonBuildSteps({
321
321
  }) {
322
322
  relinka("verbose", `Performing common build steps in ${outDirBin} (regular)`);
323
323
  relinka(
324
- "info",
324
+ "verbose",
325
325
  `[${isJsr ? "dist-jsr" : "dist-npm"}] Performing alias path conversion in ${outDirBin}`
326
326
  );
327
327
  await convertImportsAliasToRelative({
@@ -330,7 +330,10 @@ async function regular_performCommonBuildSteps({
330
330
  pathExtFilter: "js-ts-none"
331
331
  });
332
332
  if (isJsr) {
333
- relinka("info", `[dist-jsr] Performing paths ext conversion in ${outDirBin} (from js to ts)`);
333
+ relinka(
334
+ "verbose",
335
+ `[dist-jsr] Performing paths ext conversion in ${outDirBin} (from js to ts)`
336
+ );
334
337
  await convertImportsExt({
335
338
  targetDir: outDirBin,
336
339
  extFrom: "js",
@@ -1,7 +1,7 @@
1
1
  import type { ReliverseConfig } from "../schema/mod.js";
2
2
  import type { PerfTimer } from "../types/mod.js";
3
3
  /**
4
- * Main entry point for the dler build process.
4
+ * Main entry point for the rse build process.
5
5
  * Handles building for both main project and libraries.
6
6
  * @see `src-ts/app/pub/impl.ts` for pub main function implementation.
7
7
  */
@@ -6,7 +6,7 @@ import { library_buildFlow } from "./library-flow.js";
6
6
  import { regular_buildFlow } from "./regular-flow.js";
7
7
  import { PROJECT_ROOT } from "../config/constants.js";
8
8
  import { getConfigDler } from "../config/load.js";
9
- import { createSpinner } from "../utils/spinner.js";
9
+ import { createMultiStepSpinner } from "../utils/spinner.js";
10
10
  import { removeDistFolders } from "../utils/utils-clean.js";
11
11
  import { handleDlerError } from "../utils/utils-error-cwd.js";
12
12
  import { dlerPostBuild, wrapper_CopyNonBuildFiles } from "./postbuild.js";
@@ -14,13 +14,23 @@ import { dlerPreBuild } from "./prebuild.js";
14
14
  export async function dlerBuild(timer, isDev, config, debugOnlyCopyNonBuildFiles, debugDontCopyNonBuildFiles, disableOwnSpinner) {
15
15
  let effectiveConfig = config;
16
16
  let shouldShowSpinner = false;
17
- let spinner = null;
17
+ let multiStepSpinner = null;
18
18
  try {
19
19
  if (!effectiveConfig) {
20
20
  effectiveConfig = await getConfigDler();
21
21
  }
22
22
  shouldShowSpinner = effectiveConfig.displayBuildPubLogs === false && !disableOwnSpinner;
23
- spinner = shouldShowSpinner ? createSpinner("Building...").start() : null;
23
+ const buildSteps = [
24
+ "Loading configuration",
25
+ "Cleaning previous build",
26
+ "Pre-build setup",
27
+ "Building main project",
28
+ "Building libraries",
29
+ "Building binaries",
30
+ "Post-build cleanup"
31
+ ];
32
+ multiStepSpinner = shouldShowSpinner ? createMultiStepSpinner("Build Process", buildSteps, { color: "blue" }) : null;
33
+ if (multiStepSpinner) multiStepSpinner.nextStep();
24
34
  if (effectiveConfig.logsFreshFile) {
25
35
  await fs.remove(path.join(PROJECT_ROOT, effectiveConfig.logsFileName));
26
36
  }
@@ -31,6 +41,7 @@ export async function dlerBuild(timer, isDev, config, debugOnlyCopyNonBuildFiles
31
41
  effectiveConfig.libsList,
32
42
  "dist-tmp"
33
43
  );
44
+ if (multiStepSpinner) multiStepSpinner.nextStep();
34
45
  if (debugOnlyCopyNonBuildFiles) {
35
46
  if (debugDontCopyNonBuildFiles) {
36
47
  relinka(
@@ -44,6 +55,7 @@ export async function dlerBuild(timer, isDev, config, debugOnlyCopyNonBuildFiles
44
55
  process.exit(0);
45
56
  }
46
57
  await dlerPreBuild(effectiveConfig);
58
+ if (multiStepSpinner) multiStepSpinner.nextStep();
47
59
  const tempDirs = {
48
60
  npm: "dist-tmp/tmp-npm",
49
61
  jsr: "dist-tmp/tmp-jsr",
@@ -55,19 +67,23 @@ export async function dlerBuild(timer, isDev, config, debugOnlyCopyNonBuildFiles
55
67
  libsDirSrc: tempDirs.libs
56
68
  };
57
69
  await regular_buildFlow(timer, isDev, tempConfig);
70
+ if (multiStepSpinner) multiStepSpinner.nextStep();
58
71
  await library_buildFlow(timer, isDev, tempConfig);
72
+ if (multiStepSpinner) multiStepSpinner.nextStep();
59
73
  await binary_buildFlow(timer, isDev, tempConfig);
74
+ if (multiStepSpinner) multiStepSpinner.nextStep();
60
75
  await dlerPostBuild(isDev, debugDontCopyNonBuildFiles);
61
76
  if (effectiveConfig.postBuildSettings?.deleteDistTmpAfterBuild) {
62
77
  await fs.remove(path.join(PROJECT_ROOT, "dist-tmp"));
63
78
  }
64
- if (shouldShowSpinner && spinner) {
65
- spinner.succeed("Build completed successfully!");
79
+ if (multiStepSpinner) {
80
+ multiStepSpinner.complete("Build completed successfully");
66
81
  }
67
82
  return { timer, effectiveConfig };
68
83
  } catch (error) {
69
- if (shouldShowSpinner && spinner) {
70
- spinner.fail("Build failed!");
84
+ if (multiStepSpinner) {
85
+ const currentStep = multiStepSpinner.getCurrentStep();
86
+ multiStepSpinner.error(error, currentStep);
71
87
  }
72
88
  handleDlerError(error);
73
89
  }
@@ -23,4 +23,4 @@ export declare function libraries_build(isDev: boolean, timer: PerfTimer, libsLi
23
23
  /**
24
24
  * Publishes all libs defined in config.libsList.
25
25
  */
26
- export declare function libraries_publish(isDev: boolean, timer: PerfTimer, libsList: Record<string, LibConfig>, distJsrDryRun: boolean, distJsrFailOnWarn: boolean, libsDirDist: string, commonPubPause: boolean, commonPubRegistry: "jsr" | "npm" | "npm-jsr", distJsrAllowDirty: boolean, distJsrSlowTypes: boolean): Promise<void>;
26
+ export declare function libraries_publish(isDev: boolean, timer: PerfTimer, libsList: Record<string, LibConfig>, distJsrDryRun: boolean, distJsrFailOnWarn: boolean, libsDirDist: string, commonPubPause: boolean, commonPubRegistry: "jsr" | "npm" | "npm-jsr", distJsrAllowDirty: boolean, distJsrSlowTypes: boolean, shouldShowSpinner?: boolean): Promise<void>;
@@ -4,6 +4,7 @@ import pAll from "p-all";
4
4
  import { library_buildLibrary } from "./build-library.js";
5
5
  import { CONCURRENCY_DEFAULT, PROJECT_ROOT } from "../config/constants.js";
6
6
  import { library_publishLibrary } from "../pub/pub-library.js";
7
+ import { createSpinnerGroup } from "../utils/spinner.js";
7
8
  import { resumePerfTimer } from "../utils/utils-perf.js";
8
9
  export async function library_buildFlow(timer, isDev, config) {
9
10
  relinka("verbose", "\u2014 \u2014 \u2014 library_buildFlow \u2014 \u2014 \u2014");
@@ -51,7 +52,8 @@ export async function library_pubFlow(timer, isDev, config) {
51
52
  config.commonPubPause,
52
53
  config.commonPubRegistry,
53
54
  config.distJsrAllowDirty,
54
- config.distJsrSlowTypes
55
+ config.distJsrSlowTypes,
56
+ config.displayBuildPubLogs === false
55
57
  );
56
58
  }
57
59
  function extractFolderName(libName, libConfig) {
@@ -76,8 +78,22 @@ export async function libraries_build(isDev, timer, libsList, libsDirDist, libsD
76
78
  return;
77
79
  }
78
80
  const libsEntries = Object.entries(libsList);
79
- const tasks = libsEntries.map(([libName, libConfig]) => {
81
+ const shouldShowSpinner = config.displayBuildPubLogs === false;
82
+ let spinnerGroup = null;
83
+ if (shouldShowSpinner) {
84
+ const libraryNames = libsEntries.map(([libName]) => `Building ${libName}`);
85
+ spinnerGroup = createSpinnerGroup({
86
+ items: libraryNames,
87
+ concurrent: true,
88
+ color: "green"
89
+ });
90
+ for (const spinner of spinnerGroup.spinners) {
91
+ spinner.start();
92
+ }
93
+ }
94
+ const tasks = libsEntries.map(([libName, libConfig], index) => {
80
95
  return async () => {
96
+ const librarySpinner = spinnerGroup?.spinners[index];
81
97
  try {
82
98
  if (!libConfig.libMainFile) {
83
99
  throw new Error(`Library ${libName} is missing "libMainFile" property.`);
@@ -132,7 +148,14 @@ export async function libraries_build(isDev, timer, libsList, libsDirDist, libsD
132
148
  transpileStub,
133
149
  transpileWatch
134
150
  });
151
+ if (librarySpinner) {
152
+ librarySpinner.succeed(`${libName} built successfully`);
153
+ }
135
154
  } catch (error) {
155
+ if (librarySpinner) {
156
+ const errorMessage = error instanceof Error ? error.message : String(error);
157
+ librarySpinner.fail(`${libName} build failed: ${errorMessage}`);
158
+ }
136
159
  relinka(
137
160
  "error",
138
161
  `Failed to build library ${libName}: ${error instanceof Error ? error.message : String(error)}`
@@ -151,15 +174,30 @@ export async function libraries_build(isDev, timer, libsList, libsDirDist, libsD
151
174
  throw error;
152
175
  }
153
176
  }
154
- export async function libraries_publish(isDev, timer, libsList, distJsrDryRun, distJsrFailOnWarn, libsDirDist, commonPubPause, commonPubRegistry, distJsrAllowDirty, distJsrSlowTypes) {
177
+ export async function libraries_publish(isDev, timer, libsList, distJsrDryRun, distJsrFailOnWarn, libsDirDist, commonPubPause, commonPubRegistry, distJsrAllowDirty, distJsrSlowTypes, shouldShowSpinner = false) {
155
178
  relinka("verbose", "Starting libraries_publish");
156
179
  if (!libsList || Object.keys(libsList).length === 0) {
157
180
  relinka("verbose", "No lib configs found in config, skipping libs publish.");
158
181
  return;
159
182
  }
160
183
  const libsEntries = Object.entries(libsList);
161
- const tasks = libsEntries.map(([libName, libConfig]) => {
184
+ let publishSpinnerGroup = null;
185
+ if (!commonPubPause) {
186
+ const libraryNames = libsEntries.filter(([, libConfig]) => !libConfig.libPubPause).map(([libName]) => `Publishing ${libName} to ${commonPubRegistry}`);
187
+ if (libraryNames.length > 0) {
188
+ publishSpinnerGroup = createSpinnerGroup({
189
+ items: libraryNames,
190
+ concurrent: true,
191
+ color: "magenta"
192
+ });
193
+ for (const spinner of publishSpinnerGroup.spinners) {
194
+ spinner.start();
195
+ }
196
+ }
197
+ }
198
+ const tasks = libsEntries.map(([libName, libConfig], index) => {
162
199
  return async () => {
200
+ const publishSpinner = publishSpinnerGroup?.spinners[index];
163
201
  try {
164
202
  const folderName = extractFolderName(libName, libConfig);
165
203
  const libBaseDir = path.resolve(PROJECT_ROOT, libsDirDist, folderName);
@@ -177,12 +215,23 @@ export async function libraries_publish(isDev, timer, libsList, distJsrDryRun, d
177
215
  distJsrAllowDirty,
178
216
  distJsrSlowTypes,
179
217
  isDev,
180
- timer
218
+ timer,
219
+ shouldShowSpinner
181
220
  );
221
+ if (publishSpinner) {
222
+ publishSpinner.succeed(`${libName} published to ${effectivePubRegistry} successfully`);
223
+ }
182
224
  } else if (libConfig.libPubPause && !commonPubPause) {
183
225
  relinka("verbose", `Publishing is paused for lib ${libName} (libPubPause: true)`);
226
+ if (publishSpinner) {
227
+ publishSpinner.info(`${libName} publish paused by configuration`);
228
+ }
184
229
  }
185
230
  } catch (error) {
231
+ if (publishSpinner) {
232
+ const errorMessage = error instanceof Error ? error.message : String(error);
233
+ publishSpinner.fail(`${libName} publish failed: ${errorMessage}`);
234
+ }
186
235
  relinka(
187
236
  "error",
188
237
  `Failed to publish library ${libName}: ${error instanceof Error ? error.message : String(error)}`
@@ -31,7 +31,7 @@ function shouldStopAtStep(stepNumber) {
31
31
  }
32
32
  export async function unifiedBuild(inputSourceDir, coreIsCLI, isLib, rootDir, inputConfig, outDir, transpileStub = false) {
33
33
  shouldStopAtStep(1);
34
- relinka("info", "Starting unified build process...");
34
+ relinka("verbose", "Starting unified build process...");
35
35
  relinka("verbose", `Processing build for source directory: ${inputSourceDir}`);
36
36
  relinka(
37
37
  "verbose",
@@ -73,7 +73,7 @@ export async function unifiedBuild(inputSourceDir, coreIsCLI, isLib, rootDir, in
73
73
  }
74
74
  async function _build(rootDir, inputConfig, buildConfig, pkg, cleanedDirs, _transpileStubMode, _transpileWatchMode, outDir, showOutLog, isLib) {
75
75
  const timer = createPerfTimer();
76
- relinka("info", "Resolving build configuration...");
76
+ relinka("verbose", "Resolving build configuration...");
77
77
  const preset = await resolvePreset(
78
78
  buildConfig.preset || pkg.dler?.preset || pkg.build?.preset || inputConfig.preset || "auto",
79
79
  rootDir
@@ -159,7 +159,7 @@ async function _build(rootDir, inputConfig, buildConfig, pkg, cleanedDirs, _tran
159
159
  relinka("verbose", `Declaration files: ${options.declaration ? "enabled" : "disabled"}`);
160
160
  options.outDir = resolve(options.rootDir, options.outDir);
161
161
  const jiti = createJiti(options.rootDir, { interopDefault: true });
162
- relinka("info", "Initializing build context...");
162
+ relinka("verbose", "Initializing build context...");
163
163
  const ctx = {
164
164
  buildEntries: [],
165
165
  hooks: createHooks(),
@@ -180,7 +180,7 @@ async function _build(rootDir, inputConfig, buildConfig, pkg, cleanedDirs, _tran
180
180
  ctx.hooks.addHooks(buildConfig.hooks);
181
181
  }
182
182
  await ctx.hooks.callHook("build:prepare", ctx);
183
- relinka("info", "Processing build entries...");
183
+ relinka("verbose", "Processing build entries...");
184
184
  options.entries = options.entries.map(
185
185
  (entry) => typeof entry === "string" ? { input: entry, isLib } : entry
186
186
  );
@@ -225,7 +225,7 @@ ${options.entries.map((entry) => ` ${dumpObject(entry)}`).join("\n ")}
225
225
  );
226
226
  }
227
227
  if (options.clean) {
228
- relinka("info", "Cleaning output directories...");
228
+ relinka("verbose", "Cleaning output directories...");
229
229
  for (const dir of new Set(
230
230
  options.entries.map((e) => e.outDir).filter((p) => !!p).sort()
231
231
  )) {
@@ -252,10 +252,10 @@ ${options.entries.map((entry) => ` ${dumpObject(entry)}`).join("\n ")}
252
252
  return false;
253
253
  });
254
254
  if (activeTasks.length === 0) {
255
- relinka("info", "No build tasks to execute");
255
+ relinka("verbose", "No build tasks to execute");
256
256
  } else {
257
257
  if (options.parallel) {
258
- relinka("info", `Running ${activeTasks.length} build tasks in parallel...`);
258
+ relinka("verbose", `Running ${activeTasks.length} build tasks in parallel...`);
259
259
  await Promise.all(
260
260
  activeTasks.map(async ({ task }) => {
261
261
  await task(ctx);
@@ -263,7 +263,7 @@ ${options.entries.map((entry) => ` ${dumpObject(entry)}`).join("\n ")}
263
263
  );
264
264
  } else {
265
265
  for (const { task, name } of activeTasks) {
266
- relinka("info", `Running ${name}...`);
266
+ relinka("verbose", `Running ${name}...`);
267
267
  await task(ctx);
268
268
  }
269
269
  }
@@ -272,8 +272,8 @@ ${options.entries.map((entry) => ` ${dumpObject(entry)}`).join("\n ")}
272
272
  await ctx.hooks.callHook("build:done", ctx);
273
273
  return;
274
274
  }
275
- relinka("info", "Finalizing build output...");
276
- relinka("success", `Build succeeded for ${options.name}`);
275
+ relinka("verbose", "Finalizing build output...");
276
+ relinka("verbose", `Build succeeded for ${options.name}`);
277
277
  const outFiles = await glob(["**"], { cwd: options.outDir });
278
278
  for (const file of outFiles) {
279
279
  let entry = ctx.buildEntries.find((e) => e.path === file);
@@ -322,9 +322,9 @@ ${entry.modules.filter((m) => m.id.includes("node_modules")).sort((a, b) => (b.b
322
322
  verbose: true
323
323
  });
324
324
  const totalSize = ctx.buildEntries.reduce((a, e) => a + (e.bytes || 0), 0);
325
- relinka("info", `Build complete! ${prettyBytes(totalSize)} in ${transpileFormattedTime}`);
325
+ relinka("verbose", `Build complete! ${prettyBytes(totalSize)} in ${transpileFormattedTime}`);
326
326
  relinka(
327
- "info",
327
+ "verbose",
328
328
  `\u03A3 Total dist size: ${prettyBytes(totalSize)} (build time: ${transpileFormattedTime})`
329
329
  );
330
330
  }
@@ -346,6 +346,6 @@ ${[...ctx.warnings].map((msg) => `- ${msg}`).join("\n")}`
346
346
  process.exit(1);
347
347
  }
348
348
  shouldStopAtStep(15);
349
- relinka("info", `Build complete (with ${ctx.warnings.size} warnings)`);
349
+ relinka("verbose", `Build complete (with ${ctx.warnings.size} warnings)`);
350
350
  }
351
351
  }
@@ -180,7 +180,7 @@ export async function mkdist(options = {}) {
180
180
  relinka("error", `... and ${errors.length - 5} more errors`);
181
181
  }
182
182
  } else {
183
- relinka("success", "Build completed successfully!");
183
+ relinka("verbose", "Build completed successfully!");
184
184
  }
185
185
  return {
186
186
  result: {
@@ -85,7 +85,7 @@ ${error.errors.map((e) => ` - ${e}`).join("\n")}`
85
85
  );
86
86
  } else {
87
87
  relinka(
88
- "success",
88
+ "verbose",
89
89
  `Successfully processed ${entries.length} entries. ${totalWrittenFiles} files written.`
90
90
  );
91
91
  }