@reliverse/dler 1.7.87 → 1.7.88

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 (46) hide show
  1. package/bin/app/build/postbuild.js +1 -1
  2. package/bin/app/build/ppb-utils.js +1 -1
  3. package/bin/app/build/prebuild.js +1 -1
  4. package/bin/app/catalog/cmd.js +1 -1
  5. package/bin/app/create/cmd.js +5 -5
  6. package/bin/app/fs/cmd.js +6 -6
  7. package/bin/app/init/cmd.js +1 -1
  8. package/bin/app/install/cmd.js +1 -1
  9. package/bin/app/libs/cmd.js +2 -2
  10. package/bin/app/merge/cmd.js +2 -2
  11. package/bin/app/migrate/cmd.js +46 -43
  12. package/bin/app/migrate/codemods/anything-bun.js +25 -25
  13. package/bin/app/migrate/codemods/console-relinka.js +1 -1
  14. package/bin/app/pack/cmd.js +7 -7
  15. package/bin/app/remove/cmd.js +1 -1
  16. package/bin/app/rempts/cmd.js +4 -4
  17. package/bin/app/update/cmd.js +20 -22
  18. package/bin/app/upgrade/cmd.js +10 -4
  19. package/bin/app/x/cmd.js +6 -6
  20. package/bin/libs/get/get-impl/get-core.js +19 -16
  21. package/bin/libs/sdk/sdk-impl/build/build-library.js +6 -6
  22. package/bin/libs/sdk/sdk-impl/build/build-regular.js +4 -4
  23. package/bin/libs/sdk/sdk-impl/build/providers/build.js +3 -3
  24. package/bin/libs/sdk/sdk-impl/build/providers/rollup/watch.js +2 -2
  25. package/bin/libs/sdk/sdk-impl/config/info.js +1 -1
  26. package/bin/libs/sdk/sdk-impl/config/load.js +1 -1
  27. package/bin/libs/sdk/sdk-impl/config/prepare.js +4 -4
  28. package/bin/libs/sdk/sdk-impl/library-flow.js +3 -3
  29. package/bin/libs/sdk/sdk-impl/magic/magic-apply.js +9 -9
  30. package/bin/libs/sdk/sdk-impl/pub/pub-library.js +5 -5
  31. package/bin/libs/sdk/sdk-impl/pub/pub-regular.js +10 -4
  32. package/bin/libs/sdk/sdk-impl/regular-flow.js +8 -8
  33. package/bin/libs/sdk/sdk-impl/utils/agg/agg-1.js +5 -3
  34. package/bin/libs/sdk/sdk-impl/utils/agg/agg-2.js +1 -1
  35. package/bin/libs/sdk/sdk-impl/utils/agg/agg-3.js +7 -7
  36. package/bin/libs/sdk/sdk-impl/utils/fs-rename.js +10 -10
  37. package/bin/libs/sdk/sdk-impl/utils/init/init-impl.js +1 -1
  38. package/bin/libs/sdk/sdk-impl/utils/pm/pm-catalog.js +4 -4
  39. package/bin/libs/sdk/sdk-impl/utils/resolve-cross-libs.js +24 -15
  40. package/bin/libs/sdk/sdk-impl/utils/utils-build.js +1 -1
  41. package/bin/libs/sdk/sdk-impl/utils/utils-clean.js +1 -1
  42. package/bin/libs/sdk/sdk-impl/utils/utils-error-cwd.js +2 -2
  43. package/bin/libs/sdk/sdk-impl/utils/utils-fs.js +1 -1
  44. package/bin/libs/sdk/sdk-impl/utils/utils-package-json-libraries.js +1 -1
  45. package/bin/libs/sdk/sdk-impl/utils/utils-package-json-regular.js +1 -1
  46. package/package.json +2 -2
@@ -31,7 +31,7 @@ export async function dlerPostBuild(isDev, debugDontCopyNonBuildFiles) {
31
31
  const tools = createPostBuildToolRunner();
32
32
  const availableTools = config.runAfterBuild.filter((toolName) => toolName in tools).map((toolName) => ({ toolName, ...tools[toolName] }));
33
33
  for (const { name, run } of availableTools) {
34
- relinka("log", `Running ${name}...`);
34
+ relinka("verbose", `Running ${name}...`);
35
35
  await run();
36
36
  }
37
37
  }
