@mozole/cli 2.0.0-b → 2.1.0
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/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +147 -23
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts +7 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +87 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/adopt.d.ts +2 -0
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +243 -45
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/assets.d.ts +28 -0
- package/dist/commands/assets.d.ts.map +1 -0
- package/dist/commands/assets.js +176 -0
- package/dist/commands/assets.js.map +1 -0
- package/dist/commands/backend.d.ts +5 -0
- package/dist/commands/backend.d.ts.map +1 -0
- package/dist/commands/backend.js +68 -0
- package/dist/commands/backend.js.map +1 -0
- package/dist/commands/new.d.ts +1 -1
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +13 -5
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/prototype.d.ts.map +1 -1
- package/dist/commands/prototype.js +68 -20
- package/dist/commands/prototype.js.map +1 -1
- package/dist/commands/release.d.ts +10 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +181 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/ui.d.ts +12 -1
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +182 -68
- package/dist/commands/ui.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +37 -5
- package/dist/commands/verify.js.map +1 -1
- package/dist/scaffold/agents.d.ts.map +1 -1
- package/dist/scaffold/agents.js +40 -6
- package/dist/scaffold/agents.js.map +1 -1
- package/dist/scaffold/backend.d.ts +1 -1
- package/dist/scaffold/backend.d.ts.map +1 -1
- package/dist/scaffold/backend.js +63 -31
- package/dist/scaffold/backend.js.map +1 -1
- package/dist/scaffold/components.d.ts +8 -0
- package/dist/scaffold/components.d.ts.map +1 -0
- package/dist/scaffold/components.js +305 -0
- package/dist/scaffold/components.js.map +1 -0
- package/dist/scaffold/design.d.ts.map +1 -1
- package/dist/scaffold/design.js +47 -25
- package/dist/scaffold/design.js.map +1 -1
- package/dist/scaffold/flagship.d.ts +5 -0
- package/dist/scaffold/flagship.d.ts.map +1 -1
- package/dist/scaffold/flagship.js +161 -102
- package/dist/scaffold/flagship.js.map +1 -1
- package/dist/scaffold/index.d.ts +1 -1
- package/dist/scaffold/index.d.ts.map +1 -1
- package/dist/scaffold/index.js +22 -7
- package/dist/scaffold/index.js.map +1 -1
- package/dist/scaffold/library.d.ts +3 -0
- package/dist/scaffold/library.d.ts.map +1 -0
- package/dist/scaffold/library.js +98 -0
- package/dist/scaffold/library.js.map +1 -0
- package/dist/scaffold/phases.d.ts.map +1 -1
- package/dist/scaffold/phases.js +19 -14
- package/dist/scaffold/phases.js.map +1 -1
- package/dist/scaffold/repomap.d.ts +3 -3
- package/dist/scaffold/repomap.d.ts.map +1 -1
- package/dist/scaffold/repomap.js +22 -10
- package/dist/scaffold/repomap.js.map +1 -1
- package/dist/scaffold/standard.d.ts.map +1 -1
- package/dist/scaffold/standard.js +3 -2
- package/dist/scaffold/standard.js.map +1 -1
- package/dist/scaffold/tokens.js +4 -4
- package/dist/scaffold/tools-guide.d.ts +3 -0
- package/dist/scaffold/tools-guide.d.ts.map +1 -0
- package/dist/scaffold/tools-guide.js +117 -0
- package/dist/scaffold/tools-guide.js.map +1 -0
- package/dist/scaffold/workflow.d.ts +5 -0
- package/dist/scaffold/workflow.d.ts.map +1 -0
- package/dist/scaffold/workflow.js +221 -0
- package/dist/scaffold/workflow.js.map +1 -0
- package/dist/ui/CockpitApp.d.ts +13 -0
- package/dist/ui/CockpitApp.d.ts.map +1 -0
- package/dist/ui/CockpitApp.js +612 -0
- package/dist/ui/CockpitApp.js.map +1 -0
- package/dist/ui/ToolsPanel.d.ts +6 -0
- package/dist/ui/ToolsPanel.d.ts.map +1 -0
- package/dist/ui/ToolsPanel.js +128 -0
- package/dist/ui/ToolsPanel.js.map +1 -0
- package/dist/utils/fs.d.ts +7 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +169 -3
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/project-files.d.ts +4 -0
- package/dist/utils/project-files.d.ts.map +1 -0
- package/dist/utils/project-files.js +49 -0
- package/dist/utils/project-files.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +32 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/commands/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/new.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqDlF"}
|
package/dist/commands/new.js
CHANGED
|
@@ -6,8 +6,8 @@ export async function createNewProject(options) {
|
|
|
6
6
|
const cwd = options.cwd ?? process.cwd();
|
|
7
7
|
const name = options.name.trim();
|
|
8
8
|
let targetDir = options.targetDir;
|
|
9
|
+
const protoRoot = await findPrototypeRoot(targetDir ? path.dirname(path.resolve(targetDir)) : cwd);
|
|
9
10
|
if (!targetDir) {
|
|
10
|
-
const protoRoot = await findPrototypeRoot(cwd);
|
|
11
11
|
if (protoRoot) {
|
|
12
12
|
targetDir = path.join(protoRoot, "projects", name);
|
|
13
13
|
}
|
|
@@ -18,23 +18,31 @@ export async function createNewProject(options) {
|
|
|
18
18
|
if (await exists(targetDir)) {
|
|
19
19
|
throw new Error(`Target directory already exists: ${targetDir}`);
|
|
20
20
|
}
|
|
21
|
+
const backend = options.backend ?? "none";
|
|
22
|
+
const backendLabel = backend === "none"
|
|
23
|
+
? pc.green("none (Pure Frontend / Zero-Backend)")
|
|
24
|
+
: backend === "php"
|
|
25
|
+
? pc.yellow("php (Pure PHP 8.1+ Zero-Dependency)")
|
|
26
|
+
: pc.yellow("node (Native HTTP Node.js API)");
|
|
21
27
|
console.log(pc.cyan(`\n⚡ Scaffolding Mozole project: ${pc.bold(name)}`));
|
|
22
28
|
console.log(` Profile: ${options.flagship ? pc.magenta("Flagship Creative (Wouter + Lenis + Canvas)") : pc.blue("Standard Production (React Router 7 + SSG)")}`);
|
|
23
|
-
console.log(` Backend: ${
|
|
29
|
+
console.log(` Backend: ${backendLabel}`);
|
|
24
30
|
console.log(` Destination: ${targetDir}\n`);
|
|
25
31
|
await scaffoldNewProject({
|
|
26
32
|
targetDir,
|
|
27
33
|
name,
|
|
28
34
|
flagship: options.flagship,
|
|
29
|
-
backend
|
|
30
|
-
initGit: options.initGit ??
|
|
35
|
+
backend,
|
|
36
|
+
initGit: options.initGit ?? !protoRoot,
|
|
31
37
|
});
|
|
32
38
|
console.log(pc.green(`✓ Project successfully generated at ${targetDir}`));
|
|
33
39
|
console.log("\nNext steps:");
|
|
34
40
|
console.log(` 1. ${pc.cyan(`cd ${path.relative(cwd, targetDir) || "."}`)}`);
|
|
35
|
-
console.log(` 2. ${pc.cyan("npm install")}`);
|
|
41
|
+
console.log(` 2. ${pc.cyan(protoRoot ? `npm install --prefix "${protoRoot}"` : "npm install")}`);
|
|
36
42
|
console.log(` 3. ${pc.cyan("mozole verify")}`);
|
|
37
43
|
console.log(` 4. ${pc.cyan("npm run dev")}\n`);
|
|
44
|
+
if (backend !== "none")
|
|
45
|
+
console.log(` Backend: run ${pc.cyan("npm run dev:backend")} in a second terminal.\n`);
|
|
38
46
|
return targetDir;
|
|
39
47
|
}
|
|
40
48
|
//# sourceMappingURL=new.js.map
|
package/dist/commands/new.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAW3D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA0B;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEjC,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prototype.d.ts","sourceRoot":"","sources":["../../src/commands/prototype.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prototype.d.ts","sourceRoot":"","sources":["../../src/commands/prototype.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ErF"}
|
|
@@ -1,28 +1,76 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import pc from "picocolors";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { generateAgentsPolicy, generateClaudeBridge, generateCursorRuleBridge, } from "../scaffold/agents.js";
|
|
5
|
+
import { generateFlagshipPackageJson } from "../scaffold/flagship.js";
|
|
6
|
+
import { generateStandardPackageJson } from "../scaffold/standard.js";
|
|
7
|
+
import { linkWorkflowPolicies, scaffoldWorkflow } from "../scaffold/workflow.js";
|
|
8
|
+
import { atomicWrite, exists, writeFiles } from "../utils/fs.js";
|
|
9
|
+
import { CLI_VERSION } from "../version.js";
|
|
6
10
|
export async function prototypeInit(options = {}) {
|
|
7
|
-
const cwd = options.cwd ?? process.cwd();
|
|
11
|
+
const cwd = path.resolve(options.cwd ?? process.cwd());
|
|
8
12
|
const name = options.name ?? path.basename(cwd);
|
|
9
13
|
const configPath = path.join(cwd, "mozole.config.json");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
const config = (await exists(configPath)) ? JSON.parse(await readFile(configPath, "utf8")) : {};
|
|
15
|
+
if (config.projectsDir && config.projectsDir !== "projects") {
|
|
16
|
+
throw new Error("Prototype projectsDir must be 'projects'. Move or configure existing projects before initializing.");
|
|
13
17
|
}
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
const manifestPath = path.join(cwd, "package.json");
|
|
19
|
+
const pkg = (await exists(manifestPath))
|
|
20
|
+
? JSON.parse(await readFile(manifestPath, "utf8"))
|
|
21
|
+
: { name, version: "0.0.0", type: "module" };
|
|
22
|
+
const standard = JSON.parse(generateStandardPackageJson("standard"));
|
|
23
|
+
const flagship = JSON.parse(generateFlagshipPackageJson("flagship"));
|
|
24
|
+
for (const section of ["dependencies", "devDependencies"]) {
|
|
25
|
+
const required = { ...standard[section], ...flagship[section] };
|
|
26
|
+
for (const [dependency, version] of Object.entries(required)) {
|
|
27
|
+
const existing = pkg.dependencies?.[dependency] ?? pkg.devDependencies?.[dependency];
|
|
28
|
+
if (existing && existing !== version) {
|
|
29
|
+
throw new Error(`Shared dependency conflict: ${dependency} (${existing} vs ${version}). Align versions before initializing.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
pkg[section] = { ...required, ...pkg[section] };
|
|
33
|
+
}
|
|
34
|
+
const workspaces = Array.isArray(pkg.workspaces)
|
|
35
|
+
? pkg.workspaces
|
|
36
|
+
: (pkg.workspaces?.packages ?? []);
|
|
37
|
+
if (!Array.isArray(workspaces) ||
|
|
38
|
+
workspaces.some((value) => typeof value !== "string")) {
|
|
39
|
+
throw new Error("Invalid package.json workspaces.");
|
|
40
|
+
}
|
|
41
|
+
pkg.private = true;
|
|
42
|
+
pkg.mozolePrototype = true;
|
|
43
|
+
pkg.workspaces = [...new Set([...workspaces, "projects/*"])];
|
|
44
|
+
pkg.scripts = { "build:all": "npm run build --workspaces --if-present", ...pkg.scripts };
|
|
45
|
+
await atomicWrite(manifestPath, JSON.stringify(pkg, null, 2));
|
|
46
|
+
await atomicWrite(configPath, JSON.stringify({ ...config, version: CLI_VERSION, name, projectsDir: "projects", defaultBackend: "none" }, null, 2));
|
|
47
|
+
await writeFiles(cwd, {
|
|
48
|
+
"projects/.gitkeep": "",
|
|
49
|
+
"shared/.gitkeep": "",
|
|
50
|
+
"AGENTS.md": generateAgentsPolicy(name),
|
|
51
|
+
"CLAUDE.md": generateClaudeBridge(),
|
|
52
|
+
".cursor/rules/mozole.mdc": generateCursorRuleBridge(),
|
|
53
|
+
"PROTOTYPE.md": "# Prototype workspace\n\nRun npm install once here. Create projects with mozole new <name>. Run npm run dev --workspace projects/<name>. After adding projects, run npm install here to register workspace links. Dependencies resolve from this root; all UI, layout, motion, behavior and tokens remain inside each project. Do not create a shared component library. Each project retains its package.json so it can also be installed independently after copying it outside the workspace. npm may nest incompatible third-party versions; keep workspace dependency versions aligned.\n",
|
|
54
|
+
});
|
|
55
|
+
await scaffoldWorkflow(cwd);
|
|
56
|
+
await linkWorkflowPolicies(cwd);
|
|
57
|
+
const ignorePath = path.join(cwd, ".gitignore");
|
|
58
|
+
const ignore = (await exists(ignorePath)) ? await readFile(ignorePath, "utf8") : "";
|
|
59
|
+
const additions = [
|
|
60
|
+
"node_modules/",
|
|
61
|
+
"release/",
|
|
62
|
+
"release.zip",
|
|
63
|
+
"releases/",
|
|
64
|
+
"dist/",
|
|
65
|
+
"build/",
|
|
66
|
+
".react-router/",
|
|
67
|
+
".env",
|
|
68
|
+
".env.*",
|
|
69
|
+
"!.env.example",
|
|
70
|
+
].filter((line) => !ignore.split(/\r?\n/).includes(line));
|
|
71
|
+
if (additions.length)
|
|
72
|
+
await atomicWrite(ignorePath, `${ignore}\n${additions.join("\n")}\n`);
|
|
73
|
+
console.log(pc.green(`✓ Initialized shared-dependency prototype workspace in ${cwd}`));
|
|
74
|
+
console.log(" Run npm install at the workspace root, then mozole new <client-name>.");
|
|
27
75
|
}
|
|
28
76
|
//# sourceMappingURL=prototype.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prototype.js","sourceRoot":"","sources":["../../src/commands/prototype.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"prototype.js","sourceRoot":"","sources":["../../src/commands/prototype.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ReleaseOptions {
|
|
2
|
+
cwd?: string;
|
|
3
|
+
from?: string;
|
|
4
|
+
output?: string;
|
|
5
|
+
format?: string;
|
|
6
|
+
skipBuild?: boolean;
|
|
7
|
+
log?: (message: string) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function createRelease(options?: ReleaseOptions): Promise<string[]>;
|
|
10
|
+
//# sourceMappingURL=release.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAKD,wBAAsB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgMnF"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { mkdir, mkdtemp, readFile, rename, rm, stat } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { zip } from "fflate";
|
|
5
|
+
import { scaffoldToolsGuide } from "../scaffold/tools-guide.js";
|
|
6
|
+
import { atomicWrite, exists } from "../utils/fs.js";
|
|
7
|
+
import { run } from "../utils/process.js";
|
|
8
|
+
import { projectDirectory, projectPath, regularFiles } from "../utils/project-files.js";
|
|
9
|
+
const excluded = /(^|\/)(?:\.env(?:\..*)?|\.git|node_modules|vendor|storage|cache|logs?|tests?|coverage|\.DS_Store)(\/|$)|\.(?:map|log|bak|sql|sqlite3?|db|pem|key|p12|pfx)$/i;
|
|
10
|
+
export async function createRelease(options = {}) {
|
|
11
|
+
const log = options.log ?? console.log;
|
|
12
|
+
const root = await projectDirectory(options.cwd);
|
|
13
|
+
const format = options.format ?? "both";
|
|
14
|
+
if (!["zip", "directory", "both"].includes(format))
|
|
15
|
+
throw new Error("Release format must be zip, directory or both.");
|
|
16
|
+
const metadataPath = path.join(root, ".mozole/project.json");
|
|
17
|
+
const metadata = (await exists(metadataPath))
|
|
18
|
+
? JSON.parse(await readFile(metadataPath, "utf8"))
|
|
19
|
+
: {};
|
|
20
|
+
const pkg = JSON.parse(await readFile(path.join(root, "package.json"), "utf8"));
|
|
21
|
+
const backend = metadata.backend ??
|
|
22
|
+
((await exists(path.join(root, "server/index.mjs")))
|
|
23
|
+
? "node"
|
|
24
|
+
: (await exists(path.join(root, "api/index.php")))
|
|
25
|
+
? "php"
|
|
26
|
+
: "none");
|
|
27
|
+
if (backend === "node")
|
|
28
|
+
throw new Error("This release target supports static HTML and PHP. A Node API needs a separate Node deployment.");
|
|
29
|
+
if (backend !== "php" && backend !== "none")
|
|
30
|
+
throw new Error(`Unsupported backend: ${backend}`);
|
|
31
|
+
const flagship = metadata.profile === "flagship" || Boolean(pkg.dependencies?.wouter);
|
|
32
|
+
const framework = Boolean(pkg.devDependencies?.["@react-router/dev"]);
|
|
33
|
+
const source = await projectPath(root, options.from ?? (framework && !flagship ? "build/client" : "dist"));
|
|
34
|
+
const destination = await projectPath(root, options.output ?? "release");
|
|
35
|
+
const archive = await projectPath(root, `${options.output ?? "release"}.zip`);
|
|
36
|
+
if (source === destination ||
|
|
37
|
+
source.startsWith(destination + path.sep) ||
|
|
38
|
+
destination.startsWith(source + path.sep))
|
|
39
|
+
throw new Error("Release source and destination must not overlap.");
|
|
40
|
+
for (const output of format === "zip"
|
|
41
|
+
? [archive]
|
|
42
|
+
: format === "directory"
|
|
43
|
+
? [destination]
|
|
44
|
+
: [destination, archive]) {
|
|
45
|
+
if (await exists(output))
|
|
46
|
+
throw new Error(`Output already exists: ${output}. Choose a new --output; releases are never overwritten.`);
|
|
47
|
+
}
|
|
48
|
+
if (backend === "php") {
|
|
49
|
+
await projectPath(root, "api");
|
|
50
|
+
if (!(await exists(path.join(root, "api/index.php"))))
|
|
51
|
+
throw new Error("PHP API entry api/index.php is missing.");
|
|
52
|
+
if ((await exists(path.join(root, "api/composer.json"))) ||
|
|
53
|
+
(await exists(path.join(root, "composer.json"))))
|
|
54
|
+
throw new Error("Composer API dependencies require a dedicated deployment recipe; this target packages the dependency-free PHP module.");
|
|
55
|
+
}
|
|
56
|
+
if (!options.skipBuild) {
|
|
57
|
+
if (!pkg.scripts?.build)
|
|
58
|
+
throw new Error("No build script found. Build manually and use --skip-build --from <static-output>.");
|
|
59
|
+
const result = await run("npm", ["run", "build"], { cwd: root, timeoutMs: 300_000 });
|
|
60
|
+
if (result.exitCode !== 0)
|
|
61
|
+
throw new Error(`Build failed:\n${result.stderr}\n${result.stdout}`);
|
|
62
|
+
}
|
|
63
|
+
await projectPath(root, path.relative(root, source));
|
|
64
|
+
if (!(await exists(path.join(source, "index.html"))))
|
|
65
|
+
throw new Error(`Static index.html not found in ${source}. Use --from for a custom build output.`);
|
|
66
|
+
const files = Object.create(null);
|
|
67
|
+
const omitted = [];
|
|
68
|
+
let totalBytes = 0;
|
|
69
|
+
async function collect(dir, prefix = "") {
|
|
70
|
+
for (const file of await regularFiles(dir)) {
|
|
71
|
+
if (file.includes("\\"))
|
|
72
|
+
throw new Error(`Unsupported filename in release: ${file}`);
|
|
73
|
+
const target = prefix + file;
|
|
74
|
+
if (excluded.test(file) ||
|
|
75
|
+
file.split("/").some((part) => part.startsWith(".") && part !== ".htaccess") ||
|
|
76
|
+
(prefix && file === "router.php")) {
|
|
77
|
+
omitted.push(target);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (!prefix && (file.startsWith("api/") || /\.(?:php|cjs)$/i.test(file)))
|
|
81
|
+
throw new Error(`Unexpected server code in static output: ${file}. Keep server code outside public/.`);
|
|
82
|
+
if (prefix && !/\.(?:php|json)$/.test(file) && path.basename(file) !== ".htaccess") {
|
|
83
|
+
omitted.push(target);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const full = path.join(dir, file);
|
|
87
|
+
totalBytes += (await stat(full)).size;
|
|
88
|
+
if (totalBytes > 512 * 1024 * 1024)
|
|
89
|
+
throw new Error("Release exceeds the 512 MiB packaging limit. Split large media into external storage.");
|
|
90
|
+
files[target] = await readFile(full);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
await collect(source);
|
|
94
|
+
if (backend === "php")
|
|
95
|
+
await collect(path.join(root, "api"), "api/");
|
|
96
|
+
const encode = (value) => new TextEncoder().encode(value);
|
|
97
|
+
files[".htaccess"] ??= encode(`Options -Indexes -MultiViews
|
|
98
|
+
<FilesMatch "(?i)(^\\.env|\\.(map|log|bak|sql|sqlite|pem|key)$)">
|
|
99
|
+
Require all denied
|
|
100
|
+
</FilesMatch>
|
|
101
|
+
RewriteEngine On
|
|
102
|
+
RewriteRule ^api(?:/|$) - [L]
|
|
103
|
+
RewriteCond %{REQUEST_FILENAME} -f [OR]
|
|
104
|
+
RewriteCond %{REQUEST_FILENAME} -d
|
|
105
|
+
RewriteRule ^ - [L]
|
|
106
|
+
RewriteCond %{REQUEST_FILENAME}.html -f
|
|
107
|
+
RewriteRule ^(.+?)/?$ $1.html [L]
|
|
108
|
+
${flagship || !framework ? "RewriteRule ^ index.html [L]" : ""}
|
|
109
|
+
`);
|
|
110
|
+
if (backend === "php") {
|
|
111
|
+
// Always append a guard, even if the project customizes its API rewrite rules.
|
|
112
|
+
const existing = files["api/.htaccess"]
|
|
113
|
+
? new TextDecoder().decode(files["api/.htaccess"])
|
|
114
|
+
: "RewriteEngine On\nRewriteRule ^(health|contact)$ index.php [L]\n";
|
|
115
|
+
files["api/.htaccess"] =
|
|
116
|
+
encode(`${existing}\nOptions -Indexes\n<FilesMatch "(?i)^(config|mailer|router)\\.php$|\\.json$">
|
|
117
|
+
Require all denied
|
|
118
|
+
</FilesMatch>
|
|
119
|
+
`);
|
|
120
|
+
}
|
|
121
|
+
const manifest = {
|
|
122
|
+
profile: metadata.profile ?? (flagship ? "flagship" : "standard"),
|
|
123
|
+
backend,
|
|
124
|
+
built: !options.skipBuild,
|
|
125
|
+
source: path.relative(root, source),
|
|
126
|
+
omitted,
|
|
127
|
+
files: Object.entries(files).map(([file, bytes]) => ({
|
|
128
|
+
file,
|
|
129
|
+
bytes: bytes.byteLength,
|
|
130
|
+
sha256: createHash("sha256").update(bytes).digest("hex"),
|
|
131
|
+
})),
|
|
132
|
+
};
|
|
133
|
+
files["release-manifest.json"] = encode(JSON.stringify(manifest, null, 2));
|
|
134
|
+
files["DEPLOYMENT.txt"] =
|
|
135
|
+
encode(`Upload the contents of this directory to the web document root using FTP or rsync.
|
|
136
|
+
No upload has been performed by Mozole. Do not upload the source project or node_modules.
|
|
137
|
+
${backend === "php" ? "Requires PHP 8.1+ and Apache mod_rewrite/AllowOverride for the supplied .htaccess files. Configure api/config.php for the customer's origins and mail recipient. Verify the server mail transport separately. Protect configuration files when using Nginx or another server; .htaccess is Apache-only." : "Static hosting is sufficient. Apply SPA fallback to index.html for client-routed projects."}
|
|
138
|
+
For Nginx, route /api/health and /api/contact to api/index.php through PHP-FPM and deny access to api/config.php, api/mailer.php and API JSON files.
|
|
139
|
+
${options.skipBuild ? "Existing static output was packaged with --skip-build; freshness was not established." : "The project build script completed before packaging."}
|
|
140
|
+
Review release-manifest.json for omitted files. Supply secrets on the server; .env, keys, databases, source maps and runtime storage are excluded.
|
|
141
|
+
`);
|
|
142
|
+
await projectPath(root, path.relative(root, destination));
|
|
143
|
+
await projectPath(root, path.relative(root, archive));
|
|
144
|
+
await mkdir(path.dirname(destination), { recursive: true });
|
|
145
|
+
const staging = await mkdtemp(path.join(path.dirname(destination), ".mozole-release-"));
|
|
146
|
+
const outputs = [];
|
|
147
|
+
try {
|
|
148
|
+
const stagedDirectory = path.join(staging, "site");
|
|
149
|
+
await mkdir(stagedDirectory);
|
|
150
|
+
for (const [file, bytes] of Object.entries(files))
|
|
151
|
+
await atomicWrite(path.join(stagedDirectory, file), Buffer.from(bytes));
|
|
152
|
+
if (format !== "directory") {
|
|
153
|
+
const data = await new Promise((resolve, reject) => zip(files, { level: 6 }, (error, zipped) => (error ? reject(error) : resolve(zipped))));
|
|
154
|
+
await atomicWrite(path.join(staging, "release.zip"), Buffer.from(data));
|
|
155
|
+
}
|
|
156
|
+
// Check again after potentially long builds/encoding; preserve other runs' artifacts.
|
|
157
|
+
for (const output of format === "zip"
|
|
158
|
+
? [archive]
|
|
159
|
+
: format === "directory"
|
|
160
|
+
? [destination]
|
|
161
|
+
: [destination, archive]) {
|
|
162
|
+
if (await exists(output))
|
|
163
|
+
throw new Error(`Output appeared during packaging: ${output}`);
|
|
164
|
+
}
|
|
165
|
+
if (format !== "zip") {
|
|
166
|
+
await rename(stagedDirectory, destination);
|
|
167
|
+
outputs.push(destination);
|
|
168
|
+
}
|
|
169
|
+
if (format !== "directory") {
|
|
170
|
+
await rename(path.join(staging, "release.zip"), archive);
|
|
171
|
+
outputs.push(archive);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
await rm(staging, { recursive: true, force: true });
|
|
176
|
+
}
|
|
177
|
+
await scaffoldToolsGuide(root);
|
|
178
|
+
log(`Release created: ${outputs.join(", ")}. Excluded ${omitted.length} files. No deployment performed.`);
|
|
179
|
+
return outputs;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ui.d.ts
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface UiOptions {
|
|
2
|
+
action?: string;
|
|
3
|
+
cwd?: string;
|
|
4
|
+
interactive?: boolean;
|
|
5
|
+
project?: string;
|
|
6
|
+
component?: string;
|
|
7
|
+
input?: string;
|
|
8
|
+
output?: string;
|
|
9
|
+
format?: string;
|
|
10
|
+
skipBuild?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function uiCommand(options?: UiOptions): Promise<void>;
|
|
2
13
|
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,SAAS,CAAC,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAgMtE"}
|