@devbie/newbie-cli 1.5.0 → 1.7.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.
Files changed (46) hide show
  1. package/README.md +40 -21
  2. package/dist/assemble/deploy.d.ts +14 -0
  3. package/dist/assemble/deploy.js +77 -0
  4. package/dist/assemble/deploy.js.map +1 -0
  5. package/dist/assemble/modules-copy.js +1 -1
  6. package/dist/assemble/modules-copy.js.map +1 -1
  7. package/dist/assemble/pipeline.js +3 -3
  8. package/dist/assemble/pipeline.js.map +1 -1
  9. package/dist/commands/assemble.d.ts +5 -0
  10. package/dist/commands/assemble.js +37 -0
  11. package/dist/commands/assemble.js.map +1 -0
  12. package/dist/commands/update-template.js +53 -15
  13. package/dist/commands/update-template.js.map +1 -1
  14. package/dist/constants/paths.d.ts +2 -0
  15. package/dist/constants/paths.js +3 -1
  16. package/dist/constants/paths.js.map +1 -1
  17. package/dist/core/caddyfile-modules.d.ts +2 -0
  18. package/dist/core/caddyfile-modules.js +23 -0
  19. package/dist/core/caddyfile-modules.js.map +1 -0
  20. package/dist/core/datastore-registry.d.ts +30 -0
  21. package/dist/core/datastore-registry.js +86 -0
  22. package/dist/core/datastore-registry.js.map +1 -0
  23. package/dist/core/deploy-compose.d.ts +5 -0
  24. package/dist/core/deploy-compose.js +113 -0
  25. package/dist/core/deploy-compose.js.map +1 -0
  26. package/dist/core/layer-lint.d.ts +1 -1
  27. package/dist/core/layer-lint.js +15 -4
  28. package/dist/core/layer-lint.js.map +1 -1
  29. package/dist/core/module-manifest.d.ts +1 -2
  30. package/dist/core/module-manifest.js +8 -0
  31. package/dist/core/module-manifest.js.map +1 -1
  32. package/dist/core/template-sync.d.ts +32 -13
  33. package/dist/core/template-sync.js +177 -65
  34. package/dist/core/template-sync.js.map +1 -1
  35. package/dist/index.js +12 -3
  36. package/dist/index.js.map +1 -1
  37. package/dist/lib/drift.js +2 -2
  38. package/dist/lib/drift.js.map +1 -1
  39. package/dist/lib/version.js.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/assemble/assets.d.ts +0 -9
  42. package/dist/assemble/assets.js +0 -49
  43. package/dist/assemble/assets.js.map +0 -1
  44. package/dist/core/assets.d.ts +0 -8
  45. package/dist/core/assets.js +0 -30
  46. package/dist/core/assets.js.map +0 -1
package/README.md CHANGED
@@ -80,6 +80,18 @@ requirements).
80
80
  | ----------- | -------------------------- |
81
81
  | `-y, --yes` | Skip confirmation prompts. |
82
82
 
83
+ #### `newbie assemble`
84
+
85
+ Regenerate the module-derived deploy assets from the installed module set:
86
+ `deploy/compose.modules.yml` (datastore services rendered from the CLI
87
+ datastore registry, ADR-008) and the `@@newbie-modules` route block of
88
+ `deploy/Caddyfile.tmpl` (one `handle /<key>/*` block per module declaring
89
+ `publicNamespace`). The same renders run as a step of install/apply/update.
90
+
91
+ | Option | Description |
92
+ | --------- | -------------------------------------------------------------------------- |
93
+ | `--check` | CI gate: print the diff and exit non-zero when the generated assets drift. |
94
+
83
95
  #### `newbie config`
84
96
 
85
97
  View or edit the enabled-module list in `modules.json` without touching project
@@ -135,14 +147,19 @@ Print machine-readable project state as JSON.
135
147
 
136
148
  #### `newbie update-template`
137
149
 
138
- Diff framework-managed skeleton files (`main.ts`, `tsconfig*`, the Prisma
139
- framework block) against the template. Business files are skipped.
150
+ Diff framework-owned template files against the template, driven by the
151
+ ADR-009 ownership registry: whole-file sync for `main.ts`, `tsconfig*`,
152
+ `nest-cli.json`, `prisma.config.ts` and the static `deploy/` stack; block sync
153
+ for the `@@newbie-framework` blocks of `.env.example`, `.gitignore` and
154
+ `prisma/schema.prisma`. Generated (`newbie assemble` products) and
155
+ template-shipped host-owned files are skipped.
140
156
 
141
157
  | Option | Description |
142
158
  | ----------------------- | ----------------------------------------------------------------- |
143
159
  | `--template-path <dir>` | Use a local template directory instead of cloning the repository. |
144
160
  | `--template-ref <ref>` | Git ref (e.g. a template tag) to sync from. |
