@metaobjectsdev/codegen-ts 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/README.md +1 -1
  2. package/dist/column-mapper.d.ts.map +1 -1
  3. package/dist/column-mapper.js +24 -8
  4. package/dist/column-mapper.js.map +1 -1
  5. package/dist/constants.d.ts +8 -0
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +16 -0
  8. package/dist/constants.js.map +1 -1
  9. package/dist/docs-paths.d.ts +58 -0
  10. package/dist/docs-paths.d.ts.map +1 -0
  11. package/dist/docs-paths.js +89 -0
  12. package/dist/docs-paths.js.map +1 -0
  13. package/dist/enum-import.d.ts +14 -0
  14. package/dist/enum-import.d.ts.map +1 -0
  15. package/dist/enum-import.js +35 -0
  16. package/dist/enum-import.js.map +1 -0
  17. package/dist/enum-shared.d.ts +32 -0
  18. package/dist/enum-shared.d.ts.map +1 -0
  19. package/dist/enum-shared.js +83 -0
  20. package/dist/enum-shared.js.map +1 -0
  21. package/dist/generator-registry.d.ts +22 -0
  22. package/dist/generator-registry.d.ts.map +1 -0
  23. package/dist/generator-registry.js +161 -0
  24. package/dist/generator-registry.js.map +1 -0
  25. package/dist/generator.d.ts +6 -0
  26. package/dist/generator.d.ts.map +1 -1
  27. package/dist/generator.js.map +1 -1
  28. package/dist/generators/api-doc-render.d.ts +17 -0
  29. package/dist/generators/api-doc-render.d.ts.map +1 -0
  30. package/dist/generators/api-doc-render.js +431 -0
  31. package/dist/generators/api-doc-render.js.map +1 -0
  32. package/dist/generators/api-docs-file.d.ts +21 -0
  33. package/dist/generators/api-docs-file.d.ts.map +1 -0
  34. package/dist/generators/api-docs-file.js +112 -0
  35. package/dist/generators/api-docs-file.js.map +1 -0
  36. package/dist/generators/api-field-shape.d.ts +39 -0
  37. package/dist/generators/api-field-shape.d.ts.map +1 -0
  38. package/dist/generators/api-field-shape.js +92 -0
  39. package/dist/generators/api-field-shape.js.map +1 -0
  40. package/dist/generators/api-label.d.ts +3 -0
  41. package/dist/generators/api-label.d.ts.map +1 -0
  42. package/dist/generators/api-label.js +8 -0
  43. package/dist/generators/api-label.js.map +1 -0
  44. package/dist/generators/api-model.d.ts +122 -0
  45. package/dist/generators/api-model.d.ts.map +1 -0
  46. package/dist/generators/api-model.js +809 -0
  47. package/dist/generators/api-model.js.map +1 -0
  48. package/dist/generators/docs-data-builder.d.ts +26 -4
  49. package/dist/generators/docs-data-builder.d.ts.map +1 -1
  50. package/dist/generators/docs-data-builder.js +436 -164
  51. package/dist/generators/docs-data-builder.js.map +1 -1
  52. package/dist/generators/docs-data.d.ts +136 -27
  53. package/dist/generators/docs-data.d.ts.map +1 -1
  54. package/dist/generators/docs-data.js +1 -1
  55. package/dist/generators/docs-data.js.map +1 -1
  56. package/dist/generators/docs-file.d.ts +19 -0
  57. package/dist/generators/docs-file.d.ts.map +1 -1
  58. package/dist/generators/docs-file.js +154 -27
  59. package/dist/generators/docs-file.js.map +1 -1
  60. package/dist/generators/entity-file.d.ts.map +1 -1
  61. package/dist/generators/entity-file.js +29 -14
  62. package/dist/generators/entity-file.js.map +1 -1
  63. package/dist/generators/extractor-file.d.ts.map +1 -1
  64. package/dist/generators/extractor-file.js +2 -1
  65. package/dist/generators/extractor-file.js.map +1 -1
  66. package/dist/generators/field-anchor.d.ts +7 -0
  67. package/dist/generators/field-anchor.d.ts.map +1 -0
  68. package/dist/generators/field-anchor.js +23 -0
  69. package/dist/generators/field-anchor.js.map +1 -0
  70. package/dist/generators/index.d.ts +8 -1
  71. package/dist/generators/index.d.ts.map +1 -1
  72. package/dist/generators/index.js +6 -0
  73. package/dist/generators/index.js.map +1 -1
  74. package/dist/generators/mermaid-er.d.ts +14 -0
  75. package/dist/generators/mermaid-er.d.ts.map +1 -1
  76. package/dist/generators/mermaid-er.js +14 -0
  77. package/dist/generators/mermaid-er.js.map +1 -1
  78. package/dist/generators/output-parser-file.d.ts.map +1 -1
  79. package/dist/generators/output-parser-file.js +3 -4
  80. package/dist/generators/output-parser-file.js.map +1 -1
  81. package/dist/generators/output-prompt-file.d.ts.map +1 -1
  82. package/dist/generators/output-prompt-file.js +2 -2
  83. package/dist/generators/output-prompt-file.js.map +1 -1
  84. package/dist/generators/prompt-render-file.d.ts.map +1 -1
  85. package/dist/generators/prompt-render-file.js +3 -4
  86. package/dist/generators/prompt-render-file.js.map +1 -1
  87. package/dist/generators/queries-file.d.ts.map +1 -1
  88. package/dist/generators/queries-file.js +8 -3
  89. package/dist/generators/queries-file.js.map +1 -1
  90. package/dist/generators/render-helper-file.d.ts.map +1 -1
  91. package/dist/generators/render-helper-file.js +2 -2
  92. package/dist/generators/render-helper-file.js.map +1 -1
  93. package/dist/generators/routes-file-hono.d.ts.map +1 -1
  94. package/dist/generators/routes-file-hono.js +5 -1
  95. package/dist/generators/routes-file-hono.js.map +1 -1
  96. package/dist/generators/routes-file.d.ts +3 -0
  97. package/dist/generators/routes-file.d.ts.map +1 -1
  98. package/dist/generators/routes-file.js +6 -1
  99. package/dist/generators/routes-file.js.map +1 -1
  100. package/dist/generators/template-doc-builder.d.ts +19 -0
  101. package/dist/generators/template-doc-builder.d.ts.map +1 -0
  102. package/dist/generators/template-doc-builder.js +220 -0
  103. package/dist/generators/template-doc-builder.js.map +1 -0
  104. package/dist/generators/template-doc-data.d.ts +62 -0
  105. package/dist/generators/template-doc-data.d.ts.map +1 -0
  106. package/dist/generators/template-doc-data.js +16 -0
  107. package/dist/generators/template-doc-data.js.map +1 -0
  108. package/dist/generators/template-payload-tree.d.ts +15 -0
  109. package/dist/generators/template-payload-tree.d.ts.map +1 -0
  110. package/dist/generators/template-payload-tree.js +61 -0
  111. package/dist/generators/template-payload-tree.js.map +1 -0
  112. package/dist/generators/template-source-annotate.d.ts +74 -0
  113. package/dist/generators/template-source-annotate.d.ts.map +1 -0
  114. package/dist/generators/template-source-annotate.js +184 -0
  115. package/dist/generators/template-source-annotate.js.map +1 -0
  116. package/dist/generators/template-source-render.d.ts +24 -0
  117. package/dist/generators/template-source-render.d.ts.map +1 -0
  118. package/dist/generators/template-source-render.js +175 -0
  119. package/dist/generators/template-source-render.js.map +1 -0
  120. package/dist/generators/trace-helper-file.d.ts +9 -0
  121. package/dist/generators/trace-helper-file.d.ts.map +1 -0
  122. package/dist/generators/trace-helper-file.js +196 -0
  123. package/dist/generators/trace-helper-file.js.map +1 -0
  124. package/dist/index.d.ts +29 -4
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +28 -2
  127. package/dist/index.js.map +1 -1
  128. package/dist/metaobjects-config.d.ts +75 -2
  129. package/dist/metaobjects-config.d.ts.map +1 -1
  130. package/dist/metaobjects-config.js +43 -0
  131. package/dist/metaobjects-config.js.map +1 -1
  132. package/dist/naming.d.ts +19 -0
  133. package/dist/naming.d.ts.map +1 -1
  134. package/dist/naming.js +41 -0
  135. package/dist/naming.js.map +1 -1
  136. package/dist/payload-codegen.d.ts.map +1 -1
  137. package/dist/payload-codegen.js +12 -4
  138. package/dist/payload-codegen.js.map +1 -1
  139. package/dist/projection/extract-view-spec.d.ts.map +1 -1
  140. package/dist/projection/extract-view-spec.js +51 -25
  141. package/dist/projection/extract-view-spec.js.map +1 -1
  142. package/dist/relation-resolver.d.ts +16 -0
  143. package/dist/relation-resolver.d.ts.map +1 -1
  144. package/dist/relation-resolver.js +82 -1
  145. package/dist/relation-resolver.js.map +1 -1
  146. package/dist/render-context.d.ts +4 -0
  147. package/dist/render-context.d.ts.map +1 -1
  148. package/dist/render-context.js.map +1 -1
  149. package/dist/render-engine/embedded-templates.generated.d.ts +2 -0
  150. package/dist/render-engine/embedded-templates.generated.d.ts.map +1 -0
  151. package/dist/render-engine/embedded-templates.generated.js +15 -0
  152. package/dist/render-engine/embedded-templates.generated.js.map +1 -0
  153. package/dist/render-engine/framework-provider.d.ts.map +1 -1
  154. package/dist/render-engine/framework-provider.js +26 -13
  155. package/dist/render-engine/framework-provider.js.map +1 -1
  156. package/dist/runner.d.ts.map +1 -1
  157. package/dist/runner.js +17 -0
  158. package/dist/runner.js.map +1 -1
  159. package/dist/templates/docs-file.d.ts +2 -6
  160. package/dist/templates/docs-file.d.ts.map +1 -1
  161. package/dist/templates/docs-file.js +2 -5
  162. package/dist/templates/docs-file.js.map +1 -1
  163. package/dist/templates/drizzle-schema.d.ts.map +1 -1
  164. package/dist/templates/drizzle-schema.js +30 -2
  165. package/dist/templates/drizzle-schema.js.map +1 -1
  166. package/dist/templates/entity-constants.d.ts +7 -0
  167. package/dist/templates/entity-constants.d.ts.map +1 -1
  168. package/dist/templates/entity-constants.js +1 -1
  169. package/dist/templates/entity-constants.js.map +1 -1
  170. package/dist/templates/entity-file.d.ts.map +1 -1
  171. package/dist/templates/entity-file.js +16 -5
  172. package/dist/templates/entity-file.js.map +1 -1
  173. package/dist/templates/enums-file.d.ts +11 -0
  174. package/dist/templates/enums-file.d.ts.map +1 -0
  175. package/dist/templates/enums-file.js +44 -0
  176. package/dist/templates/enums-file.js.map +1 -0
  177. package/dist/templates/extract-delegate-emitter.d.ts.map +1 -1
  178. package/dist/templates/extract-delegate-emitter.js +5 -7
  179. package/dist/templates/extract-delegate-emitter.js.map +1 -1
  180. package/dist/templates/extract-schema-emitter.d.ts.map +1 -1
  181. package/dist/templates/extract-schema-emitter.js +5 -1
  182. package/dist/templates/extract-schema-emitter.js.map +1 -1
  183. package/dist/templates/extractor.d.ts.map +1 -1
  184. package/dist/templates/extractor.js +56 -39
  185. package/dist/templates/extractor.js.map +1 -1
  186. package/dist/templates/field-meta.d.ts.map +1 -1
  187. package/dist/templates/field-meta.js +1 -5
  188. package/dist/templates/field-meta.js.map +1 -1
  189. package/dist/templates/filter-allowlist.d.ts +7 -2
  190. package/dist/templates/filter-allowlist.d.ts.map +1 -1
  191. package/dist/templates/filter-allowlist.js +17 -9
  192. package/dist/templates/filter-allowlist.js.map +1 -1
  193. package/dist/templates/filter-type.d.ts +7 -1
  194. package/dist/templates/filter-type.d.ts.map +1 -1
  195. package/dist/templates/filter-type.js +9 -5
  196. package/dist/templates/filter-type.js.map +1 -1
  197. package/dist/templates/find-templates.d.ts +4 -0
  198. package/dist/templates/find-templates.d.ts.map +1 -0
  199. package/dist/templates/find-templates.js +15 -0
  200. package/dist/templates/find-templates.js.map +1 -0
  201. package/dist/templates/fr010-field-mapping.d.ts +2 -0
  202. package/dist/templates/fr010-field-mapping.d.ts.map +1 -1
  203. package/dist/templates/fr010-field-mapping.js +10 -6
  204. package/dist/templates/fr010-field-mapping.js.map +1 -1
  205. package/dist/templates/inferred-types.d.ts +44 -7
  206. package/dist/templates/inferred-types.d.ts.map +1 -1
  207. package/dist/templates/inferred-types.js +107 -16
  208. package/dist/templates/inferred-types.js.map +1 -1
  209. package/dist/templates/mermaid-er.d.ts +35 -2
  210. package/dist/templates/mermaid-er.d.ts.map +1 -1
  211. package/dist/templates/mermaid-er.js +174 -7
  212. package/dist/templates/mermaid-er.js.map +1 -1
  213. package/dist/templates/output-parser.d.ts.map +1 -1
  214. package/dist/templates/output-parser.js +30 -79
  215. package/dist/templates/output-parser.js.map +1 -1
  216. package/dist/templates/output-prompt.d.ts.map +1 -1
  217. package/dist/templates/output-prompt.js +2 -2
  218. package/dist/templates/output-prompt.js.map +1 -1
  219. package/dist/templates/queries-file.d.ts.map +1 -1
  220. package/dist/templates/queries-file.js +112 -4
  221. package/dist/templates/queries-file.js.map +1 -1
  222. package/dist/templates/queries.d.ts +5 -0
  223. package/dist/templates/queries.d.ts.map +1 -1
  224. package/dist/templates/queries.js +7 -7
  225. package/dist/templates/queries.js.map +1 -1
  226. package/dist/templates/recover-schema-emitter.d.ts +8 -0
  227. package/dist/templates/recover-schema-emitter.d.ts.map +1 -0
  228. package/dist/templates/recover-schema-emitter.js +64 -0
  229. package/dist/templates/recover-schema-emitter.js.map +1 -0
  230. package/dist/templates/relations-block.js +10 -0
  231. package/dist/templates/relations-block.js.map +1 -1
  232. package/dist/templates/render-helper.d.ts.map +1 -1
  233. package/dist/templates/render-helper.js +4 -4
  234. package/dist/templates/render-helper.js.map +1 -1
  235. package/dist/templates/routes-file.d.ts.map +1 -1
  236. package/dist/templates/routes-file.js +183 -6
  237. package/dist/templates/routes-file.js.map +1 -1
  238. package/dist/templates/tph-discriminator.d.ts +56 -0
  239. package/dist/templates/tph-discriminator.d.ts.map +1 -0
  240. package/dist/templates/tph-discriminator.js +180 -0
  241. package/dist/templates/tph-discriminator.js.map +1 -0
  242. package/dist/templates/value-object-file.d.ts +2 -1
  243. package/dist/templates/value-object-file.d.ts.map +1 -1
  244. package/dist/templates/value-object-file.js +32 -4
  245. package/dist/templates/value-object-file.js.map +1 -1
  246. package/dist/templates/zod-validators.d.ts +64 -1
  247. package/dist/templates/zod-validators.d.ts.map +1 -1
  248. package/dist/templates/zod-validators.js +181 -8
  249. package/dist/templates/zod-validators.js.map +1 -1
  250. package/package.json +103 -34
  251. package/src/column-mapper.ts +25 -8
  252. package/src/constants.ts +18 -0
  253. package/src/docs-paths.ts +128 -0
  254. package/src/enum-import.ts +43 -0
  255. package/src/enum-shared.ts +95 -0
  256. package/src/generator-registry.ts +204 -0
  257. package/src/generator.ts +6 -0
  258. package/src/generators/api-doc-render.ts +572 -0
  259. package/src/generators/api-docs-file.ts +146 -0
  260. package/src/generators/api-field-shape.ts +114 -0
  261. package/src/generators/api-label.ts +7 -0
  262. package/src/generators/api-model.ts +1067 -0
  263. package/src/generators/docs-data-builder.ts +479 -185
  264. package/src/generators/docs-data.ts +139 -28
  265. package/src/generators/docs-file.ts +205 -39
  266. package/src/generators/entity-file.ts +31 -15
  267. package/src/generators/extractor-file.ts +2 -1
  268. package/src/generators/field-anchor.ts +24 -0
  269. package/src/generators/index.ts +8 -1
  270. package/src/generators/mermaid-er.ts +14 -0
  271. package/src/generators/output-parser-file.ts +3 -4
  272. package/src/generators/output-prompt-file.ts +2 -1
  273. package/src/generators/prompt-render-file.ts +3 -4
  274. package/src/generators/queries-file.ts +9 -3
  275. package/src/generators/render-helper-file.ts +2 -1
  276. package/src/generators/routes-file-hono.ts +5 -1
  277. package/src/generators/routes-file.ts +7 -1
  278. package/src/generators/template-doc-builder.ts +306 -0
  279. package/src/generators/template-doc-data.ts +85 -0
  280. package/src/generators/template-payload-tree.ts +71 -0
  281. package/src/generators/template-source-annotate.ts +290 -0
  282. package/src/generators/template-source-render.ts +203 -0
  283. package/src/generators/trace-helper-file.ts +301 -0
  284. package/src/index.ts +55 -4
  285. package/src/metaobjects-config.ts +117 -2
  286. package/src/naming.ts +48 -0
  287. package/src/payload-codegen.ts +14 -3
  288. package/src/projection/extract-view-spec.ts +49 -30
  289. package/src/relation-resolver.ts +103 -1
  290. package/src/render-context.ts +4 -0
  291. package/src/render-engine/embedded-templates.generated.ts +14 -0
  292. package/src/render-engine/framework-provider.ts +25 -11
  293. package/src/runner.ts +21 -0
  294. package/src/templates/docs-file.ts +2 -9
  295. package/src/templates/drizzle-schema.ts +31 -1
  296. package/src/templates/entity-constants.ts +1 -1
  297. package/src/templates/entity-file.ts +16 -5
  298. package/src/templates/enums-file.ts +50 -0
  299. package/src/templates/extract-delegate-emitter.ts +5 -6
  300. package/src/templates/extractor.ts +68 -38
  301. package/src/templates/field-meta.ts +0 -6
  302. package/src/templates/filter-allowlist.ts +17 -10
  303. package/src/templates/filter-type.ts +8 -6
  304. package/src/templates/find-templates.ts +15 -0
  305. package/src/templates/fr010-field-mapping.ts +10 -8
  306. package/src/templates/inferred-types.ts +108 -18
  307. package/src/templates/mermaid-er.ts +176 -8
  308. package/src/templates/output-parser.ts +30 -79
  309. package/src/templates/output-prompt.ts +2 -1
  310. package/src/templates/queries-file.ts +132 -3
  311. package/src/templates/queries.ts +15 -7
  312. package/src/templates/relations-block.ts +17 -0
  313. package/src/templates/render-helper.ts +4 -3
  314. package/src/templates/routes-file.ts +233 -6
  315. package/src/templates/tph-discriminator.ts +232 -0
  316. package/src/templates/value-object-file.ts +38 -4
  317. package/src/templates/zod-validators.ts +204 -7
  318. package/templates/api/agent-api.md.mustache +30 -0
  319. package/templates/api/entity-api.md.mustache +69 -0
  320. package/templates/api/index.md.mustache +21 -0
  321. package/templates/docs/entity-page.md.mustache +33 -21
  322. package/templates/docs/template-page.md.mustache +56 -0
  323. package/src/templates/extract-schema-emitter.ts +0 -111
