@metaobjectsdev/codegen-ts 1.0.2 → 1.0.4-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 (94) hide show
  1. package/dist/catalog-gates.d.ts +52 -0
  2. package/dist/catalog-gates.d.ts.map +1 -0
  3. package/dist/catalog-gates.js +183 -0
  4. package/dist/catalog-gates.js.map +1 -0
  5. package/dist/constants.d.ts +24 -0
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +26 -0
  8. package/dist/constants.js.map +1 -1
  9. package/dist/enum-shared.d.ts +9 -2
  10. package/dist/enum-shared.d.ts.map +1 -1
  11. package/dist/enum-shared.js +12 -3
  12. package/dist/enum-shared.js.map +1 -1
  13. package/dist/generator-registry.d.ts +73 -0
  14. package/dist/generator-registry.d.ts.map +1 -1
  15. package/dist/generator-registry.js +182 -38
  16. package/dist/generator-registry.js.map +1 -1
  17. package/dist/generator.d.ts +48 -1
  18. package/dist/generator.d.ts.map +1 -1
  19. package/dist/generator.js.map +1 -1
  20. package/dist/generators/entity-file.d.ts.map +1 -1
  21. package/dist/generators/entity-file.js +4 -1
  22. package/dist/generators/entity-file.js.map +1 -1
  23. package/dist/generators/index.d.ts +1 -0
  24. package/dist/generators/index.d.ts.map +1 -1
  25. package/dist/generators/index.js +5 -0
  26. package/dist/generators/index.js.map +1 -1
  27. package/dist/generators/shared-model-file.d.ts +23 -0
  28. package/dist/generators/shared-model-file.d.ts.map +1 -0
  29. package/dist/generators/shared-model-file.js +235 -0
  30. package/dist/generators/shared-model-file.js.map +1 -0
  31. package/dist/generators/trace-helper-file.d.ts.map +1 -1
  32. package/dist/generators/trace-helper-file.js +54 -11
  33. package/dist/generators/trace-helper-file.js.map +1 -1
  34. package/dist/index.d.ts +5 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +6 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/metaobjects-config.d.ts +0 -15
  39. package/dist/metaobjects-config.d.ts.map +1 -1
  40. package/dist/metaobjects-config.js.map +1 -1
  41. package/dist/projection/extract-view-spec.d.ts.map +1 -1
  42. package/dist/projection/extract-view-spec.js +111 -4
  43. package/dist/projection/extract-view-spec.js.map +1 -1
  44. package/dist/relation-resolver.d.ts.map +1 -1
  45. package/dist/relation-resolver.js +11 -9
  46. package/dist/relation-resolver.js.map +1 -1
  47. package/dist/routes-expose.d.ts +30 -0
  48. package/dist/routes-expose.d.ts.map +1 -1
  49. package/dist/routes-expose.js +46 -0
  50. package/dist/routes-expose.js.map +1 -1
  51. package/dist/runner.d.ts +29 -0
  52. package/dist/runner.d.ts.map +1 -1
  53. package/dist/runner.js +38 -1
  54. package/dist/runner.js.map +1 -1
  55. package/dist/templates/entity-file.js +2 -2
  56. package/dist/templates/entity-file.js.map +1 -1
  57. package/dist/templates/enums-file.d.ts +11 -1
  58. package/dist/templates/enums-file.d.ts.map +1 -1
  59. package/dist/templates/enums-file.js +10 -2
  60. package/dist/templates/enums-file.js.map +1 -1
  61. package/dist/templates/queries-file.js +5 -5
  62. package/dist/templates/queries-file.js.map +1 -1
  63. package/dist/templates/routes-file-hono.d.ts.map +1 -1
  64. package/dist/templates/routes-file-hono.js +10 -3
  65. package/dist/templates/routes-file-hono.js.map +1 -1
  66. package/dist/templates/routes-file.d.ts.map +1 -1
  67. package/dist/templates/routes-file.js +21 -4
  68. package/dist/templates/routes-file.js.map +1 -1
  69. package/dist/templates/value-object-file.js +2 -2
  70. package/dist/templates/value-object-file.js.map +1 -1
  71. package/package.json +6 -6
  72. package/src/catalog-gates.ts +222 -0
  73. package/src/constants.ts +27 -0
  74. package/src/enum-shared.ts +17 -3
  75. package/src/generator-registry.ts +253 -41
  76. package/src/generator.ts +48 -1
  77. package/src/generators/entity-file.ts +7 -1
  78. package/src/generators/index.ts +11 -0
  79. package/src/generators/shared-model-file.ts +292 -0
  80. package/src/generators/trace-helper-file.ts +55 -12
  81. package/src/index.ts +17 -3
  82. package/src/metaobjects-config.ts +0 -15
  83. package/src/projection/extract-view-spec.ts +126 -5
  84. package/src/reference/entity.ts +12 -3
  85. package/src/reference/queries.ts +2 -2
  86. package/src/relation-resolver.ts +14 -8
  87. package/src/routes-expose.ts +57 -0
  88. package/src/runner.ts +77 -1
  89. package/src/templates/entity-file.ts +2 -2
  90. package/src/templates/enums-file.ts +13 -2
  91. package/src/templates/queries-file.ts +5 -5
  92. package/src/templates/routes-file-hono.ts +10 -3
  93. package/src/templates/routes-file.ts +21 -4
  94. package/src/templates/value-object-file.ts +2 -2