145
- | `--write` | Apply the template version of differing skeleton files. |
161
+ | `--write` | Apply the template version of differing template files. |
162
+ | `--check` | CI gate: print the diff and exit non-zero when files drift. |
146
163
 
147
164
  #### `newbie agent`
148
165
 
@@ -169,9 +186,11 @@ registry checkout, not a consuming project).
169
186
 
170
187
  #### `newbie dev lint`
171
188
 
172
- Enforce the module layering rules (`domain` -> `capability` -> `foundation`)
173
- across registry sources: upward dependencies and same-layer import cycles are
174
- errors; same-layer dependencies are warnings for review.
189
+ Enforce the module layering rules (`feature` -> `capability` -> `infrastructure`
190
+ -> `datastore`) across registry sources: upward dependencies and same-layer
191
+ import cycles are errors; same-layer dependencies are warnings for review. A
192
+ `datastore` module must additionally be listed in the CLI datastore registry
193
+ (see ADR-008 D3).
175
194
 
176
195
  ### Module-provided commands
177
196
 
@@ -201,21 +220,21 @@ export; they never import framework internals by relative path.
201
220
 
202
221
  Every registry module carries a `newbie.module.json` at its root:
203
222
 
204
- | Field | Type | Description |
205
- | -------------------- | -------- | ---------------------------------------------------------------------------------------------- |
206
- | `key` | string | Module key; must match the directory name. |
207
- | `layer` | string | Architectural layer (`domain` / `capability` / `foundation`); absent for framework-specials. |
208
- | `module.file` | string | NestJS module file without extension, e.g. `account.module`. |
209
- | `module.className` | string | Exported NestJS module class name, e.g. `AccountModule`. |
210
- | `schema` | string | Project-relative path of the Prisma model fragment; absent = no models. |
211
- | `config-service` | object | Config keys merged into the generated `modules.config.ts`. |
212
- | `env` | object | Environment variables the module requires (doctor reports missing ones). |
213
- | `dependencies` | object | npm dependencies merged into the consuming project's `package.json`. |
214
- | `devDependencies` | object | npm devDependencies merged into the consuming project's `package.json`. |
215
- | `moduleDependencies` | string[] | Registry module keys imported via `@modules/<key>`; installs expand to the transitive closure. |
216
- | `assets` | object[] | Extra NestJS assets (e.g. resolvers) wired into the generated module index. |
217
- | `cli` | string | Command namespace this module exposes (see "Module-provided commands"). |
218
- | `sdk` | string | Package name of the companion SDK shipped alongside the module (pairing record for tooling). |
223
+ | Field | Type | Description |
224
+ | -------------------- | -------- | --------------------------------------------------------------------------------------------------------------- |
225
+ | `key` | string | Module key; must match the directory name. |
226
+ | `layer` | string | Architectural layer (`feature` / `capability` / `infrastructure` / `datastore`); absent for framework-specials. |
227
+ | `module.file` | string | NestJS module file without extension, e.g. `account.module`. |
228
+ | `module.className` | string | Exported NestJS module class name, e.g. `AccountModule`. |
229
+ | `schema` | string | Project-relative path of the Prisma model fragment; absent = no models. |
230
+ | `config-service` | object | Config keys merged into the generated `modules.config.ts`. |
231
+ | `env` | object | Environment variables the module requires (doctor reports missing ones). |
232
+ | `dependencies` | object | npm dependencies merged into the consuming project's `package.json`. |
233
+ | `devDependencies` | object | npm devDependencies merged into the consuming project's `package.json`. |
234
+ | `moduleDependencies` | string[] | Registry module keys imported via `@modules/<key>`; installs expand to the transitive closure. |
235
+ | `cli` | string | Command namespace this module exposes (see "Module-provided commands"). |
236
+ | `sdk` | string | Package name of the companion SDK shipped alongside the module (pairing record for tooling). |
237
+ | `publicNamespace` | boolean | Claim the public URL namespace `/<key>/*`; assemble renders a Caddy handle block (ADR-008). |
219
238
 
220
239
  ## Global options
221
240
 
