@metaobjectsdev/codegen-ts 0.9.0 → 0.11.0-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 (342) hide show
  1. package/README.md +1 -1
  2. package/dist/column-mapper.d.ts +12 -6
  3. package/dist/column-mapper.d.ts.map +1 -1
  4. package/dist/column-mapper.js +68 -28
  5. package/dist/column-mapper.js.map +1 -1
  6. package/dist/constants.d.ts +8 -0
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +16 -0
  9. package/dist/constants.js.map +1 -1
  10. package/dist/docs-paths.d.ts +58 -0
  11. package/dist/docs-paths.d.ts.map +1 -0
  12. package/dist/docs-paths.js +89 -0
  13. package/dist/docs-paths.js.map +1 -0
  14. package/dist/enum-import.d.ts +14 -0
  15. package/dist/enum-import.d.ts.map +1 -0
  16. package/dist/enum-import.js +35 -0
  17. package/dist/enum-import.js.map +1 -0
  18. package/dist/enum-shared.d.ts +32 -0
  19. package/dist/enum-shared.d.ts.map +1 -0
  20. package/dist/enum-shared.js +83 -0
  21. package/dist/enum-shared.js.map +1 -0
  22. package/dist/generator-registry.d.ts +22 -0
  23. package/dist/generator-registry.d.ts.map +1 -0
  24. package/dist/generator-registry.js +161 -0
  25. package/dist/generator-registry.js.map +1 -0
  26. package/dist/generator.d.ts +6 -0
  27. package/dist/generator.d.ts.map +1 -1
  28. package/dist/generator.js.map +1 -1
  29. package/dist/generators/api-doc-render.d.ts +17 -0
  30. package/dist/generators/api-doc-render.d.ts.map +1 -0
  31. package/dist/generators/api-doc-render.js +431 -0
  32. package/dist/generators/api-doc-render.js.map +1 -0
  33. package/dist/generators/api-docs-file.d.ts +21 -0
  34. package/dist/generators/api-docs-file.d.ts.map +1 -0
  35. package/dist/generators/api-docs-file.js +112 -0
  36. package/dist/generators/api-docs-file.js.map +1 -0
  37. package/dist/generators/api-field-shape.d.ts +39 -0
  38. package/dist/generators/api-field-shape.d.ts.map +1 -0
  39. package/dist/generators/api-field-shape.js +92 -0
  40. package/dist/generators/api-field-shape.js.map +1 -0
  41. package/dist/generators/api-label.d.ts +3 -0
  42. package/dist/generators/api-label.d.ts.map +1 -0
  43. package/dist/generators/api-label.js +8 -0
  44. package/dist/generators/api-label.js.map +1 -0
  45. package/dist/generators/api-model.d.ts +122 -0
  46. package/dist/generators/api-model.d.ts.map +1 -0
  47. package/dist/generators/api-model.js +809 -0
  48. package/dist/generators/api-model.js.map +1 -0
  49. package/dist/generators/docs-data-builder.d.ts +26 -4
  50. package/dist/generators/docs-data-builder.d.ts.map +1 -1
  51. package/dist/generators/docs-data-builder.js +439 -167
  52. package/dist/generators/docs-data-builder.js.map +1 -1
  53. package/dist/generators/docs-data.d.ts +136 -27
  54. package/dist/generators/docs-data.d.ts.map +1 -1
  55. package/dist/generators/docs-data.js +1 -1
  56. package/dist/generators/docs-data.js.map +1 -1
  57. package/dist/generators/docs-file.d.ts +19 -0
  58. package/dist/generators/docs-file.d.ts.map +1 -1
  59. package/dist/generators/docs-file.js +154 -27
  60. package/dist/generators/docs-file.js.map +1 -1
  61. package/dist/generators/entity-file.d.ts.map +1 -1
  62. package/dist/generators/entity-file.js +29 -14
  63. package/dist/generators/entity-file.js.map +1 -1
  64. package/dist/generators/extractor-file.d.ts.map +1 -1
  65. package/dist/generators/extractor-file.js +2 -1
  66. package/dist/generators/extractor-file.js.map +1 -1
  67. package/dist/generators/field-anchor.d.ts +7 -0
  68. package/dist/generators/field-anchor.d.ts.map +1 -0
  69. package/dist/generators/field-anchor.js +23 -0
  70. package/dist/generators/field-anchor.js.map +1 -0
  71. package/dist/generators/index.d.ts +8 -1
  72. package/dist/generators/index.d.ts.map +1 -1
  73. package/dist/generators/index.js +6 -0
  74. package/dist/generators/index.js.map +1 -1
  75. package/dist/generators/mermaid-er.d.ts +14 -0
  76. package/dist/generators/mermaid-er.d.ts.map +1 -1
  77. package/dist/generators/mermaid-er.js +14 -0
  78. package/dist/generators/mermaid-er.js.map +1 -1
  79. package/dist/generators/output-parser-file.d.ts.map +1 -1
  80. package/dist/generators/output-parser-file.js +3 -4
  81. package/dist/generators/output-parser-file.js.map +1 -1
  82. package/dist/generators/output-prompt-file.d.ts.map +1 -1
  83. package/dist/generators/output-prompt-file.js +2 -2
  84. package/dist/generators/output-prompt-file.js.map +1 -1
  85. package/dist/generators/prompt-render-file.d.ts.map +1 -1
  86. package/dist/generators/prompt-render-file.js +3 -4
  87. package/dist/generators/prompt-render-file.js.map +1 -1
  88. package/dist/generators/queries-file.d.ts.map +1 -1
  89. package/dist/generators/queries-file.js +8 -3
  90. package/dist/generators/queries-file.js.map +1 -1
  91. package/dist/generators/render-helper-file.d.ts.map +1 -1
  92. package/dist/generators/render-helper-file.js +2 -2
  93. package/dist/generators/render-helper-file.js.map +1 -1
  94. package/dist/generators/routes-file-hono.d.ts.map +1 -1
  95. package/dist/generators/routes-file-hono.js +5 -1
  96. package/dist/generators/routes-file-hono.js.map +1 -1
  97. package/dist/generators/routes-file.d.ts +3 -0
  98. package/dist/generators/routes-file.d.ts.map +1 -1
  99. package/dist/generators/routes-file.js +6 -1
  100. package/dist/generators/routes-file.js.map +1 -1
  101. package/dist/generators/template-doc-builder.d.ts +19 -0
  102. package/dist/generators/template-doc-builder.d.ts.map +1 -0
  103. package/dist/generators/template-doc-builder.js +220 -0
  104. package/dist/generators/template-doc-builder.js.map +1 -0
  105. package/dist/generators/template-doc-data.d.ts +62 -0
  106. package/dist/generators/template-doc-data.d.ts.map +1 -0
  107. package/dist/generators/template-doc-data.js +16 -0
  108. package/dist/generators/template-doc-data.js.map +1 -0
  109. package/dist/generators/template-payload-tree.d.ts +15 -0
  110. package/dist/generators/template-payload-tree.d.ts.map +1 -0
  111. package/dist/generators/template-payload-tree.js +61 -0
  112. package/dist/generators/template-payload-tree.js.map +1 -0
  113. package/dist/generators/template-source-annotate.d.ts +74 -0
  114. package/dist/generators/template-source-annotate.d.ts.map +1 -0
  115. package/dist/generators/template-source-annotate.js +184 -0
  116. package/dist/generators/template-source-annotate.js.map +1 -0
  117. package/dist/generators/template-source-render.d.ts +24 -0
  118. package/dist/generators/template-source-render.d.ts.map +1 -0
  119. package/dist/generators/template-source-render.js +175 -0
  120. package/dist/generators/template-source-render.js.map +1 -0
  121. package/dist/generators/trace-helper-file.d.ts +9 -0
  122. package/dist/generators/trace-helper-file.d.ts.map +1 -0
  123. package/dist/generators/trace-helper-file.js +196 -0
  124. package/dist/generators/trace-helper-file.js.map +1 -0
  125. package/dist/import-path.d.ts +18 -0
  126. package/dist/import-path.d.ts.map +1 -1
  127. package/dist/import-path.js +21 -0
  128. package/dist/import-path.js.map +1 -1
  129. package/dist/index.d.ts +29 -4
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +28 -2
  132. package/dist/index.js.map +1 -1
  133. package/dist/metaobjects-config.d.ts +101 -2
  134. package/dist/metaobjects-config.d.ts.map +1 -1
  135. package/dist/metaobjects-config.js +46 -0
  136. package/dist/metaobjects-config.js.map +1 -1
  137. package/dist/naming.d.ts +39 -2
  138. package/dist/naming.d.ts.map +1 -1
  139. package/dist/naming.js +52 -3
  140. package/dist/naming.js.map +1 -1
  141. package/dist/payload-codegen.d.ts.map +1 -1
  142. package/dist/payload-codegen.js +14 -6
  143. package/dist/payload-codegen.js.map +1 -1
  144. package/dist/pk-resolver.d.ts.map +1 -1
  145. package/dist/pk-resolver.js +4 -2
  146. package/dist/pk-resolver.js.map +1 -1
  147. package/dist/projection/extract-view-spec.d.ts.map +1 -1
  148. package/dist/projection/extract-view-spec.js +52 -26
  149. package/dist/projection/extract-view-spec.js.map +1 -1
  150. package/dist/relation-resolver.d.ts +16 -0
  151. package/dist/relation-resolver.d.ts.map +1 -1
  152. package/dist/relation-resolver.js +82 -1
  153. package/dist/relation-resolver.js.map +1 -1
  154. package/dist/render-context.d.ts +25 -2
  155. package/dist/render-context.d.ts.map +1 -1
  156. package/dist/render-context.js +7 -0
  157. package/dist/render-context.js.map +1 -1
  158. package/dist/render-engine/embedded-templates.generated.d.ts +2 -0
  159. package/dist/render-engine/embedded-templates.generated.d.ts.map +1 -0
  160. package/dist/render-engine/embedded-templates.generated.js +15 -0
  161. package/dist/render-engine/embedded-templates.generated.js.map +1 -0
  162. package/dist/render-engine/framework-provider.d.ts.map +1 -1
  163. package/dist/render-engine/framework-provider.js +26 -13
  164. package/dist/render-engine/framework-provider.js.map +1 -1
  165. package/dist/runner.d.ts.map +1 -1
  166. package/dist/runner.js +20 -0
  167. package/dist/runner.js.map +1 -1
  168. package/dist/templates/docs-file.d.ts +2 -6
  169. package/dist/templates/docs-file.d.ts.map +1 -1
  170. package/dist/templates/docs-file.js +2 -5
  171. package/dist/templates/docs-file.js.map +1 -1
  172. package/dist/templates/drizzle-schema.d.ts.map +1 -1
  173. package/dist/templates/drizzle-schema.js +72 -23
  174. package/dist/templates/drizzle-schema.js.map +1 -1
  175. package/dist/templates/entity-constants.d.ts +7 -0
  176. package/dist/templates/entity-constants.d.ts.map +1 -1
  177. package/dist/templates/entity-constants.js +3 -3
  178. package/dist/templates/entity-constants.js.map +1 -1
  179. package/dist/templates/entity-file.d.ts.map +1 -1
  180. package/dist/templates/entity-file.js +16 -5
  181. package/dist/templates/entity-file.js.map +1 -1
  182. package/dist/templates/enums-file.d.ts +11 -0
  183. package/dist/templates/enums-file.d.ts.map +1 -0
  184. package/dist/templates/enums-file.js +44 -0
  185. package/dist/templates/enums-file.js.map +1 -0
  186. package/dist/templates/extract-delegate-emitter.d.ts.map +1 -1
  187. package/dist/templates/extract-delegate-emitter.js +6 -8
  188. package/dist/templates/extract-delegate-emitter.js.map +1 -1
  189. package/dist/templates/extractor.d.ts.map +1 -1
  190. package/dist/templates/extractor.js +58 -41
  191. package/dist/templates/extractor.js.map +1 -1
  192. package/dist/templates/field-meta.d.ts.map +1 -1
  193. package/dist/templates/field-meta.js +2 -6
  194. package/dist/templates/field-meta.js.map +1 -1
  195. package/dist/templates/filter-allowlist.d.ts +7 -2
  196. package/dist/templates/filter-allowlist.d.ts.map +1 -1
  197. package/dist/templates/filter-allowlist.js +18 -10
  198. package/dist/templates/filter-allowlist.js.map +1 -1
  199. package/dist/templates/filter-shared.js +2 -2
  200. package/dist/templates/filter-shared.js.map +1 -1
  201. package/dist/templates/filter-type.d.ts +7 -1
  202. package/dist/templates/filter-type.d.ts.map +1 -1
  203. package/dist/templates/filter-type.js +10 -6
  204. package/dist/templates/filter-type.js.map +1 -1
  205. package/dist/templates/find-templates.d.ts +4 -0
  206. package/dist/templates/find-templates.d.ts.map +1 -0
  207. package/dist/templates/find-templates.js +15 -0
  208. package/dist/templates/find-templates.js.map +1 -0
  209. package/dist/templates/fr010-field-mapping.d.ts +2 -0
  210. package/dist/templates/fr010-field-mapping.d.ts.map +1 -1
  211. package/dist/templates/fr010-field-mapping.js +15 -11
  212. package/dist/templates/fr010-field-mapping.js.map +1 -1
  213. package/dist/templates/inferred-types.d.ts +44 -7
  214. package/dist/templates/inferred-types.d.ts.map +1 -1
  215. package/dist/templates/inferred-types.js +121 -19
  216. package/dist/templates/inferred-types.js.map +1 -1
  217. package/dist/templates/mermaid-er.d.ts +35 -2
  218. package/dist/templates/mermaid-er.d.ts.map +1 -1
  219. package/dist/templates/mermaid-er.js +174 -7
  220. package/dist/templates/mermaid-er.js.map +1 -1
  221. package/dist/templates/output-format-spec-emitter.js +1 -1
  222. package/dist/templates/output-format-spec-emitter.js.map +1 -1
  223. package/dist/templates/output-parser.d.ts.map +1 -1
  224. package/dist/templates/output-parser.js +31 -80
  225. package/dist/templates/output-parser.js.map +1 -1
  226. package/dist/templates/output-prompt.d.ts.map +1 -1
  227. package/dist/templates/output-prompt.js +2 -2
  228. package/dist/templates/output-prompt.js.map +1 -1
  229. package/dist/templates/queries-file.d.ts.map +1 -1
  230. package/dist/templates/queries-file.js +113 -5
  231. package/dist/templates/queries-file.js.map +1 -1
  232. package/dist/templates/queries.d.ts +7 -2
  233. package/dist/templates/queries.d.ts.map +1 -1
  234. package/dist/templates/queries.js +15 -15
  235. package/dist/templates/queries.js.map +1 -1
  236. package/dist/templates/relations-block.d.ts.map +1 -1
  237. package/dist/templates/relations-block.js +12 -3
  238. package/dist/templates/relations-block.js.map +1 -1
  239. package/dist/templates/render-helper.d.ts.map +1 -1
  240. package/dist/templates/render-helper.js +5 -5
  241. package/dist/templates/render-helper.js.map +1 -1
  242. package/dist/templates/routes-file-hono.d.ts.map +1 -1
  243. package/dist/templates/routes-file-hono.js +1 -2
  244. package/dist/templates/routes-file-hono.js.map +1 -1
  245. package/dist/templates/routes-file.d.ts.map +1 -1
  246. package/dist/templates/routes-file.js +184 -7
  247. package/dist/templates/routes-file.js.map +1 -1
  248. package/dist/templates/tph-discriminator.d.ts +56 -0
  249. package/dist/templates/tph-discriminator.d.ts.map +1 -0
  250. package/dist/templates/tph-discriminator.js +180 -0
  251. package/dist/templates/tph-discriminator.js.map +1 -0
  252. package/dist/templates/value-object-file.d.ts +2 -1
  253. package/dist/templates/value-object-file.d.ts.map +1 -1
  254. package/dist/templates/value-object-file.js +33 -5
  255. package/dist/templates/value-object-file.js.map +1 -1
  256. package/dist/templates/zod-validators.d.ts +65 -2
  257. package/dist/templates/zod-validators.d.ts.map +1 -1
  258. package/dist/templates/zod-validators.js +202 -22
  259. package/dist/templates/zod-validators.js.map +1 -1
  260. package/package.json +103 -34
  261. package/src/column-mapper.ts +79 -32
  262. package/src/constants.ts +18 -0
  263. package/src/docs-paths.ts +128 -0
  264. package/src/enum-import.ts +43 -0
  265. package/src/enum-shared.ts +95 -0
  266. package/src/generator-registry.ts +204 -0
  267. package/src/generator.ts +6 -0
  268. package/src/generators/api-doc-render.ts +572 -0
  269. package/src/generators/api-docs-file.ts +146 -0
  270. package/src/generators/api-field-shape.ts +114 -0
  271. package/src/generators/api-label.ts +7 -0
  272. package/src/generators/api-model.ts +1067 -0
  273. package/src/generators/docs-data-builder.ts +483 -189
  274. package/src/generators/docs-data.ts +139 -28
  275. package/src/generators/docs-file.ts +205 -39
  276. package/src/generators/entity-file.ts +31 -15
  277. package/src/generators/extractor-file.ts +2 -1
  278. package/src/generators/field-anchor.ts +24 -0
  279. package/src/generators/index.ts +8 -1
  280. package/src/generators/mermaid-er.ts +14 -0
  281. package/src/generators/output-parser-file.ts +3 -4
  282. package/src/generators/output-prompt-file.ts +2 -1
  283. package/src/generators/prompt-render-file.ts +3 -4
  284. package/src/generators/queries-file.ts +9 -3
  285. package/src/generators/render-helper-file.ts +2 -1
  286. package/src/generators/routes-file-hono.ts +5 -1
  287. package/src/generators/routes-file.ts +7 -1
  288. package/src/generators/template-doc-builder.ts +306 -0
  289. package/src/generators/template-doc-data.ts +85 -0
  290. package/src/generators/template-payload-tree.ts +71 -0
  291. package/src/generators/template-source-annotate.ts +290 -0
  292. package/src/generators/template-source-render.ts +203 -0
  293. package/src/generators/trace-helper-file.ts +301 -0
  294. package/src/import-path.ts +28 -0
  295. package/src/index.ts +55 -4
  296. package/src/metaobjects-config.ts +146 -2
  297. package/src/naming.ts +73 -3
  298. package/src/payload-codegen.ts +16 -5
  299. package/src/pk-resolver.ts +4 -2
  300. package/src/projection/extract-view-spec.ts +50 -31
  301. package/src/relation-resolver.ts +103 -1
  302. package/src/render-context.ts +32 -2
  303. package/src/render-engine/embedded-templates.generated.ts +14 -0
  304. package/src/render-engine/framework-provider.ts +25 -11
  305. package/src/runner.ts +24 -0
  306. package/src/templates/docs-file.ts +2 -9
  307. package/src/templates/drizzle-schema.ts +80 -28
  308. package/src/templates/entity-constants.ts +3 -3
  309. package/src/templates/entity-file.ts +16 -5
  310. package/src/templates/enums-file.ts +50 -0
  311. package/src/templates/extract-delegate-emitter.ts +6 -7
  312. package/src/templates/extractor.ts +70 -40
  313. package/src/templates/field-meta.ts +1 -7
  314. package/src/templates/filter-allowlist.ts +18 -11
  315. package/src/templates/filter-shared.ts +2 -2
  316. package/src/templates/filter-type.ts +9 -7
  317. package/src/templates/find-templates.ts +15 -0
  318. package/src/templates/fr010-field-mapping.ts +15 -13
  319. package/src/templates/inferred-types.ts +122 -21
  320. package/src/templates/mermaid-er.ts +176 -8
  321. package/src/templates/output-format-spec-emitter.ts +1 -1
  322. package/src/templates/output-parser.ts +31 -80
  323. package/src/templates/output-prompt.ts +2 -1
  324. package/src/templates/queries-file.ts +133 -4
  325. package/src/templates/queries.ts +21 -15
  326. package/src/templates/relations-block.ts +19 -3
  327. package/src/templates/render-helper.ts +5 -4
  328. package/src/templates/routes-file-hono.ts +1 -2
  329. package/src/templates/routes-file.ts +234 -7
  330. package/src/templates/tph-discriminator.ts +232 -0
  331. package/src/templates/value-object-file.ts +39 -5
  332. package/src/templates/zod-validators.ts +225 -21
  333. package/templates/api/agent-api.md.mustache +30 -0
  334. package/templates/api/entity-api.md.mustache +69 -0
  335. package/templates/api/index.md.mustache +21 -0
  336. package/templates/docs/entity-page.md.mustache +33 -21
  337. package/templates/docs/template-page.md.mustache +56 -0
  338. package/dist/templates/extract-schema-emitter.d.ts +0 -8
  339. package/dist/templates/extract-schema-emitter.d.ts.map +0 -1
  340. package/dist/templates/extract-schema-emitter.js +0 -81
  341. package/dist/templates/extract-schema-emitter.js.map +0 -1
  342. package/src/templates/extract-schema-emitter.ts +0 -111
