@metaobjectsdev/codegen-ts 1.0.4 → 1.0.5-rc.2

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 (71) hide show
  1. package/dist/column-mapper.d.ts.map +1 -1
  2. package/dist/column-mapper.js +14 -0
  3. package/dist/column-mapper.js.map +1 -1
  4. package/dist/generators/api-model.d.ts.map +1 -1
  5. package/dist/generators/api-model.js +6 -6
  6. package/dist/generators/api-model.js.map +1 -1
  7. package/dist/generators/queries-file.d.ts.map +1 -1
  8. package/dist/generators/queries-file.js +7 -2
  9. package/dist/generators/queries-file.js.map +1 -1
  10. package/dist/generators/routes-file-hono.d.ts +2 -1
  11. package/dist/generators/routes-file-hono.d.ts.map +1 -1
  12. package/dist/generators/routes-file-hono.js +4 -3
  13. package/dist/generators/routes-file-hono.js.map +1 -1
  14. package/dist/generators/routes-file.d.ts +2 -1
  15. package/dist/generators/routes-file.d.ts.map +1 -1
  16. package/dist/generators/routes-file.js +4 -3
  17. package/dist/generators/routes-file.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/projection/extract-view-spec.d.ts.map +1 -1
  23. package/dist/projection/extract-view-spec.js +49 -3
  24. package/dist/projection/extract-view-spec.js.map +1 -1
  25. package/dist/templates/drizzle-schema.d.ts +9 -1
  26. package/dist/templates/drizzle-schema.d.ts.map +1 -1
  27. package/dist/templates/drizzle-schema.js +37 -49
  28. package/dist/templates/drizzle-schema.js.map +1 -1
  29. package/dist/templates/entity-file.d.ts.map +1 -1
  30. package/dist/templates/entity-file.js +9 -1
  31. package/dist/templates/entity-file.js.map +1 -1
  32. package/dist/templates/enum-int-codec.d.ts +43 -0
  33. package/dist/templates/enum-int-codec.d.ts.map +1 -0
  34. package/dist/templates/enum-int-codec.js +66 -0
  35. package/dist/templates/enum-int-codec.js.map +1 -0
  36. package/dist/templates/inferred-types.d.ts.map +1 -1
  37. package/dist/templates/inferred-types.js +7 -1
  38. package/dist/templates/inferred-types.js.map +1 -1
  39. package/dist/templates/relations-block.d.ts.map +1 -1
  40. package/dist/templates/relations-block.js +13 -6
  41. package/dist/templates/relations-block.js.map +1 -1
  42. package/dist/templates/routes-file.d.ts.map +1 -1
  43. package/dist/templates/routes-file.js +21 -4
  44. package/dist/templates/routes-file.js.map +1 -1
  45. package/dist/templates/view-decl.d.ts +8 -0
  46. package/dist/templates/view-decl.d.ts.map +1 -1
  47. package/dist/templates/view-decl.js +29 -4
  48. package/dist/templates/view-decl.js.map +1 -1
  49. package/dist/templates/zod-validators.d.ts +32 -1
  50. package/dist/templates/zod-validators.d.ts.map +1 -1
  51. package/dist/templates/zod-validators.js +49 -3
  52. package/dist/templates/zod-validators.js.map +1 -1
  53. package/package.json +6 -6
  54. package/src/column-mapper.ts +13 -0
  55. package/src/generators/api-model.ts +6 -6
  56. package/src/generators/queries-file.ts +7 -2
  57. package/src/generators/routes-file-hono.ts +4 -3
  58. package/src/generators/routes-file.ts +4 -3
  59. package/src/index.ts +1 -1
  60. package/src/projection/extract-view-spec.ts +55 -6
  61. package/src/reference/queries.ts +4 -2
  62. package/src/reference/routes-hono.ts +2 -2
  63. package/src/reference/routes.ts +4 -3
  64. package/src/templates/drizzle-schema.ts +37 -50
  65. package/src/templates/entity-file.ts +9 -1
  66. package/src/templates/enum-int-codec.ts +67 -0
  67. package/src/templates/inferred-types.ts +7 -1
  68. package/src/templates/relations-block.ts +19 -11
  69. package/src/templates/routes-file.ts +29 -12
  70. package/src/templates/view-decl.ts +43 -5
  71. package/src/templates/zod-validators.ts +50 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-int-codec.d.ts","sourceRoot":"","sources":["../../src/templates/enum-int-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAwBxF"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The int-backed `field.enum` codec emitter, shared by the two artifacts that can