@@ -0,0 +1,14 @@
1
+ import { IssueBag } from "../lib/issues";
2
+ import { Sink } from "../lib/sink";
3
+ export interface DeployRenderPlan {
4
+ path: string;
5
+ current: string | null;
6
+ next: string;
7
+ }
8
+ export declare function planDeployRenders(params: {
9
+ cwd: string;
10
+ sink: Sink;
11
+ issues: IssueBag;
12
+ enabledKeys: string[];
13
+ }): Promise<DeployRenderPlan[]>;
14
+ export declare function applyDeployRenders(sink: Sink, plans: DeployRenderPlan[]): Promise<void>;
@@ -0,0 +1,77 @@
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.planDeployRenders = planDeployRenders;
7
+ exports.applyDeployRenders = applyDeployRenders;
8
+ const promises_1 = __importDefault(require("node:fs/promises"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const caddyfile_modules_1 = require("../core/caddyfile-modules");
11
+ const deploy_compose_1 = require("../core/deploy-compose");
12
+ const datastore_registry_1 = require("../core/datastore-registry");
13
+ const paths_1 = require("../constants/paths");
14
+ const errors_1 = require("../lib/errors");
15
+ const issues_1 = require("../lib/issues");
16
+ const module_install_1 = require("../lib/module-install");
17
+ async function readOrNull(file) {
18
+ try {
19
+ return await promises_1.default.readFile(file, "utf8");
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ async function hasMigrator(cwd, key) {
26
+ try {
27
+ await promises_1.default.stat(node_path_1.default.resolve(cwd, paths_1.MODULES_DIR, key, "migration", "migrate-cli.ts"));
28
+ return true;
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ async function planDeployRenders(params) {
35
+ const { cwd, sink, issues, enabledKeys } = params;
36
+ const datastores = [];
37
+ const publicNamespaces = [];
38
+ for (const key of enabledKeys) {
39
+ const manifest = await (0, module_install_1.readInstalledManifest)(cwd, key);
40
+ if (manifest === null) {
41
+ (0, issues_1.reportIssue)(issues, sink, `Missing newbie.module.json for '${key}'; it was skipped in the deploy asset render.`);
42
+ continue;
43
+ }
44
+ if (manifest.layer === "datastore") {
45
+ if (!(0, datastore_registry_1.isRegisteredDatastore)(key)) {
46
+ throw new errors_1.CliError(`Module '${key}' declares layer "datastore" but is not listed in the CLI datastore registry (ADR-008 D3).`);
47
+ }
48
+ datastores.push({ key, hasMigrator: await hasMigrator(cwd, key) });
49
+ }
50
+ if (manifest.publicNamespace === true) {
51
+ publicNamespaces.push(key);
52
+ }
53
+ }
54
+ const plans = [];
55
+ const composeNext = (0, deploy_compose_1.buildComposeModulesYaml)(datastores);
56
+ const composeCurrent = await readOrNull(node_path_1.default.resolve(cwd, paths_1.DEPLOY_COMPOSE_MODULES));
57
+ if (composeCurrent !== composeNext) {
58
+ plans.push({ path: paths_1.DEPLOY_COMPOSE_MODULES, current: composeCurrent, next: composeNext });
59
+ }
60
+ const caddyCurrent = await readOrNull(node_path_1.default.resolve(cwd, paths_1.DEPLOY_CADDYFILE_TMPL));
61
+ if (caddyCurrent !== null) {
62
+ const caddyNext = (0, caddyfile_modules_1.spliceModulesBlock)(caddyCurrent, (0, caddyfile_modules_1.renderPublicNamespaceBody)(publicNamespaces));
63
+ if (caddyNext === null) {
64
+ (0, issues_1.reportIssue)(issues, sink, `${paths_1.DEPLOY_CADDYFILE_TMPL} is missing the @@newbie-modules markers; the module route block was skipped.`);
65
+ }
66
+ else if (caddyNext !== caddyCurrent) {
67
+ plans.push({ path: paths_1.DEPLOY_CADDYFILE_TMPL, current: caddyCurrent, next: caddyNext });
68
+ }
69
+ }
70
+ return plans;
71
+ }
72
+ async function applyDeployRenders(sink, plans) {
73
+ for (const plan of plans) {
74
+ await sink.writeText(plan.path, plan.next);
75
+ }
76
+ }
77
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/assemble/deploy.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ function assertModuleKeySafe(key) {
18
18
  }
19
19
  }
20
20
  async function addModules(params) {
21
- const { cwd, sink, registry, keys } = params;
21
+ const { sink, registry, keys } = params;
22
22
  for (const key of keys) {
23
23
  assertModuleKeySafe(key);
24
24
  await sink.copy((0, registry_1.moduleRootInRegistry)(registry.root, key), node_path_1.default.posix.join(paths_1.MODULES_DIR, key));
@@ -1 +1 @@
1
- {"version":3,"file":"modules-copy.js","sourceRoot":"","sources":["../../src/assemble/modules-copy.ts"],"names":[],"mappings":";;;;;AAWA,kDAMC;AAOD,gCAWC;AAGD,sCAMC;AA5CD,0DAA6B;AAE7B,8CAAiD;AACjD,8CAAyE;AACzE,0CAAyC;AAOzC,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,mBAAW,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,mBAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,iBAAQ,CAAC,uCAAuC,mBAAW,KAAK,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAOM,KAAK,UAAU,UAAU,CAAC,MAKhC;IACC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAA,+BAAoB,EAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAGM,KAAK,UAAU,aAAa,CAAC,MAAsC;IACxE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"modules-copy.js","sourceRoot":"","sources":["../../src/assemble/modules-copy.ts"],"names":[],"mappings":";;;;;AAWA,kDAMC;AAOD,gCAWC;AAGD,sCAMC;AA5CD,0DAA6B;AAE7B,8CAAiD;AACjD,8CAAyE;AACzE,0CAAyC;AAOzC,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,mBAAW,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,mBAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,iBAAQ,CAAC,uCAAuC,mBAAW,KAAK,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAOM,KAAK,UAAU,UAAU,CAAC,MAKhC;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAA,+BAAoB,EAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAGM,KAAK,UAAU,aAAa,CAAC,MAAsC;IACxE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -18,9 +18,9 @@ const errors_1 = require("../lib/errors");
18
18
  const registry_1 = require("../lib/registry");
19
19
  const modules_state_2 = require("../lib/modules-state");
20
20
  const dependencies_1 = require("./dependencies");
21
+ const deploy_1 = require("./deploy");
21
22
  const env_1 = require("./env");
22
23
  const module_graph_1 = require("./module-graph");
23
- const assets_1 = require("./assets");
24
24
  const modules_1 = require("./modules");
25
25
  const modules_copy_1 = require("./modules-copy");
26
26
  const schema_1 = require("./schema");
@@ -109,10 +109,10 @@ async function runSteps(ctx, changes) {
109
109
  enabledKeys,
110
110
  skipPrismaGenerate,
111
111
  });
112
- step("Update nestjs assets");
113
- await (0, assets_1.assembleNestJsAssets)({ cwd, sink, issues, added, removed });
114
112
  step("Update nestjs modules");
115
113
  await (0, modules_1.assembleNestJsModules)({ cwd, sink, issues, enabledKeys });
114
+ step("Update deploy assets");
115
+ await (0, deploy_1.applyDeployRenders)(sink, await (0, deploy_1.planDeployRenders)({ cwd, sink, issues, enabledKeys }));
116
116
  step("Update package dependencies");
117
117
  await (0, dependencies_1.assembleDependencies)({
118
118
  cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/assemble/pipeline.ts"],"names":[],"mappings":";;;;;AA+DA,sDAmBC;AAqCD,4BAiDC;AAED,oCAUC;AAOD,0CA+BC;AAWD,sCA0CC;AA/QD,gEAAkC;AAClC,0DAA6B;AAE7B,yCAAiC;AAEjC,yDAAiG;AACjG,2DAA0D;AAC1D,8CAAqF;AACrF,0CAAyC;AACzC,8CAAqD;AACrD,wDAAyD;AAEzD,iDAAsD;AACtD,+BAAwD;AACxD,iDAAoF;AACpF,qCAAgD;AAChD,uCAAkD;AAClD,iDAA2D;AAC3D,qCAA+C;AAiB/C,KAAK,UAAU,uBAAuB,CACpC,YAAoB,EACpB,KAAwB,EACxB,OAA6C;IAE7C,MAAM,OAAO,GAAG,MAAM,IAAA,oCAAqB,EAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAA,0CAA2B,EAAC,OAAO,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAQ,CAAC,4CAA4C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,SAAS,wBAAwB,CAC/B,KAAwB,EACxB,KAA6C,EAC7C,WAA8B;IAE9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAA,iCAAgB,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,CAAC,IAAI,CAAC,KAAK,IAAA,gBAAI,EAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;AAC1C,CAAC;AAGM,KAAK,UAAU,qBAAqB,CAAC,GAAW;IACrD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAW,CAAC,EAAE;YAC/D,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBAAE,SAAS;YACpC,IAAI,CAAC;gBACH,MAAM,kBAAE,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAW,EAAE,MAAM,CAAC,IAAI,EAAE,4BAAoB,CAAC,CAAC,CAAC;gBACjF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAGD,SAAS,kBAAkB,CACzB,KAAmB,EACnB,SAAmB,EACnB,QAAsD;IAEtD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QACnB,CAAC,CAAC;YACE,GAAG,MAAM;YACT,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,YAAY,EAAE,EAAE;SACjB;QACH,CAAC,CAAC,MAAM,CACX,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IACD,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE;YACR,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,YAAY,EAAE,QAAQ,CAAC,YAAY;SACpC;QACD,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,GAAoB,EAAE,OAAsB;IACzE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC;IAChE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACvC,MAAM,IAAA,yBAAU,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3D,MAAM,IAAA,iCAAiB,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACrC,MAAM,IAAA,iBAAW,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAEzD,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC/B,MAAM,IAAA,4BAAmB,EAAC;QACxB,GAAG;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,WAAW;QACX,kBAAkB;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC7B,MAAM,IAAA,6BAAoB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC9B,MAAM,IAAA,+BAAqB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAEhE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACpC,MAAM,IAAA,mCAAoB,EAAC;QACzB,GAAG;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAClC,MAAM,IAAA,4BAAa,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5B,MAAM,IAAA,wBAAkB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACxE,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,GAAoB,EAAE,OAAsB;IAG7E,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,GAAG,IAAA,8BAAc,EAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAA,iCAAiB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAOM,KAAK,UAAU,eAAe,CACnC,GAAoB,EACpB,QAAkB;IAElB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAA,0BAAU,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAElD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAA,iCAAgB,EAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,iBAAiB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChE,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,kBAAkB,GAAG,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,wBAAwB,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,8BAAc,EAAC,IAAA,0BAAU,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;IAEjE,GAAG,CAAC,KAAK,GAAG,IAAA,8BAAc,EAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,IAAA,iCAAiB,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,QAAQ,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,YAAY;QACzB,YAAY,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;KACnF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAWM,KAAK,UAAU,aAAa,CACjC,GAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAA,0BAAU,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAErF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAIzE,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,iBAAQ,CAChB,wCAAwC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,oBAAY,SAAS,CACzG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,OAAO;QACpB,YAAY;QACZ,SAAS;QACT,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/assemble/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { GlobalOptions } from "./shared";
2
+ export interface AssembleOptions extends GlobalOptions {
3
+ check?: boolean;
4
+ }
5
+ export declare function runAssemble(options: AssembleOptions): Promise<void>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runAssemble = runAssemble;
4
+ const colorette_1 = require("colorette");
5
+ const deploy_1 = require("../assemble/deploy");
6
+ const modules_state_1 = require("../core/modules-state");
7
+ const unified_diff_1 = require("../core/unified-diff");
8
+ const errors_1 = require("../lib/errors");
9
+ const shared_1 = require("./shared");
10
+ async function runAssemble(options) {
11
+ const { ctx, sink } = await (0, shared_1.createContext)(options, { fetch: false });
12
+ const enabledKeys = (0, modules_state_1.moduleKeys)(ctx.state);
13
+ const plans = await (0, deploy_1.planDeployRenders)({ cwd: ctx.cwd, sink, issues: ctx.issues, enabledKeys });
14
+ if (plans.length === 0) {
15
+ console.info((0, colorette_1.green)((0, colorette_1.bold)("✓ Deploy assets are up to date with the installed module set.")));
16
+ return;
17
+ }
18
+ if (options.check) {
19
+ for (const plan of plans) {
20
+ console.info((0, colorette_1.bold)(`\n# ${plan.path} (${plan.current === null ? "missing in project" : "drifts from render"})`));
21
+ const aLabel = plan.current === null ? "/dev/null" : `a/${plan.path}`;
22
+ process.stdout.write((0, unified_diff_1.unifiedDiff)(plan.current ?? "", plan.next, aLabel, `b/${plan.path}`));
23
+ }
24
+ throw new errors_1.CliError(`${plans.length} deploy asset(s) drift from the installed module set. ` + "Run `newbie assemble` to regenerate.");
25
+ }
26
+ for (const plan of plans) {
27
+ console.info(` ${plan.path}`);
28
+ }
29
+ await (0, deploy_1.applyDeployRenders)(sink, plans);
30
+ if (options.dryRun) {
31
+ console.info("[dry-run] no files were modified");
32
+ }
33
+ else {
34
+ console.info((0, colorette_1.green)((0, colorette_1.bold)("\n✓ Deploy assets updated.")));
35
+ }
36
+ }
37
+ //# sourceMappingURL=assemble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../src/commands/assemble.ts"],"names":[],"mappings":";;AAoBA,kCA+BC;AAnDD,yCAAwC;AAExC,+CAA2E;AAC3E,yDAAmD;AACnD,uDAAmD;AACnD,0CAAyC;AACzC,qCAAwD;AAcjD,KAAK,UAAU,WAAW,CAAC,OAAwB;IACxD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,IAAA,0BAAU,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAiB,EAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAE/F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,IAAA,gBAAI,EAAC,+DAA+D,CAAC,CAAC,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;YAChH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,IAAI,iBAAQ,CAChB,GAAG,KAAK,CAAC,MAAM,wDAAwD,GAAG,sCAAsC,CACjH,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,IAAA,2BAAkB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,IAAA,gBAAI,EAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
@@ -18,12 +18,13 @@ function matchesPathFilter(filePath, filter) {
18
18
  return true;
19
19
  return filePath === normalized || filePath.startsWith(`${normalized}/`);
20
20
  }
21
- function filterSkeletonFiles(paths) {
21
+ function filterTemplateFiles(paths) {
22
+ const syncable = template_sync_1.TEMPLATE_FILES.filter(template_sync_1.isSyncableTemplateFile);
22
23
  if (!paths || paths.length === 0)
23
- return template_sync_1.SKELETON_FILES;
24
- const selected = template_sync_1.SKELETON_FILES.filter((file) => paths.some((p) => matchesPathFilter(file.path, p)));
24
+ return syncable;
25
+ const selected = syncable.filter((file) => paths.some((p) => matchesPathFilter(file.path, p)));
25
26
  if (selected.length === 0) {
26
- throw new errors_1.CliError(`No skeleton files match the path filter: ${paths.join(", ")}`);
27
+ throw new errors_1.CliError(`No framework-managed template files match the path filter: ${paths.join(", ")}`);
27
28
  }
28
29
  return selected;
29
30
  }
@@ -35,10 +36,46 @@ async function readOrNull(root, rel) {
35
36
  return null;
36
37
  }
37
38
  }
39
+ function isScanIgnored(relPath) {
40
+ const segments = relPath.split("/");
41
+ if (segments.some((segment) => template_sync_1.TEMPLATE_SCAN_IGNORED_DIRECTORIES.has(segment)))
42
+ return true;
43
+ const base = segments[segments.length - 1];
44
+ if (template_sync_1.TEMPLATE_SCAN_IGNORED_FILES.has(base))
45
+ return true;
46
+ return template_sync_1.TEMPLATE_SCAN_IGNORED_SUFFIXES.some((suffix) => base.endsWith(suffix));
47
+ }
48
+ async function listTemplateFiles(root) {
49
+ const found = [];
50
+ async function walk(relDir) {
51
+ const dirents = await promises_1.default.readdir(node_path_1.default.join(root, relDir), { withFileTypes: true });
52
+ for (const dirent of dirents) {
53
+ const relPath = relDir === "" ? dirent.name : `${relDir}/${dirent.name}`;
54
+ if (dirent.isDirectory()) {
55
+ if (template_sync_1.TEMPLATE_SCAN_IGNORED_DIRECTORIES.has(dirent.name))
56
+ continue;
57
+ await walk(relPath);
58
+ }
59
+ else if (dirent.isFile() && !isScanIgnored(relPath)) {
60
+ found.push(relPath);
61
+ }
62
+ }
63
+ }
64
+ await walk("");
65
+ return found;
66
+ }
67
+ async function assertTemplateRegistryComplete(templateRoot) {
68
+ const unclassified = (0, template_sync_1.findUnclassifiedTemplateFiles)(await listTemplateFiles(templateRoot));
69
+ if (unclassified.length === 0)
70
+ return;
71
+ throw new errors_1.CliError(`Template file(s) missing from the ownership registry (ADR-009 D4):\n - ${unclassified.join("\n - ")}\n` +
72
+ "Classify each one in TEMPLATE_FILES (packages/cli/src/core/template-sync.ts).");
73
+ }
38
74
  function printChangeDiff(change) {
39
75
  const label = change.file.path;
40
76
  if (change.kind === "missing-markers") {
41
- console.warn((0, colorette_1.yellow)(`! ${label}: framework markers (${template_sync_1.MARKER_START} / ${template_sync_1.MARKER_END}) ` +
77
+ const markers = (0, template_sync_1.frameworkMarkers)(change.file.markerSyntax);
78
+ console.warn((0, colorette_1.yellow)(`! ${label}: framework markers (${markers.start} / ${markers.end}) ` +
42
79
  "not found; skipping. Add them back to re-enable template sync."));
43
80
  return;
44
81
  }
@@ -54,40 +91,41 @@ async function runUpdateTemplate(options) {
54
91
  }
55
92
  const cwd = node_path_1.default.resolve(options.cwd);
56
93
  const sink = (0, sink_1.createSink)(cwd, options.dryRun);
57
- const skeletonFiles = filterSkeletonFiles(options.paths);
94
+ const templateFiles = filterTemplateFiles(options.paths);
58
95
  const scope = options.paths && options.paths.length > 0 ? options.paths.join(", ") : null;
59
96
  const template = await (0, create_1.resolveTemplate)(options);
60
97
  console.info((0, colorette_1.cyan)(`Template source: ${template.source}`));
61
98
  if (scope) {
62
- console.info((0, colorette_1.cyan)(`Scope: ${scope} (${skeletonFiles.length} skeleton files)`));
99
+ console.info((0, colorette_1.cyan)(`Scope: ${scope} (${templateFiles.length} template files)`));
63
100
  }
101
+ await assertTemplateRegistryComplete(template.root);
64
102
  const projectFiles = new Map();
65
- const templateFiles = new Map();
66
- for (const file of skeletonFiles) {
103
+ const templateContents = new Map();
104
+ for (const file of templateFiles) {
67
105
  projectFiles.set(file.path, await readOrNull(cwd, file.path));
68
- templateFiles.set(file.path, await readOrNull(template.root, file.path));
106
+ templateContents.set(file.path, await readOrNull(template.root, file.path));
69
107
  }
70
108
  let changes;
71
109
  try {
72
- changes = (0, template_sync_1.planTemplateSync)(projectFiles, templateFiles);
110
+ changes = (0, template_sync_1.planTemplateSync)(projectFiles, templateContents, templateFiles);
73
111
  }
74
112
  catch (error) {
75
113
  throw new errors_1.CliError(error.message);
76
114
  }
77
115
  if (changes.length === 0) {
78
116
  const suffix = scope ? ` (scope: ${scope})` : "";
79
- console.info((0, colorette_1.green)((0, colorette_1.bold)(`✓ Project skeleton is up to date with the template${suffix}.`)));
117
+ console.info((0, colorette_1.green)((0, colorette_1.bold)(`✓ Project template files are up to date with the template${suffix}.`)));
80
118
  return;
81
119
  }
82
120
  const actionable = changes.filter((c) => c.kind !== "missing-markers");
83
121
  for (const change of changes) {
84
122
  printChangeDiff(change);
85
123
  }
86
- console.info(`\n${actionable.length} skeleton file(s) to sync: ` +
124
+ console.info(`\n${actionable.length} template file(s) to sync: ` +
87
125
  actionable.map((c) => `${c.file.path} (${c.kind})`).join(", "));
88
126
  const writeCommand = scope ? `newbie update-template --write ${scope}` : "newbie update-template --write";
89
127
  if (options.check) {
90
- throw new errors_1.CliError(`${changes.length} skeleton file(s) drift from the template ` +
128
+ throw new errors_1.CliError(`${changes.length} template file(s) drift from the template ` +
91
129
  `(${actionable.length} auto-fixable). ` +
92
130
  `Run \`${writeCommand}\` to apply the template version.`);
93
131
  }
@@ -106,7 +144,7 @@ async function runUpdateTemplate(options) {
106
144
  console.info("[dry-run] no files were modified");
107
145
  }
108
146
  else {
109
- console.info((0, colorette_1.green)((0, colorette_1.bold)("\n✓ Skeleton files updated.")));
147
+ console.info((0, colorette_1.green)((0, colorette_1.bold)("\n✓ Template files updated.")));
110
148
  console.info("Review with `git diff`, then commit on a branch and open a PR.");
111
149
  }
112
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update-template.js","sourceRoot":"","sources":["../../src/commands/update-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-template.js","sourceRoot":"","sources":["../../src/commands/update-template.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,7 @@ export declare const ENV_PATH = ".env";
9
9
  export declare const ENV_EXAMPLE_PATH = ".env.example";
10
10
  export declare const NEST_CLI_JSON = "nest-cli.json";
11
11
  export declare const PACKAGE_JSON_PATH = "package.json";
12
+ export declare const DEPLOY_COMPOSE_MODULES = "deploy/compose.modules.yml";
13
+ export declare const DEPLOY_CADDYFILE_TMPL = "deploy/Caddyfile.tmpl";
12
14
  export declare const REGISTRY_MODULES_DIR = "packages/modules";
13
15
  export declare const ENV_TOOL_CONFIG_CANDIDATES: string[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ENV_TOOL_CONFIG_CANDIDATES = exports.REGISTRY_MODULES_DIR = exports.PACKAGE_JSON_PATH = exports.NEST_CLI_JSON = exports.ENV_EXAMPLE_PATH = exports.ENV_PATH = exports.PRISMA_SCHEMA_MODELS_DIR = exports.PRISMA_SCHEMA_MAIN = exports.MODULE_MANIFEST_FILE = exports.MODULES_CONFIG_TS = exports.MODULES_MODULE_TS = exports.MODULES_DIR = exports.MODULES_JSON = void 0;
3
+ exports.ENV_TOOL_CONFIG_CANDIDATES = exports.REGISTRY_MODULES_DIR = exports.DEPLOY_CADDYFILE_TMPL = exports.DEPLOY_COMPOSE_MODULES = exports.PACKAGE_JSON_PATH = exports.NEST_CLI_JSON = exports.ENV_EXAMPLE_PATH = exports.ENV_PATH = exports.PRISMA_SCHEMA_MODELS_DIR = exports.PRISMA_SCHEMA_MAIN = exports.MODULE_MANIFEST_FILE = exports.MODULES_CONFIG_TS = exports.MODULES_MODULE_TS = exports.MODULES_DIR = exports.MODULES_JSON = void 0;
4
4
  exports.MODULES_JSON = "modules.json";
5
5
  exports.MODULES_DIR = "src/modules";
6
6
  exports.MODULES_MODULE_TS = "src/modules/modules.module.ts";
@@ -12,6 +12,8 @@ exports.ENV_PATH = ".env";
12
12
  exports.ENV_EXAMPLE_PATH = ".env.example";
13
13
  exports.NEST_CLI_JSON = "nest-cli.json";
14
14
  exports.PACKAGE_JSON_PATH = "package.json";
15
+ exports.DEPLOY_COMPOSE_MODULES = "deploy/compose.modules.yml";
16
+ exports.DEPLOY_CADDYFILE_TMPL = "deploy/Caddyfile.tmpl";
15
17
  exports.REGISTRY_MODULES_DIR = "packages/modules";
16
18
  exports.ENV_TOOL_CONFIG_CANDIDATES = [".newbie/env.config.json", ".newbie-env-tool/.config/config.json"];
17
19
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":";;;AAOa,QAAA,YAAY,GAAG,cAAc,CAAC;AAE9B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AACpD,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AAGpD,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAE5C,QAAA,kBAAkB,GAAG,sBAAsB,CAAC;AAC5C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAE3C,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AAGnC,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAG1C,QAAA,0BAA0B,GAAG,CAAC,yBAAyB,EAAE,sCAAsC,CAAC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":";;;AAOa,QAAA,YAAY,GAAG,cAAc,CAAC;AAE9B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AACpD,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AAGpD,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAE5C,QAAA,kBAAkB,GAAG,sBAAsB,CAAC;AAC5C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAE3C,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AAGnC,QAAA,sBAAsB,GAAG,4BAA4B,CAAC;AAEtD,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAGhD,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAG1C,QAAA,0BAA0B,GAAG,CAAC,yBAAyB,EAAE,sCAAsC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function renderPublicNamespaceBody(keys: string[]): string;
2
+ export declare function spliceModulesBlock(content: string, body: string): string | null;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderPublicNamespaceBody = renderPublicNamespaceBody;
4
+ exports.spliceModulesBlock = spliceModulesBlock;
5
+ const env_file_1 = require("./env-file");
6
+ function renderPublicNamespaceBody(keys) {
7
+ return [...keys]
8
+ .sort(env_file_1.compareStrings)
9
+ .map((key) => `\thandle /${key}/* {\n\t\treverse_proxy backend:3000\n\t}\n`)
10
+ .join("\n");
11
+ }
12
+ function spliceModulesBlock(content, body) {
13
+ const startIndex = content.indexOf(env_file_1.MODULES_MARKER_START);
14
+ const endIndex = content.indexOf(env_file_1.MODULES_MARKER_END);
15
+ if (startIndex === -1 || endIndex === -1 || endIndex < startIndex)
16
+ return null;
17
+ const lineStart = content.lastIndexOf("\n", startIndex);
18
+ const blockStart = lineStart === -1 ? 0 : lineStart + 1;
19
+ const afterEnd = endIndex + env_file_1.MODULES_MARKER_END.length;
20
+ const block = `${env_file_1.MODULES_MARKER_START}\n${body}${env_file_1.MODULES_MARKER_END}\n`;
21
+ return `${content.slice(0, blockStart)}${block}${content[afterEnd] === "\n" ? content.slice(afterEnd + 1) : content.slice(afterEnd)}`;
22
+ }
23
+ //# sourceMappingURL=caddyfile-modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caddyfile-modules.js","sourceRoot":"","sources":["../../src/core/caddyfile-modules.ts"],"names":[],"mappings":";;AAkBA,8DAKC;AAUD,gDAYC;AAlCD,yCAAsF;AAOtF,SAAgB,yBAAyB,CAAC,IAAc;IACtD,OAAO,CAAC,GAAG,IAAI,CAAC;SACb,IAAI,CAAC,yBAAc,CAAC;SACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,GAAG,6CAA6C,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAUD,SAAgB,kBAAkB,CAAC,OAAe,EAAE,IAAY;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,+BAAoB,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,6BAAkB,CAAC,CAAC;IACrD,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,UAAU;QAAE,OAAO,IAAI,CAAC;IAE/E,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,QAAQ,GAAG,6BAAkB,CAAC,MAAM,CAAC;IACtD,MAAM,KAAK,GAAG,GAAG,+BAAoB,KAAK,IAAI,GAAG,6BAAkB,IAAI,CAAC;IACxE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,KAAK,GAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CACnF,EAAE,CAAC;AACL,CAAC"}
@@ -0,0 +1,30 @@
1
+ export interface ComposeHealthcheck {
2
+ test: string[];
3
+ interval: string;
4
+ timeout: string;
5
+ retries: number;
6
+ }
7
+ export interface ComposeServiceSpec {
8
+ image: string;
9
+ restart?: "unless-stopped" | "no";
10
+ command?: string[];
11
+ envFile?: boolean;
12
+ environment?: Record<string, string>;
13
+ volumes?: string[];
14
+ ulimits?: Record<string, {
15
+ soft: string;
16
+ hard: string;
17
+ }>;
18
+ healthcheck?: ComposeHealthcheck;
19
+ profiles?: string[];
20
+ dependsOn?: Record<string, {
21
+ condition: "service_healthy" | "service_completed_successfully";
22
+ }>;
23
+ }
24
+ export interface DatastoreDefinition {
25
+ service: ComposeServiceSpec | null;
26
+ backupEngine: "mongodb" | "redis" | "clickhouse" | null;
27
+ backupHelper?: ComposeServiceSpec;
28
+ }
29
+ export declare const DATASTORE_REGISTRY: Readonly<Record<string, DatastoreDefinition>>;
30
+ export declare function isRegisteredDatastore(key: string): boolean;