@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,4 +1,11 @@
1
1
  import { type GeneratorRegistryEntry } from "@metaobjectsdev/codegen-ts";
2
+ /**
3
+ * The engine package. Its factories are served from a `/generators` subpath rather than
4
+ * its root (the root is the engine plus the primitives an owned generator composes); the
5
+ * framework packages serve theirs from the root. Exported because `eject.ts`'s source
6
+ * table names the same package — one definition per CLI package, not two.
7
+ */
8
+ export declare const CORE_CODEGEN_PACKAGE = "@metaobjectsdev/codegen-ts";
2
9
  /**
3
10
  * Which npm package a catalog entry comes from.
4
11
  *
@@ -9,6 +16,29 @@ import { type GeneratorRegistryEntry } from "@metaobjectsdev/codegen-ts";
9
16
  export declare function packageOf(name: string): string | undefined;
10
17
  /** Every `@metaobjectsdev` package that contributes catalog entries. */
11
18
  export declare function catalogPackages(): string[];
19
+ /**
20
+ * The module a catalog entry's factory is imported from to run it as shipped — the third
21
+ * element of the slice that registers the name. Undefined for a name no slice registers.
22
+ */
23
+ export declare function factoryModuleOf(name: string): string | undefined;
24
+ /**
25
+ * How one generator reaches a config as shipped: the import line for its factory. The
26
+ * call is not derived here — a factory's options are documented with the generator.
27
+ */
28
+ export interface GeneratorWiring {
29
+ import: string;
30
+ }
31
+ /**
32
+ * How to wire a catalog entry AS SHIPPED: import its factory from the package, no copy.
33
+ *
34
+ * This is the half of "import by default, eject to customize" the catalog owns. The
35
+ * other half is `meta eject`, which prints the import for the owned copy — the symbol is
36
+ * the same in both (gated), so moving between them is one import line.
37
+ *
38
+ * Every entry has one, documentation included (ADR-0034 Amendment 9): there is one way to
39
+ * generate, and an entry is wired the same way whatever it writes.
40
+ */
41
+ export declare function packagedWiring(entry: GeneratorRegistryEntry): GeneratorWiring | undefined;
12
42
  /**
13
43
  * The composed catalog, keyed by stable name.
14
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;AAWpC;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAC/E,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAiBxC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,sBAAsB,EAAE,CAMtD;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAE7E"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;AAIpC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AAcjE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,eAAe,GAAG,SAAS,CAIzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAC/E,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAiBxC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,sBAAsB,EAAE,CAMtD;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAE7E"}
@@ -15,11 +15,23 @@
15
15
  import { generatorRegistry, GENERATOR_LAYERS, } from "@metaobjectsdev/codegen-ts";
16
16
  import { reactGeneratorRegistry } from "@metaobjectsdev/codegen-ts-react";
17
17
  import { tanstackGeneratorRegistry } from "@metaobjectsdev/codegen-ts-tanstack";
18
- /** The slices, in install-boundary order: the engine, then its framework packages. */
18
+ /**
19
+ * The engine package. Its factories are served from a `/generators` subpath rather than
20
+ * its root (the root is the engine plus the primitives an owned generator composes); the
21
+ * framework packages serve theirs from the root. Exported because `eject.ts`'s source
22
+ * table names the same package — one definition per CLI package, not two.
23
+ */
24
+ export const CORE_CODEGEN_PACKAGE = "@metaobjectsdev/codegen-ts";
25
+ /**
26
+ * The slices, in install-boundary order: the engine, then its framework packages. The
27
+ * third element is the module that package serves factories from — a per-package fact
28
+ * declared at registration, so {@link factoryModuleOf} is a lookup and a new slice
29
+ * carries its own fact instead of adding a case to a name-keyed branch.
30
+ */
19
31
  const SLICES = [
20
- ["@metaobjectsdev/codegen-ts", generatorRegistry],
21
- ["@metaobjectsdev/codegen-ts-react", reactGeneratorRegistry],
22
- ["@metaobjectsdev/codegen-ts-tanstack", tanstackGeneratorRegistry],
32
+ [CORE_CODEGEN_PACKAGE, generatorRegistry, `${CORE_CODEGEN_PACKAGE}/generators`],
33
+ ["@metaobjectsdev/codegen-ts-react", reactGeneratorRegistry, "@metaobjectsdev/codegen-ts-react"],
34
+ ["@metaobjectsdev/codegen-ts-tanstack", tanstackGeneratorRegistry, "@metaobjectsdev/codegen-ts-tanstack"],
23
35
  ];