3
+ * reference one: the entity's Drizzle table (`drizzle-schema.ts`) and any view-backed
4
+ * read model (`view-decl.ts` — a projection or an entity read-view).
5
+ *
6
+ * It lives in its own module because the codec is a MODULE-LOCAL const in whatever file
7
+ * declares the column, so every emitter that can produce such a column must be able to
8
+ * declare it too. While only the table template owned it, the view template emitted the
9
+ * call site and let the const name fall through to `imp(fnName@drizzle-orm/*-core)` —
10
+ * importing a member that package does not export, which `meta gen` reported as success
11
+ * and only `tsc` caught.
12
+ *
13
+ * The invariant this module exists to protect: the codec is declared ONCE PER MODULE, and
14
+ * it must precede every use. A write-through entity puts its table and its replica view in
15
+ * one file and both reference the same consts, so `entity-file.ts` renders the table first,
16
+ * collects the names it declared, and hands them to the view — which then references them
17
+ * instead of re-declaring. Two module-scope `const`s of one name is a JS parse error, and a
18
+ * declaration emitted after its use is a TDZ ReferenceError at import: both are worse than
19
+ * the missing-codec bug, because neither lets the module load at all.
20
+ */
21
+ import { code, imp } from "ts-poet";
22
+ /**
23
+ * Render an int-backed `field.enum`'s Drizzle `customType` helper plus its two
24
+ * lookup maps.
25
+ *
26
+ * The codec lives HERE, in the column definition, so nothing downstream needs to
27
+ * know about it: `db.insert().values()` encodes on bind, a selected row decodes on
28
+ * read, and a filter comparison encodes because Drizzle binds through the column
29
+ * type. That is why this shape was chosen over a Zod write-transform plus a
30
+ * generated read-decode — TS's generated queries return raw Drizzle rows and have
31
+ * no decode seam, so the query-layer approach meant inventing one and wrapping
32
+ * every generated read. It is also the direct analogue of what the other four
33
+ * ports already do (EF Core `HasConversion`, OMDB `JdbcFieldCodec`, Exposed
34
+ * `customEnumeration`, Python `ObjectManager` coercion).
35
+ *
36
+ * `fromDriver` throws on an unmapped integer rather than returning undefined: a
37
+ * value outside the map means the DB holds data the model says is impossible
38
+ * (a hand-written INSERT, or a member removed without a migration), and silently
39
+ * yielding `undefined` for a non-nullable field would surface far from the cause.
40
+ */
41
+ export function renderEnumIntCustomType(t, importModule) {
42
+ const customTypeSym = imp(`customType@${importModule}`);
43
+ const union = t.members.map((m) => JSON.stringify(m)).join(" | ");
44
+ const toEntries = t.members
45
+ .map((m) => `${JSON.stringify(m)}: ${t.intByMember[m]}`)
46
+ .join(", ");
47
+ const fromEntries = t.members
48
+ .map((m) => `${t.intByMember[m]}: ${JSON.stringify(m)}`)
49
+ .join(", ");
50
+ return code `
51
+ const ${t.toIntConstName} = { ${toEntries} } as const satisfies Record<${union}, number>;
52
+ const ${t.fromIntConstName}: Record<number, ${union}> = { ${fromEntries} };
53
+ const ${t.fnConstName} = ${customTypeSym}<{ data: ${union}; driverData: number }>({
54
+ dataType: () => ${JSON.stringify(t.dataType)},
55
+ toDriver: (value) => ${t.toIntConstName}[value],
56
+ fromDriver: (value) => {
57
+ const member = ${t.fromIntConstName}[value];
58
+ if (member === undefined) {
59
+ throw new Error(\`unmapped ${t.fnConstName} value: \${value}\`);
60
+ }
61
+ return member;
62
+ },
63
+ });
64
+ `;
65
+ }
66
+ //# sourceMappingURL=enum-int-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-int-codec.js","sourceRoot":"","sources":["../../src/templates/enum-int-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAa,MAAM,SAAS,CAAC;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CAAC,CAAoB,EAAE,YAAoB;IAChF,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,IAAI,CAAA;QACL,CAAC,CAAC,cAAc,QAAQ,SAAS,gCAAgC,KAAK;QACtE,CAAC,CAAC,gBAAgB,oBAAoB,KAAK,SAAS,WAAW;QAC/D,CAAC,CAAC,WAAW,MAAM,aAAa,YAAY,KAAK;oBACrC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;yBACrB,CAAC,CAAC,cAAc;;qBAEpB,CAAC,CAAC,gBAAgB;;mCAEJ,CAAC,CAAC,WAAW;;;;;CAK/C,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"inferred-types.d.ts","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAiCtE,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGjF;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,OAAO,UAAQ,EACf,GAAG,CAAC,EAAE,aAAa,EACnB,OAAO,UAAQ,GACd,IAAI,CA8BN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAK9E;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAmE1F;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAmC7E;AA2FD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAsBxF"}
1
+ {"version":3,"file":"inferred-types.d.ts","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAkCtE,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGjF;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,OAAO,UAAQ,EACf,GAAG,CAAC,EAAE,aAAa,EACnB,OAAO,UAAQ,GACd,IAAI,CA8BN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAK9E;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAmE1F;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAmC7E;AA2FD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CA2BxF"}
@@ -14,6 +14,7 @@ import { stripPackage } from "@metaobjectsdev/metadata";
14
14
  import { enumValues } from "../enum-meta.js";
