@devbie/newbie-cli 1.8.0 → 1.8.1
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 +3 -3
- package/dist/assemble/module-sources.d.ts +12 -0
- package/dist/assemble/module-sources.js +41 -0
- package/dist/assemble/module-sources.js.map +1 -0
- package/dist/commands/assemble.js +32 -3
- package/dist/commands/assemble.js.map +1 -1
- package/dist/core/template-sync.js +2 -0
- package/dist/core/template-sync.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -88,9 +88,9 @@ datastore registry, ADR-008) and the `@@newbie-modules` route block of
|
|
|
88
88
|
`deploy/Caddyfile.tmpl` (one `handle /<key>/*` block per module declaring
|
|
89
89
|
`publicNamespace`). The same renders run as a step of install/apply/update.
|
|
90
90
|
|
|
91
|
-
| Option | Description
|
|
92
|
-
| --------- |
|
|
93
|
-
| `--check` | CI gate: print the diff and exit non-zero when the generated assets drift. |
|
|
91
|
+
| Option | Description |
|
|
92
|
+
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
93
|
+
| `--check` | CI gate: print the diff and exit non-zero when the generated assets drift, or when an installed module differs from the registry checkout it must stay byte-identical to (ADR-021). |
|
|
94
94
|
|
|
95
95
|
#### `newbie config`
|
|
96
96
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DriftReport } from "../core/drift";
|
|
2
|
+
export interface ModuleSourceDrift {
|
|
3
|
+
key: string;
|
|
4
|
+
installedPath: string;
|
|
5
|
+
registryPath: string;
|
|
6
|
+
report: DriftReport | null;
|
|
7
|
+
}
|
|
8
|
+
export declare function planModuleSourceDrift(params: {
|
|
9
|
+
cwd: string;
|
|
10
|
+
registryRoot: string;
|
|
11
|
+
enabledKeys: string[];
|
|
12
|
+
}): Promise<ModuleSourceDrift[]>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.planModuleSourceDrift = planModuleSourceDrift;
|
|
7
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
|
+
const paths_1 = require("../constants/paths");
|
|
9
|
+
const drift_1 = require("../core/drift");
|
|
10
|
+
const drift_2 = require("../lib/drift");
|
|
11
|
+
const registry_1 = require("../lib/registry");
|
|
12
|
+
async function isDirectory(dir) {
|
|
13
|
+
try {
|
|
14
|
+
return (await promises_1.default.stat(dir)).isDirectory();
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function planModuleSourceDrift(params) {
|
|
21
|
+
const { cwd, registryRoot, enabledKeys } = params;
|
|
22
|
+
const drifts = [];
|
|
23
|
+
for (const key of enabledKeys) {
|
|
24
|
+
const registryDir = (0, registry_1.moduleRootInRegistry)(registryRoot, key);
|
|
25
|
+
const drift = {
|
|
26
|
+
key,
|
|
27
|
+
installedPath: `${paths_1.MODULES_DIR}/${key}`,
|
|
28
|
+
registryPath: `${paths_1.REGISTRY_MODULES_DIR}/${key}`,
|
|
29
|
+
report: null,
|
|
30
|
+
};
|
|
31
|
+
if (await isDirectory(registryDir)) {
|
|
32
|
+
const report = (0, drift_1.diffSnapshots)(await (0, drift_2.snapshotInstalledModule)(cwd, key), await (0, drift_2.snapshotDirectory)(registryDir));
|
|
33
|
+
if (report.clean)
|
|
34
|
+
continue;
|
|
35
|
+
drift.report = report;
|
|
36
|
+
}
|
|
37
|
+
drifts.push(drift);
|
|
38
|
+
}
|
|
39
|
+
return drifts;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=module-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-sources.js","sourceRoot":"","sources":["../../src/assemble/module-sources.ts"],"names":[],"mappings":";;;;;AA+CA,sDA2BC;AA1ED,gEAAkC;AAElC,8CAAuE;AACvE,yCAA2D;AAC3D,wCAA0E;AAC1E,8CAAuD;AAsBvD,KAAK,UAAU,WAAW,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,kBAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAcM,KAAK,UAAU,qBAAqB,CAAC,MAI3C;IACC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClD,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAA,+BAAoB,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAsB;YAC/B,GAAG;YACH,aAAa,EAAE,GAAG,mBAAW,IAAI,GAAG,EAAE;YACtC,YAAY,EAAE,GAAG,4BAAoB,IAAI,GAAG,EAAE;YAC9C,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,MAAM,IAAA,+BAAuB,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,IAAA,yBAAiB,EAAC,WAAW,CAAC,CAAC,CAAC;YAC5G,IAAI,MAAM,CAAC,KAAK;gBAAE,SAAS;YAC3B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -3,16 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runAssemble = runAssemble;
|
|
4
4
|
const colorette_1 = require("colorette");
|
|
5
5
|
const deploy_1 = require("../assemble/deploy");
|
|
6
|
+
const module_sources_1 = require("../assemble/module-sources");
|
|
6
7
|
const modules_state_1 = require("../core/modules-state");
|
|
7
8
|
const unified_diff_1 = require("../core/unified-diff");
|
|
8
9
|
const errors_1 = require("../lib/errors");
|
|
9
10
|
const shared_1 = require("./shared");
|
|
11
|
+
function printSourceDrift(drift) {
|
|
12
|
+
const verdict = drift.report === null ? "absent from" : "differs from";
|
|
13
|
+
console.info((0, colorette_1.bold)(`\n# ${drift.installedPath} (${verdict} ${drift.registryPath})`));
|
|
14
|
+
if (drift.report === null)
|
|
15
|
+
return;
|
|
16
|
+
for (const file of drift.report.added)
|
|
17
|
+
console.info(` added: ${file}`);
|
|
18
|
+
for (const file of drift.report.changed)
|
|
19
|
+
console.info(` changed: ${file}`);
|
|
20
|
+
for (const file of drift.report.removed)
|
|
21
|
+
console.info(` removed: ${file}`);
|
|
22
|
+
}
|
|
10
23
|
async function runAssemble(options) {
|
|
11
24
|
const { ctx, sink } = await (0, shared_1.createContext)(options, { fetch: false });
|
|
12
25
|
const enabledKeys = (0, modules_state_1.moduleKeys)(ctx.state);
|
|
13
26
|
const plans = await (0, deploy_1.planDeployRenders)({ cwd: ctx.cwd, sink, issues: ctx.issues, enabledKeys });
|
|
14
|
-
|
|
15
|
-
|
|
27
|
+
const sourceDrifts = options.check
|
|
28
|
+
? await (0, module_sources_1.planModuleSourceDrift)({ cwd: ctx.cwd, registryRoot: ctx.registry.root, enabledKeys })
|
|
29
|
+
: [];
|
|
30
|
+
if (plans.length === 0 && sourceDrifts.length === 0) {
|
|
31
|
+
console.info((0, colorette_1.green)((0, colorette_1.bold)(options.check
|
|
32
|
+
? "✓ Deploy assets are up to date and module sources match the registry checkout."
|
|
33
|
+
: "✓ Deploy assets are up to date with the installed module set.")));
|
|
16
34
|
return;
|
|
17
35
|
}
|
|
18
36
|
if (options.check) {
|
|
@@ -21,7 +39,18 @@ async function runAssemble(options) {
|
|
|
21
39
|
const aLabel = plan.current === null ? "/dev/null" : `a/${plan.path}`;
|
|
22
40
|
process.stdout.write((0, unified_diff_1.unifiedDiff)(plan.current ?? "", plan.next, aLabel, `b/${plan.path}`));
|
|
23
41
|
}
|
|
24
|
-
|
|
42
|
+
for (const drift of sourceDrifts)
|
|
43
|
+
printSourceDrift(drift);
|
|
44
|
+
const problems = [];
|
|
45
|
+
if (plans.length > 0) {
|
|
46
|
+
problems.push(`${plans.length} deploy asset(s) drift from the installed module set; run \`newbie assemble\` to regenerate.`);
|
|
47
|
+
}
|
|
48
|
+
if (sourceDrifts.length > 0) {
|
|
49
|
+
const keys = sourceDrifts.map((drift) => drift.key).join(", ");
|
|
50
|
+
problems.push(`${sourceDrifts.length} installed module(s) differ from the registry checkout (${keys}); ` +
|
|
51
|
+
"back-port the host changes to newbie-modules, or run `newbie update` to adopt the registry version.");
|
|
52
|
+
}
|
|
53
|
+
throw new errors_1.CliError(problems.join("\n"));
|
|
25
54
|
}
|
|
26
55
|
for (const plan of plans) {
|
|
27
56
|
console.info(` ${plan.path}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../src/commands/assemble.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../src/commands/assemble.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,8 @@ exports.TEMPLATE_FILES = [
|
|
|
44
44
|
{ path: "src/modules/modules.module.ts", ownership: "generated" },
|
|
45
45
|
{ path: "deploy/compose.modules.yml", ownership: "generated" },
|
|
46
46
|
{ path: "package.json", ownership: "template-shipped-host-owned" },
|
|
47
|
+
{ path: ".githooks/pre-commit", ownership: "template-shipped-host-owned" },
|
|
48
|
+
{ path: ".githooks/commit-msg", ownership: "template-shipped-host-owned" },
|
|
47
49
|
{ path: "README.md", ownership: "template-shipped-host-owned" },
|
|
48
50
|
{ path: ".prettierignore", ownership: "template-shipped-host-owned" },
|
|
49
51
|
{ path: "eslint.config.mjs", ownership: "template-shipped-host-owned" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-sync.js","sourceRoot":"","sources":["../../src/core/template-sync.ts"],"names":[],"mappings":";;;AAoCA,4CAKC;
|
|
1
|
+
{"version":3,"file":"template-sync.js","sourceRoot":"","sources":["../../src/core/template-sync.ts"],"names":[],"mappings":"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"}
|