24
36
  /**
25
37
  * Which npm package a catalog entry comes from.
@@ -35,6 +47,29 @@ export function packageOf(name) {
35
47
  export function catalogPackages() {
36
48
  return SLICES.map(([pkg]) => pkg);
37
49
  }
50
+ /**
51
+ * The module a catalog entry's factory is imported from to run it as shipped — the third
52
+ * element of the slice that registers the name. Undefined for a name no slice registers.
53
+ */
54
+ export function factoryModuleOf(name) {
55
+ return SLICES.find(([, slice]) => name in slice)?.[2];
56
+ }
57
+ /**
58
+ * How to wire a catalog entry AS SHIPPED: import its factory from the package, no copy.
59
+ *
60
+ * This is the half of "import by default, eject to customize" the catalog owns. The
61
+ * other half is `meta eject`, which prints the import for the owned copy — the symbol is
62
+ * the same in both (gated), so moving between them is one import line.
63
+ *
64
+ * Every entry has one, documentation included (ADR-0034 Amendment 9): there is one way to
65
+ * generate, and an entry is wired the same way whatever it writes.
66
+ */
67
+ export function packagedWiring(entry) {
68
+ const from = factoryModuleOf(entry.name);
69
+ if (from === undefined)
70
+ return undefined;
71
+ return { import: `import { ${entry.factoryExport} } from "${from}";` };
72
+ }
38
73
  /**
39
74
  * The composed catalog, keyed by stable name.
40
75
  *
@@ -45,7 +80,7 @@ export function catalogPackages() {
45
80
  * another.
46
81
  */
47
82
  export function composeCatalog() {
48
- return composeSlices(SLICES);
83
+ return composeSlices(SLICES.map(([pkg, slice]) => [pkg, slice]));
49
84
  }
50
85
  /**
51
86
  * The composition itself, over any slice list.
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/lib/catalog.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,iEAAiE;AACjE,EAAE;AACF,0EAA0E;AAC1E,sFAAsF;AACtF,sFAAsF;AACtF,6DAA6D;AAC7D,EAAE;AACF,0EAA0E;AAC1E,wFAAwF;AACxF,mFAAmF;AACnF,EAAE;AACF,6EAA6E;AAC7E,+CAA+C;AAE/C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAEjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,sFAAsF;AACtF,MAAM,MAAM,GAA6E;IACvF,CAAC,4BAA4B,EAAE,iBAAiB,CAAC;IACjD,CAAC,kCAAkC,EAAE,sBAAsB,CAAC;IAC5D,CAAC,qCAAqC,EAAE,yBAAyB,CAAC;CACnE,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAgF;IAEhF,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,2BAA2B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,cAAc;oBAC9E,+EAA+E;oBAC/E,oDAAoD,CACvD,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/lib/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { MetaobjectsGenConfig } from "@metaobjectsdev/codegen-ts";
1
+ import type { MetaobjectsGenConfig, RunGenOpts } from "@metaobjectsdev/codegen-ts";
2
2
  import type { MetaData } from "@metaobjectsdev/metadata";
3
3
  export interface CodegenDriftResult {
4
4
  /** True when the committed output matches a fresh regen exactly. */