15
15
  import { sharedEnumZodConstName } from "./enums-file.js";
16
16
  import { renderDocsFor } from "./jsdoc.js";
17
+ import { isTphReadNullTolerant } from "./zod-validators.js";
17
18
  import { sharedEnumForField } from "../enum-shared.js";
18
19
  import { sharedEnumImportSpecifier, providedEnumImportSpecifier } from "../enum-import.js";
19
20
  import { fieldDeclaringPackage } from "../render-context.js";
@@ -338,7 +339,12 @@ export function renderValueObjectInterface(entity, ctx) {
338
339
  const required = field.attr(FIELD_ATTR_REQUIRED) === true;
339
340
  const optional = required ? "" : "?";
340
341
  const tsType = valueObjectFieldType(entity, field, ctx);
341
- lines.push(code ` ${field.name}${optional}: ${tsType};`);
342
+ // A TPH subtype's read schema accepts `null` for a column that is NULL on a
343
+ // sibling subtype's row; the declared type has to admit the same values, or
344
+ // `parse<Base>()` returns something this interface rejects. One predicate
345
+ // answers it for both emitters (ADR-style single source, see its docblock).
346
+ const nullable = isTphReadNullTolerant(entity, field) ? " | null" : "";
347
+ lines.push(code ` ${field.name}${optional}: ${tsType}${nullable};`);
342
348
  }
343
349
  // joinCode with "\n" interpolates each Code segment on its own line and
344
350
  // keeps the imp() registrations intact so ts-poet hoists the imports.
@@ -1 +1 @@
1
- {"version":3,"file":"inferred-types.js","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inferred-types.js","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relations-block.d.ts","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAyBxF"}
1
+ {"version":3,"file":"relations-block.d.ts","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAyBxF"}
@@ -5,6 +5,7 @@ import { CARDINALITY_ONE, CARDINALITY_MANY } from "@metaobjectsdev/metadata";
5
5
  import {} from "../render-context.js";
6
6
  import { crossEntitySpecifier } from "../import-path.js";
7
7
  import { effectivePackage } from "../docs-paths.js";
