@reliverse/dler 1.7.86 → 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.
- package/README.md +1 -1
- package/bin/app/build/postbuild.js +1 -1
- package/bin/app/build/ppb-utils.js +1 -1
- package/bin/app/build/prebuild.js +1 -1
- package/bin/app/catalog/cmd.js +1 -1
- package/bin/app/create/cmd.js +5 -5
- package/bin/app/fs/cmd.js +6 -6
- package/bin/app/init/cmd.js +1 -1
- package/bin/app/install/cmd.js +1 -1
- package/bin/app/libs/cmd.js +2 -2
- package/bin/app/merge/cmd.js +2 -2
- package/bin/app/migrate/cmd.js +46 -43
- package/bin/app/migrate/codemods/anything-bun.js +25 -25
- package/bin/app/migrate/codemods/console-relinka.js +1 -1
- package/bin/app/pack/cmd.js +7 -7
- package/bin/app/remove/cmd.js +1 -1
- package/bin/app/rempts/cmd.js +4 -4
- package/bin/app/update/cmd.js +20 -22
- package/bin/app/upgrade/cmd.js +10 -4
- package/bin/app/x/cmd.js +6 -6
- package/bin/libs/cfg/cfg-impl/cfg-dler.d.ts +116 -0
- package/bin/libs/cfg/cfg-impl/cfg-dler.js +76 -1
- package/bin/libs/get/get-impl/get-core.js +19 -16
- package/bin/libs/sdk/sdk-impl/build/build-library.js +6 -6
- package/bin/libs/sdk/sdk-impl/build/build-regular.js +4 -4
- package/bin/libs/sdk/sdk-impl/build/providers/build.js +3 -3
- package/bin/libs/sdk/sdk-impl/build/providers/rollup/watch.js +2 -2
- package/bin/libs/sdk/sdk-impl/config/default.js +76 -1
- package/bin/libs/sdk/sdk-impl/config/info.js +1 -1
- package/bin/libs/sdk/sdk-impl/config/load.js +1 -1
- package/bin/libs/sdk/sdk-impl/config/prepare.js +4 -4
- package/bin/libs/sdk/sdk-impl/config/types.d.ts +115 -0
- package/bin/libs/sdk/sdk-impl/library-flow.js +3 -3
- package/bin/libs/sdk/sdk-impl/magic/magic-apply.js +9 -9
- package/bin/libs/sdk/sdk-impl/pub/pub-library.js +5 -5
- package/bin/libs/sdk/sdk-impl/pub/pub-regular.js +10 -4
- package/bin/libs/sdk/sdk-impl/regular-flow.js +8 -8
- package/bin/libs/sdk/sdk-impl/utils/agg/agg-1.js +5 -3
- package/bin/libs/sdk/sdk-impl/utils/agg/agg-2.js +1 -1
- package/bin/libs/sdk/sdk-impl/utils/agg/agg-3.js +7 -7
- package/bin/libs/sdk/sdk-impl/utils/fs-rename.js +10 -10
- package/bin/libs/sdk/sdk-impl/utils/init/init-impl.js +1 -1
- package/bin/libs/sdk/sdk-impl/utils/pm/pm-catalog.js +4 -4
- package/bin/libs/sdk/sdk-impl/utils/resolve-cross-libs.js +24 -15
- package/bin/libs/sdk/sdk-impl/utils/utils-build.js +1 -1
- package/bin/libs/sdk/sdk-impl/utils/utils-clean.js +1 -1
- package/bin/libs/sdk/sdk-impl/utils/utils-error-cwd.js +2 -2
- package/bin/libs/sdk/sdk-impl/utils/utils-fs.js +1 -1
- package/bin/libs/sdk/sdk-impl/utils/utils-package-json-libraries.js +1 -1
- package/bin/libs/sdk/sdk-impl/utils/utils-package-json-regular.js +1 -1
- package/bin/libs/sdk/sdk-mod.d.ts +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[sponsor](https://github.com/sponsors/blefnk) — [discord](https://discord.gg/pb8ukbwpsj) — [github](https://github.com/reliverse/dler) — [npm](https://npmjs.com/@reliverse/dler)
|
|
4
4
|
|
|
5
|
-
> @reliverse/dler (formerly relidler; `/ˈdiː.lər/`, dealer) is a unified package manager for typescript/javascript projects.
|
|
5
|
+
> @reliverse/dler (formerly relidler; `/ˈdiː.lər/`, dealer) is both a unified package manager for typescript/javascript projects and a flexible framework for creating, building, and publishing js/ts libraries to npm and jsr.
|
|
6
6
|
>
|
|
7
7
|
> dler is your package manager’s best friend — it extends bun, deno (🔜), pnpm, yarn, and npm with powerful and modern features.
|
|
8
8
|
>
|
|
@@ -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("
|
|
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("
|
|
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("
|
|
108
|
+
relinka("verbose", `Running ${name}...`);
|
|
109
109
|
await run();
|
|
110
110
|
}
|
|
111
111
|
}
|
package/bin/app/catalog/cmd.js
CHANGED
package/bin/app/create/cmd.js
CHANGED
|
@@ -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("
|
|
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.
|
|
117
|
-
relinka.
|
|
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.
|
|
149
|
-
relinka.
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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}`);
|
package/bin/app/init/cmd.js
CHANGED
package/bin/app/install/cmd.js
CHANGED
|
@@ -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.
|
|
124
|
+
relinka.verbose("Available actions: install, add, i, dedupe");
|
|
125
125
|
return process.exit(1);
|
|
126
126
|
}
|
|
127
127
|
}
|
package/bin/app/libs/cmd.js
CHANGED
|
@@ -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("
|
|
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("
|
|
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
|
}
|
package/bin/app/merge/cmd.js
CHANGED
|
@@ -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("
|
|
346
|
-
relinka("
|
|
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) {
|
package/bin/app/migrate/cmd.js
CHANGED
|
@@ -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("
|
|
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("
|
|
78
|
-
relinka("
|
|
79
|
-
relinka("
|
|
80
|
-
relinka("
|
|
81
|
-
relinka("
|
|
82
|
-
relinka("
|
|
83
|
-
relinka("
|
|
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("
|
|
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("
|
|
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("
|
|
98
|
-
relinka("
|
|
99
|
-
relinka("
|
|
97
|
+
relinka("verbose", "Available targets:");
|
|
98
|
+
relinka("verbose", " - nodenext");
|
|
99
|
+
relinka("verbose", " - bundler");
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
|
-
relinka("
|
|
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("
|
|
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("
|
|
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("
|
|
118
|
-
relinka("
|
|
119
|
-
relinka("
|
|
120
|
-
relinka("
|
|
121
|
-
relinka("
|
|
122
|
-
relinka("
|
|
123
|
-
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("
|
|
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("
|
|
136
|
+
relinka("verbose", ` ${change}`);
|
|
137
137
|
warningCount++;
|
|
138
138
|
} else {
|
|
139
|
-
relinka("
|
|
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("
|
|
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("
|
|
158
|
-
relinka("
|
|
159
|
-
relinka("
|
|
160
|
-
relinka(
|
|
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("
|
|
163
|
-
relinka("
|
|
164
|
-
relinka("
|
|
165
|
-
relinka("
|
|
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("
|
|
168
|
-
relinka("
|
|
170
|
+
relinka("verbose", "Next steps:");
|
|
171
|
+
relinka("verbose", "1. Test your application");
|
|
169
172
|
if (args.mrTarget === "nodenext") {
|
|
170
|
-
relinka("
|
|
173
|
+
relinka("verbose", "2. Ensure your build tools support .js extensions in imports");
|
|
171
174
|
} else if (args.mrTarget === "bundler") {
|
|
172
|
-
relinka("
|
|
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("
|
|
179
|
-
relinka("
|
|
180
|
-
relinka("
|
|
181
|
-
relinka("
|
|
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("
|
|
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("
|
|
427
|
+
relinka("verbose", `[DRY RUN] Would transform ${result.filePath}`);
|
|
428
428
|
for (const change of result.changes) {
|
|
429
|
-
relinka("
|
|
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("
|
|
435
|
+
relinka("verbose", `\u2713 Transformed ${result.filePath}`);
|
|
436
436
|
for (const change of result.changes) {
|
|
437
|
-
relinka("
|
|
437
|
+
relinka("verbose", ` - ${change}`);
|
|
438
438
|
}
|
|
439
439
|
};
|
|
440
440
|
const migrateProject = async (config) => {
|
|
441
441
|
const { projectRoot, dryRun, backup } = config;
|
|
442
|
-
relinka("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
548
|
-
relinka("
|
|
549
|
-
relinka("
|
|
550
|
-
relinka("
|
|
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("
|
|
554
|
-
relinka("
|
|
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("
|
|
556
|
+
relinka("verbose", "\n\u{1F4CB} Manual steps required:");
|
|
557
557
|
for (const step of report.manualSteps) {
|
|
558
|
-
relinka("
|
|
558
|
+
relinka("verbose", ` \u2022 ${step}`);
|
|
559
559
|
}
|
|
560
560
|
}
|
|
561
561
|
if (report.warnings.length > 0) {
|
|
562
|
-
relinka("
|
|
562
|
+
relinka("verbose", "\n\u26A0\uFE0F Warnings:");
|
|
563
563
|
for (const warning of report.warnings) {
|
|
564
|
-
relinka("
|
|
564
|
+
relinka("verbose", ` \u2022 ${warning}`);
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
567
|
if (report.errors.length > 0) {
|
|
568
|
-
relinka("
|
|
568
|
+
relinka("verbose", "\n\u274C Errors:");
|
|
569
569
|
for (const error of report.errors) {
|
|
570
|
-
relinka("
|
|
570
|
+
relinka("verbose", ` \u2022 ${error}`);
|
|
571
571
|
}
|
|
572
572
|
}
|
|
573
573
|
if (!config.dryRun) {
|
|
574
|
-
relinka("
|
|
575
|
-
relinka("
|
|
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("
|
|
133
|
+
relinka("verbose", `\u2705 Converted ${level} calls from ${finalFrom} to ${finalTo} format`);
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
if (!changes) {
|
package/bin/app/pack/cmd.js
CHANGED
|
@@ -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("
|
|
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("
|
|
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("
|
|
459
|
+
relinka("verbose", `Updating specific files in template: ${tplName}`);
|
|
460
460
|
} else {
|
|
461
|
-
relinka("
|
|
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("
|
|
468
|
+
relinka("verbose", `Creating new template: ${tplName}`);
|
|
469
469
|
}
|
|
470
470
|
} else if (!args.update) {
|
|
471
|
-
relinka("
|
|
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("
|
|
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;
|
package/bin/app/remove/cmd.js
CHANGED
|
@@ -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.
|
|
127
|
+
relinka.verbose("Available actions: remove, rm, uninstall, un, delete, del");
|
|
128
128
|
return process.exit(1);
|
|
129
129
|
}
|
|
130
130
|
}
|
package/bin/app/rempts/cmd.js
CHANGED
|
@@ -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("
|
|
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("
|
|
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("
|
|
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("
|
|
210
|
+
relinka("verbose", `\u2705 Created CLI entry file: ${resolvedPath}`);
|
|
211
211
|
return resolvedPath;
|
|
212
212
|
}
|
|
213
213
|
return "";
|