@metaobjectsdev/cli 1.0.13 → 1.1.1-rc.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.
Files changed (186) hide show
  1. package/README.md +32 -22
  2. package/dist/bin/meta.js +14 -2
  3. package/dist/bin/meta.js.map +1 -1
  4. package/dist/src/commands/docs.d.ts +1 -14
  5. package/dist/src/commands/docs.d.ts.map +1 -1
  6. package/dist/src/commands/docs.js +11 -835
  7. package/dist/src/commands/docs.js.map +1 -1
  8. package/dist/src/commands/eject.d.ts +24 -1
  9. package/dist/src/commands/eject.d.ts.map +1 -1
  10. package/dist/src/commands/eject.js +240 -69
  11. package/dist/src/commands/eject.js.map +1 -1
  12. package/dist/src/commands/gen.d.ts +7 -0
  13. package/dist/src/commands/gen.d.ts.map +1 -1
  14. package/dist/src/commands/gen.js +91 -21
  15. package/dist/src/commands/gen.js.map +1 -1
  16. package/dist/src/commands/generator.js +2 -2
  17. package/dist/src/commands/generator.js.map +1 -1
  18. package/dist/src/commands/init.d.ts +7 -0
  19. package/dist/src/commands/init.d.ts.map +1 -1
  20. package/dist/src/commands/init.js +71 -36
  21. package/dist/src/commands/init.js.map +1 -1
  22. package/dist/src/commands/migrate.d.ts +1 -1
  23. package/dist/src/commands/migrate.d.ts.map +1 -1
  24. package/dist/src/commands/migrate.js +224 -125
  25. package/dist/src/commands/migrate.js.map +1 -1
  26. package/dist/src/commands/types.d.ts.map +1 -1
  27. package/dist/src/commands/types.js +16 -2
  28. package/dist/src/commands/types.js.map +1 -1
  29. package/dist/src/commands/upgrade.d.ts.map +1 -1
  30. package/dist/src/commands/upgrade.js +4 -1
  31. package/dist/src/commands/upgrade.js.map +1 -1
  32. package/dist/src/commands/verify.d.ts.map +1 -1
  33. package/dist/src/commands/verify.js +189 -125
  34. package/dist/src/commands/verify.js.map +1 -1
  35. package/dist/src/index.d.ts.map +1 -1
  36. package/dist/src/index.js +59 -72
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/src/lib/agent-context-staleness.d.ts +8 -1
  39. package/dist/src/lib/agent-context-staleness.d.ts.map +1 -1
  40. package/dist/src/lib/agent-context-staleness.js +20 -5
  41. package/dist/src/lib/agent-context-staleness.js.map +1 -1
  42. package/dist/src/lib/agent-schema.d.ts +9 -0
  43. package/dist/src/lib/agent-schema.d.ts.map +1 -0
  44. package/dist/src/lib/agent-schema.js +61 -0
  45. package/dist/src/lib/agent-schema.js.map +1 -0
  46. package/dist/src/lib/allow.d.ts +6 -0
  47. package/dist/src/lib/allow.d.ts.map +1 -1
  48. package/dist/src/lib/allow.js +49 -5
  49. package/dist/src/lib/allow.js.map +1 -1
  50. package/dist/src/lib/anti-patterns.d.ts.map +1 -1
  51. package/dist/src/lib/anti-patterns.js +4 -2
  52. package/dist/src/lib/anti-patterns.js.map +1 -1
  53. package/dist/src/lib/args.d.ts +51 -10
  54. package/dist/src/lib/args.d.ts.map +1 -1
  55. package/dist/src/lib/args.js +44 -18
  56. package/dist/src/lib/args.js.map +1 -1
  57. package/dist/src/lib/catalog-listing.d.ts +21 -1
  58. package/dist/src/lib/catalog-listing.d.ts.map +1 -1
  59. package/dist/src/lib/catalog-listing.js +85 -16
  60. package/dist/src/lib/catalog-listing.js.map +1 -1
  61. package/dist/src/lib/catalog.d.ts +30 -0
  62. package/dist/src/lib/catalog.d.ts.map +1 -1
  63. package/dist/src/lib/catalog.js +40 -5
  64. package/dist/src/lib/catalog.js.map +1 -1
  65. package/dist/src/lib/codegen-drift.d.ts +31 -2
  66. package/dist/src/lib/codegen-drift.d.ts.map +1 -1
  67. package/dist/src/lib/codegen-drift.js +109 -4
  68. package/dist/src/lib/codegen-drift.js.map +1 -1
  69. package/dist/src/lib/collection-load-options.d.ts +1 -1
  70. package/dist/src/lib/collection-load-options.d.ts.map +1 -1
  71. package/dist/src/lib/collection-load-options.js +1 -0
  72. package/dist/src/lib/collection-load-options.js.map +1 -1
  73. package/dist/src/lib/config.d.ts +4 -2
  74. package/dist/src/lib/config.d.ts.map +1 -1
  75. package/dist/src/lib/config.js +4 -2
  76. package/dist/src/lib/config.js.map +1 -1
  77. package/dist/src/lib/decimal-precision-advisory.d.ts +10 -0
  78. package/dist/src/lib/decimal-precision-advisory.d.ts.map +1 -0
  79. package/dist/src/lib/decimal-precision-advisory.js +34 -0
  80. package/dist/src/lib/decimal-precision-advisory.js.map +1 -0
  81. package/dist/src/lib/deprecation-lint.d.ts.map +1 -1
  82. package/dist/src/lib/deprecation-lint.js +17 -26
  83. package/dist/src/lib/deprecation-lint.js.map +1 -1
  84. package/dist/src/lib/docs-removed.d.ts +13 -0
  85. package/dist/src/lib/docs-removed.d.ts.map +1 -0
  86. package/dist/src/lib/docs-removed.js +31 -0
  87. package/dist/src/lib/docs-removed.js.map +1 -0
  88. package/dist/src/lib/docs-site-eject.d.ts +13 -0
  89. package/dist/src/lib/docs-site-eject.d.ts.map +1 -0
  90. package/dist/src/lib/docs-site-eject.js +40 -0
  91. package/dist/src/lib/docs-site-eject.js.map +1 -0
  92. package/dist/src/lib/field-lint.d.ts +25 -0
  93. package/dist/src/lib/field-lint.d.ts.map +1 -0
  94. package/dist/src/lib/field-lint.js +102 -0
  95. package/dist/src/lib/field-lint.js.map +1 -0
  96. package/dist/src/lib/fk-index-advisory.d.ts +1 -2
  97. package/dist/src/lib/fk-index-advisory.d.ts.map +1 -1
  98. package/dist/src/lib/fk-index-advisory.js +4 -3
  99. package/dist/src/lib/fk-index-advisory.js.map +1 -1
  100. package/dist/src/lib/format.d.ts +7 -0
  101. package/dist/src/lib/format.d.ts.map +1 -1
  102. package/dist/src/lib/format.js +13 -0
  103. package/dist/src/lib/format.js.map +1 -1
  104. package/dist/src/lib/gen-migrate-advice.d.ts +3 -1
  105. package/dist/src/lib/gen-migrate-advice.d.ts.map +1 -1
  106. package/dist/src/lib/gen-migrate-advice.js +3 -4
  107. package/dist/src/lib/gen-migrate-advice.js.map +1 -1
  108. package/dist/src/lib/install-set.d.ts +10 -1
  109. package/dist/src/lib/install-set.d.ts.map +1 -1
  110. package/dist/src/lib/install-set.js +20 -2
  111. package/dist/src/lib/install-set.js.map +1 -1
  112. package/dist/src/lib/load-metaobjects-config.d.ts +13 -11
  113. package/dist/src/lib/load-metaobjects-config.d.ts.map +1 -1
  114. package/dist/src/lib/load-metaobjects-config.js +53 -75
  115. package/dist/src/lib/load-metaobjects-config.js.map +1 -1
  116. package/dist/src/lib/manifest-ignored-check.d.ts +4 -1
  117. package/dist/src/lib/manifest-ignored-check.d.ts.map +1 -1
  118. package/dist/src/lib/manifest-ignored-check.js +9 -4
  119. package/dist/src/lib/manifest-ignored-check.js.map +1 -1
  120. package/dist/src/lib/output.d.ts +15 -0
  121. package/dist/src/lib/output.d.ts.map +1 -1
  122. package/dist/src/lib/output.js +9 -1
  123. package/dist/src/lib/output.js.map +1 -1
  124. package/dist/src/lib/payload-field-tree.d.ts +4 -5
  125. package/dist/src/lib/payload-field-tree.d.ts.map +1 -1
  126. package/dist/src/lib/payload-field-tree.js +16 -31
  127. package/dist/src/lib/payload-field-tree.js.map +1 -1
  128. package/dist/src/lib/requirement-check.d.ts +7 -0
  129. package/dist/src/lib/requirement-check.d.ts.map +1 -1
  130. package/dist/src/lib/requirement-check.js +14 -7
  131. package/dist/src/lib/requirement-check.js.map +1 -1
  132. package/dist/src/lib/strict-args.d.ts +28 -0
  133. package/dist/src/lib/strict-args.d.ts.map +1 -0
  134. package/dist/src/lib/strict-args.js +49 -0
  135. package/dist/src/lib/strict-args.js.map +1 -0
  136. package/dist/src/lib/template-eject.d.ts +108 -0
  137. package/dist/src/lib/template-eject.d.ts.map +1 -0
  138. package/dist/src/lib/template-eject.js +438 -0
  139. package/dist/src/lib/template-eject.js.map +1 -0
  140. package/dist/src/lib/version.d.ts +9 -0
  141. package/dist/src/lib/version.d.ts.map +1 -1
  142. package/dist/src/lib/version.js +15 -0
  143. package/dist/src/lib/version.js.map +1 -1
  144. package/package.json +10 -10
  145. package/src/commands/docs.ts +11 -952
  146. package/src/commands/eject.ts +318 -73
  147. package/src/commands/gen.ts +94 -22
  148. package/src/commands/generator.ts +2 -2
  149. package/src/commands/init.ts +80 -38
  150. package/src/commands/migrate.ts +248 -117
  151. package/src/commands/types.ts +18 -2
  152. package/src/commands/upgrade.ts +5 -1
  153. package/src/commands/verify.ts +229 -136
  154. package/src/index.ts +59 -72
  155. package/src/lib/agent-context-staleness.ts +20 -5
  156. package/src/lib/agent-schema.ts +74 -0
  157. package/src/lib/allow.ts +57 -6
  158. package/src/lib/anti-patterns.ts +4 -2
  159. package/src/lib/args.ts +83 -28
  160. package/src/lib/catalog-listing.ts +105 -25
  161. package/src/lib/catalog.ts +51 -6
  162. package/src/lib/codegen-drift.ts +138 -3
  163. package/src/lib/collection-load-options.ts +2 -1
  164. package/src/lib/config.ts +5 -3
  165. package/src/lib/decimal-precision-advisory.ts +50 -0
  166. package/src/lib/deprecation-lint.ts +16 -24
  167. package/src/lib/docs-removed.ts +41 -0
  168. package/src/lib/docs-site-eject.ts +48 -0
  169. package/src/lib/field-lint.ts +122 -0
  170. package/src/lib/fk-index-advisory.ts +4 -4
  171. package/src/lib/format.ts +12 -0
  172. package/src/lib/gen-migrate-advice.ts +6 -4
  173. package/src/lib/install-set.ts +20 -1
  174. package/src/lib/load-metaobjects-config.ts +57 -78
  175. package/src/lib/manifest-ignored-check.ts +14 -10
  176. package/src/lib/output.ts +18 -1
  177. package/src/lib/payload-field-tree.ts +18 -35
  178. package/src/lib/requirement-check.ts +21 -6
  179. package/src/lib/strict-args.ts +52 -0
  180. package/src/lib/template-eject.ts +526 -0
  181. package/src/lib/version.ts +18 -0
  182. package/dist/src/lib/docs-drift.d.ts +0 -42
  183. package/dist/src/lib/docs-drift.d.ts.map +0 -1
  184. package/dist/src/lib/docs-drift.js +0 -264
  185. package/dist/src/lib/docs-drift.js.map +0 -1
  186. package/src/lib/docs-drift.ts +0 -312