8
+ import { tphStorageName } from "./zod-validators.js";
8
9
  /**
9
10
  * Render the relations() block for one entity.
10
11
  * Returns null if the entity has no relations to emit.
@@ -25,13 +26,13 @@ export function renderRelationsBlock(entity, ctx) {
25
26
  paramParts.push("many");
26
27
  const params = `{ ${paramParts.join(", ")} }`;
27
28
  const thisEntityPackage = effectivePackage(entity);
28
- const lines = entries.map((entry) => renderRelationEntry(entry, ctx, varName, thisEntityPackage));
29
+ const lines = entries.map((entry) => renderRelationEntry(entry, ctx, entity.name, varName, thisEntityPackage));
29
30
  return code `export const ${relationsVarName} = ${relationsFn}(${varName}, (${params}) => ({
30
31
  ${joinCode(lines, { on: ",\n", trim: false })}
31
32
  }));
32
33
  `;
33
34
  }
34
- function renderRelationEntry(entry, ctx, thisVarName, thisEntityPackage) {
35
+ function renderRelationEntry(entry, ctx, thisEntityName, thisVarName, thisEntityPackage) {
35
36
  // FR-018 M:N: the source navigates through the junction table, so the Drizzle
36
37
  // many() targets the JUNCTION, not the target entity (the relational query API
37
38
  // then hops junction → target via the junction's one() sides). The
@@ -42,11 +43,17 @@ function renderRelationEntry(entry, ctx, thisVarName, thisEntityPackage) {
42
43
  const junctionVarSym = imp(`${ctx.collectionName(entry.junctionEntity)}@${junctionSpec}`);
43
44
  return code ` ${entry.name}: many(${junctionVarSym})`;
44
45
  }
45
- // Use imp() for cross-entity references so ts-poet tracks and emits the import.
46
- const targetSpec = crossEntitySpecifier(ctx.outputLayout, thisEntityPackage, ctx.packageOf.get(entry.targetEntity), entry.targetEntity, ctx.extStyle);
47
- const targetVarSym = imp(`${ctx.collectionName(entry.targetEntity)}@${targetSpec}`);
46
+ // Bind to the table that stores the target's rows: a TPH subtype's module has no
47
+ // table const, so a navigation onto `Carrier` binds `parties` from `Party`.
48
+ const targetTableEntity = tphStorageName(entry.targetEntity, ctx.loadedRoot);
49
+ // A navigation onto this entity's OWN table (`Order.parent`, or a TPH base onto one of
50
+ // its subtypes) names the local const: importing it from this very module clashes with
51
+ // its declaration (TS2440). Otherwise imp() tracks and emits the cross-entity import.
52
+ const targetVarSym = targetTableEntity === thisEntityName
53
+ ? thisVarName
54
+ : imp(`${ctx.collectionName(targetTableEntity)}@${crossEntitySpecifier(ctx.outputLayout, thisEntityPackage, ctx.packageOf.get(targetTableEntity), targetTableEntity, ctx.extStyle)}`);
48
55
  if (entry.cardinality === CARDINALITY_ONE) {
49
- const pkInfo = ctx.pkMap.get(entry.targetEntity);
56
+ const pkInfo = ctx.pkMap.get(targetTableEntity);
50
57
  const targetPkField = pkInfo?.fieldName ?? "id";
51
58
  return code ` ${entry.name}: one(${targetVarSym}, { fields: [${thisVarName}.${entry.fkField ?? "id"}], references: [${targetVarSym}.${targetPkField}] })`;
52
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relations-block.js","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations-block.js","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes-file.d.ts","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,OAAO,EAAiB,KAAK,QAAQ,EAAsD,MAAM,qBAAqB,CAAC;AAGvH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,aAAa,EAIlB,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC3B,MAAM,CAwMR"}
1
+ {"version":3,"file":"routes-file.d.ts","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,OAAO,EAAiB,KAAK,QAAQ,EAAsD,MAAM,qBAAqB,CAAC;AAIvH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,aAAa,EAIlB,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC3B,MAAM,CAwMR"}
@@ -25,6 +25,7 @@ import { isProjection, isWriteThrough } from "../projection/projection-detector.
25
25
  import { isTphDiscriminatorBase, tphPlan } from "./tph-discriminator.js";
26
26
  import { authSeamJsDoc, exposeLine, intersectExpose, TPH_POLYMORPHIC_VERBS } from "../routes-expose.js";
27
27
  import { effectivePackage } from "../docs-paths.js";
28
+ import { tphDiscriminatorPin, tphStorageObject } from "./zod-validators.js";
28
29
  export function renderRoutesFile(entity, ctx,
29
30
  // #348 — resolved by the generator from its `expose` option. undefined = all five verbs,
30
31
  // which emits no `expose` key at all and so keeps output byte-identical for projects
@@ -235,10 +236,22 @@ function renderM2mMount(entry, source, ctx, fastifyVar) {
235
236
  // SOURCE's package rather than the junction/target entity's own).
236
237
  const sourcePkg = effectivePackage(source);
237
238
  const junctionVarSym = imp(`${ctx.collectionName(entry.junctionEntity)}@${crossEntitySpecifier(ctx.outputLayout, sourcePkg, ctx.packageOf.get(entry.junctionEntity), entry.junctionEntity, ctx.extStyle)}`);
238
- const targetVarSym = imp(`${ctx.collectionName(entry.targetEntity)}@${crossEntitySpecifier(ctx.outputLayout, sourcePkg, ctx.packageOf.get(entry.targetEntity), entry.targetEntity, ctx.extStyle)}`);
239
+ // An M:N onto a TPH subtype traverses into its discriminator BASE's table — the
240
+ // subtype has no table const, and the junction FK can only point at the base table —
241
+ // and filters the rows to the subtype, because a Broker id in that FK column is not a
242
+ // Carrier. Every other target binds to itself, and emits no filter.
243
+ const declaredTarget = ctx.loadedRoot.findObject(entry.targetEntity);
244
+ const target = declaredTarget === undefined ? undefined : tphStorageObject(declaredTarget);
245
+ const targetTableEntity = target?.name ?? entry.targetEntity;
246
+ const pin = declaredTarget === undefined ? undefined : tphDiscriminatorPin(declaredTarget);
247
+ // A self-join's target table IS the source table, which this file already imports from
248
+ // the entity module; a second import of the same binding is TS2300, and a SyntaxError
249
+ // when Node loads the module.
250
+ const targetVarSym = targetTableEntity === source.name
251
+ ? ctx.collectionName(source.name)
252
+ : imp(`${ctx.collectionName(targetTableEntity)}@${crossEntitySpecifier(ctx.outputLayout, sourcePkg, ctx.packageOf.get(targetTableEntity), targetTableEntity, ctx.extStyle)}`);
239
253
  const mountM2mRouteSym = imp("mountM2mRoute@@metaobjectsdev/runtime-ts/drizzle-fastify");
240
254
  const junction = ctx.loadedRoot.findObject(entry.junctionEntity);
241
- const target = ctx.loadedRoot.findObject(entry.targetEntity);
242
255
  // fromPackage = source.package: this routes file is SOURCE's own module, never the
243
256
  // junction's or the target's — see resolveJunctionColumn's doc comment (B1).
244
257
  const sourceColumn = junction
@@ -248,8 +261,12 @@ function renderM2mMount(entry, source, ctx, fastifyVar) {
248
261
  ? resolveJunctionColumn(junction, entry.targetJoinField, ctx, sourcePkg)
249
262
  : code `${JSON.stringify(entry.targetJoinField)}`;
250
263
  const targetPkColumn = target
251
- ? resolveJunctionColumn(target, ctx.pkMap.get(entry.targetEntity)?.fieldName ?? "id", ctx, sourcePkg)
264
+ ? resolveJunctionColumn(target, ctx.pkMap.get(targetTableEntity)?.fieldName ?? "id", ctx, sourcePkg)
252
265
  : code `${JSON.stringify("id")}`;
266
+ const discriminatorLine = pin !== undefined && target !== undefined
267
+ ? code `
268
+ targetDiscriminator: { column: ${resolveJunctionColumn(target, pin.fieldName, ctx, sourcePkg)}, value: ${JSON.stringify(pin.value)} },`
269
+ : "";
253
270
  return code ` ${mountM2mRouteSym}({
254
271
  fastify: ${fastifyVar},
255
272
  path: ${source.name}.$path,
@@ -260,7 +277,7 @@ function renderM2mMount(entry, source, ctx, fastifyVar) {
260
277
  sourceColumn: ${sourceColumn},
261
278
  targetColumn: ${targetColumn},
262
279
  targetPkColumn: ${targetPkColumn},
263
- symmetric: ${entry.symmetric ? "true" : "false"},
280
+ symmetric: ${entry.symmetric ? "true" : "false"},${discriminatorLine}
264
281
  });`;
265
282
  }
266
283
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"routes-file.js","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes-file.js","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ export interface ViewDeclOpts {
7
7
  readonly columnNamingStrategy: ColumnNamingStrategy;
8
8
  /** Drives the timestamp column TS type (Date vs string) in the view declaration. */