@@ -15,6 +15,12 @@ export interface CodegenDriftResult {
15
15
  * to end. Two doors asking one question must not answer it twice.
16
16
  */
17
17
  handEditedNames: string[];
18
+ /**
19
+ * The subset of `driftedFiles` that no generator emits any more AND that was edited
20
+ * since `meta gen` wrote it, sorted. `meta gen` deletes an untouched orphan but refuses
21
+ * one of these, so prescribing it would loop: the remedy is to delete the file.
22
+ */
23
+ editedOrphans: string[];
18
24
  /**
19
25
  * Project-relative paths of generated files that carry a PRESERVED hand edit, sorted:
20
26
  * the generated contribution is current (a fresh regen hashes to what we recorded
@@ -25,6 +31,23 @@ export interface CodegenDriftResult {
25
31
  * Never overlaps `driftedFiles`.
26
32
  */
27
33
  handEdited: string[];
34
+ /**
35
+ * Generated documentation pages the repository git-ignores, and so did not check. Only
36
+ * the directories documentation generators write to are asked: a project that generates
37
+ * many pages and commits a few on purpose is checked on the few it chose. Reported on
38
+ * the pass and the fail line so a gate that checked two of 589 pages cannot read as one
39
+ * that checked them all.
40
+ */
41
+ docsIgnored: number;
42
+ /**
43
+ * Documentation directories, project-relative, whose every freshly generated page the
44
+ * repository git-ignores. Not compared at all: a project that generates its documentation
45
+ * without committing it passes, as it did when 1.0's `verify --codegen` never looked at
46
+ * documentation.
47
+ */
48
+ docsIgnoredDirs: string[];
49
+ /** Why git could not be asked which pages are ignored (every page was then checked). */
50
+ docsIgnoreUnavailable?: string;
28
51
  /** Set when the gate could not run (e.g. no outDir to compare against). */
29
52
  error?: string;
30
53
  }