@@ -12,6 +12,7 @@ import { renderZodValidators } from "./zod-validators.js";
12
12
  import { renderEntityConstants } from "./entity-constants.js";
13
13
  import { renderFilterAllowlist, renderSortAllowlist } from "./filter-allowlist.js";
14
14
  import { renderFilterType } from "./filter-type.js";
15
+ import { renderTphDiscriminatorUnion, isTphDiscriminatorBase } from "./tph-discriminator.js";
15
16
  import { GENERATED_HEADER } from "../constants.js";
16
17
  import { isProjection } from "../projection/projection-detector.js";
17
18
  import { renderProjectionDecl } from "./projection-decl.js";
@@ -29,7 +30,7 @@ export function renderEntityFile(entity, ctx, opts) {
29
30
  // it. The entity-file generator suppresses this entirely when
30
31
  // emitAbstractShapes is off; here we only guarantee "shape, never table".
31
32
  if (isAbstract(entity)) {
32
- return renderValueObjectFile(entity);
33
+ return renderValueObjectFile(entity, ctx.apiPrefix, ctx);
33
34
  }
34
35
  // --- Projection path (read-only: view-backed entity with no table source) ---
35
36
  // Projections intentionally get the z.enum() validator but NOT a named enum
@@ -46,18 +47,28 @@ export function renderEntityFile(entity, ctx, opts) {
46
47
  // the shape (LLM tool_use input_schema, REST body parsing) use the Zod
47
48
  // schema; consumers that need the type use the interface.
48
49
  if (!hasWritableRdbSource(entity)) {
49
- return renderValueObjectFile(entity);
50
+ return renderValueObjectFile(entity, ctx.apiPrefix, ctx);
50
51
  }
51
52
  // --- Vanilla / write-through entity path ---
52
- const enumAliases = renderEnumTypeAliases(entity);
53
+ const enumAliases = renderEnumTypeAliases(entity, ctx);
54
+ // FR-017 Tier 1: when this entity carries @discriminator AND has concrete
55
+ // subtypes, append the discriminated-union type alias, type guards, and
56
+ // the parse<Base>(row) dispatcher. Returns null otherwise (no subtypes, or
57
+ // not a discriminator-bearing entity); the section is suppressed cleanly.
58
+ const tphBlock = renderTphDiscriminatorUnion(entity, ctx.loadedRoot);
59
+ // FR-017: when a discriminator base also has a union block, the union owns the
60
+ // bare `<Base>` type — so the inferred Drizzle row type is emitted as
61
+ // `<Base>Row` to avoid a duplicate `export type <Base>`.
62
+ const tphBase = tphBlock !== null && isTphDiscriminatorBase(entity, ctx.loadedRoot);
53
63
  const sections = [
54
64
  renderDrizzleSchema(entity, ctx),
55
- renderInferredTypes(entity),
65
+ renderInferredTypes(entity, tphBase, ctx),
56
66
  ...(enumAliases !== null ? [enumAliases] : []),
57
- renderZodValidators(entity),
67
+ renderZodValidators(entity, ctx),
58
68
  renderEntityConstants(entity, ctx.apiPrefix),
59
69
  ...(allowlists ? [renderFilterAllowlist(entity), renderSortAllowlist(entity)] : []),
60
70
  renderFilterType(entity),
71
+ ...(tphBlock !== null ? [tphBlock] : []),
61
72
  ];
62
73
  // Render ts-poet body first (ts-poet hoists imp()-tracked imports to the top),
63
74
  // then prepend the @generated header so it lands at line 1 — convention for
@@ -1 +1 @@
1
- {"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,0EAA0E;AAC1E,EAAE;AACF,YAAY;AACZ,oHAAoH;AACpH,mHAAmH;AACnH,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAiBtD,MAAM,UAAU,gBAAgB,CAC9B,MAAkB,EAClB,GAAkB,EAClB,IAA2B;IAE3B,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IAE5C,qCAAqC;IACrC,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,8DAA8D;IAC9D,0EAA0E;IAC1E,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,+EAA+E;IAC/E,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE;YAClD,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;YAC9C,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,uEAAuE;IACvE,0DAA0D;IAC1D,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvD,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrE,+EAA+E;IAC/E,sEAAsE;IACtE,yDAAyD;IACzD,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,IAAI,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAW;QACvB,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC;QAChC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC;QACzC,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC;QAChC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;QAC5C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,gBAAgB,CAAC,MAAM,CAAC;QACxB,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC;IAEF,+EAA+E;IAC/E,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzD,MAAM,MAAM,GACV,MAAM,gBAAgB,mBAAmB;QACzC,uBAAuB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK;QACxD,oBAAoB,MAAM,CAAC,IAAI,gCAAgC,CAAC;IAClE,OAAO,MAAM,GAAG,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { MetaRoot } from "@metaobjectsdev/metadata";
2
+ /** Basename (no extension) of the shared-enums module emitted at the entity-module target root. */
3
+ export declare const SHARED_ENUMS_BASENAME = "enums";
4
+ /** The exported Zod-constant name for a shared enum (`<E>Enum`). */
5
+ export declare function sharedEnumZodConstName(enumName: string): string;
6
+ /**
7
+ * The full shared-enums module body, or null when the model has no materialized
8
+ * shared enums (so the generator emits no file at all).
9
+ */
10
+ export declare function renderSharedEnumsFile(root: MetaRoot): string | null;
11
+ //# sourceMappingURL=enums-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums-file.d.ts","sourceRoot":"","sources":["../../src/templates/enums-file.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAKzD,mGAAmG;AACnG,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAYD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CASnE"}
@@ -0,0 +1,44 @@
1
+ // FR-019 — shared enums module.
2
+ //
3
+ // Emits, ONCE per run, the materialized (non-@provided) shared enum types that
4
+ // at least one concrete entity field references via `extends` of a root-level
5
+ // abstract `field.enum`. Each enum yields:
6
+ // • `export type <E> = "A" | "B";` — the cross-port type identity
7
+ // • `export const <E>Enum = z.enum(["A","B"]);` — the shared Zod validator
8
+ //
9
+ // Consuming entity files import these instead of redeclaring the union inline.
10
+ // @provided enums are NEVER materialized here (they live in hand-written code,
11
+ // imported from the configured providedEnumModule).
12
+ import { code, imp, joinCode } from "ts-poet";
13
+ import { GENERATED_HEADER } from "../constants.js";
14
+ import { materializedSharedEnums } from "../enum-shared.js";
15
+ import { enumUnionString } from "./inferred-types.js";
16
+ /** Basename (no extension) of the shared-enums module emitted at the entity-module target root. */
17
+ export const SHARED_ENUMS_BASENAME = "enums";
18
+ /** The exported Zod-constant name for a shared enum (`<E>Enum`). */
19
+ export function sharedEnumZodConstName(enumName) {
20
+ return `${enumName}Enum`;
21
+ }
22
+ /** One enum's two declarations (type alias + shared z.enum const). */
23
+ function renderOneSharedEnum(e) {
24
+ const z = imp("z@zod");
25
+ const members = e.values.map((v) => JSON.stringify(v)).join(", ");
26
+ return code `
27
+ export type ${e.name} = ${enumUnionString(e.values)};
28
+ export const ${sharedEnumZodConstName(e.name)} = ${z}.enum([${members}]);
29
+ `;
30
+ }
31
+ /**
32
+ * The full shared-enums module body, or null when the model has no materialized
33
+ * shared enums (so the generator emits no file at all).
34
+ */
35
+ export function renderSharedEnumsFile(root) {
36
+ const enums = materializedSharedEnums(root);
37
+ if (enums.length === 0)
38
+ return null;
39
+ const body = joinCode(enums.map(renderOneSharedEnum), { on: "\n" }).toString();
40
+ const header = `// ${GENERATED_HEADER} — DO NOT EDIT.\n` +
41
+ `// Shared enum types (FR-019): one declaration per reused package-level enum.\n`;
42
+ return header + body;
43
+ }
44
+ //# sourceMappingURL=enums-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums-file.js","sourceRoot":"","sources":["../../src/templates/enums-file.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,2CAA2C;AAC3C,sEAAsE;AACtE,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,oDAAoD;AAEpD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAmB,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,mGAAmG;AACnG,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAE7C,oEAAoE;AACpE,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,OAAO,GAAG,QAAQ,MAAM,CAAC;AAC3B,CAAC;AAED,sEAAsE;AACtE,SAAS,mBAAmB,CAAC,CAAa;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,IAAI,CAAA;cACC,CAAC,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;eACpC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,OAAO;CACpE,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAClD,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/E,MAAM,MAAM,GACV,MAAM,gBAAgB,mBAAmB;QACzC,iFAAiF,CAAC;IACpF,OAAO,MAAM,GAAG,IAAI,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract-delegate-emitter.d.ts","sourceRoot":"","sources":["../../src/templates/extract-delegate-emitter.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,0BAA0B,CAAC;AAwBlC,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAE/C;AAiCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAKlG;AAuCD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAwED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAyCrE;AAED,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAmB/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAoDzD"}
1
+ {"version":3,"file":"extract-delegate-emitter.d.ts","sourceRoot":"","sources":["../../src/templates/extract-delegate-emitter.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,KAAK,QAAQ,EAQd,MAAM,0BAA0B,CAAC;AAwBlC,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAE/C;AAiCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAKlG;AAuCD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAwED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAyCrE;AAED,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAmB/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAoDzD"}
@@ -1,11 +1,9 @@
1
1
  // server/typescript/packages/codegen-ts/src/templates/extract-delegate-emitter.ts
2
2
  //
3
- // FR-010 Plan 2.1 (nested codegen gap) the runtime-DELEGATING extract emitter.
3
+ // FR-010 the runtime-DELEGATING extract emitter (the single metadata-driven extract path).
4
4
  //
5
- // The self-contained extract<Name>(text) path (extract-schema-emitter + the baked
6
- // ExtractSchema) covers scalars / enums / scalar-arrays but leaves nested-object and
7
- // array-of-object components NULL — the historical FR-010 codegen gap. This module emits
8
- // the additive delegating overload that CLOSES that gap by wrapping the runtime extract:
5
+ // This module emits the loader-delegating extract entry point that reads the live metadata
6
+ // directly and populates nested-object and array-of-object components in full:
9
7
  //
10
8
  // extract<Name>(root: MetaRoot, text, opts?) -> ExtractionResult<<Name>Extracted>
11
9
  //
@@ -20,14 +18,14 @@
20
18
  // mappers read the assembled graph through a tiny readProp() helper that mirrors the MetaField
21
19
  // getValue SPI (ValueObject.get(name) else plain-property access), so the emitted code stays
22
20
  // self-sufficient and reflection-free.
23
- import { TYPE_OBJECT, TYPE_FIELD, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_ENUM, FIELD_ATTR_OBJECT_REF, PACKAGE_SEPARATOR, } from "@metaobjectsdev/metadata";
21
+ import { TYPE_OBJECT, TYPE_FIELD, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_ENUM, FIELD_ATTR_OBJECT_REF, PACKAGE_SEPARATOR, refMatchesObject, } from "@metaobjectsdev/metadata";
24
22
  import { fields, isArray, scalarKind, jsonStringLiteral } from "./fr010-field-mapping.js";
25
23
  function findObject(root, name) {
26
- return root.ownChildren().find((c) => c.type === TYPE_OBJECT && c.name === name);
24
+ return root.ownChildren().find((c) => c.type === TYPE_OBJECT && refMatchesObject(c, name));
27
25
  }
28
26
  /** The @objectRef target VO for a nested-object field, or undefined when unresolvable. */
29
27
  function refVo(field, root) {
30
- const ref = field.ownAttr(FIELD_ATTR_OBJECT_REF);
28
+ const ref = field.attr(FIELD_ATTR_OBJECT_REF);
31
29
  if (typeof ref !== "string")
32
30
  return undefined;
33
31
  const direct = findObject(root, ref);
@@ -1 +1 @@
1
- {"version":3,"file":"extract-delegate-emitter.js","sourceRoot":"","sources":["../../src/templates/extract-delegate-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-delegate-emitter.js","sourceRoot":"","sources":["../../src/templates/extract-delegate-emitter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/templates/extractor.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,KAAK,QAAQ,EAYd,MAAM,0BAA0B,CAAC;AAyNlC;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CA0E5E"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/templates/extractor.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,KAAK,QAAQ,EAad,MAAM,0BAA0B,CAAC;AAgPlC;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAgF5E"}
@@ -19,20 +19,20 @@
19
19
  //
20
20
  // NO registry / binding provider / factory; codegen walks the whole type graph statically (the
21
21
  // same MetaObject walk the extract-schema / payload emitters use).
22
- import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_OUTPUT, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_ENUM, FIELD_ATTR_OBJECT_REF, FIELD_ATTR_REQUIRED, TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_FORMAT, PACKAGE_SEPARATOR, } from "@metaobjectsdev/metadata";
22
+ import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_OUTPUT, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_ENUM, FIELD_ATTR_OBJECT_REF, FIELD_ATTR_REQUIRED, TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_FORMAT, PACKAGE_SEPARATOR, refMatchesObject, } from "@metaobjectsdev/metadata";
23
23
  import { fields, isArray } from "./fr010-field-mapping.js";
24
24
  import { mirrorName } from "./extract-delegate-emitter.js";
25
25
  import { enumUnionAliasName } from "./inferred-types.js";
26
26
  import { enumValues } from "../enum-meta.js";
27
27
  function findObject(root, name) {
28
- return root.ownChildren().find((c) => c.type === TYPE_OBJECT && c.name === name);
28
+ return root.ownChildren().find((c) => c.type === TYPE_OBJECT && refMatchesObject(c, name));
29
29
  }
30
30
  function findTemplate(root, name) {
31
31
  return root.ownChildren().find((c) => c.type === TYPE_TEMPLATE && c.name === name);
32
32
  }
33
33
  /** The @objectRef target VO for a nested-object field, or undefined when unresolvable. */
34
34
  function refVo(field, root) {
35
- const ref = field.ownAttr(FIELD_ATTR_OBJECT_REF);
35
+ const ref = field.attr(FIELD_ATTR_OBJECT_REF);
36
36
  if (typeof ref !== "string")
37
37
  return undefined;
38
38
  const direct = findObject(root, ref);
@@ -48,9 +48,9 @@ function isObjectField(field) {
48
48
  }
49
49
  /**
50
50
  * The union-alias type name for a `field.enum` with effective `@values`, or undefined when the
51
- * field is not a value-constrained enum. Reuses `enumUnionAliasName` — the SAME naming the payload
52
- * emitter (`payload-codegen.ts`) types the field as — so the cast target resolves to the exact
53
- * alias exported from `payloads.ts`. `ownerName` is the owning value-object's interface name.
51
+ * field is not a value-constrained enum. Reuses `enumUnionAliasName` — the SAME naming the entity
52
+ * inferred-types emitter types the field as — so the cast target resolves to the exact alias
53
+ * exported from the owning VO's entity module. `ownerName` is the owning value-object's interface name.
54
54
  */
55
55
  function enumAlias(field, ownerName) {
56
56
  if (field.subType !== FIELD_SUBTYPE_ENUM)
@@ -61,14 +61,15 @@ function enumAlias(field, ownerName) {
61
61
  return enumUnionAliasName(ownerName, field);
62
62
  }
63
63
  /**
64
- * True iff the field is required IN THE STRICT PAYLOAD TYPE. This MUST match
65
- * payload-codegen.ts's `isFieldRequired` predicate EXACTLY (boolean `true` only) the payload
66
- * interface decides `T` vs `T | null` by that predicate, and the mapper's optionality assumption
67
- * (`m.f!` vs `m.f ?? null`) has to agree with the type it is constructing. A `@required:"true"`
68
- * string field is therefore `T | null` in the payload AND optional here (no skew).
64
+ * True iff the field is required IN THE STRICT PAYLOAD TYPE. The strict payload IS the VO's own
65
+ * generated entity-module interface (`renderValueObjectInterface`), which types a required field
66
+ * `f: T` and an optional one `f?: T` (i.e. `T | undefined` NOT `T | null`). So the mapper's
67
+ * optionality assumption (`m.f!` vs `m.f ?? undefined`) has to agree with THAT interface, and an
68
+ * absent optional maps to `undefined`, never `null`. This predicate matches the interface's
69
+ * required test (boolean `true` only) so the two never skew.
69
70
  */
70
71
  function isFieldRequired(field) {
71
- return field.ownAttr(FIELD_ATTR_REQUIRED) === true;
72
+ return field.attr(FIELD_ATTR_REQUIRED) === true;
72
73
  }
73
74
  /** The mirror→strict mapper name for a value-object (`toStrict<Name>`). */
74
75
  function mapperName(vo) {
@@ -76,8 +77,10 @@ function mapperName(vo) {
76
77
  }
77
78
  /**
78
79
  * The mapper-body initializer expression for one field, reading mirror member `m.<name>` and
79
- * mapping it onto the strict payload's exact optionality (required → `m.f!`; optional → `m.f ?? null`).
80
- * Nested single/array objects recurse into their toStrict<Type> mapper, guarding null when optional.
80
+ * mapping it onto the strict payload's exact optionality (required → `m.f!`; optional → `m.f ?? undefined`).
81
+ * The strict payload is the VO's generated entity-module interface, whose optional fields are
82
+ * `f?: T` (= `T | undefined`, never `T | null`), so an absent optional maps to `undefined`.
83
+ * Nested single/array objects recurse into their toStrict<Type> mapper, guarding when optional.
81
84
  */
82
85
  function strictArg(field, root, ownerName) {
83
86
  const name = field.name;
@@ -86,7 +89,7 @@ function strictArg(field, root, ownerName) {
86
89
  const target = refVo(field, root);
87
90
  if (target === undefined) {
88
91
  // Unresolved @objectRef — the payload type would be `unknown`; pass through as-is.
89
- return required ? `m.${name}!` : `m.${name} ?? null`;
92
+ return required ? `m.${name}!` : `m.${name} ?? undefined`;
90
93
  }
91
94
  const fn = mapperName(target);
92
95
  if (isArray(field)) {
@@ -94,18 +97,18 @@ function strictArg(field, root, ownerName) {
94
97
  // via the non-null assertion (extract never yields null elements for a present array).
95
98
  if (required)
96
99
  return `m.${name}!.map((e) => ${fn}(e!))`;
97
- return `m.${name} ? m.${name}!.map((e) => ${fn}(e!)) : null`;
100
+ return `m.${name} ? m.${name}!.map((e) => ${fn}(e!)) : undefined`;
98
101
  }
99
102
  // Single nested object.
100
103
  if (required)
101
104
  return `${fn}(m.${name}!)`;
102
- return `m.${name} ? ${fn}(m.${name}) : null`;
105
+ return `m.${name} ? ${fn}(m.${name}) : undefined`;
103
106
  }
104
107
  // Scalar ARRAY (e.g. `field.string` with isArray): the mirror types it `(T | null)[] | null`
105
- // but the strict payload types it `T[]` (required) / `T[] | null` (optional). A bare `m.f!`
108
+ // but the strict payload types it `T[]` (required) / `T[]?` (optional). A bare `m.f!`
106
109
  // would leave the element type `T | null`, a `tsc --strict` TS2322 error. Filter out null
107
110
  // elements so the element type narrows to non-null (consistent with the lost-element DROP policy
108
- // already used for required arrays-of-objects above).
111
+ // already used for required arrays-of-objects above). An absent optional array maps to `undefined`.
109
112
  //
110
113
  // ENUM arrays: the mirror element is a plain `string`, but the strict payload types it as the
111
114
  // closed `<Alias>[]` union. The null-filter alone narrows to `string[]`, not `<Alias>[]` — a
@@ -119,22 +122,22 @@ function strictArg(field, root, ownerName) {
119
122
  return alias !== undefined ? `(${filtered}) as ${alias}[]` : filtered;
120
123
  }
121
124
  const filtered = `m.${name}.filter((x): x is NonNullable<typeof x> => x != null)`;
122
- const guarded = `m.${name} == null ? null : ${filtered}`;
125
+ const guarded = `m.${name} == null ? undefined : ${filtered}`;
123
126
  return alias !== undefined
124
- ? `m.${name} == null ? null : (${filtered}) as ${alias}[]`
127
+ ? `m.${name} == null ? undefined : (${filtered}) as ${alias}[]`
125
128
  : guarded;
126
129
  }
127
130
  // Scalar / enum (single): the strict payload's optionality decides the shape.
128
- // Required → non-null assertion; optional → `?? null` (matches the payload's `f?: T | null`).
131
+ // Required → non-null assertion; optional → `?? undefined` (matches the entity-module `f?: T`).
129
132
  //
130
133
  // ENUM scalar: the mirror member is a plain `string`, but the strict payload types it as the
131
134
  // closed `<Alias>` union — assigning `string` into `<Alias>` is a `tsc --strict` TS2322 error.
132
135
  // So the value is CAST to `<Alias>`. Sound for the same reason as enum arrays above: the engine
133
136
  // already validated membership (or extract throws on a lost required field).
134
137
  if (alias !== undefined) {
135
- return required ? `m.${name}! as ${alias}` : `(m.${name} ?? null) as ${alias} | null`;
138
+ return required ? `m.${name}! as ${alias}` : `(m.${name} ?? undefined) as ${alias} | undefined`;
136
139
  }
137
- return required ? `m.${name}!` : `m.${name} ?? null`;
140
+ return required ? `m.${name}!` : `m.${name} ?? undefined`;
138
141
  }
139
142
  /**
140
143
  * Emit one `toStrict<VO>(m)` mapper per value-object reachable from `vo` (payload + nested,
@@ -173,25 +176,34 @@ function emitMapper(vo, root, seen, out, mirrorOverride) {
173
176
  }
174
177
  }
175
178
  /**
176
- * Collect the strict payload-interface names reachable from `vo` (for the type-only import),
177
- * PLUS every enum union-alias reachable from those VOs. Both are exported from `payloads.ts`
178
- * (the alias is hoisted above the interface there), so the extractor's `as <Alias>` casts need
179
- * the alias names imported alongside the interface names. Deduped, in discovery order.
179
+ * Group the strict payload types reachable from `vo` BY THE ENTITY MODULE THAT EXPORTS THEM.
180
+ *
181
+ * Each value-object gets its own generated entity module (`entityFile()` emits `<VO>.ts` exporting
182
+ * `export interface <VO>`), and `renderEnumTypeAliases` hoists every `field.enum` union-alias INTO
183
+ * the OWNING VO's module (`export type <Owner><Field> = ...` co-located with the interface). So a
184
+ * VO's interface AND the aliases for its own enum fields are imported from `./<VO>.js` — NOT from a
185
+ * single `payloads.ts` (which no generator emits). Deduped, in discovery order, one group per VO.
180
186
  */
181
- function reachablePayloadTypes(vo, root) {
182
- const order = [];
183
- const seen = new Set();
187
+ function reachablePayloadGroups(vo, root) {
188
+ const groups = [];
189
+ const seenVo = new Set();
190
+ const seenAlias = new Set();
184
191
  const visit = (cur) => {
185
- if (seen.has(cur.name))
192
+ if (seenVo.has(cur.name))
186
193
  return;
187
- seen.add(cur.name);
188
- order.push(cur.name);
194
+ seenVo.add(cur.name);
195
+ // The VO interface + its OWN enum aliases share the VO's entity module.
196
+ const types = [cur.name];
189
197
  for (const f of fields(cur)) {
190
198
  const alias = enumAlias(f, cur.name);
191
- if (alias !== undefined && !seen.has(alias)) {
192
- seen.add(alias);
193
- order.push(alias);
199
+ if (alias !== undefined && !seenAlias.has(alias)) {
200
+ seenAlias.add(alias);
201
+ types.push(alias);
194
202
  }
203
+ }
204
+ groups.push({ module: cur.name, types });
205
+ // Recurse into nested object refs (their interfaces live in their own modules).
206
+ for (const f of fields(cur)) {
195
207
  if (isObjectField(f)) {
196
208
  const target = refVo(f, root);
197
209
  if (target !== undefined)
@@ -200,7 +212,7 @@ function reachablePayloadTypes(vo, root) {
200
212
  }
201
213
  };
202
214
  visit(vo);
203
- return order;
215
+ return groups;
204
216
  }
205
217
  /** Collect the mirror-interface names reachable from `vo` (root mirror + nested VO mirrors). */
206
218
  function reachableMirrorTypes(vo, root, rootMirror) {
@@ -253,9 +265,14 @@ export function renderExtractor(root, templateName) {
253
265
  const extractLenientPublic = `extractLenient${templateName}`; // re-exposed never-throws lenient tier name
254
266
  const extractName = `extract${templateName}`;
255
267
  const rootMapper = mapperName(vo);
256
- const payloadTypes = reachablePayloadTypes(vo, root);
268
+ const payloadGroups = reachablePayloadGroups(vo, root);
257
269
  const mirrorTypes = reachableMirrorTypes(vo, root, rootMirror);
258
270
  const mappers = emitMappers(vo, root, rootMirror);
271
+ // One type-only import per VO entity module (the VO interface + its own enum
272
+ // union-aliases co-located there). NOT a single non-existent `./payloads.js`.
273
+ const payloadImports = payloadGroups
274
+ .map((g) => `import type { ${g.types.join(", ")} } from "./${g.module}.js";`)
275
+ .join("\n");
259
276
  const lostMsg = `${extractName}: lost required field(s): `;
260
277
  return (`// GENERATED — extractor for "${templateName}".\n` +
261
278
  `//\n` +
@@ -264,13 +281,13 @@ export function renderExtractor(root, templateName) {
264
281
  `// mapping the all-nullable mirror onto the strict payload. No registry / binding / factory.\n` +
265
282
  `\n` +
266
283
  `import {\n ${extractLenientWithName},\n type ${mirrorTypes.join(",\n type ")},\n} from "./${templateName}.output.js";\n` +
267
- `import type { ${payloadTypes.join(", ")} } from "./payloads.js";\n` +
284
+ `${payloadImports}\n` +
268
285
  `import type { MetaRoot } from "@metaobjectsdev/metadata";\n` +
269
286
  `import type { ExtractionResult } from "@metaobjectsdev/render";\n` +
270
287
  `\n` +
271
288
  `/**\n` +
272
289
  ` * Extract a fully-typed \`${strictType}\` from dirty \`text\` using the loaded \`root\` (which must\n` +
273
- ` * declare the "${payloadRef}" payload value-object). Runs the tolerant extract, then maps the\n` +
290
+ ` * declare the "${strictType}" payload value-object). Runs the tolerant extract, then maps the\n` +
274
291
  ` * extracted mirror onto the strict payload.\n` +
275
292
  ` *\n` +
276
293
  ` * @throws Error iff a \`@required\` field was lost (the strict opt-in gate).\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/templates/extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/templates/extractor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-meta.d.ts","sourceRoot":"","sources":["../../src/templates/field-meta.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAiCrD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAMtD;AA6BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CA6BnD;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS7F;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAMjD"}
1
+ {"version":3,"file":"field-meta.d.ts","sourceRoot":"","sources":["../../src/templates/field-meta.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA+BrD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAMtD;AA2BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CA2BnD;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS7F;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAMjD"}
@@ -3,7 +3,7 @@
3
3
  //
4
4
  // All helpers take a MetaField node.
5
5
  import { MetaField } from "@metaobjectsdev/metadata";
6
- import { FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_SHORT, FIELD_SUBTYPE_BYTE, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_UUID, VIEW_SUBTYPE_TEXT, VIEW_SUBTYPE_DATE, VIEW_SUBTYPE_NUMBER, VIEW_SUBTYPE_CHECKBOX, VIEW_SUBTYPE_CURRENCY, FIELD_ATTR_CURRENCY, FIELD_ATTR_CURRENCY_DEFAULT, VIEW_CURRENCY_ATTR_LOCALE, VIEW_CURRENCY_ATTR_LOCALE_DEFAULT, } from "@metaobjectsdev/metadata";
6
+ import { FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_UUID, VIEW_SUBTYPE_TEXT, VIEW_SUBTYPE_DATE, VIEW_SUBTYPE_NUMBER, VIEW_SUBTYPE_CHECKBOX, VIEW_SUBTYPE_CURRENCY, FIELD_ATTR_CURRENCY, FIELD_ATTR_CURRENCY_DEFAULT, VIEW_CURRENCY_ATTR_LOCALE, VIEW_CURRENCY_ATTR_LOCALE_DEFAULT, } from "@metaobjectsdev/metadata";
7
7
  import { enumValues, zodEnumExpr } from "../enum-meta.js";
8
8
  // ---------------------------------------------------------------------------
9
9
  // inferViewKind
@@ -26,8 +26,6 @@ function defaultViewForSubType(subType) {
26
26
  return VIEW_SUBTYPE_CHECKBOX;
27
27
  case FIELD_SUBTYPE_INT:
28
28
  case FIELD_SUBTYPE_LONG:
29
- case FIELD_SUBTYPE_SHORT:
30
- case FIELD_SUBTYPE_BYTE:
31
29
  case FIELD_SUBTYPE_DOUBLE:
32
30
  case FIELD_SUBTYPE_FLOAT:
33
31
  case FIELD_SUBTYPE_DECIMAL:
@@ -62,8 +60,6 @@ export function zodTypeFor(field) {
62
60
  return "z.string()";
63
61
  case FIELD_SUBTYPE_INT:
64
62
  case FIELD_SUBTYPE_LONG:
65
- case FIELD_SUBTYPE_SHORT:
66
- case FIELD_SUBTYPE_BYTE:
67
63
  case FIELD_SUBTYPE_CURRENCY:
68
64
  return "z.number().int()";
69
65
  case FIELD_SUBTYPE_DOUBLE:
@@ -88,7 +84,7 @@ export function zodTypeFor(field) {
88
84
  export function currencyMetaFor(field) {
89
85
  if (field.subType !== FIELD_SUBTYPE_CURRENCY)
90
86
  return null;
91
- const currency = field.ownAttr(FIELD_ATTR_CURRENCY) ?? FIELD_ATTR_CURRENCY_DEFAULT;
87
+ const currency = field.attr(FIELD_ATTR_CURRENCY) ?? FIELD_ATTR_CURRENCY_DEFAULT;
92
88
  const viewChild = field.views().find((c) => c.subType === VIEW_SUBTYPE_CURRENCY);
93
89
  const locale = viewChild?.ownAttr(VIEW_CURRENCY_ATTR_LOCALE) ??
94
90
  VIEW_CURRENCY_ATTR_LOCALE_DEFAULT;
@@ -1 +1 @@
1
- {"version":3,"file":"field-meta.js","sourceRoot":"","sources":["../../src/templates/field-meta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-meta.js","sourceRoot":"","sources":["../../src/templates/field-meta.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,+EAA+E;AAC/E,EAAE;AACF,qCAAqC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE1D,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,qEAAqE;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,OAAO,CAAC;IACxC,gCAAgC;IAChC,OAAO,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,qBAAqB;YACxB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,iBAAiB,CAAC;QACvB,KAAK,kBAAkB,CAAC;QACxB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,mBAAmB,CAAC;QACzB,KAAK,qBAAqB;YACxB,OAAO,mBAAmB,CAAC;QAC7B,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,uBAAuB;YAC1B,OAAO,iBAAiB,CAAC;QAC3B,KAAK,sBAAsB;YACzB,OAAO,qBAAqB,CAAC;QAC/B;YACE,OAAO,iBAAiB,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,kBAAkB;YACrB,OAAO,YAAY,CAAC;QACtB,KAAK,qBAAqB;YACxB,OAAO,aAAa,CAAC;QACvB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,uBAAuB;YAC1B,wDAAwD;YACxD,OAAO,YAAY,CAAC;QACtB,KAAK,iBAAiB,CAAC;QACvB,KAAK,kBAAkB,CAAC;QACxB,KAAK,sBAAsB;YACzB,OAAO,kBAAkB,CAAC;QAC5B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,mBAAmB,CAAC;QACzB,KAAK,qBAAqB;YACxB,OAAO,YAAY,CAAC;QACtB,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACnE,CAAC;QACD;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC9C,IAAI,KAAK,CAAC,OAAO,KAAK,sBAAsB;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,QAAQ,GACX,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAwB,IAAI,2BAA2B,CAAC;IACzF,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,qBAAqB,CAAC,CAAC;IACjF,MAAM,MAAM,GACT,SAAS,EAAE,OAAO,CAAC,yBAAyB,CAAwB;QACrE,iCAAiC,CAAC;IACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACvC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IAClE,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC;SACL,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACxC,IAAI,EAAE,CAAC;AACZ,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { type Code } from "ts-poet";
2
2
  import { MetaObject } from "@metaobjectsdev/metadata";
3
- export declare function renderFilterAllowlist(entity: MetaObject): Code;
4
- export declare function renderSortAllowlist(entity: MetaObject): Code;
3
+ /**
4
+ * `exclude` (FR-017): drop a field from the allowlist. Used by per-subtype TPH
5
+ * allowlists to omit the discriminator — it's pinned by the per-subtype route
6
+ * path, so a client must not filter on it.
7
+ */
8
+ export declare function renderFilterAllowlist(entity: MetaObject, exclude?: string): Code;
9
+ export declare function renderSortAllowlist(entity: MetaObject, exclude?: string): Code;
5
10
  //# sourceMappingURL=filter-allowlist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-allowlist.d.ts","sourceRoot":"","sources":["../../src/templates/filter-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAa,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgDjE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAuB9D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CA6B5D"}
1
+ {"version":3,"file":"filter-allowlist.d.ts","sourceRoot":"","sources":["../../src/templates/filter-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAa,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAiDjE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAuBhF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CA8B9E"}