9
9
  readonly timestampMode: "date" | "string";
10
+ /**
11
+ * Int-backed-enum codec const names ALREADY declared in the module this view lands in.
12
+ * A write-through entity's table and its replica view share one file, and both reference
13
+ * the same codecs — so the view references these by name and declares only what the table
14
+ * did not (a derived field's codec, which the write table omits). Absent = the view owns
15
+ * every codec it needs, which is the projection case.
16
+ */
17
+ readonly declaredEnumIntCodecs?: ReadonlySet<string>;
10
18
  /**
11
19
  * ADR-0044/#228 — resolve a `field.object` / `field.map`'s `@objectRef` to the
12
20
  * value object's EMITTED name (bare when unique in the run, package-qualified on
@@ -1 +1 @@
1
- {"version":3,"file":"view-decl.d.ts","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACvF;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC7C;AAqDD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,SAAS,EAAE;AAC5B;;;;;GAKG;AACH,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,GACjB,IAAI,CA4BN;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAiC9F"}
1
+ {"version":3,"file":"view-decl.d.ts","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACvF;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC7C;AAqED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,SAAS,EAAE;AAC5B;;;;;GAKG;AACH,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,GACjB,IAAI,CAyCN;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAiC9F"}
@@ -9,6 +9,7 @@
9
9
  import { code, imp, joinCode } from "ts-poet";
10
10
  import { FIELD_SUBTYPE_OBJECT, FIELD_ATTR_OBJECT_REF, } from "@metaobjectsdev/metadata";
11
11
  import { mapColumnType } from "../column-mapper.js";
12
+ import { renderEnumIntCustomType } from "./enum-int-codec.js";
12
13
  import { zodTypeFor } from "./field-meta.js";
13
14
  import { columnExpr } from "../names.js";
14
15
  /**
@@ -17,10 +18,22 @@ import { columnExpr } from "../names.js";
17
18
  * so `db.select().from(<view>)` is typed. Honors `@dbColumnType`; `.existing()`
18
19
  * views carry type + physical name only (no PK/default/notNull DDL modifiers).
19
20
  */