@@ -1,8 +1,9 @@
1
1
  // FR-040 §4.2(a) — `meta eject <generator>...` takes ownership of any reference-template
2
2
  // generator, in any package, at any time after `meta init`.
3
3
  //
4
- // Under opt-in codegen this is THE copy door: `meta init` scaffolds the layout and an
5
- // empty selection, so every generator an adopter runs arrives through here. It takes
4
+ // This is the copy door, for a generator an adopter wants to CHANGE: `meta init`
5
+ // scaffolds the layout and an empty selection, and a generator run as shipped is
6
+ // imported from its package without coming through here (ADR-0034 Amendment 5). It takes
6
7
  // MANY names, because a real selection is several — choosing a client tier is
7
8
  // `form hooks grid` — and three separate invocations produce three separate install
8
9
  // lines for the same package. The consolidated install set is the point.
@@ -14,6 +15,7 @@
14
15
  // config-array edit has regressed across at least four filed issues). The primary
15
16
  // consumer performs two file edits and one install trivially when told exactly what
16
17
  // they are. `meta gen` plus `tsc` is the audit.
18
+ import { existsSync } from "node:fs";
17
19
  import { mkdir, writeFile, stat, readFile } from "node:fs/promises";
18
20
  import { join } from "node:path";
19
21
  import { cliVersion } from "../lib/version.js";