@@ -86,7 +86,7 @@ export async function directoryExists(dirPath) {
86
86
  }
87
87
  export async function executeDlerHooks(hooks, phase) {
88
88
  if (!hooks.length) return;
89
- relinka("log", `[dlerPreBuild] Running ${phase} hooks...`);
89
+ relinka("verbose", `[dlerPreBuild] Running ${phase} hooks...`);
90
90
  for (const hook of hooks) {
91
91
  try {
92
92
  await hook();
@@ -105,7 +105,7 @@ export async function dlerPreBuild(config) {
105
105
  );
106
106
  const commandsToRun = availableTools.filter(Boolean);
107
107
  for (const { name, run } of commandsToRun) {
108
- relinka("log", `Running ${name}...`);
108
+ relinka("verbose", `Running ${name}...`);
109
109
  await run();
110
110
  }
111
111
  }
@@ -41,7 +41,7 @@ export default defineCommand({
41
41
  break;
42
42
  default:
43
43
  relinka("error", `Unknown action: ${action}`);
44
- relinka("log", "Available actions: list, ls");
44
+ relinka("verbose", "Available actions: list, ls");
45
45
  return process.exit(1);
46
46
  }
47
47
  }
@@ -77,7 +77,7 @@ async function handleFileCreation({
77
77
  options: possibleTypes.map((pt) => ({ label: pt, value: pt }))
78
78
  });
79
79
  if (chosen.length === 0) {
80
- relinka("log", "No file types selected. Exiting...");
80
+ relinka("verbose", "No file types selected. Exiting...");
81
81
  return;
82
82
  }
83
83
  const requests = chosen.map((ct) => ({
@@ -113,8 +113,8 @@ async function handleTemplateCreation({
113
113
  }) {
114
114
  if (!template) {
115
115
  relinka.error("Template name is required for template creation");
116
- relinka.log("Usage: dler create <template-name>");
117
- relinka.log("Example: dler create react-app");
116
+ relinka.verbose("Usage: dler create <template-name>");
117
+ relinka.verbose("Example: dler create react-app");
118
118
  return process.exit(1);
119
119
  }
120
120
  try {
@@ -145,8 +145,8 @@ async function handleTemplateCreation({
145
145
  if (destDir !== ".") {
146
146
  createCommand.push(destDir);
147
147
  }
148
- relinka.log(`Creating project from template: ${template}`);
149
- relinka.log(`Using command: ${createCommand.join(" ")}`);
148
+ relinka.verbose(`Creating project from template: ${template}`);
149
+ relinka.verbose(`Using command: ${createCommand.join(" ")}`);
150
150
  const result = x(createCommand[0], createCommand.slice(1), {
151
151
  nodeOptions: {
152
152
  cwd: workingDir,
package/bin/app/fs/cmd.js CHANGED
@@ -145,7 +145,7 @@ export default defineCommand({
145
145
  return;
146
146
  }
147
147
  await fs.remove(resolvedPath);
148
- relinka("log", `Removed: ${resolvedPath}`);
148
+ relinka("verbose", `Removed: ${resolvedPath}`);
149
149
  removedCount++;
150
150
  } catch (error) {
151
151
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -155,7 +155,7 @@ export default defineCommand({
155
155
  { concurrency: concurrency2 }
156
156
  );
157
157
  if (removedCount > 0) {
158
- relinka("log", `Successfully removed ${removedCount} item(s) matching: ${target}`);
158
+ relinka("verbose", `Successfully removed ${removedCount} item(s) matching: ${target}`);
159
159
  } else {
160
160
  relinka("warn", `No items were removed for pattern: ${target}`);
161
161
  }
@@ -208,7 +208,7 @@ export default defineCommand({
208
208
  ]
209
209
  });
210
210
  if (confirm === "no") {
211
- relinka("log", "Operation cancelled by user");
211
+ relinka("verbose", "Operation cancelled by user");
212
212
  return;
213
213
  }
214
214
  }
@@ -256,7 +256,7 @@ export default defineCommand({
256
256
  throw new Error(`Destination file already exists: ${destPath}`);
257
257
  }
258
258
  await fs.copyFile(file, destPath);
259
- relinka("log", `Copied '${file}' to '${destPath}'`);
259
+ relinka("verbose", `Copied '${file}' to '${destPath}'`);
260
260
  },
261
261
  { concurrency, stopOnError: true }
262
262
  );
@@ -274,7 +274,7 @@ export default defineCommand({
274
274
  if (prepareMyCLI === true) {
275
275
  try {
276
276
  await prepareCLIFiles(revert === true, recursive, useDtsTxtForPrepareMyCLI);
277
- relinka("log", "Successfully prepared CLI files");
277
+ relinka("verbose", "Successfully prepared CLI files");
278
278
  } catch (error) {
279
279
  const errorMessage = error instanceof Error ? error.message : String(error);
280
280
  relinka("error", `Error preparing CLI: ${errorMessage}`);
@@ -291,7 +291,7 @@ export default defineCommand({
291
291
  }
292
292
  try {
293
293
  await safeRename(source, destination);
294
- relinka("log", `Successfully renamed '${source}' to '${destination}'`);
294
+ relinka("verbose", `Successfully renamed '${source}' to '${destination}'`);
295
295
  } catch (error) {
296
296
  const errorMessage = error instanceof Error ? error.message : String(error);
297
297
  relinka("error", `Error renaming: ${errorMessage}`);
@@ -7,7 +7,7 @@ export default defineCommand({
7
7
  description: "Initialize a new project"
8
8
  },
9
9
  async run() {
10
- relinka.info(
10
+ relinka.verbose(
11
11
  "Command not implemented yet. For now, please install `@reliverse/rse` and run `rse cli`."
12
12
  );
13
13
  }
@@ -121,7 +121,7 @@ export default defineCommand({
121
121
  await (name ? addDependency(name, options) : installDependencies(options));
122
122
  } else {
123
123
  relinka.error(`Unknown action: ${action}`);
124
- relinka.log("Available actions: install, add, i, dedupe");
124
+ relinka.verbose("Available actions: install, add, i, dedupe");
125
125
  return process.exit(1);
126
126
  }
127
127
  }
@@ -82,7 +82,7 @@ export default defineCommand({
82
82
  const mainFilePath = path.join(libsDirSrc, libMainFile);
83
83
  if (!await fs.pathExists(libDirPath)) {
84
84
  await fs.ensureDir(libDirPath);
85
- relinka("log", `\u2705 Created library directory: ${libDirPath}`);
85
+ relinka("verbose", `\u2705 Created library directory: ${libDirPath}`);
86
86
  }
87
87
  if (!await fs.pathExists(mainFilePath) || args.overwrite) {
88
88
  const mainFileContent = `// Main entry point for ${libName}
@@ -90,7 +90,7 @@ export default defineCommand({
90
90
  `;
91
91
  await fs.ensureDir(path.dirname(mainFilePath));
92
92
  await fs.writeFile(mainFilePath, mainFileContent, "utf8");
93
- relinka("log", `\u2705 Created/Updated main file: ${mainFilePath}`);
93
+ relinka("verbose", `\u2705 Created/Updated main file: ${mainFilePath}`);
94
94
  } else {
95
95
  relinka("warn", `\u26A0\uFE0F Main file already exists: ${mainFilePath}. Use --overwrite to update.`);
96
96
  }
@@ -342,8 +342,8 @@ export default defineCommand({
342
342
  const verbose = args.verbose ?? false;
343
343
  const force = args.force ?? true;
344
344
  if (verbose) {
345
- relinka("log", "Verbose logging enabled");
346
- relinka("log", `Force mode: ${force ? "enabled" : "disabled"}`);
345
+ relinka("verbose", "Verbose logging enabled");
346
+ relinka("verbose", `Force mode: ${force ? "enabled" : "disabled"}`);
347
347
  }
348
348
  let include = args.s ?? [];
349
349
  if (include.length === 0) {
@@ -67,45 +67,45 @@ Are you sure you want to migrate files in ${args.project}?`,
67
67
  }
68
68
  }
69
69
  if (args.codemod === "anything-bun") {
70
- relinka("log", "Migrating to Bun...");
70
+ relinka("verbose", "Migrating to Bun...");
71
71
  await migrateAnythingToBun({
72
72
  project: args.project,
73
73
  dryRun: args.dryRun,
74
74
  noBackup: args.noBackup
75
75
  });
76
76
  if (!args.dryRun) {
77
- relinka("log", "\nMigration completed!");
78
- relinka("log", "Next steps:");
79
- relinka("log", "1. Run 'bun install' to install dependencies with Bun");
80
- relinka("log", "2. Test your application thoroughly");
81
- relinka("log", "3. Review async/await usage in converted file operations");
82
- relinka("log", "4. Update any custom database queries to use Bun.sql syntax");
83
- relinka("log", "5. Review and update any custom middleware in Express apps");
77
+ relinka("verbose", "\nMigration completed!");
78
+ relinka("verbose", "Next steps:");
79
+ relinka("verbose", "1. Run 'bun install' to install dependencies with Bun");
80
+ relinka("verbose", "2. Test your application thoroughly");
81
+ relinka("verbose", "3. Review async/await usage in converted file operations");
82
+ relinka("verbose", "4. Update any custom database queries to use Bun.sql syntax");
83
+ relinka("verbose", "5. Review and update any custom middleware in Express apps");
84
84
  }
85
85
  return;
86
86
  }
87
87
  let results = [];
88
88
  if (args.codemod === "path-pathkit") {
89
- relinka("log", "Migrating from node:path and/or pathe to @reliverse/pathkit...");
89
+ relinka("verbose", "Migrating from node:path and/or pathe to @reliverse/pathkit...");
90
90
  results = await migratePathToPathkit(args.dryRun);
91
91
  } else if (args.codemod === "fs-relifso") {
92
- relinka("log", "Migrating from node:fs and/or fs-extra to @reliverse/relifso...");
92
+ relinka("verbose", "Migrating from node:fs and/or fs-extra to @reliverse/relifso...");
93
93
  results = await migrateFsToRelifso(args.dryRun);
94
94
  } else if (args.codemod === "nodenext-bundler") {
95
95
  if (!["nodenext", "bundler"].includes(args.mrTarget)) {
96
96
  relinka("error", `Invalid mrTarget: ${args.mrTarget}`);
97
- relinka("log", "Available targets:");
98
- relinka("log", " - nodenext");
99
- relinka("log", " - bundler");
97
+ relinka("verbose", "Available targets:");
98
+ relinka("verbose", " - nodenext");
99
+ relinka("verbose", " - bundler");
100
100
  return;
101
101
  }
102
- relinka("log", `Migrating to ${args.mrTarget} module resolution...`);
102
+ relinka("verbose", `Migrating to ${args.mrTarget} module resolution...`);
103
103
  results = await migrateModuleResolution(args.mrTarget, args.dryRun);
104
104
  } else if (args.codemod === "readdir-glob") {
105
- relinka("log", "Migrating from fs.readdir to globby...");
105
+ relinka("verbose", "Migrating from fs.readdir to globby...");
106
106
  results = await migrateReaddirToGlob(args.dryRun);
107
107
  } else if (args.codemod === "console-relinka") {
108
- relinka("log", "Migrating logging format...");
108
+ relinka("verbose", "Migrating logging format...");
109
109
  await consoleToRelinka(
110
110
  args.consoleRelinkaInput,
111
111
  args.consoleRelinkaFrom,
@@ -114,13 +114,13 @@ Are you sure you want to migrate files in ${args.project}?`,
114
114
  return;
115
115
  } else {
116
116
  relinka("error", `Unknown migration: ${args.codemod}`);
117
- relinka("log", "Available migrations:");
118
- relinka("log", " - anything-bun");
119
- relinka("log", " - path-pathkit");
120
- relinka("log", " - fs-relifso");
121
- relinka("log", " - nodenext-bundler");
122
- relinka("log", " - readdir-glob");
123
- relinka("log", " - console-relinka");
117
+ relinka("verbose", "Available migrations:");
118
+ relinka("verbose", " - anything-bun");
119
+ relinka("verbose", " - path-pathkit");
120
+ relinka("verbose", " - fs-relifso");
121
+ relinka("verbose", " - nodenext-bundler");
122
+ relinka("verbose", " - readdir-glob");
123
+ relinka("verbose", " - console-relinka");
124
124
  return;
125
125
  }
126
126
  relinka("info", "\nMigration Results:");
@@ -129,14 +129,14 @@ Are you sure you want to migrate files in ${args.project}?`,
129
129
  let warningCount = 0;
130
130
  for (const result of results) {
131
131
  const status = result.success ? "\u2713" : "\u2717";
132
- relinka("log", `${status} ${result.file}: ${result.message}`);
132
+ relinka("verbose", `${status} ${result.file}: ${result.message}`);
133
133
  if (result.changes && result.changes.length > 0) {
134
134
  for (const change of result.changes) {
135
135
  if (change.startsWith("\u26A0\uFE0F")) {
136
- relinka("log", ` ${change}`);
136
+ relinka("verbose", ` ${change}`);
137
137
  warningCount++;
138
138
  } else {
139
- relinka("log", ` - ${change}`);
139
+ relinka("verbose", ` - ${change}`);
140
140
  }
141
141
  }
142
142
  }
@@ -150,35 +150,38 @@ Summary: ${successCount} files updated, ${errorCount} errors, ${warningCount} wa
150
150
  );
151
151
  if (args.dryRun) {
152
152
  relinka("info", "\nThis was a dry run. No changes were made.");
153
- relinka("log", "Run without --dryRun to apply the changes.");
153
+ relinka("verbose", "Run without --dryRun to apply the changes.");
154
154
  } else {
155
155
  relinka("success", "\nMigration completed!");
156
156
  if (args.codemod === "path-pathkit") {
157
- relinka("log", "Next steps:");
158
- relinka("log", "1. Run 'bun install' to install @reliverse/pathkit");
159
- relinka("log", "2. Test your application");
160
- relinka("log", "3. Tip: Consider using advanced pathkit features like alias resolution");
157
+ relinka("verbose", "Next steps:");
158
+ relinka("verbose", "1. Run 'bun install' to install @reliverse/pathkit");
159
+ relinka("verbose", "2. Test your application");
160
+ relinka(
161
+ "verbose",
162
+ "3. Tip: Consider using advanced pathkit features like alias resolution"
163
+ );
161
164
  } else if (args.codemod === "fs-relifso") {
162
- relinka("log", "Next steps:");
163
- relinka("log", "1. Run 'bun install' to install @reliverse/relifso");
164
- relinka("log", "2. Test your application");
165
- relinka("log", "3. Review any file system operations that might need manual updates");
165
+ relinka("verbose", "Next steps:");
166
+ relinka("verbose", "1. Run 'bun install' to install @reliverse/relifso");
167
+ relinka("verbose", "2. Test your application");
168
+ relinka("verbose", "3. Review any file system operations that might need manual updates");
166
169
  } else if (args.codemod === "nodenext-bundler") {
167
- relinka("log", "Next steps:");
168
- relinka("log", "1. Test your application");
170
+ relinka("verbose", "Next steps:");
171
+ relinka("verbose", "1. Test your application");
169
172
  if (args.mrTarget === "nodenext") {
170
- relinka("log", "2. Ensure your build tools support .js extensions in imports");
173
+ relinka("verbose", "2. Ensure your build tools support .js extensions in imports");
171
174
  } else if (args.mrTarget === "bundler") {
172
- relinka("log", "2. Ensure your bundler is configured correctly");
175
+ relinka("verbose", "2. Ensure your bundler is configured correctly");
173
176
  }
174
177
  if (warningCount > 0) {
175
178
  relinka("warn", "3. \u26A0\uFE0F Review files with warnings - they may need manual updates");
176
179
  }
177
180
  } else if (args.codemod === "readdir-glob") {
178
- relinka("log", "Next steps:");
179
- relinka("log", "1. Run 'bun install' to install globby");
180
- relinka("log", "2. Test your application");
181
- relinka("log", "3. Review any file system operations that might need manual updates");
181
+ relinka("verbose", "Next steps:");
182
+ relinka("verbose", "1. Run 'bun install' to install globby");
183
+ relinka("verbose", "2. Test your application");
184
+ relinka("verbose", "3. Review any file system operations that might need manual updates");
182
185
  }
183
186
  }
184
187
  }
@@ -316,7 +316,7 @@ const server = serve({
316
316
  return new Response("Not Found", { status: 404 });
317
317
  },
318
318
  });
319
- relinka("log", \`Server running on localhost:\${server.port}\`);
319
+ relinka("verbose", \`Server running on localhost:\${server.port}\`);
320
320
  `;
321
321
  if (content.includes("const app = express()")) {
322
322
  transformedContent = transformedContent.replace(
@@ -424,22 +424,22 @@ const createBackup = async (projectRoot) => {
424
424
  };
425
425
  const writeTransformedFile = async (projectRoot, result, dryRun) => {
426
426
  if (dryRun) {
427
- relinka("log", `[DRY RUN] Would transform ${result.filePath}`);
427
+ relinka("verbose", `[DRY RUN] Would transform ${result.filePath}`);
428
428
  for (const change of result.changes) {
429
- relinka("log", ` - ${change}`);
429
+ relinka("verbose", ` - ${change}`);
430
430
  }
431
431
  return;
432
432
  }
433
433
  const fullPath = join(projectRoot, result.filePath);
434
434
  await writeFile(fullPath, result.transformedContent);
435
- relinka("log", `\u2713 Transformed ${result.filePath}`);
435
+ relinka("verbose", `\u2713 Transformed ${result.filePath}`);
436
436
  for (const change of result.changes) {
437
- relinka("log", ` - ${change}`);
437
+ relinka("verbose", ` - ${change}`);
438
438
  }
439
439
  };
440
440
  const migrateProject = async (config) => {
441
441
  const { projectRoot, dryRun, backup } = config;
442
- relinka("log", "\u{1F50D} Analyzing project...");
442
+ relinka("verbose", "\u{1F50D} Analyzing project...");
443
443
  const analysis = await analyzeProject(projectRoot);
444
444
  relinka(
445
445
  "log",
@@ -452,7 +452,7 @@ const migrateProject = async (config) => {
452
452
  `
453
453
  );
454
454
  if (backup && !dryRun) {
455
- relinka("log", "\u{1F4BE} Creating backup...");
455
+ relinka("verbose", "\u{1F4BE} Creating backup...");
456
456
  await createBackup(projectRoot);
457
457
  }
458
458
  const transformResults = [];
@@ -460,11 +460,11 @@ const migrateProject = async (config) => {
460
460
  const errors = [];
461
461
  const warnings = [];
462
462
  try {
463
- relinka("log", "\u{1F4E6} Transforming package.json...");
463
+ relinka("verbose", "\u{1F4E6} Transforming package.json...");
464
464
  const packageJsonResult = transformPackageJson(analysis);
465
465
  transformResults.push(packageJsonResult);
466
466
  await writeTransformedFile(projectRoot, packageJsonResult, dryRun);
467
- relinka("log", "\u{1F527} Transforming source files...");
467
+ relinka("verbose", "\u{1F527} Transforming source files...");
468
468
  for (const sourceFile of analysis.sourceFiles.slice(0, 50)) {
469
469
  try {
470
470
  const fullPath = join(projectRoot, sourceFile);
@@ -479,7 +479,7 @@ const migrateProject = async (config) => {
479
479
  }
480
480
  }
481
481
  if (analysis.hasTests) {
482
- relinka("log", "\u{1F9EA} Transforming test files...");
482
+ relinka("verbose", "\u{1F9EA} Transforming test files...");
483
483
  for (const testFile of analysis.testFiles.slice(0, 20)) {
484
484
  try {
485
485
  const fullPath = join(projectRoot, testFile);
@@ -495,7 +495,7 @@ const migrateProject = async (config) => {
495
495
  }
496
496
  }
497
497
  if (!dryRun) {
498
- relinka("log", "\u2699\uFE0F Generating Bun configuration...");
498
+ relinka("verbose", "\u2699\uFE0F Generating Bun configuration...");
499
499
  const bunConfig = generateBunConfig(analysis);
500
500
  await writeFile(join(projectRoot, "bunfig.toml"), bunConfig);
501
501
  const dockerfile = generateDockerfile(analysis);
@@ -544,35 +544,35 @@ export async function migrateAnythingToBun({
544
544
  selective: [],
545
545
  skipFrameworks: []
546
546
  };
547
- relinka("log", "\u{1F680} Starting Bun migration...");
548
- relinka("log", `\u{1F4C1} Project: ${config.projectRoot}`);
549
- relinka("log", `\u{1F50D} Mode: ${config.dryRun ? "DRY RUN" : "LIVE MIGRATION"}`);
550
- relinka("log", "");
547
+ relinka("verbose", "\u{1F680} Starting Bun migration...");
548
+ relinka("verbose", `\u{1F4C1} Project: ${config.projectRoot}`);
549
+ relinka("verbose", `\u{1F50D} Mode: ${config.dryRun ? "DRY RUN" : "LIVE MIGRATION"}`);
550
+ relinka("verbose", "");
551
551
  try {
552
552
  const report = await migrateProject(config);
553
- relinka("log", "\n\u2705 Migration complete!");
554
- relinka("log", `\u{1F4CA} Files transformed: ${report.filesTransformed}`);
553
+ relinka("verbose", "\n\u2705 Migration complete!");
554
+ relinka("verbose", `\u{1F4CA} Files transformed: ${report.filesTransformed}`);
555
555
  if (report.manualSteps.length > 0) {
556
- relinka("log", "\n\u{1F4CB} Manual steps required:");
556
+ relinka("verbose", "\n\u{1F4CB} Manual steps required:");
557
557
  for (const step of report.manualSteps) {
558
- relinka("log", ` \u2022 ${step}`);
558
+ relinka("verbose", ` \u2022 ${step}`);
559
559
  }
560
560
  }
561
561
  if (report.warnings.length > 0) {
562
- relinka("log", "\n\u26A0\uFE0F Warnings:");
562
+ relinka("verbose", "\n\u26A0\uFE0F Warnings:");
563
563
  for (const warning of report.warnings) {
564
- relinka("log", ` \u2022 ${warning}`);
564
+ relinka("verbose", ` \u2022 ${warning}`);
565
565
  }
566
566
  }
567
567
  if (report.errors.length > 0) {
568
- relinka("log", "\n\u274C Errors:");
568
+ relinka("verbose", "\n\u274C Errors:");
569
569
  for (const error of report.errors) {
570
- relinka("log", ` \u2022 ${error}`);
570
+ relinka("verbose", ` \u2022 ${error}`);
571
571
  }
572
572
  }
573
573
  if (!config.dryRun) {
574
- relinka("log", "\n\u{1F389} Your project has been migrated to Bun!");
575
- relinka("log", "Run 'bun install' to get started.");
574
+ relinka("verbose", "\n\u{1F389} Your project has been migrated to Bun!");
575
+ relinka("verbose", "Run 'bun install' to get started.");
576
576
  }
577
577
  } catch (error) {
578
578
  relinka("error", "\u274C Migration failed:", error);
@@ -130,7 +130,7 @@ export async function consoleToRelinka(input, from, to) {
130
130
  });
131
131
  if (newContent !== content) {
132
132
  content = newContent;
133
- relinka("log", `\u2705 Converted ${level} calls from ${finalFrom} to ${finalTo} format`);
133
+ relinka("verbose", `\u2705 Converted ${level} calls from ${finalFrom} to ${finalTo} format`);
134
134
  }
135
135
  }
136
136
  if (!changes) {
@@ -139,7 +139,7 @@ const restoreFile = async (outRoot, relPath, meta, binsDir, force = false) => {
139
139
  try {
140
140
  if (!force) {
141
141
  await fs.access(dest);
142
- relinka("log", `Skipping existing file (use --force to overwrite): ${relPath}`);
142
+ relinka("verbose", `Skipping existing file (use --force to overwrite): ${relPath}`);
143
143
  return;
144
144
  }
145
145
  } catch {
@@ -302,7 +302,7 @@ export default defineCommand({
302
302
  "warn",
303
303
  `Warning: Could not load existing templates from ${modFile}. Will create new ones.`
304
304
  );
305
- relinka("log", `Error details: ${loadError.message}`);
305
+ relinka("verbose", `Error details: ${loadError.message}`);
306
306
  }
307
307
  }
308
308
  }
@@ -456,19 +456,19 @@ export default defineCommand({
456
456
  const newContent = code.join("\n");
457
457
  if (existingContent !== newContent) {
458
458
  if (filesToUpdate) {
459
- relinka("log", `Updating specific files in template: ${tplName}`);
459
+ relinka("verbose", `Updating specific files in template: ${tplName}`);
460
460
  } else {
461
- relinka("log", `Updating template: ${tplName}`);
461
+ relinka("verbose", `Updating template: ${tplName}`);
462
462
  }
463
463
  }
464
464
  } catch (error) {
465
465
  if (error.code !== "ENOENT") {
466
466
  throw error;
467
467
  }
468
- relinka("log", `Creating new template: ${tplName}`);
468
+ relinka("verbose", `Creating new template: ${tplName}`);
469
469
  }
470
470
  } else if (!args.update) {
471
- relinka("log", `Creating template: ${tplName}`);
471
+ relinka("verbose", `Creating template: ${tplName}`);
472
472
  }
473
473
  const filesWithErrors = Object.entries(filesRecord).filter(([_, meta]) => meta.hasError);
474
474
  if (filesWithErrors.length > 0) {
@@ -504,7 +504,7 @@ export default defineCommand({
504
504
  );
505
505
  relinka("success", `Packed ${templateDirs.length} templates into ${modFile}:`);
506
506
  for (const p of templatePaths) {
507
- relinka("log", `- ${p}`);
507
+ relinka("verbose", `- ${p}`);
508
508
  }
509
509
  const binaryCount = Object.values(existingTemplates).reduce((count, template) => {
510
510
  return count + Object.values(template.config.files).filter((file) => file.type === "binary").length;
@@ -124,7 +124,7 @@ export default defineCommand({
124
124
  await removeDependency(name, options);
125
125
  } else {
126
126
  relinka.error(`Unknown action: ${action}`);
127
- relinka.log("Available actions: remove, rm, uninstall, un, delete, del");
127
+ relinka.verbose("Available actions: remove, rm, uninstall, un, delete, del");
128
128
  return process.exit(1);
129
129
  }
130
130
  }
@@ -90,7 +90,7 @@ export default defineCommand({
90
90
  await fs.ensureDir(dirPath);
91
91
  const content = generateCommandTemplate(cmdName);
92
92
  await fs.writeFile(filePath, content, "utf8");
93
- relinka("log", `\u2705 Created new command: ${filePath}`);
93
+ relinka("verbose", `\u2705 Created new command: ${filePath}`);
94
94
  }
95
95
  if (cliFilePath) {
96
96
  relinka(
@@ -119,7 +119,7 @@ export default defineCommand({
119
119
  await fs.ensureDir(path.dirname(outPath2));
120
120
  await fs.writeFile(outPath2, exports2, "utf8");
121
121
  relinka("success", `\u2705 Generated command exports at: ${outPath2}`);
122
- relinka("log", `Found ${cmdDirs2.length} command(s): ${cmdDirs2.join(", ")}`);
122
+ relinka("verbose", `Found ${cmdDirs2.length} command(s): ${cmdDirs2.join(", ")}`);
123
123
  return;
124
124
  }
125
125
  const root = path.resolve("src/app");
@@ -137,7 +137,7 @@ export default defineCommand({
137
137
  await fs.ensureDir(path.dirname(outPath));
138
138
  await fs.writeFile(outPath, exports, "utf8");
139
139
  relinka("success", `\u2705 Generated command exports at: ${outPath}`);
140
- relinka("log", `Found ${cmdDirs.length} command(s): ${cmdDirs.join(", ")}`);
140
+ relinka("verbose", `Found ${cmdDirs.length} command(s): ${cmdDirs.join(", ")}`);
141
141
  if (didInit) {
142
142
  relinka(
143
143
  "log",
@@ -207,7 +207,7 @@ async function ensureCliFile(filePath) {
207
207
  if (!await fs.pathExists(resolvedPath)) {
208
208
  await fs.ensureDir(path.dirname(resolvedPath));
209
209
  await fs.writeFile(resolvedPath, cliTemplate, "utf8");
210
- relinka("log", `\u2705 Created CLI entry file: ${resolvedPath}`);
210
+ relinka("verbose", `\u2705 Created CLI entry file: ${resolvedPath}`);
211
211
  return resolvedPath;
212
212
  }
213
213
  return "";