20
- function viewColumnLine(f, opts) {
21
+ function viewColumnLine(f, opts,
22
+ /** Codecs this view needs, collected for the caller to DECLARE — see below. */
23
+ enumIntTypes) {
21
24
  const { dialect, columnNamingStrategy, timestampMode } = opts;
22
25
  const spec = mapColumnType(f, dialect, columnNamingStrategy, timestampMode);
23
- const colSym = imp(`${spec.fnName}@${spec.importModule}`);
26
+ // An int-backed field.enum's column function is a LOCAL generated const (the
27
+ // customType helper the caller emits into this same file), so it must not be
28
+ // imported from drizzle-orm/*-core like a built-in column type would be. Same
29
+ // rule the table template applies in `renderColumn`; a view reads the very same
30
+ // integer column and needs the very same decode on the way out.
31
+ if (spec.enumIntCustomType !== undefined) {
32
+ enumIntTypes.set(spec.enumIntCustomType.fnConstName, spec.enumIntCustomType);
33
+ }
34
+ const colSym = spec.enumIntCustomType !== undefined
35
+ ? spec.enumIntCustomType.fnConstName
36
+ : imp(`${spec.fnName}@${spec.importModule}`);
24
37
  const optsArg = spec.fnOptions && Object.keys(spec.fnOptions).length > 0
25
38
  ? `, ${JSON.stringify(spec.fnOptions)}`
26
39
  : "";
@@ -80,7 +93,8 @@ viewName, viewVar, opts) {
80
93
  const viewFn = opts.dialect === "postgres" ? "pgView" : "sqliteView";
81
94
  const viewModule = opts.dialect === "postgres" ? "drizzle-orm/pg-core" : "drizzle-orm/sqlite-core";
82
95
  const viewSym = imp(`${viewFn}@${viewModule}`);
83
- const viewColumnLines = fields.map((f) => viewColumnLine(f, opts));
96
+ const enumIntTypes = new Map();
97
+ const viewColumnLines = fields.map((f) => viewColumnLine(f, opts, enumIntTypes));
84
98
  const viewNameExpr = typeof viewName === "string" ? code `${JSON.stringify(viewName)}` : viewName;
85
99
  // @schema — a view lands in a schema exactly as a table does, and migrate qualifies the
86
100
  // `CREATE VIEW` it emits. Fixing the table binding and leaving this one would be the more
@@ -94,7 +108,15 @@ viewName, viewVar, opts) {
94
108
  const viewCall = viewSchemaExpr === undefined
95
109
  ? code `${viewSym}`
96
110
  : code `${imp(`pgSchema@${viewModule}`)}(${viewSchemaExpr}).view`;
97
- return code `
111
+ // Int-backed enum codecs are declared BEFORE the view that references them, sorted
112
+ // by const name so output is deterministic regardless of field order — the same
113
+ // contract the table template holds.
114
+ const alreadyDeclared = opts.declaredEnumIntCodecs;
115
+ const enumIntBlocks = [...enumIntTypes.values()]
116
+ .filter((t) => alreadyDeclared === undefined || !alreadyDeclared.has(t.fnConstName))
117
+ .sort((a, b) => a.fnConstName.localeCompare(b.fnConstName))
118
+ .map((t) => renderEnumIntCustomType(t, viewModule));
119
+ const viewBlock = code `
98
120
  // View declaration — Drizzle uses this for typed SELECT queries.
99
121
  // The SQL view is created/managed by migrate-ts; .existing() tells Drizzle
100
122
  // not to attempt DDL for this declaration.
@@ -102,6 +124,9 @@ export const ${viewVar} = ${viewCall}(${viewNameExpr}, {
102
124
  ${joinCode(viewColumnLines, { on: ",\n" })}
103
125
  }).existing();
104
126
  `;
127
+ return enumIntBlocks.length === 0
128
+ ? viewBlock
129
+ : joinCode([...enumIntBlocks, viewBlock], { on: "\n" });
105
130
  }
106
131
  /**
107
132
  * The Zod object body for a view-backed read model — one `field: z.<type>[.nullable()]`
@@ -1 +1 @@
1
- {"version":3,"file":"view-decl.js","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-decl.js","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type Code } from "ts-poet";
2
- import { MetaObject } from "@metaobjectsdev/metadata";
2
+ import { MetaObject, MetaField, type MetaRoot } from "@metaobjectsdev/metadata";
3
3
  import { type RenderContext } from "../render-context.js";
4
4
  /**
5
5
  * FR-017 Tier 1 — when this object is a TPH subtype (@discriminatorValue set
@@ -23,6 +23,20 @@ export declare function tphDiscriminatorPin(obj: MetaObject): {
23
23
  * is the base.
24
24
  */
25
25
  export declare function tphDiscriminatorBase(obj: MetaObject): MetaObject | undefined;
26
+ /**
27
+ * The object whose TABLE stores `obj`'s rows: the discriminator base for anything beneath
28
+ * a TPH base — a concrete subtype or an abstract level in between — otherwise `obj`.
29
+ *
30
+ * Neither a subtype's module nor an abstract level's emits a table const, so anything
31
+ * that binds to "the other side" of a reference or relationship — an FK's `.references()`,
32
+ * a `relations()` entry, an M:N traversal's target table — must bind here and never to the
33
+ * target's own name. Binding to the subtype imported `carriers` from a `Carrier.ts` that
34
+ * does not export it.
35
+ */
36
+ export declare function tphStorageObject(obj: MetaObject): MetaObject;
37
+ /** {@link tphStorageObject} by entity name, for the name-keyed relation map. A name the
38
+ * root does not resolve is returned unchanged. */
39
+ export declare function tphStorageName(entityName: string, root: MetaRoot): string;
26
40
  /**
27
41
  * True when this object itself DECLARES `@discriminator` — the level of a TPH hierarchy
28
42
  * that owns the discriminator, whether or not any concrete subtype extends it yet.
@@ -42,6 +56,23 @@ export declare function isTphSubtype(obj: MetaObject): boolean;
42
56
  * a plain entity has nothing to preserve, so both are omitted. Resolving
43
57
  * (ADR-0039): honors an @autoSet inherited via extends. */
44
58
  export declare function hasAutoSetFields(obj: MetaObject): boolean;
59
+ /**
60
+ * Is this field NULL-tolerant in a TPH subtype's READ shape?
61
+ *
62
+ * A TPH subtype shares one physical table with its siblings, so a column only one
63
+ * subtype declares is NULL on every other subtype's row, and a non-`@required` column
64
+ * of this subtype's own is NULL when unset. Either way the value read back is `null`,
65
+ * not `undefined`. The PRIMARY KEY is the exception — it is the shared base table's
66
+ * key and is present on every row.
67
+ *
68
+ * ONE predicate, because TWO emitters answer this question about the same field: the
69
+ * Zod read schema (`renderTphSubtypeReadSchema`) and the declared TS type
70
+ * (`renderValueObjectInterface`). They answered it differently, so the value
71
+ * `parse<Base>()` returns was not assignable to the base union and the generated
72
+ * module did not compile (TS2322). A second answer to one question is the defect;
73
+ * keeping the two call sites pointed here is the fix.
74
+ */
75
+ export declare function isTphReadNullTolerant(obj: MetaObject, field: MetaField): boolean;
45
76
  /**
46
77
  * FR-017 Tier 2 — the per-subtype FULL read schema `<Sub>Schema`. Unlike the
47
78
  * insert schema, this includes every effective field (PK included) so a raw DB
@@ -1 +1 @@
1
- {"version":3,"file":"zod-validators.d.ts","sourceRoot":"","sources":["../../src/templates/zod-validators.ts"],"names":[],"mappings":"AAWA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,UAAU,EAA2B,MAAM,0BAA0B,CAAC;AA2B/E,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOjF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAQrG;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAE5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAEjE;AAqBD;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAErD;AAED;;;;4DAI4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAMzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CA2BrF;AAED;;2EAE2E;AAC3E,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAOnE;AA2DD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAyDjF;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB;sEACkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;oDACgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,EAAE,CA0BtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAgCtE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAqI9E"}
1
+ {"version":3,"file":"zod-validators.d.ts","sourceRoot":"","sources":["../../src/templates/zod-validators.ts"],"names":[],"mappings":"AAWA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAgB,MAAM,0BAA0B,CAAC;AA2B9F,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOjF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAQrG;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAG5D;AAED;mDACmD;AACnD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAEjE;AAqBD;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAErD;AAED;;;;4DAI4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAMzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAIhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CA6BrF;AAED;;2EAE2E;AAC3E,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAOnE;AA2DD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAyDjF;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB;sEACkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;oDACgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,EAAE,CA0BtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAgCtE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAqI9E"}
@@ -54,6 +54,27 @@ export function tphDiscriminatorPin(obj) {
54
54
  export function tphDiscriminatorBase(obj) {
55
55
  return tphDiscriminatorLevel(obj)?.base;
56
56
  }
57
+ /**
58
+ * The object whose TABLE stores `obj`'s rows: the discriminator base for anything beneath
59
+ * a TPH base — a concrete subtype or an abstract level in between — otherwise `obj`.
60
+ *
61
+ * Neither a subtype's module nor an abstract level's emits a table const, so anything
62
+ * that binds to "the other side" of a reference or relationship — an FK's `.references()`,
63
+ * a `relations()` entry, an M:N traversal's target table — must bind here and never to the
64
+ * target's own name. Binding to the subtype imported `carriers` from a `Carrier.ts` that
65
+ * does not export it.
66
+ */
67
+ export function tphStorageObject(obj) {
68
+ if (declaresTphDiscriminator(obj))
69
+ return obj;
70
+ return tphDiscriminatorBase(obj) ?? obj;
71
+ }
72
+ /** {@link tphStorageObject} by entity name, for the name-keyed relation map. A name the
73
+ * root does not resolve is returned unchanged. */
74
+ export function tphStorageName(entityName, root) {
75
+ const obj = root.findObject(entityName);
76
+ return obj === undefined ? entityName : tphStorageObject(obj).name;
77
+ }
57
78
  /**
58
79
  * True when this object itself DECLARES `@discriminator` — the level of a TPH hierarchy
59
80
  * that owns the discriminator, whether or not any concrete subtype extends it yet.
@@ -102,6 +123,29 @@ export function hasAutoSetFields(obj) {
102
123
  }
103
124
  return false;
104
125
  }
126
+ /**
127
+ * Is this field NULL-tolerant in a TPH subtype's READ shape?
128
+ *
129
+ * A TPH subtype shares one physical table with its siblings, so a column only one
130
+ * subtype declares is NULL on every other subtype's row, and a non-`@required` column
131
+ * of this subtype's own is NULL when unset. Either way the value read back is `null`,
132
+ * not `undefined`. The PRIMARY KEY is the exception — it is the shared base table's
133
+ * key and is present on every row.
134
+ *
135
+ * ONE predicate, because TWO emitters answer this question about the same field: the
136
+ * Zod read schema (`renderTphSubtypeReadSchema`) and the declared TS type
137
+ * (`renderValueObjectInterface`). They answered it differently, so the value
138
+ * `parse<Base>()` returns was not assignable to the base union and the generated
139
+ * module did not compile (TS2322). A second answer to one question is the defect;
140
+ * keeping the two call sites pointed here is the fix.
141
+ */
142
+ export function isTphReadNullTolerant(obj, field) {
143
+ if (!isTphSubtype(obj))
144
+ return false;
145
+ if (!fieldWillBeOptional(field))
146
+ return false;
147
+ return !primaryIdentityFieldNames(obj).includes(field.name);
148
+ }
105
149
  /**
106
150
  * FR-017 Tier 2 — the per-subtype FULL read schema `<Sub>Schema`. Unlike the
107
151
  * insert schema, this includes every effective field (PK included) so a raw DB
@@ -124,9 +168,11 @@ export function renderTphSubtypeReadSchema(obj, ctx) {
124
168
  }
125
169
  const expr = zodFieldExpr(child, obj, ctx);
126
170
  // zodFieldExpr already appends `.optional()` for non-required fields; add
127
- // `.nullable()` on top so a NULL column value (the TPH default for any
128
- // subtype-only column) parses cleanly.
129
- fieldLines.push(fieldWillBeOptional(child) ? code ` ${child.name}: ${expr}.nullable()` : code ` ${child.name}: ${expr}`);
171
+ // `.nullable()` on top so a NULL column value parses cleanly. The declared
172
+ // interface widens the SAME fields — see isTphReadNullTolerant.
173
+ fieldLines.push(isTphReadNullTolerant(obj, child)
174
+ ? code ` ${child.name}: ${expr}.nullable()`
175
+ : code ` ${child.name}: ${expr}`);
130
176
  }
131
177
  const objName = ctx ? ctx.valueObjectEmittedName(obj) : obj.name;
132
178
  const docs = renderDocsFor(obj);