@metaobjectsdev/codegen-ts 0.23.1-rc.1 → 0.23.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.
@@ -26,9 +26,41 @@ export type DefaultExpr = {
26
26
  kind: "arrayLiteral";
27
27
  elements: string[];
28
28
  };
29
+ /**
30
+ * An int-backed `field.enum` column: a generated Drizzle `customType` whose
31
+ * `toDriver`/`fromDriver` translate member symbol <-> stored integer, so the
32
+ * codec lives in the COLUMN definition rather than in the query layer.
33
+ *
34
+ * This is the TS analogue of what every other port already does at its own
35
+ * `MetaField` codec seam (EF Core `HasConversion`, OMDB `JdbcFieldCodec`, Exposed
36
+ * `customEnumeration`, Python `ObjectManager` coercion) — which is why it was
37
+ * chosen over a Zod write-transform plus a bespoke read-decode: TS's generated
38
+ * queries hand back raw Drizzle rows and have no decode seam at all, so a
39
+ * query-layer codec would have meant inventing one and wrapping every generated
40
+ * read. Binding through the column type also makes filter values encode for free.
41
+ */
42
+ export interface EnumIntCustomType {
43
+ /** Local const name for the customType column helper, e.g. `orderStatusEnumCol`. */
44
+ fnConstName: string;
45
+ /** Local const name for the symbol->int map, e.g. `ORDER_STATUS_TO_INT`. */
46
+ toIntConstName: string;
47
+ /** Local const name for the int->symbol map, e.g. `ORDER_STATUS_FROM_INT`. */
48
+ fromIntConstName: string;
49
+ /** Physical column type for `dataType()` — always integer for an int-backed enum. */
50
+ dataType: string;
51
+ /** Member symbols, in `@values` order (the TS union and the map key order). */
52
+ members: string[];
53
+ /** Member symbol -> stored integer. */
54
+ intByMember: Record<string, number>;
55
+ }
29
56
  export interface ColumnSpec {
30
57
  /** Drizzle function name, e.g., "text", "integer", "varchar". */
31
58
  fnName: string;
59
+ /**
60
+ * When set, `fnName` names a LOCAL generated const (this spec's customType
61
+ * helper) rather than a Drizzle export — the renderer must NOT `imp()` it.
62
+ */
63
+ enumIntCustomType?: EnumIntCustomType;
32
64
  /** DB column name (snake_case from field name, or @column override). */
33
65
  dbName: string;
34
66
  /** Positional args after dbName (currently always empty; reserved). */
@@ -1 +1 @@
1
- {"version":3,"file":"column-mapper.d.ts","sourceRoot":"","sources":["../src/column-mapper.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA+C1D,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE7E,YAAY,EAAE,OAAO,EAAE,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AA+IjD,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,iEAAiE;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EACV;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAC3E;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAEnD;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;SAAE,GAAG;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACjG;AAoDD;;;;;;;yFAOyF;AACzF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAGpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAQjE;AAWD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,oBAAqD,EAC/D,aAAa,GAAE,MAAM,GAAG,QAAmB,GAC1C,UAAU,CAoVZ"}
1
+ {"version":3,"file":"column-mapper.d.ts","sourceRoot":"","sources":["../src/column-mapper.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA+C1D,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE7E,YAAY,EAAE,OAAO,EAAE,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AA+IjD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,iEAAiE;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EACV;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAC3E;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAEnD;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;SAAE,GAAG;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACjG;AAoDD;;;;;;;yFAOyF;AACzF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAGpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAQjE;AAqDD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,oBAAqD,EAC/D,aAAa,GAAE,MAAM,GAAG,QAAmB,GAC1C,UAAU,CA6XZ"}
@@ -2,7 +2,7 @@
2
2
  // Uses the typed MetaField.validators() accessor (effective — includes inherited) for all validator checks.
3
3
  import { FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_MAP, FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_UUID, FIELD_SUBTYPE_URI, FIELD_SUBTYPE_INET, VALIDATOR_SUBTYPE_REQUIRED, VALIDATOR_SUBTYPE_LENGTH, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_REQUIRED, FIELD_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_OBJECT_REF, FIELD_ATTR_VALUE_TYPE, FIELD_ATTR_STORAGE, STORAGE_JSONB, VALIDATOR_ATTR_MAX, FIELD_ATTR_DB_COLUMN_TYPE, DB_COLUMN_TYPE_UUID, DB_COLUMN_TYPE_JSONB, FIELD_ATTR_LOCAL_TIME, FIELD_ATTR_LENIENT, TYPE_ORIGIN, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_AGGREGATE_ATTR_AGG, AGG_ANY, AGG_ALL, AGG_COLLECT, } from "@metaobjectsdev/metadata";
4
4
  import { columnNameFromField } from "./naming.js";
5
- import { enumValues } from "./enum-meta.js";
5
+ import { enumValues, intValueMapOf, intValueForMember } from "./enum-meta.js";
6
6
  import { DEFAULT_COLUMN_NAMING_STRATEGY, stripPackage } from "@metaobjectsdev/metadata";
7
7
  /**
8
8
  * Parse a string @default for an isArray field into the element source-literals
@@ -237,6 +237,44 @@ function objectRefBaseName(field) {
237
237
  return stripPackage(ref);
238
238
  return undefined;
239
239
  }
240
+ /** SCREAMING_SNAKE_CASE for a generated map const name. */
241
+ function screamingSnake(s) {
242
+ return s
243
+ .replace(/([a-z0-9])([A-Z])/g, "$1_$2")
244
+ .replace(/[^A-Za-z0-9]+/g, "_")
245
+ .toUpperCase();
246
+ }
247
+ /**
248
+ * Build the customType descriptor for an int-backed `field.enum`, or undefined
249
+ * when `@values` is missing (the field then degrades to a plain integer column
250
+ * rather than emitting a codec over an unknown member set).
251
+ *
252
+ * Names are derived from the FIELD name, so the consts are per-entity-file and
253
+ * self-contained. A shared enum consumed by N entities therefore emits N small
254
+ * identical helpers rather than requiring a cross-module import — the same
255
+ * self-contained tradeoff the per-entity enum union already makes.
256
+ */
257
+ function buildEnumIntCustomType(field, intByMember) {
258
+ const members = enumValues(field);
259
+ if (members === undefined || members.length === 0)
260
+ return undefined;
261
+ // Every member must map — the loader pins key-set-equals-@values (Check 5b), so a
262
+ // miss is unreachable; throwing beats emitting a codec with a hole in it.
263
+ for (const m of members) {
264
+ intValueForMember(intByMember, m, `customType codec for field '${field.name}'`);
265
+ }
266
+ const base = field.name.replace(/[^A-Za-z0-9]/g, "");
267
+ const camel = base.charAt(0).toLowerCase() + base.slice(1);
268
+ const screaming = screamingSnake(base);
269
+ return {
270
+ fnConstName: `${camel}IntEnum`,
271
+ toIntConstName: `${screaming}_TO_INT`,
272
+ fromIntConstName: `${screaming}_FROM_INT`,
273
+ dataType: "integer",
274
+ members,
275
+ intByMember,
276
+ };
277
+ }
240
278
  export function mapColumnType(field, dialect, strategy = DEFAULT_COLUMN_NAMING_STRATEGY, timestampMode = "string") {
241
279
  const dbName = field.column ?? columnNameFromField(field.name, strategy);
242
280
  const importModule = dialect === "sqlite" ? "drizzle-orm/sqlite-core" : "drizzle-orm/pg-core";
@@ -244,6 +282,8 @@ export function mapColumnType(field, dialect, strategy = DEFAULT_COLUMN_NAMING_S
244
282
  const isArray = field.resolvedIsArray();
245
283
  let fnName;
246
284
  let fnOptions;
285
+ // Set only for an int-backed field.enum — see EnumIntCustomType.
286
+ let enumIntCustomType;
247
287
  let leadingComment;
248
288
  if (dialect === "sqlite") {
249
289
  if (isArray) {
@@ -294,8 +334,21 @@ export function mapColumnType(field, dialect, strategy = DEFAULT_COLUMN_NAMING_S
294
334
  // "string" by the time it reaches here for this dialect.
295
335
  fnName = "text";
296
336
  break;
297
- case FIELD_SUBTYPE_STRING:
298
337
  case FIELD_SUBTYPE_ENUM:
338
+ // An INT-BACKED enum stores the mapped integer on SQLite too — SQLite has
339
+ // one integer storage class, so this matches migrate-ts's integer{32}.
340
+ {
341
+ const im = intValueMapOf(field);
342
+ if (im !== undefined) {
343
+ enumIntCustomType = buildEnumIntCustomType(field, im);
344
+ fnName = enumIntCustomType?.fnConstName ?? "integer";
345
+ }
346
+ else {
347
+ fnName = "text";
348
+ }
349
+ }
350
+ break;
351
+ case FIELD_SUBTYPE_STRING:
299
352
  case FIELD_SUBTYPE_UUID:
300
353
  case FIELD_SUBTYPE_URI:
301
354
  case FIELD_SUBTYPE_INET:
@@ -418,6 +471,23 @@ export function mapColumnType(field, dialect, strategy = DEFAULT_COLUMN_NAMING_S
418
471
  fnName = "jsonb";
419
472
  break;
420
473
  case FIELD_SUBTYPE_ENUM:
474
+ // An INT-BACKED enum (@intValueMap, design D5) stores the mapped integer,
475
+ // so the Drizzle column is integer — matching migrate-ts's expected-schema.
476
+ // The TS-facing type stays the member-string union; the symbol<->int
477
+ // translation happens at the write/read boundary. Scalar only: D7 makes
478
+ // @intValueMap + isArray ERR_ENUM_INT_VALUE_MAP_ARRAY at load, so an array
479
+ // enum reaching here is always string-backed.
480
+ {
481
+ const im = intValueMapOf(field);
482
+ if (im !== undefined) {
483
+ enumIntCustomType = buildEnumIntCustomType(field, im);
484
+ fnName = enumIntCustomType?.fnConstName ?? "integer";
485
+ }
486
+ else {
487
+ fnName = "text";
488
+ }
489
+ }
490
+ break;
421
491
  default:
422
492
  fnName = "text";
423
493
  break;
@@ -562,6 +632,8 @@ export function mapColumnType(field, dialect, strategy = DEFAULT_COLUMN_NAMING_S
562
632
  result.fnOptions = fnOptions;
563
633
  if (defaultExpr !== undefined)
564
634
  result.defaultExpr = defaultExpr;
635
+ if (enumIntCustomType !== undefined)
636
+ result.enumIntCustomType = enumIntCustomType;
565
637
  if (dollarTypeRef !== undefined)
566
638
  result.dollarTypeRef = dollarTypeRef;
567
639
  if (leadingComment !== undefined)
@@ -570,12 +642,23 @@ export function mapColumnType(field, dialect, strategy = DEFAULT_COLUMN_NAMING_S
570
642
  if (subType === FIELD_SUBTYPE_ENUM && !isArray) {
571
643
  const values = enumValues(field);
572
644
  if (values !== undefined && values.length > 0) {
573
- // Single-quote escaping is belt-and-suspenders: the loader's
574
- // ENUM_MEMBER_PATTERN already rejects quote-bearing members (members are
575
- // validated to be identifier-safe), so this never fires in practice.
576
- const list = values
577
- .map((v) => `'${v.replace(/'/g, "''")}'`)
578
- .join(", ");
645
+ const intMap = intValueMapOf(field);
646
+ let list;
647
+ if (intMap !== undefined) {
648
+ // Int-backed: the column holds integers, so the CHECK lists them unquoted.
649
+ // Keyed BY MEMBER through the map (not Object.values) so the constraint can
650
+ // never disagree with @values, which stays the SSOT. Must match
651
+ // migrate-ts's buildChecks exactly or `meta verify` reports permanent drift.
652
+ list = values
653
+ .map((v) => String(intValueForMember(intMap, v, `CHECK for column '${dbName}'`)))
654
+ .join(", ");
655
+ }
656
+ else {
657
+ // Single-quote escaping is belt-and-suspenders: the loader's
658
+ // ENUM_MEMBER_PATTERN already rejects quote-bearing members (members are
659
+ // validated to be identifier-safe), so this never fires in practice.
660
+ list = values.map((v) => `'${v.replace(/'/g, "''")}'`).join(", ");
661
+ }
579
662
  result.checkConstraint = `${dbName} IN (${list})`;
580
663
  }
581
664
  }
@@ -1 +1 @@
1
- {"version":3,"file":"column-mapper.js","sourceRoot":"","sources":["../src/column-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"column-mapper.js","sourceRoot":"","sources":["../src/column-mapper.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,4GAA4G;AAG5G,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,OAAO,EACP,OAAO,EACP,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAwBxF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,iBAAiB,CACxB,GAAW,EACX,eAAwB;IAExB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3B,mDAAmD;IACnD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;oBACtD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,CAAC;qBAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACnF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC,CAAC,6DAA6D;gBACjF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;oBAC7D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gDAAgD;IAChD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,EAAE,CAAC,CAAC,qBAAqB;QAClD,8EAA8E;QAC9E,mDAAmD;QACnD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,SAAS,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAa;IAClC,QAAQ;IACR,YAAY;IACZ,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,OAAO,EAAiB,yBAAyB;CAClD,CAAC;AAEF,gEAAgE;AAChE,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,4BAA4B,CAAC,OAAe;IACnD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,uBAAuB,CAAC;QAC7B,KAAK,qBAAqB;YACxB,OAAO,QAAQ,CAAC;QAClB,KAAK,iBAAiB,CAAC;QACvB,KAAK,kBAAkB,CAAC;QACxB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,mBAAmB;YACtB,OAAO,QAAQ,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;QAC1E,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,cAAc,CAAC;IACpD,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,cAAc,CAAC;IACpD,OAAO,KAAK,CAAC,CAAC,oDAAoD;AACpE,CAAC;AA0ED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,oBAAoB,CAC3B,KAAgB;IAEhB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3D,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACvD,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,mBAAmB;YACtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,KAAK,oBAAoB;YACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;4EAC4E;AAC5E,SAAS,YAAY,CAAC,KAAgB;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAwB,EAAE,CAAC;YAC/C,kEAAkE;YAClE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,GAAG,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;yFAOyF;AACzF,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,0BAA0B,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAgB;IACtD,yEAAyE;IACzE,MAAM,MAAM,GAAG,KAAK;SACjB,WAAW,EAAE;SACb,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,CAAC;IACjF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtD,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,WAAW,CAAC;AACnE,CAAC;AAED;;6EAE6E;AAC7E,SAAS,iBAAiB,CAAC,KAAgB;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IACxE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2DAA2D;AAC3D,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,CAAC;SACL,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAC7B,KAAgB,EAChB,WAAmC;IAEnC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,kFAAkF;IAClF,0EAA0E;IAC1E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,iBAAiB,CAAC,WAAW,EAAE,CAAC,EAAE,+BAA+B,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,WAAW,EAAE,GAAG,KAAK,SAAS;QAC9B,cAAc,EAAE,GAAG,SAAS,SAAS;QACrC,gBAAgB,EAAE,GAAG,SAAS,WAAW;QACzC,QAAQ,EAAE,SAAS;QACnB,OAAO;QACP,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAgB,EAChB,OAAgB,EAChB,WAAiC,8BAA8B,EAC/D,gBAAmC,QAAQ;IAE3C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC9F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;IAExC,IAAI,MAAc,CAAC;IACnB,IAAI,SAA8C,CAAC;IACnD,iEAAiE;IACjE,IAAI,iBAAgD,CAAC;IAErD,IAAI,cAAkC,CAAC;IACvC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,uEAAuE;YACvE,MAAM,GAAG,MAAM,CAAC;YAChB,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,qBAAqB;oBACxB,MAAM,GAAG,SAAS,CAAC;oBACnB,SAAS,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,iBAAiB,CAAC;gBACvB,KAAK,sBAAsB,CAAC;gBAC5B,KAAK,kBAAkB;oBACrB,MAAM,GAAG,SAAS,CAAC;oBACnB,MAAM;gBACR,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,mBAAmB;oBACtB,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR,KAAK,qBAAqB;oBACxB,MAAM,GAAG,MAAM,CAAC;oBAChB,yEAAyE;oBACzE,yEAAyE;oBACzE,kCAAkC;oBAClC,cAAc,GAAG,kIAAkI,CAAC;oBACpJ,MAAM;gBACR,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,iBAAiB;oBACpB,0EAA0E;oBAC1E,+DAA+D;oBAC/D,yEAAyE;oBACzE,kEAAkE;oBAClE,MAAM,GAAG,MAAM,CAAC;oBAChB,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oBAC7B,MAAM;gBACR,KAAK,kBAAkB,CAAC;gBACxB,KAAK,kBAAkB,CAAC;gBACxB,KAAK,uBAAuB;oBAC1B,sEAAsE;oBACtE,qEAAqE;oBACrE,qEAAqE;oBACrE,sEAAsE;oBACtE,4DAA4D;oBAC5D,mEAAmE;oBACnE,yDAAyD;oBACzD,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR,KAAK,kBAAkB;oBACrB,0EAA0E;oBAC1E,uEAAuE;oBACvE,CAAC;wBACC,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;wBAChC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;4BACrB,iBAAiB,GAAG,sBAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACtD,MAAM,GAAG,iBAAiB,EAAE,WAAW,IAAI,SAAS,CAAC;wBACvD,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,MAAM,CAAC;wBAClB,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,kBAAkB,CAAC;gBACxB,KAAK,iBAAiB,CAAC;gBACvB,KAAK,kBAAkB;oBACrB,8EAA8E;oBAC9E,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR;oBACE,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,4EAA4E;QAC5E,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,wEAAwE;YACxE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YACzB,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,qBAAqB;oBACxB,MAAM,GAAG,SAAS,CAAC;oBACnB,MAAM;gBACR,KAAK,iBAAiB;oBACpB,MAAM,GAAG,SAAS,CAAC;oBACnB,MAAM;gBACR,KAAK,sBAAsB,CAAC;gBAC5B,KAAK,kBAAkB;oBACrB,MAAM,GAAG,QAAQ,CAAC;oBAClB,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBAC/B,MAAM;gBACR,KAAK,oBAAoB;oBACvB,MAAM,GAAG,iBAAiB,CAAC;oBAC3B,MAAM;gBACR,KAAK,mBAAmB;oBACtB,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR,KAAK,uBAAuB;oBAC1B,sEAAsE;oBACtE,sEAAsE;oBACtE,kEAAkE;oBAClE,4CAA4C;oBAC5C,EAAE;oBACF,iEAAiE;oBACjE,oEAAoE;oBACpE,iEAAiE;oBACjE,mEAAmE;oBACnE,oEAAoE;oBACpE,gEAAgE;oBAChE,kEAAkE;oBAClE,MAAM,GAAG,WAAW,CAAC;oBACrB,SAAS,GAAG;wBACV,IAAI,EAAE,aAAa;wBACnB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,IAAI;qBACzD,CAAC;oBACF,MAAM;gBACR,KAAK,kBAAkB;oBACrB,iEAAiE;oBACjE,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR,KAAK,iBAAiB;oBACpB,mEAAmE;oBACnE,8DAA8D;oBAC9D,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;gBACR,KAAK,kBAAkB;oBACrB,iEAAiE;oBACjE,gEAAgE;oBAChE,8DAA8D;oBAC9D,kEAAkE;oBAClE,sEAAsE;oBACtE,eAAe;oBACf,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oBACnE,MAAM;gBACR,KAAK,qBAAqB,CAAC,CAAC,CAAC;oBAC3B,sEAAsE;oBACtE,qEAAqE;oBACrE,sEAAsE;oBACtE,8DAA8D;oBAC9D,MAAM,GAAG,SAAS,CAAC;oBACnB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACnD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC3C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/D,SAAS,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;oBACnC,CAAC;yBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;wBACzC,SAAS,GAAG,EAAE,SAAS,EAAE,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,SAAS,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBAC1C,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;oBACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,GAAG,SAAS,CAAC;wBACnB,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,MAAM,CAAC;oBAClB,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,iBAAiB;oBACpB,mEAAmE;oBACnE,sDAAsD;oBACtD,gEAAgE;oBAChE,MAAM,GAAG,OAAO,CAAC;oBACjB,MAAM;gBACR,KAAK,kBAAkB;oBACrB,0EAA0E;oBAC1E,4EAA4E;oBAC5E,qEAAqE;oBACrE,wEAAwE;oBACxE,2EAA2E;oBAC3E,8CAA8C;oBAC9C,CAAC;wBACC,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;wBAChC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;4BACrB,iBAAiB,GAAG,sBAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACtD,MAAM,GAAG,iBAAiB,EAAE,WAAW,IAAI,SAAS,CAAC;wBACvD,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,MAAM,CAAC;wBAClB,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR;oBACE,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,mEAAmE;IACnE,iEAAiE;IACjE,8CAA8C;IAC9C,IAAI,OAAO,KAAK,kBAAkB,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,2EAA2E;IAC3E,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,IAAI,OAAO,KAAK,oBAAoB,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;QAC3G,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,mFAAmF;IACnF,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,4BAA4B;IAC5B,oEAAoE;IACpE,0CAA0C;IAC1C,4EAA4E;IAC5E,6CAA6C;IAE7C,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,WAAoC,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,wEAAwE;QACxE,2EAA2E;QAC3E,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;YACrE,MAAM,SAAS,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACnD,wFAAwF;YACxF,0DAA0D;YAC1D,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;gBACtC,WAAW,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;aAAM,IACL,OAAO;YACP,OAAO,KAAK,oBAAoB;YAChC,OAAO,KAAK,iBAAiB;YAC7B,OAAO,WAAW,KAAK,QAAQ,EAC/B,CAAC;YACD,oEAAoE;YACpE,oEAAoE;YACpE,qEAAqE;YACrE,wEAAwE;YACxE,wEAAwE;YACxE,8DAA8D;YAC9D,MAAM,eAAe,GAAG,4BAA4B,CAAC,OAAO,CAAC,KAAK,QAAQ;mBACrE,4BAA4B,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;YACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACjE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,WAAW,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,sEAAsE;gBACtE,qEAAqE;gBACrE,oDAAoD;gBACpD,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,2EAA2E;YAC3E,+EAA+E;YAC/E,oFAAoF;YACpF,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,WAAW,CAAC;YACvD,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,8EAA8E;IAC9E,4DAA4D;IAC5D,qEAAqE;IACrE,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,qCAAqC;IACrC,IAAI,aAA0C,CAAC;IAC/C,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;QAClC,2EAA2E;QAC3E,kEAAkE;QAClE,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,aAAa,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrF,aAAa,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,IAAI,QAAQ,CAAoC,EAAE,EAAE,CAAC;QAC9G,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC3C,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,aAAa,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,aAAa,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAyC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,aAAa,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAe;QACzB,MAAM;QACN,MAAM;QACN,MAAM,EAAE,EAAE;QACV,SAAS;QACT,YAAY;KACb,CAAC;IACF,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,WAAW,KAAK,SAAS;QAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAChE,IAAI,iBAAiB,KAAK,SAAS;QAAE,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAClF,IAAI,aAAa,KAAK,SAAS;QAAE,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IACtE,IAAI,cAAc,KAAK,SAAS;QAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;IAEzE,wEAAwE;IACxE,IAAI,OAAO,KAAK,kBAAkB,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,IAAY,CAAC;YACjB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,2EAA2E;gBAC3E,4EAA4E;gBAC5E,gEAAgE;gBAChE,6EAA6E;gBAC7E,IAAI,GAAG,MAAM;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,qBAAqB,MAAM,GAAG,CAAC,CAAC,CAAC;qBAChF,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,yEAAyE;gBACzE,qEAAqE;gBACrE,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,CAAC,eAAe,GAAG,GAAG,MAAM,QAAQ,IAAI,GAAG,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -9,6 +9,26 @@ import type { MetaField } from "@metaobjectsdev/metadata";
9
9
  * here too.
10
10
  */
11
11
  export declare function enumValues(field: MetaField): string[] | undefined;
12
+ /**
13
+ * The effective `@intValueMap` (member symbol → integer) for an int-backed enum,
14
+ * or undefined when the enum is string-backed. Its PRESENCE is the whole trigger
15
+ * for integer persistence (design D5) — there is no separate flag or config.
16
+ *
17
+ * ADR-0039: RESOLVING (`attr`, not `ownAttr`), and this is load-bearing rather
18
+ * than incidental. Post-#246 an own `@intValueMap` declared against a shared
19
+ * (root-level abstract) enum is `ERR_ENUM_EXTENDS_VALUES_CONFLICT`, so the map
20
+ * lives on the SHARED DECLARATION and every consuming field INHERITS it. An
21
+ * own-only read would therefore see undefined on exactly the shape adopters are
22
+ * steered toward, and silently emit a string codec into an integer column.
23
+ */
24
+ export declare function intValueMapOf(field: MetaField): Record<string, number> | undefined;
25
+ /**
26
+ * The integer a member symbol persists as, for an int-backed enum. Throws when the
27
+ * member has no mapping — the loader pins key-set-equals-`@values` (Check 5b) in
28
+ * every port, so a miss is unreachable and must not be papered over: emitting the
29
+ * symbol instead would fail only at INSERT time, against a live database.
30
+ */
31
+ export declare function intValueForMember(intMap: Record<string, number>, member: string, context: string): number;
12
32
  /** Build the Zod expression for a set of enum members, e.g. `z.enum(["A", "B"])`. */
13
33
  export declare function zodEnumExpr(values: string[]): string;
14
34
  //# sourceMappingURL=enum-meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum-meta.d.ts","sourceRoot":"","sources":["../src/enum-meta.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAIjE;AAED,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD"}
1
+ {"version":3,"file":"enum-meta.d.ts","sourceRoot":"","sources":["../src/enum-meta.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAIjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAIlF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAMR;AAED,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD"}
package/dist/enum-meta.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Shared field.enum metadata helpers — consumed by zod-validators.ts,
2
2
  // field-meta.ts, inferred-types.ts, and column-mapper.ts so the @values
3
3
  // extraction and the z.enum([...]) expression are derived in exactly one place.
4
- import { FIELD_ATTR_VALUES } from "@metaobjectsdev/metadata";
4
+ import { FIELD_ATTR_VALUES, FIELD_ATTR_INT_VALUE_MAP } from "@metaobjectsdev/metadata";
5
5
  /**
6
6
  * Effective enum member values (`@values`) for a field, as strings.
7
7
  * Returns undefined when the field declares no `@values` array — callers then
@@ -17,6 +17,37 @@ export function enumValues(field) {
17
17
  return undefined;
18
18
  return values.map((v) => String(v));
19
19
  }
20
+ /**
21
+ * The effective `@intValueMap` (member symbol → integer) for an int-backed enum,
22
+ * or undefined when the enum is string-backed. Its PRESENCE is the whole trigger
23
+ * for integer persistence (design D5) — there is no separate flag or config.
24
+ *
25
+ * ADR-0039: RESOLVING (`attr`, not `ownAttr`), and this is load-bearing rather
26
+ * than incidental. Post-#246 an own `@intValueMap` declared against a shared
27
+ * (root-level abstract) enum is `ERR_ENUM_EXTENDS_VALUES_CONFLICT`, so the map
28
+ * lives on the SHARED DECLARATION and every consuming field INHERITS it. An
29
+ * own-only read would therefore see undefined on exactly the shape adopters are
30
+ * steered toward, and silently emit a string codec into an integer column.
31
+ */
32
+ export function intValueMapOf(field) {
33
+ const raw = field.attr(FIELD_ATTR_INT_VALUE_MAP);
34
+ if (raw === undefined || raw === null || typeof raw !== "object")
35
+ return undefined;
36
+ return raw;
37
+ }
38
+ /**
39
+ * The integer a member symbol persists as, for an int-backed enum. Throws when the
40
+ * member has no mapping — the loader pins key-set-equals-`@values` (Check 5b) in
41
+ * every port, so a miss is unreachable and must not be papered over: emitting the
42
+ * symbol instead would fail only at INSERT time, against a live database.
43
+ */
44
+ export function intValueForMember(intMap, member, context) {
45
+ const n = intMap[member];
46
+ if (typeof n !== "number") {
47
+ throw new Error(`@intValueMap has no integer for member '${member}' (${context}).`);
48
+ }
49
+ return n;
50
+ }
20
51
  /** Build the Zod expression for a set of enum members, e.g. `z.enum(["A", "B"])`. */
21
52
  export function zodEnumExpr(values) {
22
53
  return `z.enum([${values.map((v) => JSON.stringify(v)).join(", ")}])`;
@@ -1 +1 @@
1
- {"version":3,"file":"enum-meta.js","sourceRoot":"","sources":["../src/enum-meta.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,wEAAwE;AACxE,gFAAgF;AAGhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,MAAgB;IAC1C,OAAO,WAAW,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"enum-meta.js","sourceRoot":"","sources":["../src/enum-meta.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,wEAAwE;AACxE,gFAAgF;AAGhF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACjD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnF,OAAO,GAA6B,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA8B,EAC9B,MAAc,EACd,OAAe;IAEf,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,MAAM,OAAO,IAAI,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,MAAgB;IAC1C,OAAO,WAAW,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract-view-spec.d.ts","sourceRoot":"","sources":["../../src/projection/extract-view-spec.ts"],"names":[],"mappings":"AAgDA,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAWpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EACoC,QAAQ,EAEvD,MAAM,gBAAgB,CAAC;AAyIxB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;CACrD;AA+DD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,GACzC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAYpF;AA0oBD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,cAAc,GAClB,QAAQ,CAuCV"}
1
+ {"version":3,"file":"extract-view-spec.d.ts","sourceRoot":"","sources":["../../src/projection/extract-view-spec.ts"],"names":[],"mappings":"AAkDA,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAYpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EACoC,QAAQ,EAEvD,MAAM,gBAAgB,CAAC;AAwNxB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;CACrD;AA+DD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,GACzC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAYpF;AA0oBD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,cAAc,GAClB,QAAQ,CAyCV"}
@@ -1,5 +1,6 @@
1
- import { TYPE_FIELD, TYPE_IDENTITY, TYPE_ORIGIN, TYPE_RELATIONSHIP, isMetaObject, isReadOnlySource, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_SUBTYPE_COMPUTED, ORIGIN_SUBTYPE_FIRST, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_FILTER, ORIGIN_ATTR_DISTINCT, ORIGIN_ATTR_ORDER_BY, ORIGIN_COMPUTED_ATTR_EXPR, ORIGIN_FIRST_ATTR_OF, ORIGIN_FIRST_ATTR_VIA, ORIGIN_FIRST_ATTR_FILTER, AGG_ANY, AGG_ALL, AGG_COLLECT, AGGREGATE_FUNCTIONS, FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IS_NULL, FILTER_COMPOSE_AND, FILTER_COMPOSE_OR, SORT_ORDER_DESC, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_CARDINALITY, CARDINALITY_ONE, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_REFERENCE_ATTR_REFERENCES, FIELD_ATTR_COLUMN, OBJECT_PROJECTION_ATTR_FILTER, findReferenceBetween, resolveObjectRef, } from "@metaobjectsdev/metadata";
1
+ import { TYPE_FIELD, TYPE_IDENTITY, TYPE_ORIGIN, TYPE_RELATIONSHIP, isMetaObject, isReadOnlySource, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_SUBTYPE_COMPUTED, ORIGIN_SUBTYPE_FIRST, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_FILTER, ORIGIN_ATTR_DISTINCT, ORIGIN_ATTR_ORDER_BY, ORIGIN_COMPUTED_ATTR_EXPR, ORIGIN_FIRST_ATTR_OF, ORIGIN_FIRST_ATTR_VIA, ORIGIN_FIRST_ATTR_FILTER, AGG_ANY, AGG_ALL, AGG_COLLECT, AGGREGATE_FUNCTIONS, FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IS_NULL, FILTER_OP_LIKE, FIELD_SUBTYPE_ENUM, FILTER_COMPOSE_AND, FILTER_COMPOSE_OR, SORT_ORDER_DESC, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_CARDINALITY, CARDINALITY_ONE, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_REFERENCE_ATTR_REFERENCES, FIELD_ATTR_COLUMN, OBJECT_PROJECTION_ATTR_FILTER, findReferenceBetween, resolveObjectRef, } from "@metaobjectsdev/metadata";
2
2
  import { MetaObject } from "@metaobjectsdev/metadata";
3
+ import { intValueMapOf } from "../enum-meta.js";
3
4
  import { columnNameFromField, viewNameFromProjection, } from "../naming.js";
4
5
  // #213 — a write-through ENTITY (FR-024 §7 read-view) hosts its own view; the base
5
6
  // is the entity itself, not an extends-anchored projection.
@@ -68,13 +69,71 @@ function resolveAggregateFilter(filter, entity, alias, ctx) {
68
69
  kind: "cmp",
69
70
  ref: `${alias}.${sourceColumnNameFor(field, ctx)}`,
70
71
  op,
71
- value: opObj[op],
72
+ // Same int-backed-enum encoding as the row-scope @filter below: this scoping
73
+ // filter renders as a SQL literal too (FILTER (WHERE …) / CASE WHEN), so a
74
+ // member symbol would land unencoded in an integer comparison.
75
+ value: encodeIntEnumFilterValue(opObj[op], op, field.subType === FIELD_SUBTYPE_ENUM ? intValueMapOf(field) : undefined, key, entity.name),
72
76
  });
73
77
  }
74
78
  if (clauses.length === 0)
75
79
  return undefined;
76
80
  return clauses.length === 1 ? clauses[0] : { kind: "and", clauses };
77
81
  }
82
+ /**
83
+ * The `@intValueMap` of every int-backed `field.enum` the projection declares, keyed
84
+ * by field name. Only int-backed enums appear, so a lookup miss means "no encoding".
85
+ *
86
+ * `fields()` (effective) and `intValueMapOf` (which reads `attr`, RESOLVING) — a
87
+ * projection's fields are bound through `extends` to the base entity's, and post-#246
88
+ * the map itself commonly lives one hop further up on a shared abstract declaration.
89
+ * Own-only at either hop would silently emit the member symbol into an integer column
90
+ * (ADR-0039).
91
+ */
92
+ function intEnumMapsOf(projection) {
93
+ const out = new Map();
94
+ for (const f of projection.fields()) {
95
+ if (f.subType !== FIELD_SUBTYPE_ENUM)
96
+ continue;
97
+ const map = intValueMapOf(f);
98
+ if (map !== undefined)
99
+ out.set(f.name, map);
100
+ }
101
+ return out;
102
+ }
103
+ /**
104
+ * Lower a filter value for an int-backed `field.enum` from its member SYMBOL to the
105
+ * INTEGER it persists as. A no-op for every other field (`intMap` undefined), so a
106
+ * string-backed enum's SQL is byte-identical.
107
+ *
108
+ * `isNull` is skipped — its value is a boolean, not a member. `like` is unreachable:
109
+ * `opsForField` removes it from an int-backed enum's band, so the loader rejects it
110
+ * before codegen; the explicit throw makes that a loud failure rather than a
111
+ * `LIKE NaN`. An unmapped member is likewise loader-unreachable (the key set is
112
+ * pinned equal to `@values`) and throws for the same reason — silently emitting the
113
+ * symbol would produce DDL that fails only at apply time, against a live database.
114
+ */
115
+ function encodeIntEnumFilterValue(value, op, intMap, fieldName, projectionName) {
116
+ if (intMap === undefined)
117
+ return value;
118
+ if (op === FILTER_OP_IS_NULL)
119
+ return value;
120
+ if (op === FILTER_OP_LIKE) {
121
+ throw new Error(`Projection ${projectionName}: view @filter uses "like" on "${fieldName}", an ` +
122
+ `int-backed field.enum (@intValueMap) — it stores as an integer column, so a ` +
123
+ `substring match is not expressible. Use eq/ne/in.`);
124
+ }
125
+ const encode = (v) => {
126
+ if (typeof v !== "string")
127
+ return v;
128
+ const n = intMap[v];
129
+ if (typeof n !== "number") {
130
+ throw new Error(`Projection ${projectionName}: view @filter value "${v}" for "${fieldName}" has no ` +
131
+ `entry in @intValueMap.`);
132
+ }
133
+ return n;
134
+ };
135
+ return Array.isArray(value) ? value.map(encode) : encode(value);
136
+ }
78
137
  /**
79
138
  * #207 — resolve a projection's row-scope `@filter` (the desugared canonical
80
139
  * `{ field: { op: value }, and?, or? }`) into a {@link ViewFilterClause} whose
@@ -90,14 +149,14 @@ function resolveAggregateFilter(filter, entity, alias, ctx) {
90
149
  * - a ref naming no declared field → THROW (dangling; also loader-rejected).
91
150
  * Multiple fields at one level compose with AND (mirrors resolveAggregateFilter).
92
151
  */
93
- function resolveViewFilter(filter, columnsByField, projectionName) {
152
+ function resolveViewFilter(filter, columnsByField, projectionName, intMapsByField) {
94
153
  if (typeof filter !== "object" || filter === null || Array.isArray(filter))
95
154
  return undefined;
96
155
  const clauses = [];
97
156
  for (const [key, val] of Object.entries(filter)) {
98
157
  if (key === FILTER_AND || key === FILTER_OR) {
99
158
  const subs = (Array.isArray(val) ? val : [])
100
- .map((s) => resolveViewFilter(s, columnsByField, projectionName))
159
+ .map((s) => resolveViewFilter(s, columnsByField, projectionName, intMapsByField))
101
160
  .filter((c) => c !== undefined);
102
161
  if (subs.length > 0)
103
162
  clauses.push({ kind: key === FILTER_AND ? "and" : "or", clauses: subs });
@@ -115,7 +174,12 @@ function resolveViewFilter(filter, columnsByField, projectionName) {
115
174
  // becomes its own comparison, AND-composed (dropping all-but-the-first would silently
116
175
  // widen the exposed row set). The loader has already validated every op for this
117
176
  // field's subtype.
118
- for (const [op, value] of Object.entries(desugarClause(val))) {
177
+ for (const [op, rawValue] of Object.entries(desugarClause(val))) {
178
+ // An INT-BACKED field.enum (@intValueMap, design D5) stores as an INTEGER
179
+ // column, so the authored member SYMBOL must become its integer before it is
180
+ // rendered as a SQL literal. The Drizzle customType handles the runtime query
181
+ // path, but view DDL is emitted as literal SQL text and never touches Drizzle.
182
+ const value = encodeIntEnumFilterValue(rawValue, op, intMapsByField.get(key), key, projectionName);
119
183
  if (col.kind === "passthrough") {
120
184
  clauses.push({ kind: "cmp", ref: `${col.sourceAlias}.${col.sourceColumn}`, op, value });
121
185
  }
@@ -858,7 +922,7 @@ export function extractViewSpec(projection, root, ctx) {
858
922
  const rawFilter = projection.ownAttr(OBJECT_PROJECTION_ATTR_FILTER);
859
923
  if (rawFilter !== undefined) {
860
924
  const columnsByField = new Map(selectSpec.columns.map((c) => [c.fieldName, c]));
861
- where = resolveViewFilter(rawFilter, columnsByField, projection.name);
925
+ where = resolveViewFilter(rawFilter, columnsByField, projection.name, intEnumMapsOf(projection));
862
926
  }
863
927
  }
864
928
  return {