@@ -1,28 +1,43 @@
1
1
  import { perEntity } from "../generator.js";
2
2
  import { renderEntityFile } from "../templates/entity-file.js";
3
+ import { renderSharedEnumsFile, SHARED_ENUMS_BASENAME } from "../templates/enums-file.js";
3
4
  import { formatTs } from "../format.js";
4
5
  import { entityOutputPath } from "../import-path.js";
5
6
  import { isAbstract } from "../instance-artifacts.js";
6
7
  export const entityFile = function entityFile(opts) {
7
8
  const allowlists = opts?.allowlists ?? true;
9
+ const perEntityEmit = perEntity(async (entity, ctx) => {
10
+ if (!ctx.renderContext) {
11
+ throw new Error("entity-file: renderContext is required (provided by runGen)");
12
+ }
13
+ // Abstract entities contribute shape only. When emitAbstractShapes is off
14
+ // (cross-port knob; default on) the entity-file generator emits nothing for
15
+ // them. Instance/write generators skip abstract unconditionally elsewhere.
16
+ if (isAbstract(entity) && !ctx.renderContext.emitAbstractShapes) {
17
+ return [];
18
+ }
19
+ return {
20
+ path: entityOutputPath(ctx.config.outputLayout ?? "flat", entity.package, `${entity.name}.ts`),
21
+ content: await formatTs(renderEntityFile(entity, ctx.renderContext, { allowlists })),
22
+ };
23
+ });
8
24
  const generator = {
9
25
  name: "entity-file",
10
26
  emitsEntityModule: true,
11
- generate: perEntity(async (entity, ctx) => {
12
- if (!ctx.renderContext) {
13
- throw new Error("entity-file: renderContext is required (provided by runGen)");
27
+ generate: async (ctx) => {
28
+ const files = await perEntityEmit(ctx);
29
+ // FR-019: emit the shared-enums module ONCE per run, into the entity-module
30
+ // target root. Returns null (no file) when the model uses no materialized
31
+ // shared enums — keeping the inline-enum default byte-identical (no new file).
32
+ const sharedEnums = renderSharedEnumsFile(ctx.loadedRoot);
33
+ if (sharedEnums !== null) {
34
+ files.push({
35
+ path: `${SHARED_ENUMS_BASENAME}.ts`,
36
+ content: await formatTs(sharedEnums),
37
+ });
14
38
  }
15
- // Abstract entities contribute shape only. When emitAbstractShapes is off
16
- // (cross-port knob; default on) the entity-file generator emits nothing for
17
- // them. Instance/write generators skip abstract unconditionally elsewhere.
18
- if (isAbstract(entity) && !ctx.renderContext.emitAbstractShapes) {
19
- return [];
20
- }
21
- return {
22
- path: entityOutputPath(ctx.config.outputLayout ?? "flat", entity.package, `${entity.name}.ts`),
23
- content: await formatTs(renderEntityFile(entity, ctx.renderContext, { allowlists })),
24
- };
25
- }),
39
+ return files;
40
+ },
26
41
  };
27
42
  if (opts?.filter) {
28
43
  generator.filter = opts.filter;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/generators/entity-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAsBtD,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,UAAU,CAAC,IAAqB;IACjE,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IAC5C,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,aAAa;QACnB,iBAAiB,EAAE,IAAI;QACvB,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;YACD,0EAA0E;YAC1E,4EAA4E;YAC5E,2EAA2E;YAC3E,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;gBAChE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC;gBAC9F,OAAO,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;aACrF,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAqC,CAAC"}
1
+ {"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/generators/entity-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA4E,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAsBtD,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,UAAU,CAAC,IAAqB;IACjE,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACpD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC;YAC9F,OAAO,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;SACrF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,aAAa;QACnB,iBAAiB,EAAE,IAAI;QACvB,QAAQ,EAAE,KAAK,EAAE,GAAe,EAA0B,EAAE;YAC1D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YACvC,4EAA4E;YAC5E,0EAA0E;YAC1E,+EAA+E;YAC/E,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,qBAAqB,KAAK;oBACnC,OAAO,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC;iBACrC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAqC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractor-file.d.ts","sourceRoot":"","sources":["../../src/generators/extractor-file.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,SAAS,EAyBjB,gBAAgB,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"extractor-file.d.ts","sourceRoot":"","sources":["../../src/generators/extractor-file.ts"],"names":[],"mappings":"AAiBA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,SAAS,EAyBjB,gBAAgB,CAAC,aAAa,CAAC,CAAC"}
@@ -5,7 +5,8 @@
5
5
  //
6
6
  // The emitted extractor sits over the output-parser's nested-capable extract and turns dirty LLM
7
7
  // text into the strict typed payload graph. It imports from the sibling <Name>.output.ts (the
8
- // output-parser) and ./payloads.ts, so run it alongside outputParser() + a payload generator.
8
+ // output-parser) and from each payload value-object's own entity module (<VO>.ts, emitted by
9
+ // entityFile), so run it alongside outputParser() + entityFile().
9
10
  //
10
11
  // Consumer wiring (metaobjects.config.ts):
11
12
  // generators: [..., outputParser(), extractor()]
@@ -1 +1 @@
1
- {"version":3,"file":"extractor-file.js","sourceRoot":"","sources":["../../src/generators/extractor-file.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,+FAA+F;AAC/F,uFAAuF;AACvF,EAAE;AACF,iGAAiG;AACjG,8FAA8F;AAC9F,8FAA8F;AAC9F,EAAE;AACF,2CAA2C;AAC3C,mDAAmD;AACnD,EAAE;AACF,2BAA2B;AAC3B,sEAAsE;AAEtE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAS5D,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,SAAS,CAAC,IAAoB;IAC9D,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU;iBAC3B,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,sFAAsF;gBACtF,MAAM,MAAM,GAAG,CAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAwB,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjG,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK;oBAAE,SAAS;gBACpD,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,eAAe;oBAC1C,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;iBACjD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAoC,CAAC"}
1
+ {"version":3,"file":"extractor-file.js","sourceRoot":"","sources":["../../src/generators/extractor-file.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,+FAA+F;AAC/F,uFAAuF;AACvF,EAAE;AACF,iGAAiG;AACjG,8FAA8F;AAC9F,6FAA6F;AAC7F,kEAAkE;AAClE,EAAE;AACF,2CAA2C;AAC3C,mDAAmD;AACnD,EAAE;AACF,2BAA2B;AAC3B,sEAAsE;AAEtE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAS5D,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,SAAS,CAAC,IAAoB;IAC9D,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU;iBAC3B,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,sFAAsF;gBACtF,MAAM,MAAM,GAAG,CAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAwB,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjG,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK;oBAAE,SAAS;gBACpD,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,eAAe;oBAC1C,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;iBACjD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAoC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** The stable doc-anchor slug for a field: `field-<name>`. */
2
+ export declare function fieldAnchorSlug(name: string): string;
3
+ /** The literal HTML anchor a Markdown link can target: `<a id="field-<name>"></a>`.
4
+ * Renders on GitHub-flavored Markdown and static-site generators, including
5
+ * inside a table cell. */
6
+ export declare function fieldAnchorHtml(name: string): string;
7
+ //# sourceMappingURL=field-anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-anchor.d.ts","sourceRoot":"","sources":["../../src/generators/field-anchor.ts"],"names":[],"mappings":"AAaA,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;2BAE2B;AAC3B,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,23 @@
1
+ // Per-field doc anchor convention (linked-template-source-docs).
2
+ //
3
+ // A field's stable doc anchor slug is `field-<name>` (the field name verbatim).
4
+ // This is the SINGLE source of truth for the slug, shared by BOTH:
5
+ // • the entity-page builder, which emits a literal `<a id="field-<name>">` in
6
+ // each Constraints-table Field cell, and
7
+ // • the template-source annotator, whose links target `#field-<name>`.
8
+ // Sharing one helper means the anchor and its links can never drift.
9
+ //
10
+ // The name is used verbatim (not URL-slugified): MetaObjects field names are
11
+ // already identifier-safe (no spaces / punctuation), so `field-<name>` is a
12
+ // valid HTML id and a valid Markdown fragment as-is.
13
+ /** The stable doc-anchor slug for a field: `field-<name>`. */
14
+ export function fieldAnchorSlug(name) {
15
+ return `field-${name}`;
16
+ }
17
+ /** The literal HTML anchor a Markdown link can target: `<a id="field-<name>"></a>`.
18
+ * Renders on GitHub-flavored Markdown and static-site generators, including
19
+ * inside a table cell. */
20
+ export function fieldAnchorHtml(name) {
21
+ return `<a id="${fieldAnchorSlug(name)}"></a>`;
22
+ }
23
+ //# sourceMappingURL=field-anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-anchor.js","sourceRoot":"","sources":["../../src/generators/field-anchor.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAChF,6CAA6C;AAC7C,yEAAyE;AACzE,qEAAqE;AACrE,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,qDAAqD;AAErD,8DAA8D;AAC9D,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,SAAS,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;2BAE2B;AAC3B,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,UAAU,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjD,CAAC"}
@@ -4,14 +4,21 @@ export { callableFile, type CallableFileOpts } from "./callable-file.js";
4
4
  export { routesFile, type RoutesFileOpts } from "./routes-file.js";
5
5
  export { routesFileHono, type RoutesFileHonoOpts } from "./routes-file-hono.js";
6
6
  export { barrel, type BarrelOpts } from "./barrel.js";
7
+ /** @deprecated ADR-0021 D1 — neutral artifact owned by `meta docs` (ADR-0020); not part of the recommended `meta gen` suite. */
7
8
  export { mermaidErDiagram, type MermaidErOptions } from "./mermaid-er.js";
8
9
  export { promptRender, type PromptRenderOpts } from "./prompt-render-file.js";
9
10
  export { outputParser, type OutputParserOpts } from "./output-parser-file.js";
10
11
  export { extractor, type ExtractorOpts } from "./extractor-file.js";
11
12
  export { outputPrompt, type OutputPromptOpts } from "./output-prompt-file.js";
12
13
  export { renderHelper, type RenderHelperOpts } from "./render-helper-file.js";
14
+ /** @deprecated ADR-0025 — `meta docs` is the single docs door; `apiDocsFile` stays as the internal engine of its api surface, not a `meta gen` config generator. */
15
+ export { apiDocsFile, type ApiDocsFileOpts } from "./api-docs-file.js";
16
+ /** @deprecated ADR-0021 D1 — `meta docs` is the single docs door; `docsFile` stays as its internal engine, not a `meta gen` config generator. */
13
17
  export { docsFile, type DocsFileOpts } from "./docs-file.js";
14
18
  export { templateGenerator, type TemplateGeneratorOpts, type TemplateWalkResult, type TemplateFormat, } from "./template-generator.js";
15
- export type { EntityDocData, StorageFieldDoc, IdentityDoc, RelationshipDoc, UsedByDoc, GeneratedFileDoc, } from "./docs-data.js";
19
+ export { traceHelperFile, type TraceHelperOpts } from "./trace-helper-file.js";
20
+ export type { EntityDocData, StorageFieldDoc, IdentityDoc, RelationshipDoc, UsedByDoc, ConstraintRow, } from "./docs-data.js";
16
21
  export { buildEntityDocData } from "./docs-data-builder.js";
22
+ export type { TemplateDocData, TemplateOutputPart } from "./template-doc-data.js";
23
+ export { buildTemplateDocData } from "./template-doc-builder.js";
17
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,SAAS,EACT,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,gIAAgI;AAChI,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,oKAAoK;AACpK,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,iJAAiJ;AACjJ,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -4,13 +4,19 @@ export { callableFile } from "./callable-file.js";
4
4
  export { routesFile } from "./routes-file.js";
5
5
  export { routesFileHono } from "./routes-file-hono.js";
6
6
  export { barrel } from "./barrel.js";
7
+ /** @deprecated ADR-0021 D1 — neutral artifact owned by `meta docs` (ADR-0020); not part of the recommended `meta gen` suite. */
7
8
  export { mermaidErDiagram } from "./mermaid-er.js";
8
9
  export { promptRender } from "./prompt-render-file.js";
9
10
  export { outputParser } from "./output-parser-file.js";
10
11
  export { extractor } from "./extractor-file.js";
11
12
  export { outputPrompt } from "./output-prompt-file.js";
12
13
  export { renderHelper } from "./render-helper-file.js";
14
+ /** @deprecated ADR-0025 — `meta docs` is the single docs door; `apiDocsFile` stays as the internal engine of its api surface, not a `meta gen` config generator. */
15
+ export { apiDocsFile } from "./api-docs-file.js";
16
+ /** @deprecated ADR-0021 D1 — `meta docs` is the single docs door; `docsFile` stays as its internal engine, not a `meta gen` config generator. */
13
17
  export { docsFile } from "./docs-file.js";
14
18
  export { templateGenerator, } from "./template-generator.js";
19
+ export { traceHelperFile } from "./trace-helper-file.js";
15
20
  export { buildEntityDocData } from "./docs-data-builder.js";
21
+ export { buildTemplateDocData } from "./template-doc-builder.js";
16
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAwB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAA2B,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAmB,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAyB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACL,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AASjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAwB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAA2B,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAmB,MAAM,aAAa,CAAC;AACtD,gIAAgI;AAChI,OAAO,EAAE,gBAAgB,EAAyB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAC9E,oKAAoK;AACpK,OAAO,EAAE,WAAW,EAAwB,MAAM,oBAAoB,CAAC;AACvE,iJAAiJ;AACjJ,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACL,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAwB,MAAM,wBAAwB,CAAC;AAS/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -9,6 +9,20 @@ export interface MermaidErOptions {
9
9
  * Emit a single Markdown file containing a Mermaid `erDiagram` plus per-entity
10
10
  * prose sections. The renderer walks the loaded root for all entities; the
11
11
  * default outFile is "docs/model.md".
12
+ *
13
+ * TIER NOTE (ADR-0020): the CANONICAL home of the neutral ER diagram is now the
14
+ * neutral docs engine — the OVERVIEW/index page (`README.md`) emitted by
15
+ * `docsFile()` / `meta docs` embeds the SAME `renderMermaidErBlock()` this
16
+ * generator's `renderMermaidModel()` reuses. This standalone Tier-1 generator is
17
+ * retained ONLY as a thin back-compat wrapper for adopters that already have
18
+ * `mermaidErDiagram` in their `meta gen` config; it adds NO ER logic of its own
19
+ * (no duplication) — it delegates to the shared `renderMermaidModel()` builder.
20
+ *
21
+ * @deprecated ADR-0021 D1: the ER diagram is a Tier-2 neutral artifact owned by
22
+ * the docs engine (ADR-0020). Use `meta docs` — it embeds the same ER block.
23
+ * This standalone `meta gen` generator is flagged neutral in the registry
24
+ * (`--list`) and is no longer part of the recommended native suite. Kept for
25
+ * back-compat; do not add to new gen configs.
12
26
  */
13
27
  export declare const mermaidErDiagram: GeneratorFactory<MermaidErOptions>;
14
28
  //# sourceMappingURL=mermaid-er.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mermaid-er.d.ts","sourceRoot":"","sources":["../../src/generators/mermaid-er.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGpF,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAaxB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"mermaid-er.d.ts","sourceRoot":"","sources":["../../src/generators/mermaid-er.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGpF,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB,EAaxB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
@@ -4,6 +4,20 @@ import { renderMermaidModel } from "../templates/mermaid-er.js";
4
4
  * Emit a single Markdown file containing a Mermaid `erDiagram` plus per-entity
5
5
  * prose sections. The renderer walks the loaded root for all entities; the
6
6
  * default outFile is "docs/model.md".
7
+ *
8
+ * TIER NOTE (ADR-0020): the CANONICAL home of the neutral ER diagram is now the
9
+ * neutral docs engine — the OVERVIEW/index page (`README.md`) emitted by
10
+ * `docsFile()` / `meta docs` embeds the SAME `renderMermaidErBlock()` this
11
+ * generator's `renderMermaidModel()` reuses. This standalone Tier-1 generator is
12
+ * retained ONLY as a thin back-compat wrapper for adopters that already have
13
+ * `mermaidErDiagram` in their `meta gen` config; it adds NO ER logic of its own
14
+ * (no duplication) — it delegates to the shared `renderMermaidModel()` builder.
15
+ *
16
+ * @deprecated ADR-0021 D1: the ER diagram is a Tier-2 neutral artifact owned by
17
+ * the docs engine (ADR-0020). Use `meta docs` — it embeds the same ER block.
18
+ * This standalone `meta gen` generator is flagged neutral in the registry
19
+ * (`--list`) and is no longer part of the recommended native suite. Kept for
20
+ * back-compat; do not add to new gen configs.
7
21
  */
8
22
  export const mermaidErDiagram = function mermaidErDiagram(opts) {
9
23
  const outFile = opts?.outFile ?? "docs/model.md";
@@ -1 +1 @@
1
- {"version":3,"file":"mermaid-er.js","sourceRoot":"","sources":["../../src/generators/mermaid-er.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyC,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAShE;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,gBAAgB,CACvD,IAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,eAAe,CAAC;IACjD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;SAC5C,CAAC,CAAC;KACJ,CAAC;IACF,IAAI,IAAI,EAAE,MAAM;QAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
1
+ {"version":3,"file":"mermaid-er.js","sourceRoot":"","sources":["../../src/generators/mermaid-er.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyC,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAShE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,gBAAgB,CACvD,IAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,eAAe,CAAC;IACjD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;SAC5C,CAAC,CAAC;KACJ,CAAC;IACF,IAAI,IAAI,EAAE,MAAM;QAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"output-parser-file.d.ts","sourceRoot":"","sources":["../../src/generators/output-parser-file.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAsBpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"output-parser-file.d.ts","sourceRoot":"","sources":["../../src/generators/output-parser-file.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAoBpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
@@ -8,7 +8,8 @@
8
8
  //
9
9
  // Custom output directory:
10
10
  // generators: [..., outputParser({ outDir: "src/generated/outputs" })]
11
- import { TYPE_TEMPLATE, TEMPLATE_SUBTYPE_OUTPUT } from "@metaobjectsdev/metadata";
11
+ import { TEMPLATE_SUBTYPE_OUTPUT } from "@metaobjectsdev/metadata";
12
+ import { findTemplates } from "../templates/find-templates.js";
12
13
  import { oncePerRun, } from "../generator.js";
13
14
  import { renderOutputParser } from "../templates/output-parser.js";
14
15
  export const outputParser = function outputParser(opts) {
@@ -16,9 +17,7 @@ export const outputParser = function outputParser(opts) {
16
17
  const generator = {
17
18
  name: "output-parser",
18
19
  generate: oncePerRun((_entities, ctx) => {
19
- const outputs = ctx.loadedRoot
20
- .ownChildren()
21
- .filter((c) => c.type === TYPE_TEMPLATE && c.subType === TEMPLATE_SUBTYPE_OUTPUT);
20
+ const outputs = findTemplates(ctx.loadedRoot, TEMPLATE_SUBTYPE_OUTPUT);
22
21
  const files = [];
23
22
  for (const t of outputs) {
24
23
  files.push({
@@ -1 +1 @@
1
- {"version":3,"file":"output-parser-file.js","sourceRoot":"","sources":["../../src/generators/output-parser-file.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,4EAA4E;AAC5E,oFAAoF;AACpF,EAAE;AACF,2CAA2C;AAC3C,sDAAsD;AACtD,EAAE;AACF,2BAA2B;AAC3B,yEAAyE;AAEzE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASnE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU;iBAC3B,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,YAAY;oBACvC,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
1
+ {"version":3,"file":"output-parser-file.js","sourceRoot":"","sources":["../../src/generators/output-parser-file.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,4EAA4E;AAC5E,oFAAoF;AACpF,EAAE;AACF,2CAA2C;AAC3C,sDAAsD;AACtD,EAAE;AACF,2BAA2B;AAC3B,yEAAyE;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASnE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;YACvE,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,YAAY;oBACvC,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"output-prompt-file.d.ts","sourceRoot":"","sources":["../../src/generators/output-prompt-file.ts"],"names":[],"mappings":"AAoBA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EA8BpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"output-prompt-file.d.ts","sourceRoot":"","sources":["../../src/generators/output-prompt-file.ts"],"names":[],"mappings":"AAqBA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EA8BpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
@@ -11,7 +11,7 @@
11
11
  //
12
12
  // Custom output directory:
13
13
  // generators: [..., outputPrompt({ outDir: "src/generated/outputs" })]
14
- import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_OUTPUT, TEMPLATE_ATTR_PAYLOAD_REF, } from "@metaobjectsdev/metadata";
14
+ import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_OUTPUT, TEMPLATE_ATTR_PAYLOAD_REF, refMatchesObject, } from "@metaobjectsdev/metadata";
15
15
  import { oncePerRun, } from "../generator.js";
16
16
  import { renderOutputPrompt, templateSupportsPrompt } from "../templates/output-prompt.js";
17
17
  export const outputPrompt = function outputPrompt(opts) {
@@ -32,7 +32,7 @@ export const outputPrompt = function outputPrompt(opts) {
32
32
  const payloadRef = t.ownAttr(TEMPLATE_ATTR_PAYLOAD_REF);
33
33
  if (typeof payloadRef !== "string")
34
34
  continue;
35
- const vo = root.ownChildren().find((c) => c.type === TYPE_OBJECT && c.name === payloadRef);
35
+ const vo = root.ownChildren().find((c) => c.type === TYPE_OBJECT && refMatchesObject(c, payloadRef));
36
36
  if (!vo)
37
37
  continue;
38
38
  files.push({
@@ -1 +1 @@
1
- {"version":3,"file":"output-prompt-file.js","sourceRoot":"","sources":["../../src/generators/output-prompt-file.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,mFAAmF;AACnF,iFAAiF;AACjF,iFAAiF;AACjF,sFAAsF;AACtF,kDAAkD;AAClD,EAAE;AACF,2CAA2C;AAC3C,sEAAsE;AACtE,EAAE;AACF,2BAA2B;AAC3B,yEAAyE;AAEzE,OAAO,EACL,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAS3F,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI;iBACjB,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,0DAA0D;gBAC1D,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACzC,4EAA4E;gBAC5E,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBACxD,IAAI,OAAO,UAAU,KAAK,QAAQ;oBAAE,SAAS;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;gBAC3F,IAAI,CAAC,EAAE;oBAAE,SAAS;gBAClB,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,YAAY;oBACvC,OAAO,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
1
+ {"version":3,"file":"output-prompt-file.js","sourceRoot":"","sources":["../../src/generators/output-prompt-file.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,mFAAmF;AACnF,iFAAiF;AACjF,iFAAiF;AACjF,sFAAsF;AACtF,kDAAkD;AAClD,EAAE;AACF,2CAA2C;AAC3C,sEAAsE;AACtE,EAAE;AACF,2BAA2B;AAC3B,yEAAyE;AAEzE,OAAO,EACL,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAS3F,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI;iBACjB,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,0DAA0D;gBAC1D,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACzC,4EAA4E;gBAC5E,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBACxD,IAAI,OAAO,UAAU,KAAK,QAAQ;oBAAE,SAAS;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBACrG,IAAI,CAAC,EAAE;oBAAE,SAAS;gBAClB,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,YAAY;oBACvC,OAAO,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-render-file.d.ts","sourceRoot":"","sources":["../../src/generators/prompt-render-file.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD,eAAO,MAAM,YAAY,EAqDpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"prompt-render-file.d.ts","sourceRoot":"","sources":["../../src/generators/prompt-render-file.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD,eAAO,MAAM,YAAY,EAmDpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
@@ -8,7 +8,8 @@
8
8
  //
9
9
  // Custom output path:
10
10
  // generators: [..., promptRender({ outFile: "src/render/generated/prompts.ts" })]
11
- import { TYPE_TEMPLATE, TEMPLATE_SUBTYPE_PROMPT, OBJECT_SUBTYPE_VALUE } from "@metaobjectsdev/metadata";
11
+ import { TEMPLATE_SUBTYPE_PROMPT, OBJECT_SUBTYPE_VALUE } from "@metaobjectsdev/metadata";
12
+ import { findTemplates } from "../templates/find-templates.js";
12
13
  import { oncePerRun, } from "../generator.js";
13
14
  import { generatePayloadInterfacesBatch, generateRenderHandle, } from "../payload-codegen.js";
14
15
  import { GENERATED_HEADER } from "../constants.js";
@@ -27,9 +28,7 @@ export const promptRender = function promptRender(opts) {
27
28
  name: "prompt-render",
28
29
  generate: oncePerRun((entities, ctx) => {
29
30
  const payloads = entities.filter((e) => e.subType === OBJECT_SUBTYPE_VALUE);
30
- const prompts = ctx.loadedRoot
31
- .ownChildren()
32
- .filter((c) => c.type === TYPE_TEMPLATE && c.subType === TEMPLATE_SUBTYPE_PROMPT);
31
+ const prompts = findTemplates(ctx.loadedRoot, TEMPLATE_SUBTYPE_PROMPT);
33
32
  if (payloads.length === 0 && prompts.length === 0) {
34
33
  return [];
35
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-render-file.js","sourceRoot":"","sources":["../../src/generators/prompt-render-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-render-file.js","sourceRoot":"","sources":["../../src/generators/prompt-render-file.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,+EAA+E;AAC/E,+EAA+E;AAC/E,0BAA0B;AAC1B,EAAE;AACF,2CAA2C;AAC3C,sCAAsC;AACtC,EAAE;AACF,sBAAsB;AACtB,oFAAoF;AAEpF,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAGL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASnD,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,aAAa,GAAG,iEAAiE,CAAC;AAExF,oFAAoF;AACpF,iFAAiF;AACjF,uEAAuE;AACvE,SAAS,yBAAyB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,YAAY,CAAC;IAC9C,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;YAEvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,KAAK,GAAa,CAAC,MAAM,gBAAgB,iBAAiB,CAAC,CAAC;YAElE,iFAAiF;YACjF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5B,CAAC;YAED,oEAAoE;YACpE,wDAAwD;YACxD,MAAM,iBAAiB,GAAG,8BAA8B,CACtD,GAAG,CAAC,UAAU,EACd,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5B,CAAC;YACF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,CAAC;YAED,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;qBACvD,KAAK,CAAC,IAAI,CAAC;qBACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,CAAC;YAED,OAAO,CAAC;oBACN,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;iBACvF,CAAC,CAAC;QACL,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"queries-file.d.ts","sourceRoot":"","sources":["../../src/generators/queries-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKnF,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAQD,eAAO,MAAM,WAAW,EAuBnB,gBAAgB,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"queries-file.d.ts","sourceRoot":"","sources":["../../src/generators/queries-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMnF,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD,eAAO,MAAM,WAAW,EAuBnB,gBAAgB,CAAC,eAAe,CAAC,CAAC"}
@@ -1,18 +1,23 @@
1
1
  import { OBJECT_SUBTYPE_VALUE } from "@metaobjectsdev/metadata";
2
2
  import { perEntity } from "../generator.js";
3
3
  import { renderQueriesFile } from "../templates/queries-file.js";
4
+ import { isTphSubtype } from "../templates/zod-validators.js";
4
5
  import { formatTs } from "../format.js";
5
6
  import { entityOutputPath } from "../import-path.js";
6
7
  // object.value records have no primary identity, so the rendered queries module
7
8
  // emits findById/updateById/deleteById against a non-existent column. Skipping
8
9
  // value subtypes is unconditional — the user-supplied filter (if any) is applied
9
10
  // on top via boolean AND.
10
- const skipValueTypes = (e) => e.subType !== OBJECT_SUBTYPE_VALUE;
11
+ //
12
+ // FR-017 Tier 2: TPH subtypes are ALSO skipped — they emit no standalone
13
+ // queries file. Their per-subtype CRUD helpers live in the discriminator
14
+ // base's queries file (which targets the single shared table).
15
+ const skipNonQueryable = (e) => e.subType !== OBJECT_SUBTYPE_VALUE && !isTphSubtype(e);
11
16
  export const queriesFile = function queriesFile(opts) {
12
17
  const userFilter = opts?.filter;
13
18
  const filter = userFilter
14
- ? (e) => skipValueTypes(e) && userFilter(e)
15
- : skipValueTypes;
19
+ ? (e) => skipNonQueryable(e) && userFilter(e)
20
+ : skipNonQueryable;
16
21
  const generator = {
17
22
  name: "queries-file",
18
23
  filter,
@@ -1 +1 @@
1
- {"version":3,"file":"queries-file.js","sourceRoot":"","sources":["../../src/generators/queries-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOrD,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,0BAA0B;AAC1B,MAAM,cAAc,GAAG,CAAC,CAAa,EAAW,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,oBAAoB,CAAC;AAEtF,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,WAAW,CAAC,IAAsB;IACpE,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC;IAChC,MAAM,MAAM,GAA+B,UAAU;QACnD,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,cAAc,CAAC;IAEnB,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,cAAc;QACpB,MAAM;QACN,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,aAAa,CAAC;gBACtG,OAAO,EAAE,MAAM,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACtE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAsC,CAAC"}
1
+ {"version":3,"file":"queries-file.js","sourceRoot":"","sources":["../../src/generators/queries-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOrD,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,0BAA0B;AAC1B,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,+DAA+D;AAC/D,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAW,EAAE,CAClD,CAAC,CAAC,OAAO,KAAK,oBAAoB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,WAAW,CAAC,IAAsB;IACpE,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC;IAChC,MAAM,MAAM,GAA+B,UAAU;QACnD,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,gBAAgB,CAAC;IAErB,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,cAAc;QACpB,MAAM;QACN,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,aAAa,CAAC;gBACtG,OAAO,EAAE,MAAM,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACtE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAsC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-helper-file.d.ts","sourceRoot":"","sources":["../../src/generators/render-helper-file.ts"],"names":[],"mappings":"AAuBA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAkCpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"render-helper-file.d.ts","sourceRoot":"","sources":["../../src/generators/render-helper-file.ts"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAkCpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC"}
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // Custom output directory:
16
16
  // generators: [..., renderHelper({ outDir: "src/generated/render" })]
17
- import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_OUTPUT, TEMPLATE_ATTR_PAYLOAD_REF, } from "@metaobjectsdev/metadata";
17
+ import { TYPE_OBJECT, TYPE_TEMPLATE, TEMPLATE_SUBTYPE_OUTPUT, TEMPLATE_ATTR_PAYLOAD_REF, refMatchesObject, } from "@metaobjectsdev/metadata";
18
18
  import { oncePerRun, } from "../generator.js";
19
19
  import { projectProvider } from "../render-engine/framework-provider.js";
20
20
  import { renderRenderHelper } from "../templates/render-helper.js";
@@ -37,7 +37,7 @@ export const renderHelper = function renderHelper(opts) {
37
37
  const payloadRef = t.ownAttr(TEMPLATE_ATTR_PAYLOAD_REF);
38
38
  if (typeof payloadRef !== "string")
39
39
  continue;
40
- const vo = root.ownChildren().find((c) => c.type === TYPE_OBJECT && c.name === payloadRef);
40
+ const vo = root.ownChildren().find((c) => c.type === TYPE_OBJECT && refMatchesObject(c, payloadRef));
41
41
  if (!vo)
42
42
  continue;
43
43
  files.push({
@@ -1 +1 @@
1
- {"version":3,"file":"render-helper-file.js","sourceRoot":"","sources":["../../src/generators/render-helper-file.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,EAAE;AACF,2CAA2C;AAC3C,sCAAsC;AACtC,EAAE;AACF,2BAA2B;AAC3B,wEAAwE;AAExE,OAAO,EACL,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASnE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;YAC5B,2EAA2E;YAC3E,2EAA2E;YAC3E,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI;iBACjB,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,4EAA4E;gBAC5E,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBACxD,IAAI,OAAO,UAAU,KAAK,QAAQ;oBAAE,SAAS;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;gBAC3F,IAAI,CAAC,EAAE;oBAAE,SAAS;gBAClB,KAAK,CAAC,IAAI,CAAC;oBACT,qEAAqE;oBACrE,iEAAiE;oBACjE,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,YAAY;oBACvC,OAAO,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
1
+ {"version":3,"file":"render-helper-file.js","sourceRoot":"","sources":["../../src/generators/render-helper-file.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,EAAE;AACF,2CAA2C;AAC3C,sCAAsC;AACtC,EAAE;AACF,2BAA2B;AAC3B,wEAAwE;AAExE,OAAO,EACL,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAIL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASnE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;YAC5B,2EAA2E;YAC3E,2EAA2E;YAC3E,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI;iBACjB,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,4EAA4E;gBAC5E,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBACxD,IAAI,OAAO,UAAU,KAAK,QAAQ;oBAAE,SAAS;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBACrG,IAAI,CAAC,EAAE;oBAAE,SAAS;gBAClB,KAAK,CAAC,IAAI,CAAC;oBACT,qEAAqE;oBACrE,iEAAiE;oBACjE,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,YAAY;oBACvC,OAAO,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes-file-hono.d.ts","sourceRoot":"","sources":["../../src/generators/routes-file-hono.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKnF,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EAuBtB,gBAAgB,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"routes-file-hono.d.ts","sourceRoot":"","sources":["../../src/generators/routes-file-hono.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMnF,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EA0BtB,gBAAgB,CAAC,kBAAkB,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { perEntity } from "../generator.js";
2
2
  import { renderRoutesFileHono } from "../templates/routes-file-hono.js";
3
3
  import { formatTs } from "../format.js";
4
4
  import { entityOutputPath } from "../import-path.js";
5
+ import { CODEGEN_ATTR_EMIT_ROUTES } from "../constants.js";
5
6
  /**
6
7
  * Hono variant of routesFile() — emits `<Entity>.routes.hono.ts` mounting
7
8
  * the same five CRUD verbs (GET list / GET :id / POST / PATCH+PUT / DELETE)
@@ -19,7 +20,10 @@ export const routesFileHono = function routesFileHono(opts) {
19
20
  const userFilter = opts?.filter ?? (() => true);
20
21
  const generator = {
21
22
  name: "routes-file-hono",
22
- filter: (e) => e.ownAttr("emitRoutes") !== false && userFilter(e),
23
+ // Marks this as the Hono routes generator so the runner can aggregate
24
+ // `ctx.config.includeHonoRoutes` and api-docs auto-documents the Hono surface.
25
+ emitsHonoRoutes: true,
26
+ filter: (e) => e.ownAttr(CODEGEN_ATTR_EMIT_ROUTES) !== false && userFilter(e),
23
27
  generate: perEntity(async (entity, ctx) => {
24
28
  if (!ctx.renderContext) {
25
29
  throw new Error("routes-file-hono: renderContext is required (provided by runGen)");
@@ -1 +1 @@
1
- {"version":3,"file":"routes-file-hono.js","sourceRoot":"","sources":["../../src/generators/routes-file-hono.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,cAAc,CAAC,IAAyB;IAC7E,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;QAC7E,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACtF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CACpB,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EACjC,MAAM,CAAC,OAAO,EACd,GAAG,MAAM,CAAC,IAAI,iBAAiB,CAChC;gBACD,OAAO,EAAE,MAAM,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACzE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAyC,CAAC"}
1
+ {"version":3,"file":"routes-file-hono.js","sourceRoot":"","sources":["../../src/generators/routes-file-hono.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAO3D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,cAAc,CAAC,IAAyB;IAC7E,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,kBAAkB;QACxB,sEAAsE;QACtE,+EAA+E;QAC/E,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;QACzF,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACtF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CACpB,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EACjC,MAAM,CAAC,OAAO,EACd,GAAG,MAAM,CAAC,IAAI,iBAAiB,CAChC;gBACD,OAAO,EAAE,MAAM,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACzE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAyC,CAAC"}
@@ -7,6 +7,9 @@ export interface RoutesFileOpts {
7
7
  /**
8
8
  * Per-entity opt-out via `@emitRoutes: false` is honored. If the user supplies
9
9
  * their own filter, both must pass (AND).
10
+ *
11
+ * FR-017 Tier 2: TPH subtypes get no standalone routes file — their per-subtype
12
+ * route set lives in the discriminator base's routes file.
10
13
  */
11
14
  export declare const routesFile: GeneratorFactory<RoutesFileOpts>;
12
15
  //# sourceMappingURL=routes-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes-file.d.ts","sourceRoot":"","sources":["../../src/generators/routes-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKnF,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAoBlB,gBAAgB,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"routes-file.d.ts","sourceRoot":"","sources":["../../src/generators/routes-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOnF,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAqBlB,gBAAgB,CAAC,cAAc,CAAC,CAAC"}
@@ -1,17 +1,22 @@
1
1
  import { perEntity } from "../generator.js";
2
2
  import { renderRoutesFile } from "../templates/routes-file.js";
3
+ import { isTphSubtype } from "../templates/zod-validators.js";
3
4
  import { formatTs } from "../format.js";
4
5
  import { entityOutputPath } from "../import-path.js";
6
+ import { CODEGEN_ATTR_EMIT_ROUTES } from "../constants.js";
5
7
  /**
6
8
  * Per-entity opt-out via `@emitRoutes: false` is honored. If the user supplies
7
9
  * their own filter, both must pass (AND).
10
+ *
11
+ * FR-017 Tier 2: TPH subtypes get no standalone routes file — their per-subtype
12
+ * route set lives in the discriminator base's routes file.
8
13
  */
9
14
  export const routesFile = function routesFile(opts) {
10
15
  const userFilter = opts?.filter ?? (() => true);
11
16
  const generator = {
12
17
  name: "routes-file",
13
18
  // Always set: AND-composes metadata opt-out with optional user filter.
14
- filter: (e) => e.ownAttr("emitRoutes") !== false && userFilter(e),
19
+ filter: (e) => e.ownAttr(CODEGEN_ATTR_EMIT_ROUTES) !== false && !isTphSubtype(e) && userFilter(e),
15
20
  generate: perEntity(async (entity, ctx) => {
16
21
  if (!ctx.renderContext) {
17
22
  throw new Error("routes-file: renderContext is required (provided by runGen)");
@@ -1 +1 @@
1
- {"version":3,"file":"routes-file.js","sourceRoot":"","sources":["../../src/generators/routes-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,UAAU,CAAC,IAAqB;IACjE,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,aAAa;QACnB,uEAAuE;QACvE,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;QAC7E,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,YAAY,CAAC;gBACrG,OAAO,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACrE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAqC,CAAC"}
1
+ {"version":3,"file":"routes-file.js","sourceRoot":"","sources":["../../src/generators/routes-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAO3D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,UAAU,CAAC,IAAqB;IACjE,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,aAAa;QACnB,uEAAuE;QACvE,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CACxB,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QACpF,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,YAAY,CAAC;gBACrG,OAAO,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACrE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAqC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type MetaData, type MetaRoot } from "@metaobjectsdev/metadata";
2
+ import type { Provider } from "@metaobjectsdev/render";
3
+ import type { OutputLayout } from "../import-path.js";
4
+ import type { TemplateDocData } from "./template-doc-data.js";
5
+ export interface BuildTemplateDocDataOpts {
6
+ /** Page-placement layout. Defaults to "flat" (back-compat: same-dir links). */
7
+ layout?: OutputLayout;
8
+ /** Root used to resolve the @payloadRef target's package for a correct
9
+ * cross-link in package layout. Optional: flat layout never needs it. */
10
+ loadedRoot?: MetaRoot;
11
+ /** The page provider — the SAME one the render-helper drift gate / page
12
+ * rendering use (e.g. `projectProvider(projectRoot)`). Used to resolve each
13
+ * referenced mustache's SOURCE TEXT for the "## Template source" section.
14
+ * Optional: when absent (or a ref doesn't resolve) the section is omitted. */
15
+ provider?: Provider;
16
+ }
17
+ /** Build the TemplateDocData for one `template.output` node. */
18
+ export declare function buildTemplateDocData(template: MetaData, opts?: BuildTemplateDocDataOpts): TemplateDocData;
19
+ //# sourceMappingURL=template-doc-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-doc-builder.d.ts","sourceRoot":"","sources":["../../src/generators/template-doc-builder.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,QAAQ,EAed,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AASlF,MAAM,WAAW,wBAAwB;IACvC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;8EAC0E;IAC1E,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB;;;mFAG+E;IAC/E,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AA+CD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,wBAAwB,GAC9B,eAAe,CAkGjB"}