@@ -41,6 +64,12 @@ export interface CodegenDriftResult {
41
64
  * never committed because the `meta gen` that produced the committed tree
42
65
  * never emitted it either. Undefined ⇒ everything is in scope (byte-identical
43
66
  * to a project with no `scope` declared).
67
+ * @param sourceFiles the collection's OWN source files, the same list `meta gen`
68
+ * threads onto `ctx.sourceFiles`. `shared-model` loads them standalone to build its
69
+ * artifact, so without them the regen asked it to publish nothing and this gate
70
+ * failed with "no source files to load" on every project that wires it.
71
+ * @param run what `meta gen` also hands the run and this regen must hand it the same way:
72
+ * the source directories (the docs site loads them) and the agent pages' schema builder.
44
73
  */
45
- export declare function computeCodegenDrift(config: MetaobjectsGenConfig, metadata: MetaData, projectRoot: string, scope?: (fqn: string) => boolean): Promise<CodegenDriftResult>;
74
+ export declare function computeCodegenDrift(config: MetaobjectsGenConfig, metadata: MetaData, projectRoot: string, scope?: (fqn: string) => boolean, sourceFiles?: readonly string[], run?: Pick<RunGenOpts, "sourceRoots" | "agentSchema">): Promise<CodegenDriftResult>;
46
75
  //# sourceMappingURL=codegen-drift.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen-drift.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen-drift.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMzD,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA0L7B"}
1
+ {"version":3,"file":"codegen-drift.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen-drift.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAInF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMzD,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkDD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,EAChC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,EAC/B,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,aAAa,CAAC,GACpD,OAAO,CAAC,kBAAkB,CAAC,CA0Q7B"}
@@ -30,7 +30,27 @@
30
30
  import { mkdtempSync, rmSync, existsSync, readFileSync, readdirSync, statSync, cpSync, } from "node:fs";
31
31
  import { tmpdir } from "node:os";
32
32
  import { join, relative, resolve, isAbsolute } from "node:path";
33
- import { runGen, contentHash, readGeneratedHash, listGeneratedPaths, NAMES_FILE_SUFFIX, } from "@metaobjectsdev/codegen-ts";
33
+ import { runGen, contentHash, DOCS_TARGET_NAME, readGeneratedHash, listGeneratedPaths, orphanVerdict, NAMES_FILE_SUFFIX, generatorRegistry, normalizeConfig, stableGeneratorName, } from "@metaobjectsdev/codegen-ts";
34
+ import { DEFAULT_TARGET_NAME } from "@metaobjectsdev/codegen-ts/engine";
35
+ import { gitIgnored } from "./git-ignore.js";
36
+ import { toPosix } from "./rel-posix.js";
37
+ /**
38
+ * The output directories a documentation generator writes to, absolute. A generator is
39
+ * documentation when its registry row's layer is `docs`; an owned copy keeps its packaged
40
+ * name, so it is recognised too.
41
+ */
42
+ function docsOutDirs(config, projectRoot) {
43
+ const dirs = new Set();
44
+ for (const g of normalizeConfig(config).generators) {
45
+ if (generatorRegistry[stableGeneratorName(g, generatorRegistry)]?.layer !== "docs")
46
+ continue;
47
+ const target = g.target ?? DOCS_TARGET_NAME;
48
+ const outDir = target === DEFAULT_TARGET_NAME ? config.outDir : config.targets?.[target]?.outDir;
49
+ if (outDir !== undefined && outDir.length > 0)
50
+ dirs.add(resolve(projectRoot, outDir));
51
+ }
52
+ return dirs;
53
+ }
34
54
  /** Collect the committed outDirs declared by the config (default + per-target),
35
55
  * resolved against `projectRoot` — a relative outDir (the common, portable,
36
56
  * `meta init`-scaffolded shape) must resolve against the project the CLI's
@@ -78,8 +98,14 @@ function listFiles(dir) {
78
98
  * never committed because the `meta gen` that produced the committed tree
79
99
  * never emitted it either. Undefined ⇒ everything is in scope (byte-identical
80
100
  * to a project with no `scope` declared).
101
+ * @param sourceFiles the collection's OWN source files, the same list `meta gen`
102
+ * threads onto `ctx.sourceFiles`. `shared-model` loads them standalone to build its
103
+ * artifact, so without them the regen asked it to publish nothing and this gate
104
+ * failed with "no source files to load" on every project that wires it.
105
+ * @param run what `meta gen` also hands the run and this regen must hand it the same way:
106
+ * the source directories (the docs site loads them) and the agent pages' schema builder.
81
107
  */
82
- export async function computeCodegenDrift(config, metadata, projectRoot, scope) {
108
+ export async function computeCodegenDrift(config, metadata, projectRoot, scope, sourceFiles, run) {
83
109
  const root = isAbsolute(projectRoot) ? projectRoot : resolve(projectRoot);
84
110
  // The PROJECT's snapshot manifest, never the temp one built below — that temp
85
111
  // manifest only describes the regen that just ran, so it can say nothing about
@@ -92,7 +118,10 @@ export async function computeCodegenDrift(config, metadata, projectRoot, scope)
92
118
  driftedFiles: [],
93
119
  lines: [],
94
120
  handEditedNames: [],
121
+ editedOrphans: [],
95
122
  handEdited: [],
123
+ docsIgnored: 0,
124
+ docsIgnoredDirs: [],
96
125
  error: "verify --codegen: no outDir configured — cannot locate the committed " +
97
126
  "generated output to diff against. Set 'outDir' (and/or per-target " +
98
127
  "outDir) in metaobjects.config.ts.",
@@ -143,33 +172,73 @@ export async function computeCodegenDrift(config, metadata, projectRoot, scope)
143
172
  // Generate fresh into the temp tree. "overwrite" + "fresh" + a temp
144
173
  // gen-state dir guarantees every file is written (no merge/skip), so the
145
174
  // temp tree is the canonical "what gen would produce right now".
146
- await runGen({
175
+ const regen = await runGen({
147
176
  config: tempConfig,
148
177
  metadata,
149
178
  projectRoot: tempRoot,
150
179
  genStateDir: join(tempRoot, ".gen-state"),
151
180
  mergeStrategy: "overwrite",
152
181
  baseline: "fresh",
182
+ // The real project, for a generator that reads its files (`ctx.inputRoot`):
183
+ // `shared-model` takes its default version from the nearest package.json, and an
184
+ // owned generator may read anything. `projectRoot` stays the temp tree, which the
185
+ // owned route and entity generators compute their adapter import against.
186
+ inputRoot: root,
153
187
  ...(scope !== undefined ? { scope } : {}),
188
+ ...(sourceFiles !== undefined ? { sourceFiles } : {}),
189
+ ...(run?.sourceRoots !== undefined ? { sourceRoots: run.sourceRoots } : {}),
190
+ ...(run?.agentSchema !== undefined ? { agentSchema: run.agentSchema } : {}),
154
191
  });
192
+ // Where gen discards hand edits instead of keeping them (handEdits: "overwrite").
193
+ const overwrite = regen.handEditsOverwrite;
155
194
  // Diff each committed outDir against its temp mirror.
156
195
  const driftedFiles = new Set();
157
196
  const lines = [];
158
197
  const handEditedNames = new Set();
159
198
  const handEdited = new Set();
199
+ const editedOrphans = new Set();
160
200
  // Whether we have any record of what we wrote here. With records, the orphan
161
201
  // branch below can scope itself to our own output; with none, it cannot tell
162
202
  // our stale output from a stranger's file, so the old verdict stands.
163
203
  const haveWriteRecords = listGeneratedPaths(projectGenStateDir).length > 0;
204
+ const docsDirs = docsOutDirs(config, root);
205
+ let docsIgnored = 0;
206
+ const docsIgnoredDirs = [];
207
+ let docsIgnoreUnavailable;
164
208
  for (const committed of committedDirs) {
165
209
  const fresh = tempFor(committed);
166
210
  const committedFiles = new Set(listFiles(committed));
167
211
  const freshFiles = new Set(listFiles(fresh));
168
212
  const all = new Set([...committedFiles, ...freshFiles]);
213
+ // Documentation the project git-ignores is not checked (carried from 1.0's
214
+ // `verify --docs`). Asked of the FRESH set by name, present on disk or not, so the
215
+ // verdict is a property of the repository and not of the machine: a box that ran
216
+ // `meta gen` has every page on disk and a CI runner has the committed few. A TRACKED
217
+ // page is never reported ignored by git, so a committed page is always compared.
218
+ // honourGlobalExcludes: false — a personal ignore file must not change a gate.
219
+ let ignored = new Set();
220
+ if (docsDirs.has(committed) && all.size > 0) {
221
+ const prefix = toPosix(relative(root, committed));
222
+ const fromRoot = (rel) => (prefix === "" ? toPosix(rel) : `${prefix}/${toPosix(rel)}`);
223
+ const lookup = gitIgnored(root, [...all].map(fromRoot), { honourGlobalExcludes: false });
224
+ if ("ignored" in lookup)
225
+ ignored = new Set([...all].map(toPosix).filter((rel) => lookup.ignored.has(fromRoot(rel))));
226
+ else
227
+ docsIgnoreUnavailable = lookup.unavailable;
228
+ const checked = [...freshFiles].filter((rel) => !ignored.has(toPosix(rel)));
229
+ if (freshFiles.size > 0 && checked.length === 0) {
230
+ docsIgnoredDirs.push(relative(root, committed) || ".");
231
+ continue;
232
+ }
233
+ }
169
234
  for (const rel of [...all].sort()) {
170
235
  const relKey = relative(root, join(committed, rel));
171
236
  const inCommitted = committedFiles.has(rel);
172
237
  const inFresh = freshFiles.has(rel);
238
+ if (ignored.has(toPosix(rel))) {
239
+ docsIgnored++;
240
+ continue;
241
+ }
173
242
  if (inCommitted && !inFresh) {
174
243
  // JURISDICTION, not staleness. A regen not emitting a path means
175
244
  // "stale generated output" only for a path we have ever WRITTEN; for
@@ -184,8 +253,33 @@ export async function computeCodegenDrift(config, metadata, projectRoot, scope)
184
253
  if (haveWriteRecords && readGeneratedHash(projectGenStateDir, relKey) === undefined) {
185
254
  continue;
186
255
  }
256
+ const verdict = haveWriteRecords
257
+ ? orphanVerdict(regen.orphanSweepJobs ?? [], tempRoot, relative(tempRoot, join(fresh, rel)))
258
+ : undefined;
259
+ if (verdict?.kept === true)
260
+ continue;
187
261
  driftedFiles.add(relKey);
188
- lines.push(`- ${relKey} (committed but regen would not emit it)`);
262
+ // `meta gen` deletes an orphan it can prove untouched and REFUSES one edited
263
+ // since it was written, so the remedy differs by which this is. Asked of the
264
+ // same evidence the sweep asks (the recorded hash), so the two cannot disagree.
265
+ // With no write records at all, neither verdict can be proven, so the line
266
+ // stays the plain one.
267
+ if (!haveWriteRecords) {
268
+ lines.push(`- ${relKey} (committed but regen would not emit it)`);
269
+ }
270
+ else if (readGeneratedHash(projectGenStateDir, relKey) === contentHash(readFileSync(join(committed, rel), "utf8"))) {
271
+ lines.push(`- ${relKey} (committed but regen would not emit it; 'meta gen' deletes it)`);
272
+ }
273
+ else if (verdict?.force === true) {
274
+ // The sweep force-deletes an edited orphan here, so gen deletes it.
275
+ lines.push(`- ${relKey} (no generator emits it any more, and it was edited by hand; ` +
276
+ `a force or handEdits: "overwrite" orphan policy owns it, so 'meta gen' deletes it)`);
277
+ }
278
+ else {
279
+ editedOrphans.add(relKey);
280
+ lines.push(`- ${relKey} (no generator emits it any more, and it was edited by hand: ` +
281
+ `delete it, or move your edits into a file of your own and then delete it)`);
282
+ }
189
283
  }
190
284
  else if (!inCommitted && inFresh) {
191
285
  driftedFiles.add(relKey);
@@ -235,6 +329,13 @@ export async function computeCodegenDrift(config, metadata, projectRoot, scope)
235
329
  driftedFiles.add(relKey);
236
330
  lines.push(`~ ${relKey} (committed content differs from a fresh regen)`);
237
331
  }
332
+ else if (overwrite?.paths.has(join(fresh, rel)) === true) {
333
+ // Its generator says handEdits: "overwrite": `meta gen` replaces the edit
334
+ // with fresh output, so it is drift that gen fixes, not a kept edit.
335
+ driftedFiles.add(relKey);
336
+ lines.push(`~ ${relKey} (edited by hand; its generator sets handEdits: "overwrite", so ` +
337
+ `'meta gen' replaces it with fresh output)`);
338
+ }
238
339
  else {
239
340
  // The generated contribution is current and the bytes still differ: a
240
341
  // hand edit `meta gen` preserved. Not drift, but never silent either.
@@ -250,7 +351,11 @@ export async function computeCodegenDrift(config, metadata, projectRoot, scope)
250
351
  driftedFiles: sorted,
251
352
  lines,
252
353
  handEditedNames: [...handEditedNames].sort(),
354
+ editedOrphans: [...editedOrphans].sort(),
253
355
  handEdited: [...handEdited].sort(),
356
+ docsIgnored,
357
+ docsIgnoredDirs,
358
+ ...(docsIgnoreUnavailable !== undefined ? { docsIgnoreUnavailable } : {}),
254
359
  };
255
360
  }
256
361
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"codegen-drift.js","sourceRoot":"","sources":["../../../src/lib/codegen-drift.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen-drift.js","sourceRoot":"","sources":["../../../src/lib/codegen-drift.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,5 @@ import type { Collection, LoadMemoryOptions } from "@metaobjectsdev/sdk";
9
9
  * hand-written shape, so renaming or retyping an option there is a compile
10
10
  * error here rather than a silently-dropped key.
11
11
  */
12
- export declare function collectionLoadOptions(collection: Collection): Required<Pick<LoadMemoryOptions, "files" | "fileIds" | "importedPackages" | "importedNodes" | "libraries">>;
12
+ export declare function collectionLoadOptions(collection: Collection): Required<Pick<LoadMemoryOptions, "files" | "fileIds" | "importedPackages" | "importedNodes" | "libraries" | "physicalNaming">>;
13
13
  //# sourceMappingURL=collection-load-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-load-options.d.ts","sourceRoot":"","sources":["../../../src/lib/collection-load-options.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,eAAe,GAAG,WAAW,CAAC,CAAC,CAa7G"}
1
+ {"version":3,"file":"collection-load-options.d.ts","sourceRoot":"","sources":["../../../src/lib/collection-load-options.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAchI"}
@@ -20,6 +20,7 @@ export function collectionLoadOptions(collection) {
20
20
  // threaded by `loadMemoryOptionsFrom`, a SECOND helper, and #333 is on record as the
21
21
  // bug where one of the two reached every command and the other reached none.
22
22
  libraries: collection.libraries,
23
+ physicalNaming: collection.physicalNaming,
23
24
  };
24
25
  }
25
26
  //# sourceMappingURL=collection-load-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-load-options.js","sourceRoot":"","sources":["../../../src/lib/collection-load-options.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAsB;IAEtB,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,mFAAmF;QACnF,mFAAmF;QACnF,gFAAgF;QAChF,qFAAqF;QACrF,6EAA6E;QAC7E,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"collection-load-options.js","sourceRoot":"","sources":["../../../src/lib/collection-load-options.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAsB;IAEtB,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,mFAAmF;QACnF,mFAAmF;QACnF,gFAAgF;QAChF,qFAAqF;QACrF,6EAA6E;QAC7E,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,cAAc,EAAE,UAAU,CAAC,cAAc;KAC1C,CAAC;AACJ,CAAC"}
@@ -41,12 +41,14 @@ export interface ResolvedMigrateConfig {
41
41
  d1: ResolvedD1Config;
42
42
  }
43
43
  /**
44
- * The migrations directory and dialect `meta migrate` would use with no flags — what
45
- * `meta gen` needs to word its "now migrate" next step and find the committed snapshot.
44
+ * The migrations directory, dialect and format `meta migrate` would use with no flags — what
45
+ * `meta gen` needs to word its "now migrate" next step and read the committed snapshot the
46
+ * way `meta migrate` reads it.
46
47
  */
47
48
  export declare function resolveMigrateDefaults(metaRoot: string): Promise<{
48
49
  outDir: string;
49
50
  dialect: Dialect | undefined;
51
+ format: MigrateFormat;
50
52
  }>;
51
53
  export declare function resolveGenConfig(flags: GenFlags): ResolvedGenConfig;
52
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAMjE,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAenE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,qFAAqF;IACrF,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC7C,yFAAyF;IACzF,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,YAAY,EAAE,OAAO,CAAC;IACtB,EAAE,EAAE,gBAAgB,CAAC;CACtB;AAmBD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC,CAM3D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,iBAAiB,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1E,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC,CAgChC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAMjE,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAenE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,qFAAqF;IACrF,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC7C,yFAAyF;IACzF,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,YAAY,EAAE,OAAO,CAAC;IACtB,EAAE,EAAE,gBAAgB,CAAC;CACtB;AAmBD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAOlF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,iBAAiB,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1E,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC,CAgChC"}
@@ -29,14 +29,16 @@ async function tryLoadConfig(metaRoot) {
29
29
  // Public resolvers
30
30
  // ---------------------------------------------------------------------------
31
31
  /**
32
- * The migrations directory and dialect `meta migrate` would use with no flags — what
33
- * `meta gen` needs to word its "now migrate" next step and find the committed snapshot.
32
+ * The migrations directory, dialect and format `meta migrate` would use with no flags — what
33
+ * `meta gen` needs to word its "now migrate" next step and read the committed snapshot the
34
+ * way `meta migrate` reads it.
34
35
  */
35
36
  export async function resolveMigrateDefaults(metaRoot) {
36
37
  const config = await tryLoadConfig(metaRoot);
37
38
  return {
38
39
  outDir: config?.migrate?.outDir ?? MIGRATE_DEFAULTS.outDir,
39
40
  dialect: config?.migrate?.dialect ?? MIGRATE_DEFAULTS.dialect,
41
+ format: config?.migrate?.format ?? MIGRATE_DEFAULTS.format,
40
42
  };
41
43
  }
42
44
  export function resolveGenConfig(flags) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type MetaData } from "@metaobjectsdev/metadata";
2
+ /** Significant digits a SQLite or D1 NUMERIC column keeps exactly. */
3
+ export declare const SQLITE_DECIMAL_EXACT_DIGITS = 15;
4
+ export interface DecimalPrecisionOptions {
5
+ /** Skip an entity by FQN — imported (dependency) metadata is not the adopter's to fix. */
6
+ skip?: (fqn: string) => boolean;
7
+ }
8
+ /** One message per `field.decimal` with `@precision` above 15, or [] on any other dialect. */
9
+ export declare function decimalPrecisionWarnings(root: MetaData, dialect: string, opts?: DecimalPrecisionOptions): string[];
10
+ //# sourceMappingURL=decimal-precision-advisory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decimal-precision-advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/decimal-precision-advisory.ts"],"names":[],"mappings":"AAKA,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAElC,sEAAsE;AACtE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAI9C,MAAM,WAAW,uBAAuB;IACtC,0FAA0F;IAC1F,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACjC;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,uBAA4B,GACjC,MAAM,EAAE,CAoBV"}
@@ -0,0 +1,34 @@
1
+ // ADR-0019 Amendment 1, W4 — the SQLite and D1 tier has no decimal type. A text value with
2
+ // NUMERIC affinity is stored as an INTEGER or REAL, keeping only its first 15 significant
3
+ // digits, so a `field.decimal` declaring `@precision` above 15 is stored lossily.
4
+ // Advisory, never a gate: `meta migrate` warns once per field, on those dialects only.
5
+ import { FIELD_ATTR_PRECISION, FIELD_SUBTYPE_DECIMAL, OBJECT_SUBTYPE_ENTITY, TYPE_FIELD, TYPE_OBJECT, } from "@metaobjectsdev/metadata";
6
+ /** Significant digits a SQLite or D1 NUMERIC column keeps exactly. */
7
+ export const SQLITE_DECIMAL_EXACT_DIGITS = 15;
8
+ const LOSSY_DECIMAL_DIALECTS = ["sqlite", "d1"];
9
+ /** One message per `field.decimal` with `@precision` above 15, or [] on any other dialect. */
10
+ export function decimalPrecisionWarnings(root, dialect, opts = {}) {
11
+ if (!LOSSY_DECIMAL_DIALECTS.includes(dialect))
12
+ return [];
13
+ const out = [];
14
+ for (const obj of root.children()) {
15
+ if (obj.type !== TYPE_OBJECT || obj.subType !== OBJECT_SUBTYPE_ENTITY || obj.isAbstract)
16
+ continue;
17
+ const fqn = obj.resolutionKey();
18
+ if (opts.skip?.(fqn) === true)
19
+ continue;
20
+ // ADR-0039: resolving — fields (and their @precision) inherited via extends count.
21
+ for (const f of obj.children()) {
22
+ if (f.type !== TYPE_FIELD || f.subType !== FIELD_SUBTYPE_DECIMAL)
23
+ continue;
24
+ const precision = f.attr(FIELD_ATTR_PRECISION);
25
+ if (typeof precision !== "number" || precision <= SQLITE_DECIMAL_EXACT_DIGITS)
26
+ continue;
27
+ out.push(`${fqn}.${f.name} is a decimal with @precision ${precision}, but ${dialect} keeps only ` +
28
+ `${SQLITE_DECIMAL_EXACT_DIGITS} significant digits of a decimal (it stores NUMERIC as an integer or ` +
29
+ `a double). Digits beyond the ${SQLITE_DECIMAL_EXACT_DIGITS}th are lost; use Postgres for exact wide decimals.`);
30
+ }
31
+ }
32
+ return out;
33
+ }
34
+ //# sourceMappingURL=decimal-precision-advisory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decimal-precision-advisory.js","sourceRoot":"","sources":["../../../src/lib/decimal-precision-advisory.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,0FAA0F;AAC1F,kFAAkF;AAClF,uFAAuF;AAEvF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,UAAU,EACV,WAAW,GAEZ,MAAM,0BAA0B,CAAC;AAElC,sEAAsE;AACtE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,MAAM,sBAAsB,GAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAOnE,8FAA8F;AAC9F,MAAM,UAAU,wBAAwB,CACtC,IAAc,EACd,OAAe,EACf,OAAgC,EAAE;IAElC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACzD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,KAAK,qBAAqB,IAAI,GAAG,CAAC,UAAU;YAAE,SAAS;QAClG,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,SAAS;QACxC,mFAAmF;QACnF,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,qBAAqB;gBAAE,SAAS;YAC3E,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,2BAA2B;gBAAE,SAAS;YACxF,GAAG,CAAC,IAAI,CACN,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,iCAAiC,SAAS,SAAS,OAAO,cAAc;gBACtF,GAAG,2BAA2B,uEAAuE;gBACrG,gCAAgC,2BAA2B,oDAAoD,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deprecation-lint.d.ts","sourceRoot":"","sources":["../../../src/lib/deprecation-lint.ts"],"names":[],"mappings":"AAiCA,OAAO,EAmBL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAsPrE;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAiBrE"}
1
+ {"version":3,"file":"deprecation-lint.d.ts","sourceRoot":"","sources":["../../../src/lib/deprecation-lint.ts"],"names":[],"mappings":"AAiCA,OAAO,EAoBL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AA6OrE;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAiBrE"}