@@ -24,13 +26,15 @@ import { parseEjectArgs } from "../lib/args.js";
24
26
  import { log } from "../lib/log.js";
25
27
  import { declaredDependencyNames, readPackageManifest } from "../lib/package-manifest.js";
26
28
  import { compareOwnedCopy } from "../lib/owned-copy.js";
27
- import { composeCatalog, packageOf } from "../lib/catalog.js";
28
- import { installSetFor } from "../lib/install-set.js";
29
+ import { composeCatalog, CORE_CODEGEN_PACKAGE, factoryModuleOf, packageOf } from "../lib/catalog.js";
30
+ import { dependencyRangesOf, installSetFor } from "../lib/install-set.js";
29
31
  import { ejectRuntime, ejectsRuntime, runtimeCopyStatus, runtimeDiffCommand, runtimeInstall, } from "../lib/runtime-eject.js";
32
+ import { closureOf, ejectTemplates, OWNED_TEMPLATES_DIR, packagedTemplates, predatesTemplateHandOver, templateCopyStatus, templateDiffCommand, } from "../lib/template-eject.js";
30
33
  import { HTTP_RUNTIME_PACKAGE, OWNED_RUNTIME_DIR } from "@metaobjectsdev/codegen-ts";
31
34
  import { emitStructured } from "../lib/format.js";
32
35
  import { ejectLibrary, ejectableLibraryNames, isLibraryName, libraryStaleness, } from "../lib/library-eject.js";
33
36
  import { describeError } from "../lib/error-text.js";
37
+ import { DOCS_SITE_NAME, ejectDocsSite } from "../lib/docs-site-eject.js";
34
38
  // Mirrors `OWNED_GENERATORS_DIR` in init.ts's `writeOwnedGenerators` — same directory,
35
39
  // same never-clobber-without-consent contract. Kept as its own local constant rather
36
40
  // than shared: eject is a standalone operation on ANY name, not a byproduct of init,
@@ -46,7 +50,6 @@ const OWNED_GENERATORS_DIR = "codegen/generators";
46
50
  // runtime by selecting this entry via `names.includes(name)`. Reading from the root
47
51
  // deletes that machinery without weakening anything: membership is still checked, once,
48
52
  // where the untrusted value enters.
