@devbie/newbie-cli 1.9.1 → 1.10.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 +79 -103
- package/dist/assemble/modules-copy.js +1 -1
- package/dist/assemble/modules-copy.js.map +1 -1
- package/dist/assemble/modules.js +1 -1
- package/dist/assemble/schema.js +1 -1
- package/dist/commands/create.js +1 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/doctor.d.ts +4 -1
- package/dist/commands/doctor.js +36 -16
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/modules/default.d.ts +5 -0
- package/dist/commands/{default.js → modules/default.js} +64 -13
- package/dist/commands/modules/default.js.map +1 -0
- package/dist/commands/modules/install.d.ts +7 -0
- package/dist/commands/modules/install.js +121 -0
- package/dist/commands/modules/install.js.map +1 -0
- package/dist/commands/modules/lint.d.ts +3 -0
- package/dist/commands/{dev → modules}/lint.js +12 -11
- package/dist/commands/modules/lint.js.map +1 -0
- package/dist/commands/modules/remove.d.ts +6 -0
- package/dist/commands/modules/remove.js +47 -0
- package/dist/commands/modules/remove.js.map +1 -0
- package/dist/commands/modules/update.d.ts +8 -0
- package/dist/commands/{update.js → modules/update.js} +68 -27
- package/dist/commands/modules/update.js.map +1 -0
- package/dist/commands/modules/watch.d.ts +6 -0
- package/dist/commands/{watch.js → modules/watch.js} +16 -8
- package/dist/commands/modules/watch.js.map +1 -0
- package/dist/commands/shared.d.ts +1 -0
- package/dist/commands/shared.js +1 -1
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/template/sync.d.ts +7 -0
- package/dist/commands/{sync-template.js → template/sync.js} +10 -19
- package/dist/commands/template/sync.js.map +1 -0
- package/dist/core/deploy-compose.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -179
- package/dist/index.js.map +1 -1
- package/dist/lib/module-selector.d.ts +1 -0
- package/dist/lib/module-selector.js +13 -0
- package/dist/lib/module-selector.js.map +1 -0
- package/dist/lib/sink.d.ts +10 -1
- package/dist/lib/sink.js +42 -3
- package/dist/lib/sink.js.map +1 -1
- package/dist/program.d.ts +3 -0
- package/dist/program.js +166 -0
- package/dist/program.js.map +1 -0
- package/package.json +1 -1
- package/dist/commands/agent.d.ts +0 -5
- package/dist/commands/agent.js +0 -223
- package/dist/commands/agent.js.map +0 -1
- package/dist/commands/apply.d.ts +0 -7
- package/dist/commands/apply.js +0 -61
- package/dist/commands/apply.js.map +0 -1
- package/dist/commands/assemble.d.ts +0 -5
- package/dist/commands/assemble.js +0 -66
- package/dist/commands/assemble.js.map +0 -1
- package/dist/commands/config.d.ts +0 -7
- package/dist/commands/config.js +0 -120
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/default.d.ts +0 -2
- package/dist/commands/default.js.map +0 -1
- package/dist/commands/dev/lint.d.ts +0 -3
- package/dist/commands/dev/lint.js.map +0 -1
- package/dist/commands/install.d.ts +0 -4
- package/dist/commands/install.js +0 -48
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/sync-template.d.ts +0 -8
- package/dist/commands/sync-template.js.map +0 -1
- package/dist/commands/update.d.ts +0 -8
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -5
- package/dist/commands/watch.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/template/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.buildComposeModulesYaml = buildComposeModulesYaml;
|
|
|
4
4
|
const env_file_1 = require("./env-file");
|
|
5
5
|
const datastore_registry_1 = require("./datastore-registry");
|
|
6
6
|
const HEADER = `# THIS FILE IS GENERATED BY @devbie/newbie-cli. DO NOT EDIT.
|
|
7
|
-
# Regenerate with \`newbie
|
|
7
|
+
# Regenerate with \`newbie modules install\` (it also runs as part of modules update).
|
|
8
8
|
|
|
9
9
|
`;
|
|
10
10
|
const EMPTY_YAML = `${HEADER}services: {}\n`;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,45 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
4
|
exports.VERSION = void 0;
|
|
8
|
-
const commander_1 = require("commander");
|
|
9
5
|
const colorette_1 = require("colorette");
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
const apply_1 = require("./commands/apply");
|
|
13
|
-
const assemble_1 = require("./commands/assemble");
|
|
14
|
-
const config_1 = require("./commands/config");
|
|
15
|
-
const create_1 = require("./commands/create");
|
|
16
|
-
const lint_1 = require("./commands/dev/lint");
|
|
17
|
-
const doctor_1 = require("./commands/doctor");
|
|
18
|
-
const install_1 = require("./commands/install");
|
|
19
|
-
const status_1 = require("./commands/status");
|
|
20
|
-
const update_1 = require("./commands/update");
|
|
21
|
-
const sync_template_1 = require("./commands/sync-template");
|
|
22
|
-
const watch_1 = require("./commands/watch");
|
|
23
|
-
const default_1 = require("./commands/default");
|
|
6
|
+
const program_1 = require("./program");
|
|
7
|
+
Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return program_1.VERSION; } });
|
|
24
8
|
const module_cli_1 = require("./lib/module-cli");
|
|
25
|
-
const cli_runner_1 = require("./lib/cli-runner");
|
|
26
|
-
exports.VERSION = package_json_1.default.version;
|
|
27
|
-
const program = new commander_1.Command();
|
|
28
|
-
program
|
|
29
|
-
.name("newbie")
|
|
30
|
-
.description("Newbie framework CLI: install modules from the newbie-modules registry and sync project files")
|
|
31
|
-
.version(exports.VERSION)
|
|
32
|
-
.option("-C, --cwd <dir>", "project root directory", process.cwd())
|
|
33
|
-
.option("--dry-run", "print planned changes without writing files or running mutating commands", false)
|
|
34
|
-
.option("--skip-prisma-generate", "skip `npx prisma generate` after schema changes", false);
|
|
35
|
-
function collectOptions(command) {
|
|
36
|
-
const globals = command.optsWithGlobals();
|
|
37
|
-
return {
|
|
38
|
-
cwd: globals.cwd ?? process.cwd(),
|
|
39
|
-
dryRun: Boolean(globals.dryRun),
|
|
40
|
-
skipPrismaGenerate: Boolean(globals.skipPrismaGenerate),
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
9
|
function findCwdInArgv() {
|
|
44
10
|
const argv = process.argv;
|
|
45
11
|
for (let i = 2; i < argv.length; i++) {
|
|
@@ -61,149 +27,7 @@ function findCwdInArgv() {
|
|
|
61
27
|
}
|
|
62
28
|
return process.cwd();
|
|
63
29
|
}
|
|
64
|
-
program
|
|
65
|
-
.command("install")
|
|
66
|
-
.description("Reconcile the project with modules.json (copy missing modules / remove extra ones and regenerate wiring)")
|
|
67
|
-
.option("-y, --yes", "skip confirmation prompts", false)
|
|
68
|
-
.action(function () {
|
|
69
|
-
const options = { ...collectOptions(this), yes: Boolean(this.opts().yes) };
|
|
70
|
-
return (0, cli_runner_1.run)(() => (0, install_1.runInstall)(options));
|
|
71
|
-
});
|
|
72
|
-
program
|
|
73
|
-
.command("assemble")
|
|
74
|
-
.description("Regenerate module-derived deploy assets (deploy/compose.modules.yml, Caddyfile module route block) from the installed module set")
|
|
75
|
-
.option("--check", "CI gate: print the diff and exit non-zero when the generated deploy assets drift", false)
|
|
76
|
-
.action(function () {
|
|
77
|
-
const flags = this.opts();
|
|
78
|
-
return (0, cli_runner_1.run)(() => (0, assemble_1.runAssemble)({ ...collectOptions(this), check: Boolean(flags.check) }));
|
|
79
|
-
});
|
|
80
|
-
program
|
|
81
|
-
.command("config")
|
|
82
|
-
.description("View or edit the enabled-module list in modules.json without touching project files")
|
|
83
|
-
.option("--add <modules...>", "enable module(s), space or comma separated")
|
|
84
|
-
.option("--remove <modules...>", "disable module(s), space or comma separated")
|
|
85
|
-
.option("--list", "print current configuration", false)
|
|
86
|
-
.action(function () {
|
|
87
|
-
const flags = this.opts();
|
|
88
|
-
return (0, cli_runner_1.run)(() => (0, config_1.runConfig)({
|
|
89
|
-
...collectOptions(this),
|
|
90
|
-
add: flags.add,
|
|
91
|
-
remove: flags.remove,
|
|
92
|
-
list: Boolean(flags.list),
|
|
93
|
-
}));
|
|
94
|
-
});
|
|
95
|
-
program
|
|
96
|
-
.command("update")
|
|
97
|
-
.description("Update enabled module copies to the registry HEAD commit (blocks on local drift unless --force)")
|
|
98
|
-
.option("--all", "select every module with an available update", false)
|
|
99
|
-
.option("-y, --yes", "skip confirmation prompts", false)
|
|
100
|
-
.option("--force", "overwrite locally drifted module copies", false)
|
|
101
|
-
.option("--keys <moduleKeys...>", "non-interactive module selector (comma or space separated)")
|
|
102
|
-
.action(function () {
|
|
103
|
-
const flags = this.opts();
|
|
104
|
-
return (0, cli_runner_1.run)(() => (0, update_1.runUpdate)({
|
|
105
|
-
...collectOptions(this),
|
|
106
|
-
all: Boolean(flags.all),
|
|
107
|
-
yes: Boolean(flags.yes),
|
|
108
|
-
force: Boolean(flags.force),
|
|
109
|
-
keys: (0, update_1.parseKeysFlag)(flags.keys),
|
|
110
|
-
}));
|
|
111
|
-
});
|
|
112
|
-
program
|
|
113
|
-
.command("apply")
|
|
114
|
-
.description('Non-interactively sync the module set declared in a JSON spec ({"modules": [...]})')
|
|
115
|
-
.requiredOption("--config <file>", "path to the declarative apply spec JSON")
|
|
116
|
-
.option("--ci", "CI mode marker (apply is always non-interactive)", false)
|
|
117
|
-
.action(function () {
|
|
118
|
-
const flags = this.opts();
|
|
119
|
-
return (0, cli_runner_1.run)(() => (0, apply_1.runApply)({
|
|
120
|
-
...collectOptions(this),
|
|
121
|
-
config: flags.config,
|
|
122
|
-
ci: Boolean(flags.ci),
|
|
123
|
-
}));
|
|
124
|
-
});
|
|
125
|
-
program
|
|
126
|
-
.command("doctor")
|
|
127
|
-
.description("Audit the installation: registry pins, copied modules, drift, env and prisma wiring")
|
|
128
|
-
.action(function () {
|
|
129
|
-
return (0, cli_runner_1.run)(() => (0, doctor_1.runDoctor)(collectOptions(this)));
|
|
130
|
-
});
|
|
131
|
-
program
|
|
132
|
-
.command("status")
|
|
133
|
-
.description("Print machine-readable project state as JSON")
|
|
134
|
-
.option("--drift", "include content drift against pinned pristine copies", false)
|
|
135
|
-
.action(function () {
|
|
136
|
-
const flags = this.opts();
|
|
137
|
-
return (0, cli_runner_1.run)(() => (0, status_1.runStatus)({ ...collectOptions(this), drift: Boolean(flags.drift) }));
|
|
138
|
-
});
|
|
139
|
-
program
|
|
140
|
-
.command("create <name>")
|
|
141
|
-
.description("Scaffold a new project from the basic template")
|
|
142
|
-
.option("--template-path <dir>", "use a local template directory instead of cloning newbie-starter")
|
|
143
|
-
.option("--template-ref <ref>", "git ref of newbie-starter to clone the template from")
|
|
144
|
-
.option("--no-git-init", "skip 'git init' in the new project", undefined)
|
|
145
|
-
.action(function (name) {
|
|
146
|
-
const flags = this.opts();
|
|
147
|
-
return (0, cli_runner_1.run)(() => (0, create_1.runCreate)({
|
|
148
|
-
...collectOptions(this),
|
|
149
|
-
name,
|
|
150
|
-
templatePath: flags.templatePath,
|
|
151
|
-
templateRef: flags.templateRef,
|
|
152
|
-
gitInit: flags.gitInit,
|
|
153
|
-
}));
|
|
154
|
-
});
|
|
155
|
-
program
|
|
156
|
-
.command("sync-template [paths...]")
|
|
157
|
-
.description("Diff framework-owned template files (ADR-009 ownership registry: main.ts, tsconfig*, nest-cli.json, prisma.config.ts, prisma framework block, .env.example/.gitignore framework blocks, deploy/*) against the template; generated and host-owned files are skipped. Pass path prefixes (e.g. deploy/) to restrict the scope")
|
|
158
|
-
.option("--template-path <dir>", "use a local template directory instead of cloning newbie-starter")
|
|
159
|
-
.option("--template-ref <ref>", "git ref (e.g. a template tag) of newbie-starter to sync from")
|
|
160
|
-
.option("--write", "apply the template version of differing skeleton files", false)
|
|
161
|
-
.option("--check", "CI gate: print the diff and exit non-zero when skeleton files drift", false)
|
|
162
|
-
.action(function (paths) {
|
|
163
|
-
const flags = this.opts();
|
|
164
|
-
return (0, cli_runner_1.run)(() => (0, sync_template_1.runSyncTemplate)({
|
|
165
|
-
...collectOptions(this),
|
|
166
|
-
templatePath: flags.templatePath,
|
|
167
|
-
templateRef: flags.templateRef,
|
|
168
|
-
write: Boolean(flags.write),
|
|
169
|
-
check: Boolean(flags.check),
|
|
170
|
-
paths,
|
|
171
|
-
}));
|
|
172
|
-
});
|
|
173
|
-
program
|
|
174
|
-
.command("agent")
|
|
175
|
-
.description("Run the module-hub agent: poll the hub with `newbie status`, execute dispatched changes (apply/update), report receipts (requires hub v2; v1 hubs expose no agent-poll route)")
|
|
176
|
-
.option("--once", "single pass: drain pending changes, deliver receipts, then exit (CI/cron friendly)", false)
|
|
177
|
-
.action(function () {
|
|
178
|
-
const flags = this.opts();
|
|
179
|
-
return (0, cli_runner_1.run)(() => (0, agent_1.runAgent)({ ...collectOptions(this), once: Boolean(flags.once) }));
|
|
180
|
-
});
|
|
181
|
-
program
|
|
182
|
-
.command("watch [keys...]")
|
|
183
|
-
.description("Watch the local newbie-modules registry and sync installed module sources into the project on change")
|
|
184
|
-
.option("--all", "watch every registry module instead of only installed ones", false)
|
|
185
|
-
.action(function (_keys) {
|
|
186
|
-
const flags = this.opts();
|
|
187
|
-
return (0, cli_runner_1.run)(() => (0, watch_1.runWatch)({
|
|
188
|
-
...collectOptions(this),
|
|
189
|
-
all: Boolean(flags.all),
|
|
190
|
-
}));
|
|
191
|
-
});
|
|
192
|
-
const dev = program
|
|
193
|
-
.command("dev")
|
|
194
|
-
.description("Registry development commands (run inside the newbie-modules repo, not a consuming project)");
|
|
195
|
-
dev
|
|
196
|
-
.command("lint")
|
|
197
|
-
.description("Enforce the module layering rules (feature -> capability -> infrastructure -> datastore) across registry sources")
|
|
198
|
-
.action(function () {
|
|
199
|
-
return (0, cli_runner_1.run)(() => (0, lint_1.runDevLint)(collectOptions(this)));
|
|
200
|
-
});
|
|
201
|
-
program
|
|
202
|
-
.command("interactive", { isDefault: true, hidden: true })
|
|
203
|
-
.description("Interactive module enable/disable flow (default)")
|
|
204
|
-
.action(function () {
|
|
205
|
-
return (0, cli_runner_1.run)(() => (0, default_1.runInteractive)(collectOptions(this)));
|
|
206
|
-
});
|
|
30
|
+
const program = (0, program_1.buildProgram)();
|
|
207
31
|
void (async () => {
|
|
208
32
|
try {
|
|
209
33
|
await (0, module_cli_1.registerModuleCommands)(program, {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,yCAAgC;AAEhC,uCAAkD;AAGzC,wFAHc,iBAAO,OAGd;AAFhB,iDAA0D;AAS1D,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QACjD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAGhC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,OAAO,GAAG,IAAA,sBAAY,GAAE,CAAC;AAE/B,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,CAAC;QACH,MAAM,IAAA,mCAAsB,EAAC,OAAO,EAAE;YACpC,GAAG,EAAE,aAAa,EAAE;YACpB,MAAM,EAAE,KAAK;YACb,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,IAAA,eAAG,EAAC,iCAAkC,KAAe,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAClF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAK,KAAe,CAAC,KAAK,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseModuleSelector(input: readonly string[] | undefined): string[] | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseModuleSelector = parseModuleSelector;
|
|
4
|
+
function parseModuleSelector(input) {
|
|
5
|
+
if (!input || input.length === 0)
|
|
6
|
+
return undefined;
|
|
7
|
+
const keys = input
|
|
8
|
+
.flatMap((chunk) => chunk.split(","))
|
|
9
|
+
.map((key) => key.trim())
|
|
10
|
+
.filter((key) => key.length > 0);
|
|
11
|
+
return [...new Set(keys)];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=module-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-selector.js","sourceRoot":"","sources":["../../src/lib/module-selector.ts"],"names":[],"mappings":";;AAKA,kDAOC;AAPD,SAAgB,mBAAmB,CAAC,KAAoC;IACtE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK;SACf,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/lib/sink.d.ts
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
export interface SinkFinding {
|
|
2
|
+
path: string;
|
|
3
|
+
kind: "missing" | "differs" | "action";
|
|
4
|
+
detail?: string;
|
|
5
|
+
}
|
|
1
6
|
export interface Sink {
|
|
2
7
|
readonly cwd: string;
|
|
3
8
|
readonly dryRun: boolean;
|
|
9
|
+
readonly check: boolean;
|
|
10
|
+
readonly findings: SinkFinding[];
|
|
4
11
|
writeText(file: string, content: string): Promise<void>;
|
|
5
12
|
writeJson(file: string, value: unknown): Promise<void>;
|
|
6
13
|
remove(fileOrDir: string): Promise<void>;
|
|
7
14
|
copy(fromAbsolute: string, toRelative: string): Promise<void>;
|
|
8
15
|
run(command: string, args: string[], label?: string): Promise<void>;
|
|
9
16
|
}
|
|
10
|
-
export declare function createSink(cwd: string, dryRun: boolean
|
|
17
|
+
export declare function createSink(cwd: string, dryRun: boolean, options?: {
|
|
18
|
+
check?: boolean;
|
|
19
|
+
}): Sink;
|
package/dist/lib/sink.js
CHANGED
|
@@ -7,15 +7,37 @@ exports.createSink = createSink;
|
|
|
7
7
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const exec_1 = require("./exec");
|
|
10
|
-
function
|
|
10
|
+
async function readOrNull(absolutePath) {
|
|
11
|
+
try {
|
|
12
|
+
return await promises_1.default.readFile(absolutePath, "utf8");
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function createSink(cwd, dryRun, options = {}) {
|
|
11
19
|
const resolve = (file) => node_path_1.default.resolve(cwd, file);
|
|
20
|
+
const check = Boolean(options.check);
|
|
21
|
+
const findings = [];
|
|
12
22
|
const plan = (message) => {
|
|
13
23
|
console.info(`[dry-run] ${message}`);
|
|
14
24
|
};
|
|
25
|
+
const recordAction = (target, detail) => {
|
|
26
|
+
findings.push({ path: target, kind: "action", detail });
|
|
27
|
+
};
|
|
15
28
|
return {
|
|
16
29
|
cwd,
|
|
17
|
-
dryRun,
|
|
30
|
+
dryRun: dryRun || check,
|
|
31
|
+
check,
|
|
32
|
+
findings,
|
|
18
33
|
async writeText(file, content) {
|
|
34
|
+
if (check) {
|
|
35
|
+
const current = await readOrNull(resolve(file));
|
|
36
|
+
if (current !== content) {
|
|
37
|
+
findings.push({ path: file, kind: current === null ? "missing" : "differs" });
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
19
41
|
if (dryRun) {
|
|
20
42
|
plan(`write ${file} (${content.length} bytes)`);
|
|
21
43
|
return;
|
|
@@ -28,6 +50,15 @@ function createSink(cwd, dryRun) {
|
|
|
28
50
|
await this.writeText(file, `${JSON.stringify(value, null, 2)}\n`);
|
|
29
51
|
},
|
|
30
52
|
async remove(fileOrDir) {
|
|
53
|
+
if (check) {
|
|
54
|
+
try {
|
|
55
|
+
await promises_1.default.stat(resolve(fileOrDir));
|
|
56
|
+
recordAction(fileOrDir, `remove ${fileOrDir}`);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
31
62
|
if (dryRun) {
|
|
32
63
|
plan(`remove ${fileOrDir}`);
|
|
33
64
|
return;
|
|
@@ -35,6 +66,10 @@ function createSink(cwd, dryRun) {
|
|
|
35
66
|
await promises_1.default.rm(resolve(fileOrDir), { recursive: true, force: true });
|
|
36
67
|
},
|
|
37
68
|
async copy(fromAbsolute, toRelative) {
|
|
69
|
+
if (check) {
|
|
70
|
+
recordAction(toRelative, `copy ${node_path_1.default.basename(fromAbsolute)} -> ${toRelative}`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
38
73
|
if (dryRun) {
|
|
39
74
|
plan(`copy ${node_path_1.default.basename(fromAbsolute)} -> ${toRelative}`);
|
|
40
75
|
return;
|
|
@@ -44,7 +79,11 @@ function createSink(cwd, dryRun) {
|
|
|
44
79
|
await promises_1.default.mkdir(node_path_1.default.dirname(target), { recursive: true });
|
|
45
80
|
await promises_1.default.cp(fromAbsolute, target, { recursive: true });
|
|
46
81
|
},
|
|
47
|
-
async run(command, args,
|
|
82
|
+
async run(command, args, label) {
|
|
83
|
+
if (check) {
|
|
84
|
+
recordAction(label ?? `${command} ${args.join(" ")}`.trim(), label ?? `${command} ${args.join(" ")}`.trim());
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
48
87
|
if (dryRun) {
|
|
49
88
|
plan(`${command} ${args.join(" ")}`.trim());
|
|
50
89
|
return;
|
package/dist/lib/sink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/lib/sink.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/lib/sink.ts"],"names":[],"mappings":"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"}
|
package/dist/program.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
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.VERSION = void 0;
|
|
7
|
+
exports.buildProgram = buildProgram;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
10
|
+
const create_1 = require("./commands/create");
|
|
11
|
+
const doctor_1 = require("./commands/doctor");
|
|
12
|
+
const default_1 = require("./commands/modules/default");
|
|
13
|
+
const install_1 = require("./commands/modules/install");
|
|
14
|
+
const lint_1 = require("./commands/modules/lint");
|
|
15
|
+
const remove_1 = require("./commands/modules/remove");
|
|
16
|
+
const update_1 = require("./commands/modules/update");
|
|
17
|
+
const watch_1 = require("./commands/modules/watch");
|
|
18
|
+
const status_1 = require("./commands/status");
|
|
19
|
+
const sync_1 = require("./commands/template/sync");
|
|
20
|
+
const cli_runner_1 = require("./lib/cli-runner");
|
|
21
|
+
const module_selector_1 = require("./lib/module-selector");
|
|
22
|
+
exports.VERSION = package_json_1.default.version;
|
|
23
|
+
function buildProgram() {
|
|
24
|
+
const program = new commander_1.Command();
|
|
25
|
+
program
|
|
26
|
+
.name("newbie")
|
|
27
|
+
.description("Newbie framework CLI: manage modules from the newbie-modules registry and sync project files")
|
|
28
|
+
.version(exports.VERSION)
|
|
29
|
+
.option("-C, --cwd <dir>", "project root directory", process.cwd())
|
|
30
|
+
.option("--dry-run", "print planned changes without writing files or running mutating commands", false)
|
|
31
|
+
.option("--skip-prisma-generate", "skip `npx prisma generate` after schema changes", false);
|
|
32
|
+
function collectOptions(command) {
|
|
33
|
+
const globals = command.optsWithGlobals();
|
|
34
|
+
return {
|
|
35
|
+
cwd: globals.cwd ?? process.cwd(),
|
|
36
|
+
dryRun: Boolean(globals.dryRun),
|
|
37
|
+
skipPrismaGenerate: Boolean(globals.skipPrismaGenerate),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
program
|
|
41
|
+
.command("create <project-name>")
|
|
42
|
+
.description("Scaffold a new project from the basic template")
|
|
43
|
+
.option("--template-path <dir>", "use a local template directory instead of cloning newbie-starter")
|
|
44
|
+
.option("--template-ref <ref>", "git ref of newbie-starter to clone the template from")
|
|
45
|
+
.option("--no-git-init", "skip 'git init' in the new project", undefined)
|
|
46
|
+
.action(function (name) {
|
|
47
|
+
const flags = this.opts();
|
|
48
|
+
return (0, cli_runner_1.run)(() => (0, create_1.runCreate)({
|
|
49
|
+
...collectOptions(this),
|
|
50
|
+
name,
|
|
51
|
+
templatePath: flags.templatePath,
|
|
52
|
+
templateRef: flags.templateRef,
|
|
53
|
+
gitInit: flags.gitInit,
|
|
54
|
+
}));
|
|
55
|
+
});
|
|
56
|
+
program
|
|
57
|
+
.command("doctor")
|
|
58
|
+
.description("Audit the installation: registry pins, copied modules, drift, env and prisma wiring")
|
|
59
|
+
.option("--json", "print findings as JSON", false)
|
|
60
|
+
.action(function () {
|
|
61
|
+
const flags = this.opts();
|
|
62
|
+
return (0, cli_runner_1.run)(() => (0, doctor_1.runDoctor)({ ...collectOptions(this), json: Boolean(flags.json) }));
|
|
63
|
+
});
|
|
64
|
+
program
|
|
65
|
+
.command("status")
|
|
66
|
+
.description("Print machine-readable project state as JSON")
|
|
67
|
+
.option("--drift", "include content drift against pinned pristine copies", false)
|
|
68
|
+
.action(function () {
|
|
69
|
+
const flags = this.opts();
|
|
70
|
+
return (0, cli_runner_1.run)(() => (0, status_1.runStatus)({ ...collectOptions(this), drift: Boolean(flags.drift) }));
|
|
71
|
+
});
|
|
72
|
+
const modules = program
|
|
73
|
+
.command("modules")
|
|
74
|
+
.description("Inspect and manage the enabled module set (bare invocation opens the picker on a TTY)")
|
|
75
|
+
.option("--json", "print the module inventory as JSON", false);
|
|
76
|
+
modules.action(function () {
|
|
77
|
+
const flags = this.opts();
|
|
78
|
+
return (0, cli_runner_1.run)(() => (0, default_1.runModules)({ ...collectOptions(this), json: Boolean(flags.json) }));
|
|
79
|
+
});
|
|
80
|
+
modules
|
|
81
|
+
.command("install [keys...]")
|
|
82
|
+
.description("Reconcile the project with modules.json; with keys, declare them (npm-style add) and install. --check is the CI gate")
|
|
83
|
+
.option("--check", "CI gate: verify module copies and generated wiring without writing anything", false)
|
|
84
|
+
.option("-y, --yes", "skip confirmation prompts", false)
|
|
85
|
+
.action(function (keys) {
|
|
86
|
+
const flags = this.opts();
|
|
87
|
+
return (0, cli_runner_1.run)(() => (0, install_1.runInstall)({
|
|
88
|
+
...collectOptions(this),
|
|
89
|
+
check: Boolean(flags.check),
|
|
90
|
+
yes: Boolean(flags.yes),
|
|
91
|
+
keys: (0, module_selector_1.parseModuleSelector)(keys),
|
|
92
|
+
}));
|
|
93
|
+
});
|
|
94
|
+
modules
|
|
95
|
+
.command("remove <keys...>")
|
|
96
|
+
.description("Remove modules from the enabled set (blocked while another enabled module still requires them)")
|
|
97
|
+
.option("-y, --yes", "skip confirmation prompts", false)
|
|
98
|
+
.action(function (keys) {
|
|
99
|
+
const flags = this.opts();
|
|
100
|
+
return (0, cli_runner_1.run)(() => (0, remove_1.runRemove)({
|
|
101
|
+
...collectOptions(this),
|
|
102
|
+
yes: Boolean(flags.yes),
|
|
103
|
+
keys: (0, module_selector_1.parseModuleSelector)(keys) ?? [],
|
|
104
|
+
}));
|
|
105
|
+
});
|
|
106
|
+
modules
|
|
107
|
+
.command("update [keys...]")
|
|
108
|
+
.description("Update enabled module copies to the registry HEAD commit; --check is the offline drift gate against the registry checkout")
|
|
109
|
+
.option("--check", "CI gate: verify installed copies against the registry checkout without writing anything", false)
|
|
110
|
+
.option("-y, --yes", "skip confirmation prompts", false)
|
|
111
|
+
.option("--force", "overwrite locally drifted module copies", false)
|
|
112
|
+
.action(function (keys) {
|
|
113
|
+
const flags = this.opts();
|
|
114
|
+
return (0, cli_runner_1.run)(() => (0, update_1.runUpdate)({
|
|
115
|
+
...collectOptions(this),
|
|
116
|
+
check: Boolean(flags.check),
|
|
117
|
+
yes: Boolean(flags.yes),
|
|
118
|
+
force: Boolean(flags.force),
|
|
119
|
+
keys: (0, module_selector_1.parseModuleSelector)(keys),
|
|
120
|
+
}));
|
|
121
|
+
});
|
|
122
|
+
modules
|
|
123
|
+
.command("watch [keys...]")
|
|
124
|
+
.description("Watch the local newbie-modules registry and sync installed module sources into the project on change")
|
|
125
|
+
.option("--all", "watch every registry module instead of only installed ones", false)
|
|
126
|
+
.action(function (keys) {
|
|
127
|
+
const flags = this.opts();
|
|
128
|
+
return (0, cli_runner_1.run)(() => (0, watch_1.runWatch)({
|
|
129
|
+
...collectOptions(this),
|
|
130
|
+
all: Boolean(flags.all),
|
|
131
|
+
keys: (0, module_selector_1.parseModuleSelector)(keys),
|
|
132
|
+
}));
|
|
133
|
+
});
|
|
134
|
+
modules
|
|
135
|
+
.command("lint")
|
|
136
|
+
.description("Enforce the module layering rules (feature -> capability -> infrastructure -> datastore) across registry sources; registry checkouts only")
|
|
137
|
+
.action(function () {
|
|
138
|
+
return (0, cli_runner_1.run)(() => (0, lint_1.runLint)(collectOptions(this)));
|
|
139
|
+
});
|
|
140
|
+
const template = program.command("template").description("Manage the framework-owned part of the project template");
|
|
141
|
+
template.action(() => {
|
|
142
|
+
template.outputHelp();
|
|
143
|
+
});
|
|
144
|
+
template
|
|
145
|
+
.command("sync [paths...]")
|
|
146
|
+
.description("Sync framework-owned template files (ADR-009 ownership registry: main.ts, tsconfig*, nest-cli.json, prisma.config.ts, prisma framework block, .env.example/.gitignore framework blocks, deploy/*) from the template; pass path prefixes to restrict the scope")
|
|
147
|
+
.option("--template-path <dir>", "use a local template directory instead of cloning newbie-starter")
|
|
148
|
+
.option("--template-ref <ref>", "git ref (e.g. a template tag) of newbie-starter to sync from")
|
|
149
|
+
.option("--check", "CI gate: print the diff and exit non-zero when skeleton files drift", false)
|
|
150
|
+
.action(function (paths) {
|
|
151
|
+
const flags = this.opts();
|
|
152
|
+
return (0, cli_runner_1.run)(() => (0, sync_1.runTemplateSync)({
|
|
153
|
+
...collectOptions(this),
|
|
154
|
+
templatePath: flags.templatePath,
|
|
155
|
+
templateRef: flags.templateRef,
|
|
156
|
+
check: Boolean(flags.check),
|
|
157
|
+
paths,
|
|
158
|
+
}));
|
|
159
|
+
});
|
|
160
|
+
program.action(() => {
|
|
161
|
+
program.outputHelp();
|
|
162
|
+
console.info(`\nnewbie v${exports.VERSION}`);
|
|
163
|
+
});
|
|
164
|
+
return program;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED