@mozole/cli 1.4.2 → 1.4.3
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/CHANGELOG.md +8 -0
- package/README.md +25 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +49 -22
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts +2 -0
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +53 -16
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +2 -1
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +63 -15
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/template.d.ts +8 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +392 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/ui.d.ts +5 -0
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +159 -9
- package/dist/commands/ui.js.map +1 -1
- package/dist/config/project.d.ts +3 -0
- package/dist/config/project.d.ts.map +1 -1
- package/dist/config/project.js +21 -2
- package/dist/config/project.js.map +1 -1
- package/dist/governor/fingerprint.d.ts.map +1 -1
- package/dist/governor/fingerprint.js +19 -28
- package/dist/governor/fingerprint.js.map +1 -1
- package/dist/output-safety.d.ts +3 -0
- package/dist/output-safety.d.ts.map +1 -0
- package/dist/output-safety.js +44 -0
- package/dist/output-safety.js.map +1 -0
- package/dist/platform/process.d.ts +2 -0
- package/dist/platform/process.d.ts.map +1 -1
- package/dist/platform/process.js +16 -6
- package/dist/platform/process.js.map +1 -1
- package/dist/qa/artifacts.d.ts +3 -0
- package/dist/qa/artifacts.d.ts.map +1 -0
- package/dist/qa/artifacts.js +15 -0
- package/dist/qa/artifacts.js.map +1 -0
- package/dist/qa/diff.d.ts.map +1 -1
- package/dist/qa/diff.js +0 -1
- package/dist/qa/diff.js.map +1 -1
- package/dist/qa/runner.d.ts +3 -2
- package/dist/qa/runner.d.ts.map +1 -1
- package/dist/qa/runner.js +12 -16
- package/dist/qa/runner.js.map +1 -1
- package/dist/qa/server.d.ts.map +1 -1
- package/dist/qa/server.js +7 -7
- package/dist/qa/server.js.map +1 -1
- package/dist/scaffold/standalone.d.ts +1 -1
- package/dist/scaffold/standalone.d.ts.map +1 -1
- package/dist/scaffold/standalone.js +82 -2
- package/dist/scaffold/standalone.js.map +1 -1
- package/dist/scaffold/templates.d.ts +1 -0
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +6 -1
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/template/servers.d.ts +21 -0
- package/dist/template/servers.d.ts.map +1 -0
- package/dist/template/servers.js +193 -0
- package/dist/template/servers.js.map +1 -0
- package/dist/template/workspace.d.ts +23 -0
- package/dist/template/workspace.d.ts.map +1 -0
- package/dist/template/workspace.js +152 -0
- package/dist/template/workspace.js.map +1 -0
- package/dist/verify/runner.d.ts +2 -1
- package/dist/verify/runner.d.ts.map +1 -1
- package/dist/verify/runner.js +2 -2
- package/dist/verify/runner.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import { cp, lstat, mkdir, readFile, rename, rm, rmdir, writeFile, } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { readConfig } from "../config/project.js";
|
|
4
|
+
import { npmExecutable } from "../platform/executable.js";
|
|
5
|
+
import { run } from "../platform/process.js";
|
|
6
|
+
import { findTemplateRoot, initializeTemplateRoot, listTemplateProjects, registerTemplateProject, } from "../template/workspace.js";
|
|
7
|
+
import { adoptCommand } from "./adopt.js";
|
|
8
|
+
export async function templateInitCommand(target, cwd, output = console) {
|
|
9
|
+
const root = path.resolve(cwd, target ?? ".");
|
|
10
|
+
let targetExisted = false;
|
|
11
|
+
let gitignoreExisted = false;
|
|
12
|
+
let initialized = false;
|
|
13
|
+
try {
|
|
14
|
+
try {
|
|
15
|
+
targetExisted = (await lstat(root)).isDirectory();
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
if (error.code !== "ENOENT")
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
if (targetExisted) {
|
|
22
|
+
try {
|
|
23
|
+
await lstat(path.join(root, ".gitignore"));
|
|
24
|
+
gitignoreExisted = true;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (error.code !== "ENOENT")
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
await initializeTemplateRoot(root);
|
|
32
|
+
initialized = true;
|
|
33
|
+
if (process.env.MOZOLE_SKIP_INSTALL !== "1") {
|
|
34
|
+
const installed = await run(npmExecutable(), ["install", "--no-fund", "--no-audit"], {
|
|
35
|
+
cwd: root,
|
|
36
|
+
timeoutMs: 600_000,
|
|
37
|
+
logFile: path.join(root, ".mozole", "logs", "npm-install.log"),
|
|
38
|
+
});
|
|
39
|
+
if (installed.exitCode !== 0)
|
|
40
|
+
throw new Error("Shared dependency installation failed. See .mozole/logs/npm-install.log.");
|
|
41
|
+
if (process.env.MOZOLE_SKIP_BROWSER !== "1") {
|
|
42
|
+
const browser = await run(npmExecutable(), ["exec", "--", "playwright", "install", "chromium"], {
|
|
43
|
+
cwd: root,
|
|
44
|
+
timeoutMs: 600_000,
|
|
45
|
+
logFile: path.join(root, ".mozole", "logs", "playwright-install.log"),
|
|
46
|
+
});
|
|
47
|
+
if (browser.exitCode !== 0)
|
|
48
|
+
throw new Error("Chromium installation failed. See .mozole/logs/playwright-install.log.");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
output.log(`Created Mozole template workspace at ${root}\n\nNext:\n cd ${path.relative(cwd, root) || "."}\n mozole new my-project\n mozole ui`);
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (initialized) {
|
|
56
|
+
if (!targetExisted) {
|
|
57
|
+
await rm(root, { recursive: true, force: true });
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
await rm(path.join(root, "package.json"), { force: true });
|
|
61
|
+
await rm(path.join(root, ".mozole", "template.json"), { force: true });
|
|
62
|
+
if (!gitignoreExisted)
|
|
63
|
+
await rm(path.join(root, ".gitignore"), { force: true });
|
|
64
|
+
try {
|
|
65
|
+
await rmdir(path.join(root, ".mozole"));
|
|
66
|
+
}
|
|
67
|
+
catch { }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
output.error(`TEMPLATE INIT FAIL\n\n${error instanceof Error ? error.message : String(error)}`);
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export async function templateListCommand(cwd, output = console) {
|
|
75
|
+
const root = await findTemplateRoot(cwd);
|
|
76
|
+
if (!root) {
|
|
77
|
+
output.error("No Mozole template workspace found. Run `mozole template init <folder>`.");
|
|
78
|
+
return 2;
|
|
79
|
+
}
|
|
80
|
+
const projects = await listTemplateProjects(root);
|
|
81
|
+
output.log(projects.length
|
|
82
|
+
? projects
|
|
83
|
+
.map((project) => `${project.relativePath}\thttp://127.0.0.1:${project.preferredPort}${project.readinessPath}`)
|
|
84
|
+
.join("\n")
|
|
85
|
+
: "No Mozole projects found in this template workspace.");
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
async function optionalRead(file) {
|
|
89
|
+
try {
|
|
90
|
+
return await readFile(file);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (error.code === "ENOENT")
|
|
94
|
+
return undefined;
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function atomicWrite(file, contents) {
|
|
99
|
+
await mkdir(path.dirname(file), { recursive: true });
|
|
100
|
+
const temporary = `${file}.${process.pid}.tmp`;
|
|
101
|
+
try {
|
|
102
|
+
await writeFile(temporary, contents, { flag: "wx" });
|
|
103
|
+
await rename(temporary, file);
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
await rm(temporary, { force: true });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function dependencyMap(value, label) {
|
|
110
|
+
if (value === undefined)
|
|
111
|
+
return {};
|
|
112
|
+
if (!value ||
|
|
113
|
+
typeof value !== "object" ||
|
|
114
|
+
Array.isArray(value) ||
|
|
115
|
+
!Object.values(value).every((version) => typeof version === "string"))
|
|
116
|
+
throw new Error(`${label} must contain package version strings.`);
|
|
117
|
+
return value;
|
|
118
|
+
}
|
|
119
|
+
async function mergeRootDependencies(root, projectRoot) {
|
|
120
|
+
const rootFile = path.join(root, "package.json");
|
|
121
|
+
const projectFile = path.join(projectRoot, "package.json");
|
|
122
|
+
const rootPackage = JSON.parse(await readFile(rootFile, "utf8"));
|
|
123
|
+
const projectPackage = JSON.parse(await readFile(projectFile, "utf8"));
|
|
124
|
+
if (!rootPackage || typeof rootPackage !== "object")
|
|
125
|
+
throw new Error("Template package.json must contain an object.");
|
|
126
|
+
if (!projectPackage || typeof projectPackage !== "object")
|
|
127
|
+
throw new Error("Project package.json must contain an object.");
|
|
128
|
+
const runtime = dependencyMap(rootPackage.dependencies, "dependencies");
|
|
129
|
+
const development = dependencyMap(rootPackage.devDependencies, "devDependencies");
|
|
130
|
+
const requestedRuntime = {
|
|
131
|
+
...dependencyMap(projectPackage.peerDependencies, "peerDependencies"),
|
|
132
|
+
...dependencyMap(projectPackage.optionalDependencies, "optionalDependencies"),
|
|
133
|
+
...dependencyMap(projectPackage.dependencies, "dependencies"),
|
|
134
|
+
};
|
|
135
|
+
const requestedDevelopment = dependencyMap(projectPackage.devDependencies, "devDependencies");
|
|
136
|
+
const conflicts = [];
|
|
137
|
+
const merge = (requested, preferred, other) => {
|
|
138
|
+
for (const [name, version] of Object.entries(requested)) {
|
|
139
|
+
const current = preferred[name] ?? other[name];
|
|
140
|
+
if (current && current !== version) {
|
|
141
|
+
conflicts.push(`${name}: template ${current}, project ${version}`);
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (!current)
|
|
145
|
+
preferred[name] = version;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
merge(requestedRuntime, runtime, development);
|
|
149
|
+
merge(requestedDevelopment, development, runtime);
|
|
150
|
+
for (const field of [
|
|
151
|
+
"dependencies",
|
|
152
|
+
"optionalDependencies",
|
|
153
|
+
"peerDependencies",
|
|
154
|
+
]) {
|
|
155
|
+
const values = dependencyMap(projectPackage[field], field);
|
|
156
|
+
for (const name of Object.keys(values)) {
|
|
157
|
+
const requested = values[name];
|
|
158
|
+
if (requested !== undefined)
|
|
159
|
+
values[name] = runtime[name] ?? development[name] ?? requested;
|
|
160
|
+
}
|
|
161
|
+
projectPackage[field] = values;
|
|
162
|
+
}
|
|
163
|
+
const projectDevelopment = dependencyMap(projectPackage.devDependencies, "devDependencies");
|
|
164
|
+
for (const name of Object.keys(projectDevelopment)) {
|
|
165
|
+
const requested = projectDevelopment[name];
|
|
166
|
+
if (requested !== undefined)
|
|
167
|
+
projectDevelopment[name] =
|
|
168
|
+
development[name] ?? runtime[name] ?? requested;
|
|
169
|
+
}
|
|
170
|
+
projectPackage.devDependencies = projectDevelopment;
|
|
171
|
+
rootPackage.dependencies = runtime;
|
|
172
|
+
rootPackage.devDependencies = development;
|
|
173
|
+
await atomicWrite(rootFile, `${JSON.stringify(rootPackage, null, 2)}\n`);
|
|
174
|
+
await atomicWrite(projectFile, `${JSON.stringify(projectPackage, null, 2)}\n`);
|
|
175
|
+
return conflicts;
|
|
176
|
+
}
|
|
177
|
+
function safeWorkspaceName(projectRoot, packageName) {
|
|
178
|
+
const candidate = (packageName?.split("/").pop() || path.basename(projectRoot))
|
|
179
|
+
.toLowerCase()
|
|
180
|
+
.replace(/[^a-z0-9._-]+/g, "-")
|
|
181
|
+
.replace(/^[^a-z0-9]+|[^a-z0-9]+$/g, "");
|
|
182
|
+
if (!candidate)
|
|
183
|
+
throw new Error("Cannot derive a safe workspace name.");
|
|
184
|
+
return candidate;
|
|
185
|
+
}
|
|
186
|
+
async function recoverSharedDependencyDeclarations(projectRoot, projectPackage) {
|
|
187
|
+
const currentCount = [
|
|
188
|
+
projectPackage.dependencies,
|
|
189
|
+
projectPackage.devDependencies,
|
|
190
|
+
projectPackage.optionalDependencies,
|
|
191
|
+
projectPackage.peerDependencies,
|
|
192
|
+
].reduce((total, values) => total + Object.keys(values ?? {}).length, 0);
|
|
193
|
+
if (currentCount > 1)
|
|
194
|
+
return false;
|
|
195
|
+
try {
|
|
196
|
+
const backup = JSON.parse(await readFile(path.join(projectRoot, ".mozole", "backups", "package.json.before-adopt"), "utf8"));
|
|
197
|
+
const backupDependencies = {
|
|
198
|
+
...backup.dependencies,
|
|
199
|
+
...backup.devDependencies,
|
|
200
|
+
};
|
|
201
|
+
if (!backupDependencies.react ||
|
|
202
|
+
(!backupDependencies.vite && !backupDependencies["@react-router/dev"]))
|
|
203
|
+
return false;
|
|
204
|
+
for (const field of [
|
|
205
|
+
"dependencies",
|
|
206
|
+
"devDependencies",
|
|
207
|
+
"optionalDependencies",
|
|
208
|
+
"peerDependencies",
|
|
209
|
+
])
|
|
210
|
+
projectPackage[field] = {
|
|
211
|
+
...backup[field],
|
|
212
|
+
...projectPackage[field],
|
|
213
|
+
};
|
|
214
|
+
await atomicWrite(path.join(projectRoot, "package.json"), `${JSON.stringify(projectPackage, null, 2)}\n`);
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function ensureUniquePackageName(root, projectRoot, projectPackage) {
|
|
222
|
+
const rootPackage = JSON.parse(await readFile(path.join(root, "package.json"), "utf8"));
|
|
223
|
+
const workspaces = Array.isArray(rootPackage.workspaces)
|
|
224
|
+
? rootPackage.workspaces.filter((value) => typeof value === "string")
|
|
225
|
+
: [];
|
|
226
|
+
const names = new Set();
|
|
227
|
+
for (const workspace of workspaces) {
|
|
228
|
+
const workspaceRoot = path.resolve(root, ...workspace.split("/"));
|
|
229
|
+
if (workspaceRoot === projectRoot)
|
|
230
|
+
continue;
|
|
231
|
+
try {
|
|
232
|
+
const value = JSON.parse(await readFile(path.join(workspaceRoot, "package.json"), "utf8"));
|
|
233
|
+
if (typeof value.name === "string")
|
|
234
|
+
names.add(value.name);
|
|
235
|
+
}
|
|
236
|
+
catch { }
|
|
237
|
+
}
|
|
238
|
+
if (projectPackage.name && !names.has(projectPackage.name))
|
|
239
|
+
return undefined;
|
|
240
|
+
const relativeName = path
|
|
241
|
+
.relative(root, projectRoot)
|
|
242
|
+
.normalize("NFKD")
|
|
243
|
+
.replace(/[\u0300-\u036f]/g, "-")
|
|
244
|
+
.split(path.sep)
|
|
245
|
+
.join("-");
|
|
246
|
+
let candidate = safeWorkspaceName(projectRoot, relativeName);
|
|
247
|
+
let suffix = 2;
|
|
248
|
+
while (names.has(candidate))
|
|
249
|
+
candidate = `${candidate}-${suffix++}`;
|
|
250
|
+
const previous = projectPackage.name;
|
|
251
|
+
projectPackage.name = candidate;
|
|
252
|
+
await atomicWrite(path.join(projectRoot, "package.json"), `${JSON.stringify(projectPackage, null, 2)}\n`);
|
|
253
|
+
return previous ? `${previous} → ${candidate}` : candidate;
|
|
254
|
+
}
|
|
255
|
+
export async function templateAdoptCommand(input, cwd, output = console, options = {}) {
|
|
256
|
+
if (!input) {
|
|
257
|
+
output.error("Usage: mozole template adopt <project-path>");
|
|
258
|
+
return 2;
|
|
259
|
+
}
|
|
260
|
+
const root = await findTemplateRoot(cwd);
|
|
261
|
+
if (!root) {
|
|
262
|
+
output.error("No Mozole template workspace found. Run `mozole template init <folder>`.");
|
|
263
|
+
return 2;
|
|
264
|
+
}
|
|
265
|
+
const source = path.resolve(cwd, input);
|
|
266
|
+
let staging;
|
|
267
|
+
let target = source;
|
|
268
|
+
let copied = false;
|
|
269
|
+
const rootPackageFile = path.join(root, "package.json");
|
|
270
|
+
const rootLockFile = path.join(root, "package-lock.json");
|
|
271
|
+
const rootPackageBefore = await optionalRead(rootPackageFile);
|
|
272
|
+
const rootLockBefore = await optionalRead(rootLockFile);
|
|
273
|
+
let localModulesBackup;
|
|
274
|
+
let localLockBackup;
|
|
275
|
+
let childPackageBefore;
|
|
276
|
+
try {
|
|
277
|
+
const sourceStat = await lstat(source);
|
|
278
|
+
if (!sourceStat.isDirectory() || sourceStat.isSymbolicLink())
|
|
279
|
+
throw new Error("Project path must be a real directory.");
|
|
280
|
+
const rawPackage = JSON.parse(await readFile(path.join(source, "package.json"), "utf8"));
|
|
281
|
+
const relativeSource = path.relative(root, source);
|
|
282
|
+
const isInsideWorkspace = Boolean(relativeSource) &&
|
|
283
|
+
!path.isAbsolute(relativeSource) &&
|
|
284
|
+
!relativeSource.split(path.sep).includes("..");
|
|
285
|
+
const sourceDependencies = {
|
|
286
|
+
...dependencyMap(rawPackage.dependencies, "dependencies"),
|
|
287
|
+
...dependencyMap(rawPackage.devDependencies, "devDependencies"),
|
|
288
|
+
};
|
|
289
|
+
const alreadyShared = isInsideWorkspace
|
|
290
|
+
? await readConfig(source)
|
|
291
|
+
.then((config) => config.workspace?.sharedDependencies === true)
|
|
292
|
+
.catch(() => false)
|
|
293
|
+
: false;
|
|
294
|
+
if (!alreadyShared &&
|
|
295
|
+
(!sourceDependencies.react ||
|
|
296
|
+
(!sourceDependencies.vite && !sourceDependencies["@react-router/dev"])))
|
|
297
|
+
throw new Error("Expected a React project using Vite or React Router Framework Mode.");
|
|
298
|
+
if (!isInsideWorkspace) {
|
|
299
|
+
const name = safeWorkspaceName(source, rawPackage.name);
|
|
300
|
+
target = path.join(root, name);
|
|
301
|
+
try {
|
|
302
|
+
await lstat(target);
|
|
303
|
+
throw new Error(`Cannot import project: ${target} already exists.`);
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
if (error.code !== "ENOENT")
|
|
307
|
+
throw error;
|
|
308
|
+
}
|
|
309
|
+
staging = path.join(root, `.mozole-template-adopt-${name}-${process.pid}`);
|
|
310
|
+
await cp(source, staging, {
|
|
311
|
+
recursive: true,
|
|
312
|
+
filter: (entry) => !entry
|
|
313
|
+
.split(path.sep)
|
|
314
|
+
.some((segment) => segment === "node_modules" || segment === ".git"),
|
|
315
|
+
});
|
|
316
|
+
await rename(staging, target);
|
|
317
|
+
staging = undefined;
|
|
318
|
+
copied = true;
|
|
319
|
+
}
|
|
320
|
+
childPackageBefore = await optionalRead(path.join(target, "package.json"));
|
|
321
|
+
const recoveredDependencies = alreadyShared
|
|
322
|
+
? await recoverSharedDependencyDeclarations(target, rawPackage)
|
|
323
|
+
: false;
|
|
324
|
+
const renamedPackage = await ensureUniquePackageName(root, target, rawPackage);
|
|
325
|
+
const nodeModules = path.join(target, "node_modules");
|
|
326
|
+
try {
|
|
327
|
+
await lstat(nodeModules);
|
|
328
|
+
localModulesBackup = path.join(target, `.mozole-node-modules-${process.pid}.backup`);
|
|
329
|
+
await rename(nodeModules, localModulesBackup);
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
if (error.code !== "ENOENT")
|
|
333
|
+
throw error;
|
|
334
|
+
}
|
|
335
|
+
const childLock = path.join(target, "package-lock.json");
|
|
336
|
+
try {
|
|
337
|
+
await lstat(childLock);
|
|
338
|
+
localLockBackup = path.join(target, `.mozole-package-lock-${process.pid}.backup`);
|
|
339
|
+
await rename(childLock, localLockBackup);
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
if (error.code !== "ENOENT")
|
|
343
|
+
throw error;
|
|
344
|
+
}
|
|
345
|
+
const conflicts = await mergeRootDependencies(root, target);
|
|
346
|
+
await registerTemplateProject(root, target);
|
|
347
|
+
const code = await adoptCommand(target, root, output, {
|
|
348
|
+
...options,
|
|
349
|
+
sharedDependencies: true,
|
|
350
|
+
workspaceRoot: root,
|
|
351
|
+
});
|
|
352
|
+
if (code !== 0)
|
|
353
|
+
throw new Error(`Project adoption exited with code ${code}.`);
|
|
354
|
+
if (localLockBackup) {
|
|
355
|
+
const backupFile = path.join(target, ".mozole", "backups", "package-lock.before-template-adopt");
|
|
356
|
+
await atomicWrite(backupFile, await readFile(localLockBackup));
|
|
357
|
+
await rm(localLockBackup, { force: true });
|
|
358
|
+
localLockBackup = undefined;
|
|
359
|
+
}
|
|
360
|
+
if (localModulesBackup) {
|
|
361
|
+
await rm(localModulesBackup, { recursive: true, force: true });
|
|
362
|
+
localModulesBackup = undefined;
|
|
363
|
+
}
|
|
364
|
+
output.log(`TEMPLATE ADOPT PASS\n\n${target}\nShared dependencies are owned by ${root}.${renamedPackage ? `\nWorkspace package renamed: ${renamedPackage}` : ""}${recoveredDependencies
|
|
365
|
+
? "\nDependency declarations recovered from the adoption backup."
|
|
366
|
+
: ""}${conflicts.length
|
|
367
|
+
? `\nStandardized to template versions:\n${conflicts.map((item) => ` ${item}`).join("\n")}`
|
|
368
|
+
: ""}`);
|
|
369
|
+
return 0;
|
|
370
|
+
}
|
|
371
|
+
catch (error) {
|
|
372
|
+
if (rootPackageBefore)
|
|
373
|
+
await atomicWrite(rootPackageFile, rootPackageBefore);
|
|
374
|
+
if (rootLockBefore)
|
|
375
|
+
await atomicWrite(rootLockFile, rootLockBefore);
|
|
376
|
+
else
|
|
377
|
+
await rm(rootLockFile, { force: true });
|
|
378
|
+
if (localLockBackup)
|
|
379
|
+
await rename(localLockBackup, path.join(target, "package-lock.json"));
|
|
380
|
+
if (localModulesBackup)
|
|
381
|
+
await rename(localModulesBackup, path.join(target, "node_modules"));
|
|
382
|
+
if (!copied && childPackageBefore)
|
|
383
|
+
await atomicWrite(path.join(target, "package.json"), childPackageBefore);
|
|
384
|
+
if (copied)
|
|
385
|
+
await rm(target, { recursive: true, force: true });
|
|
386
|
+
if (staging)
|
|
387
|
+
await rm(staging, { recursive: true, force: true });
|
|
388
|
+
output.error(`TEMPLATE ADOPT FAIL\n\n${error instanceof Error ? error.message : String(error)}\n${copied ? "Imported copy removed; source project preserved." : "Template dependency metadata restored."}`);
|
|
389
|
+
return 1;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ui.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Output } from "../output.js";
|
|
2
|
+
import { type ManagedServer } from "../template/servers.js";
|
|
2
3
|
type TerminalInput = NodeJS.ReadableStream & {
|
|
3
4
|
isTTY?: boolean;
|
|
4
5
|
setRawMode?: (enabled: boolean) => void;
|
|
@@ -29,6 +30,10 @@ export declare function uiDashboardFrame(state: UiFrameState, dimensions: {
|
|
|
29
30
|
columns: number;
|
|
30
31
|
rows: number;
|
|
31
32
|
}, color?: boolean): string;
|
|
33
|
+
export declare function uiServerManagerFrame(root: string, servers: ManagedServer[], selected: number, dimensions: {
|
|
34
|
+
columns: number;
|
|
35
|
+
rows: number;
|
|
36
|
+
}, color?: boolean, message?: string): string;
|
|
32
37
|
export declare function uiCommand(cwd: string, output?: Output, streams?: {
|
|
33
38
|
input?: TerminalInput;
|
|
34
39
|
output?: TerminalOutput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAYhC,KAAK,aAAa,GAAG,MAAM,CAAC,cAAc,GAAG;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EACL;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,GACD,SAAS,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAqJD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC7C,KAAK,UAAO,GACX,MAAM,CA+FR;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC7C,KAAK,UAAO,EACZ,OAAO,SAAK,GACX,MAAM,CAuDR;AAqCD,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAgB,EACxB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CAClB,GACL,OAAO,CAAC,MAAM,CAAC,CA6PjB"}
|