@@ -10,12 +10,20 @@
10
10
  // factory-array config keeps working unchanged — the registry powers `--list`
11
11
  // and a stable identity, it does not replace the config path.
12
12
  //
13
+ // **This is a SLICE, not the whole catalog.** `codegen-ts` cannot import
14
+ // `codegen-ts-react` / `codegen-ts-tanstack` (dependency direction), so those two
15
+ // packages export their own slices and the CLI unions all three
16
+ // (`cli/src/lib/catalog.ts`). Set equality against the cross-port manifest is a
17
+ // property of the COMPOSED catalog and is asserted there; this package's own
18
+ // conformance test can only check one direction — no rogue names.
19
+ //
13
20
  // Tiering (ADR-0020 / ADR-0021 D1):
14
21
  // - "native" — the recommended Tier-1 `meta gen` suite (idiomatic emission).
15
22
  // - "neutral" — Tier-2 artifacts owned by the neutral docs engine. `docs` and
16
23
  // `mermaid-er` are present here for identity/discoverability but
17
24
  // are NOT part of the recommended native surface — the canonical
18
25
  // door for documentation is `meta docs` (D1).
26
+ import { REFERENCE_GENERATOR_NAMES } from "./reference-templates.js";
19
27
  // The four ADR-0034 ownable generators are no longer exported from ./generators/index.js
20
28
  // (1.0 removed them — see that file's header). They remain the engine's internal composers
21
29
  // and the stable-name registry still constructs them, so import them from their own modules.
@@ -23,7 +31,32 @@ import { entityFile } from "./generators/entity-file.js";
23
31
  import { queriesFile } from "./generators/queries-file.js";
24
32
  import { routesFile } from "./generators/routes-file.js";
25
33
  import { barrel } from "./generators/barrel.js";
26
- import { callableFile, routesFileHono, namesFile, mermaidErDiagram, promptRender, outputParser, extractor, outputPrompt, renderHelper, apiDocsFile, docsFile, templateGenerator, traceHelperFile, } from "./generators/index.js";
34
+ import { callableFile, routesFileHono, namesFile, mermaidErDiagram, promptRender, outputParser, extractor, outputPrompt, renderHelper, apiDocsFile, docsFile, templateGenerator, traceHelperFile, sharedModelFile, requirementTests, } from "./generators/index.js";
35
+ /**
36
+ * The six layers a generator can belong to — the axis an adopter SELECTS BY.
37
+ *
38
+ * Cross-port: `layer` is gated by every port's registry-conformance test against
39
+ * `fixtures/generator-registry-conformance/registry.json`, exactly as `tier` is, so a
40
+ * polyglot agent groups the catalog by the same words everywhere.
41
+ *
42
+ * Six, not ten. The first four are app-shape decisions a builder makes; `docs` is on by
43
+ * default (`meta docs`); `capability` holds the ones the MODEL has already made — nobody
44
+ * picks `prompt-render` by browsing a taxonomy, they pick it because they declared a
45
+ * `template.prompt`, which `meta gen --list --probe` reports with a real file count. A
46
+ * layer with one member does no grouping work, so do not split `capability` to tidy it.
47
+ */
48
+ export const GENERATOR_LAYERS = [
49
+ "model",
50
+ "persistence",
51
+ "api",
52
+ "client",
53
+ "docs",
54
+ "capability",
55
+ ];
56
+ /** True iff this package ships a copyable reference template for `name`. */
57
+ function ejectable(name) {
58
+ return REFERENCE_GENERATOR_NAMES.includes(name);
59
+ }
27
60
  // The `template` generator is a PRIMITIVE: callers supply { name, walk,
28
61
  // template }. For registry identity + `--list` we expose a no-op default so the
29
62
  // factory constructs a valid Generator without throwing; real use passes opts
@@ -37,126 +70,237 @@ function templatePrimitive() {
37
70
  });
38
71
  }