49
- const CORE_CODEGEN_PACKAGE = "@metaobjectsdev/codegen-ts";
50
53
  const SOURCES = [
51
54
  {
52
55
  packageName: CORE_CODEGEN_PACKAGE,
@@ -91,6 +94,17 @@ function extractExportName(importLine, name) {
91
94
  }
92
95
  return match[1];
93
96
  }
97
+ // The CALL a template's header documents, when it is not the bare `<export>()`. A factory
98
+ // that cannot be called without options says so where it says how to import it
99
+ // (`// generators: [sharedModelFile({ name, include })]`). Read from the header for the
100
+ // reason the import line is: the template is the one thing that knows, and the catalog
101
+ // deliberately does not derive a call from an options summary.
102
+ const HEADER_ENTRY_RE = /^\/\/\s+generators: \[(\w+\(.*\))\],?\s*$/m;
103
+ /** The call to wire: the header's, when it documents one for this template's own export. */
104
+ function extractEntry(templateSource, exportName) {
105
+ const call = HEADER_ENTRY_RE.exec(templateSource)?.[1];
106
+ return call !== undefined && call.startsWith(`${exportName}(`) ? call : `${exportName}()`;
107
+ }
94
108
  function extractImportLine(templateSource, name) {
95
109
  const match = HEADER_IMPORT_RE.exec(templateSource);
96
110
  if (!match?.[1]) {
@@ -139,8 +153,10 @@ function requiredPackages(templateSource) {
139
153
  * missing package and the version to match is the useful half; silently rewriting
140
154
  * someone's manifest is not.
141
155
  */
142
- export async function dependencyNotesForTemplate(cwd, templateSource) {
143
- const required = requiredPackages(templateSource);
156
+ export async function dependencyNotesForTemplate(cwd, templateSource,
157
+ /** Packages the template modules copied beside the generator import, as well. */
158
+ alsoImported = []) {
159
+ const required = [...new Set([...requiredPackages(templateSource), ...alsoImported.filter((p) => p.startsWith("@metaobjectsdev/"))])].sort();
144
160
  if (required.length === 0)
145
161
  return [];
146
162
  const pkg = readPackageManifest(cwd);
@@ -164,19 +180,23 @@ export async function ejectGenerator(opts) {
164
180
  throw new Error(`unknown generator "${opts.name}". Ejectable generators: ${ejectableNames().join(", ")}. ` +
165
181
  "Run `meta eject --list` to see them grouped by package.");
166
182
  }
167
- const templateSource = await readFile(join(source.root(), `${opts.name}.ts`), "utf8");
183
+ // What is written is the reference with its module specifiers pointed at the project:
184
+ // its template modules are copied beside it (ADR-0034 Amendment 8).
185
+ const closure = closureOf(opts.name);
186
+ const templateSource = closure.generator.content;
168
187
  const importLine = extractImportLine(templateSource, opts.name);
169
188
  const exportName = extractExportName(importLine, opts.name);
170
189
  const rel = `${OWNED_GENERATORS_DIR}/${opts.name}.ts`;
171
190
  const abs = join(opts.cwd, rel);
172
- const notes = await dependencyNotesForTemplate(opts.cwd, templateSource);
191
+ const notes = await dependencyNotesForTemplate(opts.cwd, templateSource, closure.packages);
173
192
  const common = {
174
193
  path: rel,
175
194
  importLine,
176
195
  exportName,
196
+ entry: extractEntry(templateSource, exportName),
177
197
  packageName: source.packageName,
178
198
  dependencyNotes: notes,
179
- templatePackages: requiredPackages(templateSource),
199
+ templatePackages: closure.packages.filter((p) => p.startsWith("@metaobjectsdev/")),
180
200
  };
181
201
  const existing = (await fileExists(abs)) ? await readFile(abs, "utf8") : undefined;
182
202
  const comparison = existing === undefined ? undefined : await compareOwnedCopy(existing, templateSource);
@@ -190,8 +210,15 @@ export async function ejectGenerator(opts) {
190
210
  const runtime = ejectsRuntime(opts.name) && !keptCopyImportsPackage
191
211
  ? await ejectRuntime(opts.cwd, [opts.name], opts.force === true)
192
212
  : undefined;
213
+ // The template modules follow the same rule, for the same reason: a kept copy that predates
214
+ // the hand-over still imports the emit code from the package, so copying the modules beside
215
+ // it would be dead code in the project.
216
+ const keptCopyPredatesTemplates = existing !== undefined && !opts.force && predatesTemplateHandOver(existing, closure);
217
+ const templates = closure.templates.length > 0 && !keptCopyPredatesTemplates
218
+ ? await ejectTemplates(opts.cwd, [closure], opts.force === true)
219
+ : undefined;
193
220
  if (!opts.force && existing !== undefined) {
194
- return { ...common, status: "preserved", comparison, runtime };
221
+ return { ...common, status: "preserved", comparison, runtime, templates };
195
222
  }
196
223
  await mkdir(join(opts.cwd, OWNED_GENERATORS_DIR), { recursive: true });
197
224
  await writeFile(abs, templateSource, "utf8");
@@ -200,6 +227,7 @@ export async function ejectGenerator(opts) {
200
227
  status: existing === undefined ? "created" : "replaced",
201
228
  comparison,
202
229
  runtime,
230
+ templates,
203
231
  };
204
232
  }
205
233
  /**
@@ -240,47 +268,137 @@ export async function runtimeCopyLines(cwd) {
240
268
  return lines;
241
269
  }
242
270
  /**
243
- * `--list` doubles as the staleness report for what this project ALREADY owns.
271
+ * The owned template modules under `codegen/templates/`, file by file, against what the
272
+ * installed packages would write there today. Shared by `meta eject --list` and
273
+ * `meta gen --list`. Empty when the project owns no template copy.
244
274
  *
245
- * A listing of names you could eject is the less useful half. The half nobody had is
246
- * "which of the copies I own have fallen behind" — the condition that let a reference
247
- * app run generators ~five minor lines old, carrying three retired patterns, with every
248
- * gate green. Marking each owned copy `identical` / `differs` makes it a one-command
249
- * answer instead of a diff nobody thinks to run.
275
+ * Only the import lines of a copy differ from the package by design, so the comparison is
276
+ * the one the generator copies get: `identical` says an upgrade can be taken by re-copying
277
+ * (`meta eject <name> --force`); `DIFFERS` says the copy is yours in a way the package is
278
+ * not, and names the diff that tells whose change it is.
250
279
  */
251
- async function listOutput(cwd) {
252
- const lines = [];
253
- lines.push("Ejectable generators (copy any of these into codegen/generators/ and own it):");
280
+ export async function templateCopyLines(cwd) {
281
+ if (!existsSync(join(cwd, OWNED_TEMPLATES_DIR)))
282
+ return [];
283
+ const rows = await templateCopyStatus(cwd, packagedTemplates());
284
+ if (rows.length === 0)
285
+ return [];
286
+ const lines = [
287
+ `Template source this project owns (${OWNED_TEMPLATES_DIR}/), against the installed codegen packages:`,
288
+ ];
289
+ const differing = [];
290
+ for (const r of rows) {
291
+ if (r.verdict === "identical")
292
+ lines.push(` ${r.path} [identical to the package]`);
293
+ else if (r.verdict === "reformatted")
294
+ lines.push(` ${r.path} [same content as the package, your formatting]`);
295
+ else if (r.verdict === "not-in-package")
296
+ lines.push(` ${r.path} [not in the package — yours, or removed upstream]`);
297
+ else {
298
+ const diff = templateDiffCommand(r);
299
+ if (diff !== undefined)
300
+ differing.push(diff);
301
+ lines.push(` ${r.path} [DIFFERS: ${r.referenceOnly} line(s) only in the package, ${r.localOnly} line(s) only in yours]`);
302
+ }
303
+ }
304
+ if (differing.length > 0) {
305
+ lines.push(" See the difference (upstream fix, or your own?) before taking an upgrade. " +
306
+ "Only the import lines of a copy differ from the package by design:");
307
+ for (const d of differing)
308
+ lines.push(` ${d}`);
309
+ }
254
310
  lines.push("");
255
- let anyStale = false;
311
+ return lines;
312
+ }
313
+ async function generatorListGroups(cwd) {
314
+ const groups = [];
315
+ // Every renderer the project holds, against the package: attributed to a generator by what
316
+ // that generator imports, so a renderer another generator owns never flags this one.
317
+ const templateStatus = await templateCopyStatus(cwd, packagedTemplates());
256
318
  for (const source of SOURCES) {
257
- lines.push(`${source.packageName}:`);
319
+ const rows = [];
320
+ groups.push({ packageName: source.packageName, rows });
258
321
  for (const name of source.names) {
322
+ const row = { name, package: source.packageName, status: "available", behind: 0, own: 0 };
323
+ rows.push(row);
259
324
  const abs = join(cwd, OWNED_GENERATORS_DIR, `${name}.ts`);
260
- if (!(await fileExists(abs))) {
261
- lines.push(` ${name}`);
325
+ if (!(await fileExists(abs)))
262
326
  continue;
263
- }
264
327
  let ref;
265
328
  try {
266
- ref = await readFile(join(source.root(), `${name}.ts`), "utf8");
329
+ ref = closureOf(name).generator.content;
267
330
  }
268
331
  catch {
269
- lines.push(` ${name} [owned]`);
332
+ row.status = "owned";
270
333
  continue;
271
334
  }
272
- const owned = await readFile(abs, "utf8");
273
- const cmp = await compareOwnedCopy(owned, ref);
274
- if (cmp.verdict === "identical") {
275
- lines.push(` ${name} [owned — identical to the reference]`);
335
+ const cmp = await compareOwnedCopy(await readFile(abs, "utf8"), ref);
336
+ if (cmp.verdict === "identical" || cmp.verdict === "reformatted") {
337
+ row.status = cmp.verdict;
276
338
  }
277
- else if (cmp.verdict === "reformatted") {
278
- lines.push(` ${name} [owned — same content as the reference, your formatting]`);
339
+ else {
340
+ row.status = "differs";
341
+ row.behind = cmp.referenceOnly;
342
+ row.own = cmp.localOnly;
343
+ }
344
+ const reached = new Set(closureOf(name).templates.map((f) => f.path));
345
+ const renderers = [];
346
+ for (const t of templateStatus) {
347
+ if (!reached.has(t.path) || t.verdict === "not-in-package")
348
+ continue;
349
+ renderers.push({
350
+ path: t.path,
351
+ status: t.verdict === "identical" || t.verdict === "reformatted" ? t.verdict : "differs",
352
+ behind: t.referenceOnly,
353
+ own: t.localOnly,
354
+ });
279
355
  }
356
+ if (renderers.length > 0)
357
+ row.templates = renderers;
358
+ if (renderers.some((r) => r.status === "differs"))
359
+ row.status = "differs";
360
+ }
361
+ }
362
+ return groups;
363
+ }
364
+ /** `--list` as one structured document: the generators and the shipped libraries. */
365
+ async function listData(cwd) {
366
+ const generators = (await generatorListGroups(cwd)).flatMap((g) => g.rows);
367
+ return {
368
+ generators,
369
+ libraries: ejectableLibraryNames(),
370
+ help: [
371
+ "run `meta eject <name>...` to copy a generator into codegen/generators/ and own it",
372
+ "`meta eject --list --format text` also reports owned runtime copies and ejected-library drift",
373
+ ],
374
+ };
375
+ }
376
+ async function listOutput(cwd) {
377
+ const lines = [];
378
+ lines.push("Ejectable generators (copy any of these into codegen/generators/ and own it):");
379
+ lines.push("");
380
+ const groups = await generatorListGroups(cwd);
381
+ const anyStale = groups.some((g) => g.rows.some((r) => r.status === "differs"));
382
+ const generatorFileDiffers = (r) => r.behind > 0 || r.own > 0;
383
+ for (const group of groups) {
384
+ lines.push(`${group.packageName}:`);
385
+ for (const r of group.rows) {
386
+ if (r.status === "available")
387
+ lines.push(` ${r.name}`);
388
+ else if (r.status === "owned")
389
+ lines.push(` ${r.name} [owned]`);
390
+ else if (r.status === "identical")
391
+ lines.push(` ${r.name} [owned — identical to the reference]`);
392
+ else if (r.status === "reformatted")
393
+ lines.push(` ${r.name} [owned — same content as the reference, your formatting]`);
280
394
  else {
281
- anyStale = true;
282
- lines.push(` ${name} [owned — DIFFERS: ${cmp.referenceOnly} line(s) behind, ` +
283
- `${cmp.localOnly} line(s) of your own]`);
395
+ const differing = (r.templates ?? []).filter((t) => t.status === "differs");
396
+ lines.push(generatorFileDiffers(r)
397
+ ? ` ${r.name} [owned — DIFFERS: ${r.behind} line(s) behind, ${r.own} line(s) of your own]`
398
+ : ` ${r.name} [owned — DIFFERS: generator identical, ${differing.length} renderer(s) differ]`);
399
+ for (const t of differing) {
400
+ lines.push(` renderer ${t.path} [DIFFERS: ${t.behind} line(s) behind, ${t.own} line(s) of your own]`);
401
+ }
284
402
  }
285
403
  }
286
404
  lines.push("");
@@ -294,6 +412,12 @@ async function listOutput(cwd) {
294
412
  lines.push("");
295
413
  }
296
414
  lines.push(...(await runtimeCopyLines(cwd)));
415
+ lines.push(...(await templateCopyLines(cwd)));
416
+ // The docs site's theme: not a generator copy (its builder stays packaged), but a name
417
+ // `meta eject` takes all the same.
418
+ lines.push("The docs site's theme (its templates and assets, into codegen/docs-site/):");
419
+ lines.push(` ${DOCS_SITE_NAME}`);
420
+ lines.push("");
297
421
  // FR-043 — the shipped libraries, and how far this project's copies have drifted.
298
422
  lines.push("Shipped libraries (copy one into your own sources and own it):");
299
423
  for (const name of ejectableLibraryNames())
@@ -329,6 +453,15 @@ async function listOutput(cwd) {
329
453
  lines.push("Run: meta eject <name>");
330
454
  return lines.join("\n");
331
455
  }
456
+ /** The text report for `meta eject docs-site`. */
457
+ function reportDocsSite(files) {
458
+ const written = files.filter((f) => f.status !== "preserved").length;
459
+ log.info(`Ejected the docs-site theme -> codegen/docs-site/: ${written} file(s) written, ` +
460
+ `${files.length - written} already there and kept (--force replaces them).`);
461
+ log.info(" docsSiteFile() reads these in place of the bundled templates and assets; edit them to own " +
462
+ "the site's look. The site builder stays in the package. Wire the generator, if you have " +
463
+ "not: `docsSiteFile()` in `generators`, with a `docs` target.");
464
+ }
332
465
  /** The text report for one ejected library. */
333
466
  function reportLibrary(result) {
334
467
  const created = result.files.filter((f) => f.status !== "preserved");
@@ -366,18 +499,12 @@ function reportLibrary(result) {
366
499
  * already-copied half as "preserved" and the adopter cannot tell what happened.
367
500
  * Returns the unknown names, or an empty array.
368
501
  */
369
- /** Where a package-only generator's factory is imported from. The core package serves
370
- * its generator factories from the `/generators` subpath; the UI packages from the root. */
371
- function packageFactoryPath(name) {
372
- const pkg = packageOf(name) ?? "";
373
- return pkg === CORE_CODEGEN_PACKAGE ? `${pkg}/generators` : pkg;
374
- }
375
502
  function unknownNames(names) {
376
- return names.filter((n) => resolveSource(n) === undefined && !isLibraryName(n));
503
+ return names.filter((n) => resolveSource(n) === undefined && !isLibraryName(n) && n !== DOCS_SITE_NAME);
377
504
  }
378
505
  /** Print the per-name text report — every branch below predates this command taking
379
506
  * more than one name, and each was written against a real incident. */
380
- function reportOne(result, name) {
507
+ function reportOne(result, name, wiring) {
381
508
  if (result.status === "preserved") {
382
509
  // "already exists — left untouched" was the whole message, and it answered the
383
510
  // question nobody has. What an owner needs to know is whether their copy still
@@ -404,6 +531,7 @@ function reportOne(result, name) {
404
531
  log.info(" That difference is either YOUR customization or upstream having moved on. " +
405
532
  "See which, before deciding:");
406
533
  log.info(` diff -u node_modules/${result.packageName}/src/reference/${name}.ts ${result.path}`);
534
+ log.info(" (A copy differs from the reference in its import lines by design: they point at your project.)");
407
535
  log.info(" To take upstream changes AND keep your customization, three-way merge them — " +
408
536
  "`git merge-file --diff3 <your copy> <the reference you ejected from> <the reference above>`. " +
409
537
  "`--force` does NOT merge: it replaces the file and your customization with it.");
@@ -423,28 +551,51 @@ function reportOne(result, name) {
423
551
  else {
424
552
  log.info(`Ejected "${name}" -> ${result.path}. You own it now (ADR-0034 scaffold-and-own).`);
425
553
  }
426
- // REPLACE, never "paste". A generator reaches `generators: [...]` under ONE binding,
427
- // so a reader told to "paste" gets a duplicate identifier at best — and at worst
428
- // deletes nothing, keeps `formFile()` in the array bound to the PACKAGE import, and
429
- // silently runs the packaged generator while editing the ejected file. That failure
430
- // is invisible and is the exact one ejecting exists to prevent.
431
- //
432
- // But eject reads no config, so it cannot know WHICH of the three states this project
433
- // is in, and stating one of them as fact is wrong in the other two. Name the goal,
434
- // then the three branches; the reader knows which one they are looking at.
435
- log.info(`In metaobjects.config.ts, "${result.exportName}" must resolve to this file:`);
436
- log.info(` ${result.importLine}`);
437
- log.info(` - If it is imported from "${result.packageName}", REPLACE that import with the ` +
438
- "line above. Adding a second one leaves `generators` bound to the PACKAGED " +
439
- "generator, and your edits to this file do nothing.");
440
- log.info(" - If it is already imported from ./codegen/generators/, it points here already " +
441
- "— nothing to change.");
442
- log.info(` - If ${result.exportName}() is not in \`generators\` yet, add the import above ` +
443
- "AND the entry.");
554
+ {
555
+ // REPLACE, never "paste". A generator reaches `generators: [...]` under ONE binding,
556
+ // so a reader told to "paste" gets a duplicate identifier at best — and at worst
557
+ // deletes nothing, keeps `formFile()` in the array bound to the PACKAGE import, and
558
+ // silently runs the packaged generator while editing the ejected file. That failure
559
+ // is invisible and is the exact one ejecting exists to prevent.
560
+ //
561
+ // But eject reads no config, so it cannot know WHICH of the three states this project
562
+ // is in, and stating one of them as fact is wrong in the other two. Name the goal,
563
+ // then the three branches; the reader knows which one they are looking at.
564
+ log.info(`In metaobjects.config.ts, "${result.exportName}" must resolve to this file:`);
565
+ log.info(` ${result.importLine}`);
566
+ log.info(` - If it is imported from "${factoryModuleOf(name) ?? result.packageName}", REPLACE that import with the ` +
567
+ "line above. Adding a second one leaves `generators` bound to the PACKAGED " +
568
+ "generator, and your edits to this file do nothing.");
569
+ log.info(" - If it is already imported from ./codegen/generators/, it points here already " +
570
+ "— nothing to change.");
571
+ log.info(` - If ${wiring.entry} is not in \`generators\` yet, add the import above ` +
572
+ "AND the entry.");
573
+ }
444
574
  for (const line of result.dependencyNotes)
445
575
  log.info(line);
446
576
  if (result.runtime !== undefined && result.runtime.files.length > 0)
447
577
  reportRuntime(result.runtime.files);
578
+ if (result.templates !== undefined && result.templates.files.length > 0)
579
+ reportTemplates(result.templates.files);
580
+ }
581
+ /** What the template copy handed over, and how the owned generator reaches it. */
582
+ function reportTemplates(files) {
583
+ const written = files.filter((f) => f.status !== "preserved");
584
+ // A kept file that already matches the package is not news (ejecting `entity queries` copies
585
+ // the shared validators once, then finds them) — only a kept file that differs is.
586
+ const kept = files.filter((f) => f.status === "preserved" && f.comparison?.verdict !== "identical");
587
+ log.info(`The code this generator calls to write its output is yours too: its template modules are in ` +
588
+ `${OWNED_TEMPLATES_DIR}/, not in the codegen package. What stays in the package is the engine ` +
589
+ "(the generator base, the model walks, the naming and type-mapping tables).");
590
+ if (written.length > 0) {
591
+ log.info(` Copied ${written.length} file(s) into ${OWNED_TEMPLATES_DIR}/ (from the installed package; only their import lines differ).`);
592
+ }
593
+ const keptDiffering = kept.filter((f) => f.comparison?.verdict === "differs");
594
+ if (kept.length > 0) {
595
+ log.info(` ${kept.length} file(s) were already there and were left untouched` +
596
+ (keptDiffering.length > 0 ? `, ${keptDiffering.length} of them differing from the package` : "") +
597
+ " (--force replaces them). `meta eject --list` compares each one.");
598
+ }
448
599
  }
449
600
  /** What the adapter copy handed over, and how the emitted code reaches it. */
450
601
  function reportRuntime(files) {
@@ -475,7 +626,10 @@ export async function ejectCommand(args, cwd, fmt = "text") {
475
626
  return 2;
476
627
  }
477
628
  if (flags.list) {
478
- log.info(await listOutput(cwd));
629
+ if (fmt === "text")
630
+ log.info(await listOutput(cwd));
631
+ else
632
+ emitStructured(await listData(cwd), fmt);
479
633
  return 0;
480
634
  }
481
635
  if (flags.names.length === 0) {
@@ -491,7 +645,7 @@ export async function ejectCommand(args, cwd, fmt = "text") {
491
645
  const packageOnly = unmatched.filter((n) => packageOf(n) !== undefined);
492
646
  const unknown = unmatched.filter((n) => packageOf(n) === undefined);
493
647
  if (packageOnly.length > 0) {
494
- log.error(`package-only generator(s): ${packageOnly.map((n) => `${n} (${packageFactoryPath(n)})`).join(", ")}. ` +
648
+ log.error(`package-only generator(s): ${packageOnly.map((n) => `${n} (${factoryModuleOf(n) ?? ""})`).join(", ")}. ` +
495
649
  "No reference template ships for them, so they cannot be ejected: import the factory " +
496
650
  "from the package named beside each one and wire it in `generators: [...]`. " +
497
651
  "Nothing was ejected.");
@@ -508,11 +662,21 @@ export async function ejectCommand(args, cwd, fmt = "text") {
508
662
  const rows = [];
509
663
  const libraries = [];
510
664
  const templatePackages = new Set();
665
+ // Packages OUTSIDE @metaobjectsdev that the copied template modules import (a Markdown/TOON
666
+ // writer, say): read from the codegen package that ships them, never restated here.
667
+ const templateThirdParty = new Map();
511
668
  // ADR-0034 Amendment 3: the generators whose adapter source was copied, and what it imports.
512
669
  const runtimeGenerators = new Set();
513
670
  const runtimePackages = new Set();
671
+ let docsSite;
514
672
  try {
515
673
  for (const name of flags.names) {
674
+ if (name === DOCS_SITE_NAME) {
675
+ docsSite = await ejectDocsSite(cwd, flags.force);
676
+ if (fmt === "text")
677
+ reportDocsSite(docsSite);
678
+ continue;
679
+ }
516
680
  if (isLibraryName(name)) {
517
681
  const lib = await ejectLibrary({ cwd, name, force: flags.force });
518
682
  libraries.push(lib);
@@ -523,21 +687,27 @@ export async function ejectCommand(args, cwd, fmt = "text") {
523
687
  const result = await ejectGenerator({ cwd, name, force: flags.force });
524
688
  for (const p of result.templatePackages)
525
689
  templatePackages.add(p);
690
+ for (const p of closureOf(name).packages.filter((q) => !q.startsWith("@metaobjectsdev/"))) {
691
+ templateThirdParty.set(p, dependencyRangesOf(CORE_CODEGEN_PACKAGE)[p]);
692
+ }
526
693
  if (result.runtime !== undefined) {
527
694
  runtimeGenerators.add(name);
528
695
  for (const p of result.runtime.packages)
529
696
  runtimePackages.add(p);
530
697
  }
698
+ const catalogEntry = catalog[name];
699
+ const wiring = { entry: result.entry };
531
700
  rows.push({
532
701
  name,
533
702
  path: result.path,
534
703
  status: result.status,
535
- wire: { import: result.importLine, entry: `${result.exportName}()` },
536
- requires: catalog[name]?.requires ?? [],
704
+ wire: { import: result.importLine, entry: wiring.entry },
705
+ requires: catalogEntry?.requires ?? [],
537
706
  ...(result.runtime !== undefined ? { runtime: result.runtime.files } : {}),
707
+ ...(result.templates !== undefined ? { templates: result.templates.files } : {}),
538
708
  });
539
709
  if (fmt === "text")
540
- reportOne(result, name);
710
+ reportOne(result, name, wiring);
541
711
  }
542
712
  }
543
713
  catch (err) {
@@ -552,7 +722,7 @@ export async function ejectCommand(args, cwd, fmt = "text") {
552
722
  // names, so a summary built from the catalog alone printed a line that omitted a
553
723
  // package each per-file note had just asked for.
554
724
  const entries = flags.names
555
- .filter((n) => !isLibraryName(n))
725
+ .filter((n) => !isLibraryName(n) && n !== DOCS_SITE_NAME)
556
726
  .map((n) => catalog[n])
557
727
  .filter((e) => e !== undefined);
558
728
  // The copied adapter source imports its own dependencies (qs, the framework, the core
@@ -563,7 +733,7 @@ export async function ejectCommand(args, cwd, fmt = "text") {
563
733
  const { runtime, dev } = runtimeInstall([...runtimePackages]);
564
734
  ownedRuntime = { generators: runtimeGenerators, runtime, dev };
565
735
  }
566
- const install = installSetFor(entries, [...templatePackages], ownedRuntime);
736
+ const install = installSetFor(entries, [...templatePackages], ownedRuntime, templateThirdParty);
567
737
  const configKeys = [...new Set(entries.flatMap((e) => e.configKeys ?? []))].sort();
568
738
  if (fmt === "text") {
569
739
  if (install.command !== "") {
@@ -592,6 +762,7 @@ export async function ejectCommand(args, cwd, fmt = "text") {
592
762
  install,
593
763
  config: { keys: configKeys },
594
764
  ...(libraries.length > 0 ? { libraries } : {}),
765
+ ...(docsSite !== undefined ? { docsSite } : {}),
595
766
  };
596
767
  emitStructured(payload, fmt);
597
768
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eject.js","sourceRoot":"","sources":["../../../src/commands/eject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eject.js","sourceRoot":"","sources":["../../../src/commands/eject.ts"],"names":[],"mappings":"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"}