39
72
  export const generatorRegistry = {
40
- // ----- Tier-1 native suite (idiomatic per-port emission) -----------------
73
+ // ----- model ------------------------------------------------------------
41
74
  entity: {
42
75
  name: "entity",
76
+ kind: "generator",
77
+ layer: "model",
43
78
  description: "Per-entity Drizzle table + typed model module (the entity module).",
44
79
  tier: "native",
45
80
  factory: () => entityFile(),
46
81
  options: "filter?, target?",
82
+ requires: [],
83
+ runtimePackages: ["@metaobjectsdev/runtime-ts"],
84
+ runtimePeers: ["drizzle-orm", "zod"],
85
+ configKeys: ["dialect", "extStyle", "outputLayout", "columnNamingStrategy",
86
+ "pluralizeCollections", "collectionNameOverrides", "providedEnumModule", "apiPrefix"],
87
+ ejectable: ejectable("entity"),
88
+ },
89
+ names: {
90
+ name: "names",
91
+ kind: "generator",
92
+ layer: "model",
93
+ description: "Per-entity physical database name constants (table/view, schema, columns).",
94
+ tier: "native",
95
+ factory: () => namesFile(),
96
+ options: "filter?, target?",
97
+ configKeys: ["columnNamingStrategy"],
98
+ ejectable: ejectable("names"),
99
+ },
100
+ barrel: {
101
+ name: "barrel",
102
+ kind: "generator",
103
+ layer: "model",
104
+ description: "Single index.ts re-exporting every generated entity module.",
105
+ tier: "native",
106
+ factory: () => barrel(),
107
+ options: "target?",
108
+ requires: ["entity"],
109
+ configKeys: ["extStyle"],
110
+ ejectable: ejectable("barrel"),
47
111
  },
112
+ // ----- persistence ------------------------------------------------------
48
113
  queries: {
49
114
  name: "queries",
115
+ kind: "generator",
116
+ layer: "persistence",
50
117
  description: "Per-entity typed query helpers (findById/create/...).",
51
118
  tier: "native",
52
119
  factory: () => queriesFile(),
53
120
  options: "filter?, target?",
121
+ requires: ["entity"],
122
+ runtimePeers: ["drizzle-orm"],
123
+ configKeys: ["dialect", "extStyle", "pluralizeCollections", "collectionNameOverrides"],
124
+ ejectable: ejectable("queries"),
54
125
  },
55
- callable: {
56
- name: "callable",
57
- description: "Per-entity callable/service surface wrapping the query helpers.",
58
- tier: "native",
59
- factory: () => callableFile(),
60
- options: "filter?, target?",
61
- },
126
+ // ----- api --------------------------------------------------------------
62
127
  routes: {
63
128
  name: "routes",
129
+ kind: "generator",
130
+ layer: "api",
64
131
  description: "Per-entity Fastify CRUD routes (drizzle-fastify mountCrudRoutes).",
65
132
  tier: "native",
66
133
  factory: () => routesFile(),
67
134
  options: "filter?, target?",
135
+ framework: "fastify",
136
+ requires: ["entity"],
137
+ runtimePackages: ["@metaobjectsdev/runtime-ts"],
138
+ runtimePeers: ["fastify"],
139
+ configKeys: ["dbImport", "apiPrefix", "dialect", "extStyle", "outputLayout", "columnNamingStrategy"],
140
+ ejectable: ejectable("routes"),
68
141
  },
69
142
  "routes-hono": {
70
143
  name: "routes-hono",
144
+ kind: "generator",
145
+ layer: "api",
71
146
  description: "Per-entity Hono CRUD routes (runtime-ts/hono mountCrudRoutes).",
72
147
  tier: "native",
73
148
  factory: () => routesFileHono(),
74
149
  options: "filter?, target?",
150
+ framework: "hono",
151
+ requires: ["entity"],
152
+ runtimePackages: ["@metaobjectsdev/runtime-ts"],
153
+ runtimePeers: ["hono"],
154
+ configKeys: ["dbImport", "apiPrefix", "dialect", "extStyle"],
155
+ ejectable: ejectable("routes-hono"),
75
156
  },
76
- barrel: {
77
- name: "barrel",
78
- description: "Single index.ts re-exporting every generated entity module.",
157
+ // ----- docs -------------------------------------------------------------
158
+ "api-docs": {
159
+ name: "api-docs",
160
+ kind: "generator",
161
+ layer: "docs",
162
+ description: "Per-entity/template SDK API reference (the generated code's API, human + agent forms).",
79
163
  tier: "native",
80
- factory: () => barrel(),
81
- options: "target?",
164
+ factory: () => apiDocsFile(),
165
+ options: "filter?, target?",
166
+ ejectable: ejectable("api-docs"),
82
167
  },
83
- names: {
84
- name: "names",
85
- description: "Per-entity physical database name constants (table/view, schema, columns).",
168
+ docs: {
169
+ name: "docs",
170
+ kind: "generator",
171
+ layer: "docs",
172
+ description: "Neutral per-entity / per-template Markdown documentation pages.",
173
+ tier: "neutral",
174
+ factory: () => docsFile(),
175
+ ejectable: ejectable("docs"),
176
+ note: "neutral artifact — use `meta docs` (the single docs door, ADR-0021 D1); not part of the recommended `meta gen` native suite.",
177
+ },
178
+ "mermaid-er": {
179
+ name: "mermaid-er",
180
+ kind: "generator",
181
+ layer: "docs",
182
+ description: "Mermaid ER diagram of the entity/relationship model.",
183
+ tier: "neutral",
184
+ factory: () => mermaidErDiagram(),
185
+ ejectable: ejectable("mermaid-er"),
186
+ note: "neutral artifact owned by the docs engine (ADR-0020); surfaced via `meta docs`, not the recommended `meta gen` native suite.",
187
+ },
188
+ // ----- capability -------------------------------------------------------
189
+ // Not chosen by browsing this list — chosen because the MODEL already asks for
190
+ // them. `meta gen --list --probe` reports a real file count per entry.
191
+ callable: {
192
+ name: "callable",
193
+ kind: "generator",
194
+ layer: "capability",
195
+ description: "Per-entity callable/service surface wrapping the query helpers.",
86
196
  tier: "native",
87
- factory: () => namesFile(),
197
+ factory: () => callableFile(),
88
198
  options: "filter?, target?",
199
+ requires: ["entity"],
200
+ runtimePeers: ["drizzle-orm"],
201
+ configKeys: ["columnNamingStrategy"],
202
+ ejectable: ejectable("callable"),
89
203
  },
90
204
  "prompt-render": {
91
205
  name: "prompt-render",
206
+ kind: "generator",
207
+ layer: "capability",
92
208
  description: "Per-template prompt-render helper over the render engine.",
93
209
  tier: "native",
94
210
  factory: () => promptRender(),
95
211
  options: "filter?, target?",
212
+ runtimePackages: ["@metaobjectsdev/render"],
213
+ ejectable: ejectable("prompt-render"),
96
214
  },
97
215
  "output-parser": {
98
216
  name: "output-parser",
217
+ kind: "generator",
218
+ layer: "capability",
99
219
  description: "Per-template tolerant output parser (recover-on-receipt).",
100
220
  tier: "native",
101
221
  factory: () => outputParser(),
102
222
  options: "filter?, target?",
223
+ runtimePackages: ["@metaobjectsdev/metadata", "@metaobjectsdev/render", "@metaobjectsdev/runtime-ts"],
224
+ runtimePeers: ["zod"],
225
+ ejectable: ejectable("output-parser"),
103
226
  },
104
227
  extractor: {
105
228
  name: "extractor",
229
+ kind: "generator",
230
+ layer: "capability",
106
231
  description: "Per-template typed extract<Name> helper (strict payload extraction).",
107
232
  tier: "native",
108
233
  factory: () => extractor(),
109
234
  options: "filter?, target?",
235
+ requires: ["entity", "output-parser"],
236
+ runtimePackages: ["@metaobjectsdev/metadata", "@metaobjectsdev/render"],
237
+ ejectable: ejectable("extractor"),
110
238
  },
111
239
  "output-prompt": {
112
240
  name: "output-prompt",
241
+ kind: "generator",
242
+ layer: "capability",
113
243
  description: "Per-template output-format prompt fragment generator.",
114
244
  tier: "native",
115
245
  factory: () => outputPrompt(),
116
246
  options: "filter?, target?",
247
+ runtimePackages: ["@metaobjectsdev/render"],
248
+ ejectable: ejectable("output-prompt"),
117
249
  },
118
250
  "render-helper": {
119
251
  name: "render-helper",
252
+ kind: "generator",
253
+ layer: "capability",
120
254
  description: "Per-template.output render helper (document/email typed wrappers).",
121
255
  tier: "native",
122
256
  factory: () => renderHelper(),
123
257
  options: "filter?, target?",
258
+ runtimePackages: ["@metaobjectsdev/render"],
259
+ configKeys: ["extStyle"],
260
+ ejectable: ejectable("render-helper"),
124
261
  },
125
262
  template: {
126
263
  name: "template",
264
+ kind: "generator",
265
+ layer: "capability",
127
266
  description: "Generic Mustache template primitive (walk + template → files).",
128
267
  tier: "native",
129
268
  factory: () => templatePrimitive(),
130
269
  options: "name, walk, template, format?, filter?, provider?, target?",
131
- },
132
- "api-docs": {
133
- name: "api-docs",
134
- description: "Per-entity/template SDK API reference (the generated code's API, human + agent forms).",
135
- tier: "native",
136
- factory: () => apiDocsFile(),
137
- options: "filter?, target?",
270
+ ejectable: ejectable("template"),
138
271
  },
139
272
  "trace-helper": {
140
273
  name: "trace-helper",
274
+ kind: "generator",
275
+ layer: "capability",
141
276
  description: "Per-entity typed record<Entity>/call<Entity> trace helpers (extract + buildLlmCallRow + persist; LlmCallBase-derived entities only).",
142
277
  tier: "native",
143
278
  factory: () => traceHelperFile(),
144
279
  options: "outDir?, target?",
280
+ ejectable: ejectable("trace-helper"),
145
281
  },
146
- // ----- Tier-2 neutral (owned by the `meta docs` engine — D1 / ADR-0020) ---
147
- docs: {
148
- name: "docs",
149
- description: "Neutral per-entity / per-template Markdown documentation pages.",
150
- tier: "neutral",
151
- factory: () => docsFile(),
152
- note: "neutral artifact — use `meta docs` (the single docs door, ADR-0021 D1); not part of the recommended `meta gen` native suite.",
282
+ "requirement-tests": {
283
+ name: "requirement-tests",
284
+ kind: "generator",
285
+ layer: "capability",
286
+ description: "Per-requirement test stub, one per requirement.functional claim in the ledger.",
287
+ tier: "native",
288
+ factory: () => requirementTests(),
289
+ options: "filter?, target?",
290
+ ejectable: ejectable("requirement-tests"),
153
291
  },
154
- "mermaid-er": {
155
- name: "mermaid-er",
156
- description: "Mermaid ER diagram of the entity/relationship model.",
157
- tier: "neutral",
158
- factory: () => mermaidErDiagram(),
159
- note: "neutral artifact owned by the docs engine (ADR-0020); surfaced via `meta docs`, not the recommended `meta gen` native suite.",
292
+ "shared-model": {
293
+ name: "shared-model",
294
+ kind: "generator",
295
+ layer: "capability",
296
+ description: "FR-023: a publisher's flattened shared-model artifact + manifest for a consumer's `meta deps sync`.",
297
+ tier: "native",
298
+ // `name`/`include` are required at run time (an empty include matches
299
+ // everything, so a placeholder here constructs without throwing — real use
300
+ // always supplies both, same as `template`'s templatePrimitive() above).
301
+ factory: () => sharedModelFile({ name: "shared-model", include: [] }),
302
+ options: "name, include, exclude?, files?, version?, target?",
303
+ ejectable: ejectable("shared-model"),
160
304
  },
161
305
  };
162
306
  /** All registry entries, native first then neutral, alphabetical within tier. */
@@ -1 +1 @@
1
- {"version":3,"file":"generator-registry.js","sourceRoot":"","sources":["../src/generator-registry.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,4BAA4B;AAC5B,EAAE;AACF,mFAAmF;AACnF,8EAA8E;AAC9E,8DAA8D;AAC9D,EAAE;AACF,oCAAoC;AACpC,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,8DAA8D;AAG9D,yFAAyF;AACzF,2FAA2F;AAC3F,6FAA6F;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAmB/B,wEAAwE;AACxE,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,0CAA0C;AAC1C,SAAS,iBAAiB;IACxB,OAAO,iBAAiB,CAAC;QACvB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;KACf,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA2C;IACvE,4EAA4E;IAC5E,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oEAAoE;QACjF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC3B,OAAO,EAAE,kBAAkB;KAC5B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO,EAAE,kBAAkB;KAC5B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,iEAAiE;QAC9E,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;QAC7B,OAAO,EAAE,kBAAkB;KAC5B;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mEAAmE;QAChF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC3B,OAAO,EAAE,kBAAkB;KAC5B;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,gEAAgE;QAC7E,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;QAC/B,OAAO,EAAE,kBAAkB;KAC5B;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6DAA6D;QAC1E,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;QACvB,OAAO,EAAE,SAAS;KACnB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4EAA4E;QACzF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;QAC1B,OAAO,EAAE,kBAAkB;KAC5B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2DAA2D;QACxE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;QAC7B,OAAO,EAAE,kBAAkB;KAC5B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2DAA2D;QACxE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;QAC7B,OAAO,EAAE,kBAAkB;KAC5B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,sEAAsE;QACnF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;QAC1B,OAAO,EAAE,kBAAkB;KAC5B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;QAC7B,OAAO,EAAE,kBAAkB;KAC5B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,oEAAoE;QACjF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;QAC7B,OAAO,EAAE,kBAAkB;KAC5B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gEAAgE;QAC7E,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;QAClC,OAAO,EAAE,4DAA4D;KACtE;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,wFAAwF;QAC1F,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO,EAAE,kBAAkB;KAC5B;IAED,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,sIAAsI;QACnJ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;QAChC,OAAO,EAAE,kBAAkB;KAC5B;IAED,6EAA6E;IAC7E,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,iEAAiE;QAC9E,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;QACzB,IAAI,EAAE,8HAA8H;KACrI;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sDAAsD;QACnE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;QACjC,IAAI,EAAE,8HAA8H;KACrI;CACF,CAAC;AAEF,iFAAiF;AACjF,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,CAAyB,EAAE,CAAyB,EAAE,EAAE,CACtE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO;QACL,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1D,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"generator-registry.js","sourceRoot":"","sources":["../src/generator-registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { MetaObject, MetaRoot } from "@metaobjectsdev/metadata";
1
+ import type { MetaObject, MetaRoot, TypeRegistry } from "@metaobjectsdev/metadata";
2
+ import type { LibraryManifest } from "@metaobjectsdev/metadata/library";
2
3
  import type { RenderContext } from "./render-context.js";
3
4
  import type { ResolvedGenConfig } from "./metaobjects-config.js";
4
5
  import type { OrphanPolicy } from "./reconcile-orphans.js";
@@ -17,6 +18,16 @@ export interface GenContext {
17
18
  * filter is set). Always call this from helpers; do not call generator.filter
18
19
  * directly. */
19
20
  matches: (entity: MetaObject) => boolean;
21
+ /** FR-023 §11.1 item 2 — the model-wide output-scope predicate over a node's
22
+ * `resolutionKey()` (the runner's own `RunGenOpts.scope`, verbatim). A
23
+ * DIFFERENT knob from `matches`: `matches` is the per-generator `filter`
24
+ * (ANDed into what THIS generator emits), while `select` is the whole-model
25
+ * scope every generator shares — for a template that renders once over
26
+ * `ctx.loadedRoot` rather than per-entity (the shared-enums module is the
27
+ * first such template), `matches` never runs at all, so that template must
28
+ * read `select` directly to honour the same exclusion. Undefined ⇒ every
29
+ * node is in scope, byte-identical to a project with no `scope` declared. */
30
+ select?: (fqn: string) => boolean;
20
31
  config: ResolvedGenConfig;
21
32
  /** Pre-built by the runner for built-in generators that wrap existing
22
33
  * templates. Third-party generators typically don't need this. Always
@@ -32,6 +43,42 @@ export interface GenContext {
32
43
  * in a sub-directory. Undefined only when the runner was driven
33
44
  * programmatically without an explicit projectRoot. */
34
45
  projectRoot?: string;
46
+ /**
47
+ * FR-023 §4.3 — the run's composed registry (core providers plus whatever this
48
+ * project's `metaobjects.config.ts` `providers` adds), filled by the runner. The
49
+ * SAME vocabulary `opts.metadata` was loaded with. `sharedModelFile()`'s
50
+ * standalone re-loads of a `files` subset use this so a publisher project's own
51
+ * consumer-supplied vocabulary is honoured identically to the main load. Optional
52
+ * on the type so tests and custom callers don't need a placeholder; always
53
+ * present at run time when invoked via `runGen()`.
54
+ */
55
+ registry?: TypeRegistry;
56
+ /**
57
+ * FR-023 §4.3 — the collection's own source files (never a dependency's
58
+ * artifact), filled by the runner from `RunGenOpts.sourceFiles`. Distinct from
59
+ * `loadedRoot`, which is already fully loaded and merged: `sharedModelFile()`
60
+ * needs the raw file LIST so it can re-load a `files:`-narrowed subset of it
61
+ * standalone. Undefined when the caller never supplied `RunGenOpts.sourceFiles`
62
+ * (a generator relying on it should default sensibly, as `sharedModelFile()`'s
63
+ * own `files` option does).
64
+ */
65
+ sourceFiles?: readonly string[];
66
+ /**
67
+ * FR-043 §6 — the manifests of the libraries this project opted into, filled by the
68
+ * runner from `RunGenOpts.libraries`.
69
+ *
70
+ * What a generator reads it FOR is the `anchor`: the library node it keys on. That
71
+ * retires the hard-coded entity name a library-aware generator would otherwise carry
72
+ * (`trace-helper` compared `.name === "LlmCallBase"`, so ANY adopter entity of that
73
+ * name in ANY package triggered it) in favour of resolving the manifest's anchor to a
74
+ * node and comparing by node identity.
75
+ *
76
+ * Undefined means the caller never said — a programmatic `runGen()` rather than
77
+ * `meta gen`. A generator reading it should fall back to every SHIPPED manifest's
78
+ * anchors, which is still FQN-anchored and still not a bare name. An empty array is
79
+ * the opposite and is meaningful: the caller looked, and this project opted into none.
80
+ */
81
+ libraries?: readonly LibraryManifest[];
35
82
  warn: (msg: string) => void;
36
83
  }
37
84
  export interface Generator {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAuFnD,mDAAmD;AACnD,MAAM,UAAU,SAAS,CACvB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;;qFAEqF;AACrF,MAAM,UAAU,UAAU,CACxB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED;oFACoF;AACpF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC;;;uCAGuC;AACvC,MAAM,UAAU,UAAU,CACxB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC;gBAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,EAAE,GAAG,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAqInD,mDAAmD;AACnD,MAAM,UAAU,SAAS,CACvB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;;qFAEqF;AACrF,MAAM,UAAU,UAAU,CACxB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED;oFACoF;AACpF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC;;;uCAGuC;AACvC,MAAM,UAAU,UAAU,CACxB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC;gBAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,EAAE,GAAG,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entity-file.d.ts","sourceRoot":"","sources":["../../src/generators/entity-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAgE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQtH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,EAiDlB,gBAAgB,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"entity-file.d.ts","sourceRoot":"","sources":["../../src/generators/entity-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAgE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQtH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,EAuDlB,gBAAgB,CAAC,cAAc,CAAC,CAAC"}
@@ -36,7 +36,10 @@ export const entityFile = function entityFile(opts) {
36
36
  // FR-019: emit the shared-enums module ONCE per run, into the entity-module
37
37
  // target root. Returns null (no file) when the model uses no materialized
38
38
  // shared enums — keeping the inline-enum default byte-identical (no new file).
39
- const sharedEnums = renderSharedEnumsFile(ctx.loadedRoot);
39
+ // FR-023 §11.1 item 2: `select` (never `ctx.matches` — this renders from the
40
+ // WHOLE root, not this generator's filtered subset) excludes an enum used
41
+ // only by an imported, out-of-scope entity.
42
+ const sharedEnums = renderSharedEnumsFile(ctx.loadedRoot, ctx.select !== undefined ? { select: ctx.select } : undefined);
40
43
  if (sharedEnums !== null) {
41
44
  files.push({
42
45
  path: `${SHARED_ENUMS_BASENAME}.ts`,
@@ -1 +1 @@
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;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBpD,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,4EAA4E;QAC5E,gFAAgF;QAChF,4EAA4E;QAC5E,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO;YACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,WAAW,KAAK,CAAC;YACxG,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
+ {"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;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBpD,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,4EAA4E;QAC5E,gFAAgF;QAChF,4EAA4E;QAC5E,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO;YACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,WAAW,KAAK,CAAC;YACxG,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,6EAA6E;YAC7E,0EAA0E;YAC1E,4CAA4C;YAC5C,MAAM,WAAW,GAAG,qBAAqB,CACvC,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;YACF,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"}
@@ -14,6 +14,7 @@ export { apiDocsFile, type ApiDocsFileOpts } from "./api-docs-file.js";
14
14
  export { docsFile, type DocsFileOpts } from "./docs-file.js";
15
15
  export { templateGenerator, type TemplateGeneratorOpts, type TemplateWalkResult, type TemplateFormat, } from "./template-generator.js";
16
16
  export { traceHelperFile, type TraceHelperOpts } from "./trace-helper-file.js";
17
+ export { sharedModelFile, type SharedModelFileOpts, MANIFEST_FILE as SHARED_MODEL_MANIFEST_FILE, ARTIFACT_SUFFIX as SHARED_MODEL_ARTIFACT_SUFFIX, INTEGRITY_PREFIX as SHARED_MODEL_INTEGRITY_PREFIX, } from "./shared-model-file.js";
17
18
  export type { EntityDocData, StorageFieldDoc, IdentityDoc, RelationshipDoc, UsedByDoc, ConstraintRow, } from "./docs-data.js";
18
19
  export { buildEntityDocData } from "./docs-data-builder.js";
19
20
  export type { TemplateDocData, TemplateOutputPart } from "./template-doc-data.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,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;AAKjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,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;AAK/E,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,aAAa,IAAI,0BAA0B,EAC3C,eAAe,IAAI,4BAA4B,EAC/C,gBAAgB,IAAI,6BAA6B,GAClD,MAAM,wBAAwB,CAAC;AAChC,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;AAKjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC"}
@@ -29,6 +29,11 @@ export { apiDocsFile } from "./api-docs-file.js";
29
29
  export { docsFile } from "./docs-file.js";
30
30
  export { templateGenerator, } from "./template-generator.js";
31
31
  export { traceHelperFile } from "./trace-helper-file.js";
32
+ // FR-023 §4.3 — the publisher's flattened shared-model artifact + manifest generator.
33
+ // The three tool-file constants are re-exported alongside it purely so a `cli`
34
+ // test can assert they stay byte-equal to sdk's canonical copies (see that
35
+ // module's own comment for why codegen-ts can't just import sdk directly).
36
+ export { sharedModelFile, MANIFEST_FILE as SHARED_MODEL_MANIFEST_FILE, ARTIFACT_SUFFIX as SHARED_MODEL_ARTIFACT_SUFFIX, INTEGRITY_PREFIX as SHARED_MODEL_INTEGRITY_PREFIX, } from "./shared-model-file.js";
32
37
  export { buildEntityDocData } from "./docs-data-builder.js";
33
38
  export { buildTemplateDocData } from "./template-doc-builder.js";
34
39
  // FR-038 — requirement-derived test stubs. The factory is a convenience; the
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,0FAA0F;AAC1F,2FAA2F;AAC3F,2FAA2F;AAC3F,2FAA2F;AAC3F,oFAAoF;AACpF,uFAAuF;AACvF,EAAE;AACF,0FAA0F;AAC1F,uFAAuF;AACvF,2FAA2F;AAC3F,wFAAwF;AACxF,iEAAiE;AACjE,2DAA2D;AAE3D,OAAO,EAAE,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,cAAc,EAA2B,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,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;AAEjE,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,qFAAqF;AACrF,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAA0B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,0FAA0F;AAC1F,2FAA2F;AAC3F,2FAA2F;AAC3F,2FAA2F;AAC3F,oFAAoF;AACpF,uFAAuF;AACvF,EAAE;AACF,0FAA0F;AAC1F,uFAAuF;AACvF,2FAA2F;AAC3F,wFAAwF;AACxF,iEAAiE;AACjE,2DAA2D;AAE3D,OAAO,EAAE,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,cAAc,EAA2B,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,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;AAC/E,sFAAsF;AACtF,+EAA+E;AAC/E,2EAA2E;AAC3E,2EAA2E;AAC3E,OAAO,EACL,eAAe,EAEf,aAAa,IAAI,0BAA0B,EAC3C,eAAe,IAAI,4BAA4B,EAC/C,gBAAgB,IAAI,6BAA6B,GAClD,MAAM,wBAAwB,CAAC;AAShC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,qFAAqF;AACrF,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAA0B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type Generator } from "../generator.js";
2
+ export declare const MANIFEST_FILE = "metaobjects.pkg.json";
3
+ export declare const ARTIFACT_SUFFIX = ".metaobjects.json";
4
+ export declare const INTEGRITY_PREFIX = "sha256-";
5
+ export interface SharedModelFileOpts {
6
+ /** The dependency key a consumer will `meta deps sync` under. Also the artifact's
7
+ * basename: emits `<name>.metaobjects.json`. */
8
+ name: string;
9
+ /** Scope-pattern include list (the same `acme::platform::**` grammar as `scope`). */
10
+ include: readonly string[];
11
+ /** Applied after `include`. */
12
+ exclude?: readonly string[];
13
+ /** Which of the publisher's own source files may contribute. Default: the run's
14
+ * own source files (`ctx.sourceFiles` — everything `files?` narrows). */
15
+ files?: readonly string[];
16
+ /** The published version. Default: the nearest `package.json` `version` walking
17
+ * up from `ctx.projectRoot`. */
18
+ version?: string;
19
+ /** Named output target, as on every other generator. */
20
+ target?: string;
21
+ }
22
+ export declare function sharedModelFile(opts: SharedModelFileOpts): Generator;
23
+ //# sourceMappingURL=shared-model-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-model-file.d.ts","sourceRoot":"","sources":["../../src/generators/shared-model-file.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAc,KAAK,SAAS,EAAqC,MAAM,iBAAiB,CAAC;AAWhG,eAAO,MAAM,aAAa,yBAAyB,CAAC;AACpD,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAmB1C,MAAM,WAAW,mBAAmB;IAClC;qDACiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,+BAA+B;IAC/B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;8EAC0E;IAC1E,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;qCACiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAqGpE"}