@prisma/orm-family-sql 8.0.0-rc.14 → 8.0.0-rc.14-dev.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.
- package/dist/{ast-DQU1yUQ5.d.mts → ast-B53rACdv.d.mts} +3 -3
- package/dist/{ast-DQU1yUQ5.d.mts.map → ast-B53rACdv.d.mts.map} +1 -1
- package/dist/{authoring-entity-types-CZ-vdwYS-GsYvzoFF.d.mts → authoring-entity-types-CZ-vdwYS-D6R9QovE.d.mts} +2 -2
- package/dist/{authoring-entity-types-CZ-vdwYS-GsYvzoFF.d.mts.map → authoring-entity-types-CZ-vdwYS-D6R9QovE.d.mts.map} +1 -1
- package/dist/{authoring-type-constructors-DQZEX4Sb-BYGQWq43.mjs → authoring-type-constructors-DQZEX4Sb-D6uFhwhG.mjs} +2 -2
- package/dist/{authoring-type-constructors-DQZEX4Sb-BYGQWq43.mjs.map → authoring-type-constructors-DQZEX4Sb-D6uFhwhG.mjs.map} +1 -1
- package/dist/builder.d.mts +2 -2
- package/dist/builder__runtime.d.mts +6 -6
- package/dist/builder__types.d.mts +2 -2
- package/dist/{config-types-B86lMw4s.mjs → config-types-CEXpi8FV.mjs} +2 -2
- package/dist/{config-types-B86lMw4s.mjs.map → config-types-CEXpi8FV.mjs.map} +1 -1
- package/dist/{contract-builder-j05FWfIe.d.mts → contract-builder-6ujqQuj-.d.mts} +2 -2
- package/dist/{contract-builder-j05FWfIe.d.mts.map → contract-builder-6ujqQuj-.d.mts.map} +1 -1
- package/dist/{contract-builder-Fw-SFRvK.mjs → contract-builder-vmb0E3SP.mjs} +2 -2
- package/dist/{contract-builder-Fw-SFRvK.mjs.map → contract-builder-vmb0E3SP.mjs.map} +1 -1
- package/dist/contract-emitter.mjs +1 -1
- package/dist/contract-prisma7__provider.mjs +4 -4
- package/dist/contract-prisma7__provider.mjs.map +1 -1
- package/dist/contract-psl.d.mts +4 -4
- package/dist/contract-psl.d.mts.map +1 -1
- package/dist/contract-psl.mjs +1 -1
- package/dist/contract-psl__provider.mjs +2 -2
- package/dist/contract-psl__provider.mjs.map +1 -1
- package/dist/contract-ts.d.mts +1 -1
- package/dist/contract-ts.mjs +3 -3
- package/dist/contract-ts__config-types.mjs +1 -1
- package/dist/contract-ts__contract-builder.d.mts +1 -1
- package/dist/contract-ts__contract-builder.mjs +2 -2
- package/dist/contract.d.mts +2 -1
- package/dist/contract.mjs +2 -1
- package/dist/contract__sql-expression.d.mts +2 -0
- package/dist/contract__sql-expression.mjs +2 -0
- package/dist/{control-DOGYQMFH.mjs → control-2-eFP31F.mjs} +9 -47
- package/dist/control-2-eFP31F.mjs.map +1 -0
- package/dist/{control-kbS8DWF0.d.mts → control-DmVQjyZd.d.mts} +15 -20
- package/dist/control-DmVQjyZd.d.mts.map +1 -0
- package/dist/{control-adapter-C99J7aEF-B571Jffd.d.mts → control-adapter-C99J7aEF-B3_IhgH6.d.mts} +4 -4
- package/dist/{control-adapter-C99J7aEF-B571Jffd.d.mts.map → control-adapter-C99J7aEF-B3_IhgH6.d.mts.map} +1 -1
- package/dist/control-adapter-kl-cOML5.d.mts +1 -0
- package/dist/{db-DLjWu9-f-CVAu8jgd.d.mts → db-DLjWu9-f-COdzEg7b.d.mts} +6 -6
- package/dist/{db-DLjWu9-f-CVAu8jgd.d.mts.map → db-DLjWu9-f-COdzEg7b.d.mts.map} +1 -1
- package/dist/{ddl-types-DD-i-Uj9-D99heD5Z.d.mts → ddl-types-DD-i-Uj9-BRqLNUDm.d.mts} +2 -2
- package/dist/{ddl-types-DD-i-Uj9-D99heD5Z.d.mts.map → ddl-types-DD-i-Uj9-BRqLNUDm.d.mts.map} +1 -1
- package/dist/{derived-checks-C6psACIj-DfqUVmZz.mjs → derived-checks-C6psACIj-BSBDa2_9.mjs} +3 -3
- package/dist/{derived-checks-C6psACIj-DfqUVmZz.mjs.map → derived-checks-C6psACIj-BSBDa2_9.mjs.map} +1 -1
- package/dist/{diff-BxwNI8yE.d.mts → diff-DFOiwUHg.d.mts} +3 -3
- package/dist/{diff-BxwNI8yE.d.mts.map → diff-DFOiwUHg.d.mts.map} +1 -1
- package/dist/{dist-U61NPKN3.mjs → dist-ChyuAdtP.mjs} +2 -2
- package/dist/{dist-U61NPKN3.mjs.map → dist-ChyuAdtP.mjs.map} +1 -1
- package/dist/{expression-BPoA5eEl.d.mts → expression-Dl5WvxCA.d.mts} +3 -3
- package/dist/{expression-BPoA5eEl.d.mts.map → expression-Dl5WvxCA.d.mts.map} +1 -1
- package/dist/family.d.mts +11 -11
- package/dist/family.mjs +3 -3
- package/dist/family__control-adapter.d.mts +2 -2
- package/dist/family__control.d.mts +3 -3
- package/dist/family__control.mjs +2 -2
- package/dist/family__diff.d.mts +2 -2
- package/dist/family__migration.d.mts +1 -1
- package/dist/family__pack.d.mts +1 -1
- package/dist/family__pack.mjs +1 -1
- package/dist/family__psl-build.d.mts +2 -2
- package/dist/family__psl-build.mjs +1 -1
- package/dist/family__psl-infer.d.mts +1 -1
- package/dist/{index-yNeNt2GO.d.mts → index-BNL2_qQY.d.mts} +9 -9
- package/dist/{index-yNeNt2GO.d.mts.map → index-BNL2_qQY.d.mts.map} +1 -1
- package/dist/{interpreter-IKKTyZNv-D12J5Dcx.mjs → interpreter-Bcc3MIC5-C4dZrobt.mjs} +53 -71
- package/dist/interpreter-Bcc3MIC5-C4dZrobt.mjs.map +1 -0
- package/dist/{middleware-CuGBptK0-C88HCnh5.d.mts → middleware-CuGBptK0-UwVChCr2.d.mts} +2 -2
- package/dist/{middleware-CuGBptK0-C88HCnh5.d.mts.map → middleware-CuGBptK0-UwVChCr2.d.mts.map} +1 -1
- package/dist/middleware-RUh4qBBg.d.mts +1 -0
- package/dist/{migration-BJCmLNwu.d.mts → migration-Csmr6bd8.d.mts} +2 -2
- package/dist/{migration-BJCmLNwu.d.mts.map → migration-Csmr6bd8.d.mts.map} +1 -1
- package/dist/orm-client.d.mts +11 -11
- package/dist/{pack-CUGnCaEh.d.mts → pack-BUv79Jrr.d.mts} +2 -2
- package/dist/{pack-CUGnCaEh.d.mts.map → pack-BUv79Jrr.d.mts.map} +1 -1
- package/dist/{plan-B7g2kDfQ-Bw0784x6.d.mts → plan-B7g2kDfQ-ZD3BfWYx.d.mts} +2 -2
- package/dist/{plan-B7g2kDfQ-Bw0784x6.d.mts.map → plan-B7g2kDfQ-ZD3BfWYx.d.mts.map} +1 -1
- package/dist/plan-CVje8E5I.d.mts +2 -0
- package/dist/{prepared-statement-BHSj2pDk-BL0wOCnq.d.mts → prepared-statement-BHSj2pDk-D9a_Vwr-.d.mts} +14 -14
- package/dist/{prepared-statement-BHSj2pDk-BL0wOCnq.d.mts.map → prepared-statement-BHSj2pDk-D9a_Vwr-.d.mts.map} +1 -1
- package/dist/{psl-build-yBrQQN3r.d.mts → psl-build-BnM1ZTyK.d.mts} +2 -2
- package/dist/psl-build-BnM1ZTyK.d.mts.map +1 -0
- package/dist/{psl-build-SOpIFu24.mjs → psl-build-ph4eUJSB.mjs} +6 -21
- package/dist/psl-build-ph4eUJSB.mjs.map +1 -0
- package/dist/{psl-infer-C8hg8mIS.d.mts → psl-infer-DT5_Lx5r.d.mts} +2 -2
- package/dist/{psl-infer-C8hg8mIS.d.mts.map → psl-infer-DT5_Lx5r.d.mts.map} +1 -1
- package/dist/query-lane-context-D54z0tof.d.mts +1 -0
- package/dist/{query-lane-context-D6o9YrEV-bouFPM6u.d.mts → query-lane-context-D6o9YrEV-BxW3-5e8.d.mts} +3 -3
- package/dist/{query-lane-context-D6o9YrEV-bouFPM6u.d.mts.map → query-lane-context-D6o9YrEV-BxW3-5e8.d.mts.map} +1 -1
- package/dist/relational-core.d.mts +11 -11
- package/dist/relational-core__aggregate-descriptor-registry.d.mts +1 -1
- package/dist/relational-core__ast.d.mts +3 -3
- package/dist/relational-core__codec-descriptor-registry.d.mts +2 -2
- package/dist/relational-core__contract-free.d.mts +2 -2
- package/dist/relational-core__expression.d.mts +1 -1
- package/dist/relational-core__middleware.d.mts +2 -2
- package/dist/relational-core__plan.d.mts +3 -3
- package/dist/relational-core__query-lane-context.d.mts +2 -2
- package/dist/relational-core__types.d.mts +2 -2
- package/dist/runtime.d.mts +4 -4
- package/dist/runtime.mjs +33 -33
- package/dist/runtime.mjs.map +1 -1
- package/dist/runtime__internal__prepared-query.d.mts +1 -1
- package/dist/{sql-execution-plan-Db0j752I-CI5WbdLi.d.mts → sql-execution-plan-Db0j752I-faODNLY9.d.mts} +2 -2
- package/dist/{sql-execution-plan-Db0j752I-CI5WbdLi.d.mts.map → sql-execution-plan-Db0j752I-faODNLY9.d.mts.map} +1 -1
- package/dist/sql-expression-BXx0Ilj-.mjs +51 -0
- package/dist/sql-expression-BXx0Ilj-.mjs.map +1 -0
- package/dist/sql-expression-D_hbJOgM.d.mts +27 -0
- package/dist/sql-expression-D_hbJOgM.d.mts.map +1 -0
- package/dist/{type-map-BwBI56i3-DDERtzxf.d.mts → type-map-DpfnXzun-DZaSuJXh.d.mts} +5 -5
- package/dist/{type-map-BwBI56i3-DDERtzxf.d.mts.map → type-map-DpfnXzun-DZaSuJXh.d.mts.map} +1 -1
- package/dist/{types-BFPRCYGW-BLH0sK1Y.d.mts → types-BFPRCYGW-CZrZyp1E.d.mts} +2 -2
- package/dist/{types-BFPRCYGW-BLH0sK1Y.d.mts.map → types-BFPRCYGW-CZrZyp1E.d.mts.map} +1 -1
- package/dist/{types-DFJNPLXY-vp6AGe5e.d.mts → types-DFJNPLXY-DyYKIhXA.d.mts} +5 -5
- package/dist/{types-DFJNPLXY-vp6AGe5e.d.mts.map → types-DFJNPLXY-DyYKIhXA.d.mts.map} +1 -1
- package/dist/types-Dul4Za_W.d.mts +1 -0
- package/dist/{types-Yui2yFf6-TP-oRDTX.d.mts → types-Yui2yFf6-Dnc7RNUD.d.mts} +2 -2
- package/dist/{types-Yui2yFf6-TP-oRDTX.d.mts.map → types-Yui2yFf6-Dnc7RNUD.d.mts.map} +1 -1
- package/package.json +19 -18
- package/dist/control-DOGYQMFH.mjs.map +0 -1
- package/dist/control-adapter-jmL_K-jB.d.mts +0 -1
- package/dist/control-kbS8DWF0.d.mts.map +0 -1
- package/dist/interpreter-IKKTyZNv-D12J5Dcx.mjs.map +0 -1
- package/dist/middleware-aoqicpDI.d.mts +0 -1
- package/dist/plan-DiT00Rg8.d.mts +0 -2
- package/dist/psl-build-SOpIFu24.mjs.map +0 -1
- package/dist/psl-build-yBrQQN3r.d.mts.map +0 -1
- package/dist/query-lane-context-BcXiJasG.d.mts +0 -1
- package/dist/types-BvTYXSiS.d.mts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpreter-Bcc3MIC5-C4dZrobt.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-psl/dist/interpreter-Bcc3MIC5.mjs"],"sourcesContent":["import { a as interpretModelAttribute, c as formatDbAttributeMigrationMessage, d as mapFieldNamesToColumns, f as storageName, i as interpretFieldAttribute, l as getAttribute, n as createSqlBinder, o as modelAttributeSpecsFrom, p as lowerDefaultFunctionWithRegistry, r as fieldSpecContext, s as sqlAttributeSpecs, t as PSL_CHECK_ON_STI_VARIANT, u as getNamedArgument } from \"./sql-attribute-specs-Bs9QDuS7.mjs\";\nimport { t as defaultTableName } from \"./default-table-name-BfFY8qYR.mjs\";\nimport { checkUncomposedNamespace, getAuthoringFieldPreset, hasRegisteredFieldNamespace, instantiateAuthoringEntityType, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringModelAttributeDescriptor, isAuthoringTypeConstructorDescriptor, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { createPslDiagnosticCollector, diagnosticSource, findBlockDescriptor, interpretExtensionBlocks, nodePslSpan, typeReferenceNode } from \"@internal/psl-parser\";\nimport { NamespaceDeclarationAst } from \"@internal/psl-parser/syntax\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { crossRef } from \"@internal/contract/types\";\nimport { resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { UNBOUND_PSL_NAMESPACE_NAME, UNSPECIFIED_PSL_NAMESPACE_ID } from \"@internal/framework-components/psl-ast\";\nimport { claimedBlockKeywords, enumMemberAttributeDiagnostics, fkRelationPairKey, instantiatePslFieldPreset, mapPslHelperArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, unsupportedBlockDiagnostic } from \"@internal/psl-parser/interpret\";\nimport { providesPslEntityPlacement } from \"@internal/sql-contract/entity-handle-lowering-hook\";\nimport { isAuthoredIndexInput } from \"@internal/sql-contract/index-naming\";\nimport { deriveValueSetFromEntity } from \"@internal/sql-contract/value-set-derivation-hook\";\nimport { buildSqlContractFromDefinition } from \"@internal/sql-contract-ts/contract-builder\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { describeTaggedLiteralFailure } from \"@internal/framework-components/control\";\nimport { SQL_EXPRESSION_DATA_TYPE_ID, SQL_EXPRESSION_TAG, sqlTextFromCanonical } from \"@internal/sql-contract/sql-expression\";\nimport { checkSqlDefaultBody, reservedSqlDefaultBody } from \"@internal/sql-contract/validators\";\nimport { materializeCodec } from \"@internal/framework-components/codec\";\n//#region src/contract-errors.ts\nfunction contractError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/data-type-default.ts\n/** A written value the column's codec refuses. */\nconst PSL_INVALID_DEFAULT_LITERAL = \"PSL_INVALID_DEFAULT_LITERAL\";\n/** A single value written as the default of a column that holds a list. */\nconst PSL_DEFAULT_LIST_EXPECTED = \"PSL_DEFAULT_LIST_EXPECTED\";\n/** The entry a tag names, or `undefined` when no pack registered that tag. */\nfunction entryForTag(support, tag) {\n\tfor (const [key, entry] of Object.entries(support.entries)) if (entry.written.kind === \"tag\" && entry.written.tag === tag) return {\n\t\tkey,\n\t\tentry\n\t};\n}\n/** Every tag a stack registers, in the order the entries were merged, for a diagnostic. */\nfunction knownTags(support) {\n\treturn Object.values(support.entries).flatMap((entry) => entry.written.kind === \"tag\" ? [entry.written.tag] : []);\n}\nfunction entryForPlain(support, syntax) {\n\tfor (const [key, entry] of Object.entries(support.entries)) if (entry.written.kind === \"plain\" && entry.written.syntax === syntax) return {\n\t\tkey,\n\t\tentry\n\t};\n}\n/** The text an entry reads: a tag's text, a string's value, or the word a boolean is written as. */\nfunction plainText(written) {\n\tswitch (written.kind) {\n\t\tcase \"tag\": return written.text;\n\t\tcase \"string\": return written.text;\n\t\tcase \"boolean\": return String(written.value);\n\t\tcase \"number\": return written.text;\n\t}\n}\nfunction messageOf(error) {\n\treturn error instanceof Error ? error.message : String(error);\n}\n/** Read one written value through the entry for its syntax. */\nfunction readValue(support, written, elementIndex) {\n\tconst refuse = (refusal) => ({\n\t\tok: false,\n\t\trefusal: blindCast({\n\t\t\t...refusal,\n\t\t\telementIndex\n\t\t})\n\t});\n\tconst found = written.kind === \"tag\" ? entryForTag(support, written.tag) : entryForPlain(support, written.kind);\n\tif (found === void 0) return written.kind === \"tag\" ? refuse({\n\t\tkind: \"unknown-tag\",\n\t\ttag: written.tag,\n\t\tknown: knownTags(support)\n\t}) : refuse({\n\t\tkind: \"unwritable\",\n\t\tsyntax: written.kind\n\t});\n\tconst form = found.entry.written;\n\tif (form.kind === \"plain\" && form.syntax === \"number\") {\n\t\tconst text = plainText(written);\n\t\tconst classified = form.classify(text);\n\t\tif (classified === void 0) return refuse({\n\t\t\tkind: \"unreadable\",\n\t\t\tmessage: `no data type of this target holds the number ${text}`\n\t\t});\n\t\treturn {\n\t\t\tok: true,\n\t\t\ttyped: classified\n\t\t};\n\t}\n\tconst text = plainText(written);\n\ttry {\n\t\treturn {\n\t\t\tok: true,\n\t\t\ttyped: {\n\t\t\t\ttype: blindCast(found.key),\n\t\t\t\tvalue: form.parse(text)\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\treturn refuse({\n\t\t\tkind: \"unreadable\",\n\t\t\tmessage: messageOf(error)\n\t\t});\n\t}\n}\n/** Convert a value of one data type into the form another stores, when that type takes it. */\nfunction castInto(support, columnType, typed, elementIndex) {\n\tif (typed.type === columnType) return {\n\t\tok: true,\n\t\tvalue: typed.value\n\t};\n\tconst declaration = support.lookup.get(columnType);\n\tconst cast = declaration?.casts[typed.type];\n\tif (cast === void 0) return {\n\t\tok: false,\n\t\trefusal: {\n\t\t\tkind: \"no-cast\",\n\t\t\tcolumnType,\n\t\t\tvalueType: typed.type,\n\t\t\tcasts: Object.keys(declaration?.casts ?? {}),\n\t\t\telementIndex\n\t\t}\n\t};\n\ttry {\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: cast(typed.value)\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\trefusal: {\n\t\t\t\tkind: \"unreadable\",\n\t\t\t\tmessage: messageOf(error),\n\t\t\t\telementIndex\n\t\t\t}\n\t\t};\n\t}\n}\n/** The column's `typeParams` as the codec reference carries them, so `vector(3)` checks its length. */\nfunction codecRefTypeParams(typeParams) {\n\treturn typeParams === void 0 ? void 0 : blindCast(typeParams);\n}\n/**\n* Read one `@default(...)` value for a column, refusing in parts so each contract source words its\n* own diagnostic. `isList` selects the check: a list column's elements are each read and cast\n* against the element codec's data type, while a scalar column takes a written list only through\n* its type's list cast — which is how `pgvector.Vector(3) @default([0.1, 0.2])` is read.\n*/\nfunction readDataTypeDefault(input) {\n\tconst descriptorFor = input.codecLookup?.descriptorFor;\n\tif (descriptorFor === void 0) throw new InternalError(`Field \"${input.fieldPath}\": the codec lookup resolving column codecs exposes no descriptorFor, but the column was resolved from a codec descriptor.`);\n\tconst descriptor = descriptorFor(input.column.codecId);\n\tif (descriptor === void 0) throw new InternalError(`Field \"${input.fieldPath}\": no codec descriptor is registered for \"${input.column.codecId}\", but the column was resolved from one.`);\n\tconst columnType = descriptor.dataType;\n\tconst codec = materializeCodec(descriptor, {\n\t\tcodecId: input.column.codecId,\n\t\t...ifDefined(\"typeParams\", codecRefTypeParams(input.column.typeParams))\n\t}, { name: input.fieldPath });\n\tconst validate = (value, elementIndex) => {\n\t\ttry {\n\t\t\tcodec.decodeJson(value);\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tvalue\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\trefusal: {\n\t\t\t\t\tkind: \"undecodable\",\n\t\t\t\t\tcodecId: input.column.codecId,\n\t\t\t\t\tmessage: messageOf(error),\n\t\t\t\t\telementIndex\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t};\n\tconst readOne = (written, elementIndex) => {\n\t\tconst read = readValue(input.support, written, elementIndex);\n\t\tif (!read.ok) return read;\n\t\tconst cast = castInto(input.support, columnType, read.typed, elementIndex);\n\t\tif (!cast.ok) return cast;\n\t\treturn validate(cast.value, elementIndex);\n\t};\n\tif (input.written.kind !== \"list\") {\n\t\tif (input.isList) return {\n\t\t\tok: false,\n\t\t\trefusal: {\n\t\t\t\tkind: \"not-a-list\",\n\t\t\t\telementIndex: void 0\n\t\t\t}\n\t\t};\n\t\treturn readOne(input.written, void 0);\n\t}\n\tif (input.isList) {\n\t\tconst elements = [];\n\t\tfor (const [elementIndex, written] of input.written.elements.entries()) {\n\t\t\tif (written.kind === \"list\") return {\n\t\t\t\tok: false,\n\t\t\t\trefusal: {\n\t\t\t\t\tkind: \"unreadable\",\n\t\t\t\t\tmessage: \"a list holds values, not other lists\",\n\t\t\t\t\telementIndex\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst element = readOne(written, elementIndex);\n\t\t\tif (!element.ok) return element;\n\t\t\telements.push(element.value);\n\t\t}\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: elements\n\t\t};\n\t}\n\treturn readListIntoScalar({\n\t\t...input,\n\t\twritten: input.written,\n\t\tcolumnType,\n\t\tvalidate\n\t});\n}\n/** A written list on a column that is not a list: the column's type takes it through its list cast. */\nfunction readListIntoScalar(input) {\n\tconst listCast = input.support.lookup.get(input.columnType)?.listCast;\n\tif (listCast === void 0) return {\n\t\tok: false,\n\t\trefusal: {\n\t\t\tkind: \"no-cast\",\n\t\t\tcolumnType: input.columnType,\n\t\t\tvalueType: \"a list\",\n\t\t\tcasts: Object.keys(input.support.lookup.get(input.columnType)?.casts ?? {}),\n\t\t\telementIndex: void 0\n\t\t}\n\t};\n\tconst elements = [];\n\tfor (const [elementIndex, written] of input.written.elements.entries()) {\n\t\tif (written.kind === \"list\") return {\n\t\t\tok: false,\n\t\t\trefusal: {\n\t\t\t\tkind: \"unreadable\",\n\t\t\t\tmessage: \"a list holds values, not other lists\",\n\t\t\t\telementIndex\n\t\t\t}\n\t\t};\n\t\tconst read = readValue(input.support, written, elementIndex);\n\t\tif (!read.ok) return read;\n\t\tif (!listCast.of.includes(read.typed.type)) return {\n\t\t\tok: false,\n\t\t\trefusal: {\n\t\t\t\tkind: \"no-cast\",\n\t\t\t\tcolumnType: input.columnType,\n\t\t\t\tvalueType: read.typed.type,\n\t\t\t\tcasts: [...listCast.of],\n\t\t\t\telementIndex\n\t\t\t}\n\t\t};\n\t\telements.push(read.typed.value);\n\t}\n\ttry {\n\t\treturn input.validate(listCast.cast(elements), void 0);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\trefusal: {\n\t\t\t\tkind: \"unreadable\",\n\t\t\t\tmessage: messageOf(error),\n\t\t\t\telementIndex: void 0\n\t\t\t}\n\t\t};\n\t}\n}\n/** Where in a written list a diagnostic is about, for a message: ` at element 2`. */\nfunction at(elementIndex) {\n\treturn elementIndex === void 0 ? \"\" : ` at element ${elementIndex + 1}`;\n}\n/** {@link readDataTypeDefault} worded as a PSL diagnostic's code and message. */\nfunction lowerDataTypeDefault(input) {\n\tconst read = readDataTypeDefault(input);\n\tif (read.ok) return read;\n\tconst { refusal } = read;\n\tconst where = `Field \"${input.fieldPath}\"${at(refusal.elementIndex)}`;\n\tswitch (refusal.kind) {\n\t\tcase \"unreadable\": return {\n\t\t\tok: false,\n\t\t\tcode: \"PSL_INVALID_LITERAL\",\n\t\t\tmessage: `${where}: ${refusal.message}`\n\t\t};\n\t\tcase \"unknown-tag\": return {\n\t\t\tok: false,\n\t\t\tcode: \"PSL_UNKNOWN_LITERAL_TAG\",\n\t\t\tmessage: `Unknown literal tag \"${refusal.tag}\". Known tags: ${refusal.known.join(\", \")}.`\n\t\t};\n\t\tcase \"unwritable\": return {\n\t\t\tok: false,\n\t\t\tcode: \"PSL_VALUE_TYPE_INCOMPATIBLE\",\n\t\t\tmessage: `${where}: this target has no data type for a ${refusal.syntax} value`\n\t\t};\n\t\tcase \"not-a-list\": return {\n\t\t\tok: false,\n\t\t\tcode: PSL_DEFAULT_LIST_EXPECTED,\n\t\t\tmessage: `${where}: this column holds a list, so its default is a list literal, as in [1, 2]`\n\t\t};\n\t\tcase \"no-cast\": return {\n\t\t\tok: false,\n\t\t\tcode: \"PSL_VALUE_TYPE_INCOMPATIBLE\",\n\t\t\tmessage: `${where}: ${refusal.columnType} has no cast from ${refusal.valueType}; ${describeCasts(refusal.casts)}`\n\t\t};\n\t\tcase \"undecodable\": return {\n\t\t\tok: false,\n\t\t\tcode: PSL_INVALID_DEFAULT_LITERAL,\n\t\t\tmessage: `${where}: ${refusal.message}`\n\t\t};\n\t}\n}\nfunction describeCasts(casts) {\n\treturn casts.length === 0 ? \"it casts from nothing\" : `it casts from ${casts.join(\", \")}`;\n}\n//#endregion\n//#region src/psl-column-resolution.ts\nfunction toNamedTypeFieldDescriptor(typeRef, descriptor) {\n\treturn {\n\t\tcodecId: descriptor.codecId,\n\t\tnativeType: descriptor.nativeType,\n\t\ttypeRef\n\t};\n}\nfunction getAuthoringTypeConstructor(contributions, path) {\n\tlet current = contributions?.type;\n\tfor (const segment of path) {\n\t\tif (typeof current !== \"object\" || current === null || \"kind\" in current) return;\n\t\tcurrent = current[segment];\n\t}\n\treturn current !== void 0 && isAuthoringTypeConstructorDescriptor(current) ? current : void 0;\n}\n/**\n* Walks `authoringContributions.entityTypes` segment-by-segment and returns\n* the entity type descriptor at the resolved path, or `undefined` if no\n* descriptor is registered.\n*\n* Used by the PSL interpreter to dispatch declarative entity-shaped\n* declarations (`enum`, future `namespace { … }`, …) through the\n* pack entity-type mechanism — the descriptor's `factory` (or\n* `template`) materialises the IR-class instance without the\n* interpreter knowing target-specific construction.\n*/\nfunction getAuthoringEntity(contributions, path) {\n\tlet current = contributions?.entityTypes;\n\tfor (const segment of path) {\n\t\tif (typeof current !== \"object\" || current === null || \"kind\" in current) return;\n\t\tcurrent = current[segment];\n\t}\n\treturn current !== void 0 && isAuthoringEntityTypeDescriptor(current) ? current : void 0;\n}\nfunction replacesUnresolvedTypeVoice(typeName, composedExtensions, context) {\n\tif (checkUncomposedNamespace(typeName, composedExtensions, context) !== void 0) return true;\n\tconst dotIndex = typeName.indexOf(\".\");\n\tif (dotIndex <= 0 || dotIndex === typeName.length - 1) return false;\n\treturn hasRegisteredFieldNamespace(context.authoringContributions, typeName.slice(0, dotIndex));\n}\nfunction instantiatePslTypeConstructor(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\tconst args = mapPslHelperArgs({\n\t\targs: input.call.args,\n\t\tdescriptors: input.descriptor.args ?? [],\n\t\thelperLabel: `constructor \"${helperPath}\"`,\n\t\tspan: input.call.span,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tentityLabel: input.entityLabel\n\t});\n\tif (!args) return;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\treturn instantiateAuthoringTypeConstructor(input.descriptor, args);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} constructor \"${helperPath}\" ${message}`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn;\n\t}\n}\nfunction pushUnsupportedTypeConstructorDiagnostic(input) {\n\tinput.diagnostics.push({\n\t\tcode: input.code,\n\t\tmessage: input.message,\n\t\t...input.source.at(input.span)\n\t});\n}\nfunction resolvePslTypeConstructorDescriptor(input) {\n\tconst descriptor = getAuthoringTypeConstructor(input.authoringContributions, input.call.path);\n\tif (descriptor) return descriptor;\n\tconst uncomposedNamespace = checkUncomposedNamespace(input.call.path.join(\".\"), input.composedExtensions, {\n\t\tfamilyId: input.familyId,\n\t\ttargetId: input.targetId,\n\t\tauthoringContributions: input.authoringContributions\n\t});\n\tif (uncomposedNamespace) {\n\t\treportUncomposedNamespace({\n\t\t\tsubjectLabel: `Type constructor \"${input.call.path.join(\".\")}\"`,\n\t\t\tnamespace: uncomposedNamespace,\n\t\t\tsource: input.source,\n\t\t\tspan: input.call.span,\n\t\t\tdiagnostics: input.diagnostics\n\t\t});\n\t\treturn;\n\t}\n\treturn pushUnsupportedTypeConstructorDiagnostic({\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tspan: input.call.span,\n\t\tcode: input.unsupportedCode,\n\t\tmessage: input.unsupportedMessage\n\t});\n}\n/**\n* Structural check for a codec descriptor exposing the authoring-time\n* `columnFromEntity` hook a type constructor's `entityRefArg` resolves\n* through (e.g. the `pg/enum@1` codec descriptor). No casts.\n*/\nfunction hasColumnFromEntityHook(descriptor) {\n\treturn \"columnFromEntity\" in descriptor && typeof descriptor.columnFromEntity === \"function\";\n}\n/**\n* Resolves a type-constructor call whose descriptor declares an\n* `entityRefArg` (e.g. `pg.enum(AalLevel)`): extracts the call's sole\n* positional-argument ref string, resolves it against the field's\n* namespace's already-lowered extension entities (keyed by the declared\n* `entityRefArg.entityKind`, then block name), and converts the resolved\n* entity to column params via the `columnFromEntity` authoring hook on the\n* codec descriptor registered for `descriptor.output.codecId`. The `nativeType`\n* / `typeParams.typeName` `columnFromEntity` returns are bare — schema\n* qualification (e.g. `auth.aal_level`) is a target concern, applied later\n* when the target builds the field's namespace. A `valueSet` ref is\n* attached when the same namespace derived a value-set under the same block\n* name (the generic `deriveValueSet` mechanism), scoped to the field's own\n* namespace.\n*/\nfunction resolveEntityRefTypeConstructorCall(input) {\n\tconst entityRefArg = input.descriptor.entityRefArg;\n\tif (entityRefArg === void 0) throw new InternalError(\"resolveEntityRefTypeConstructorCall called with a descriptor that does not declare an entityRefArg. This is an interpreter bug.\");\n\tconst helperPath = input.call.path.join(\".\");\n\tconst positionalArgs = input.call.args.filter((arg) => arg.kind === \"positional\");\n\tconst ref = positionalArgs[entityRefArg.index]?.value;\n\tif (input.call.args.length !== 1 || positionalArgs.length !== 1 || ref === void 0) {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} type constructor \"${helperPath}\" expects exactly one positional argument naming the referenced entity`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t}\n\tconst reportUnknownRef = () => {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_UNKNOWN_ENTITY_REF\",\n\t\t\tmessage: `${input.entityLabel} type constructor \"${helperPath}(${ref})\" does not resolve — no entity named \"${ref}\" was found in namespace \"${input.namespaceId ?? \"(unspecified)\"}\"`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t};\n\tconst entity = input.namespaceExtensionEntities?.[entityRefArg.entityKind]?.[ref];\n\tif (entity === void 0) return reportUnknownRef();\n\tconst codecId = input.descriptor.output.codecId;\n\tconst codecDescriptor = input.codecLookup?.descriptorFor?.(codecId);\n\tif (codecDescriptor === void 0 || !hasColumnFromEntityHook(codecDescriptor)) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Type constructor \"${helperPath}\" registers codecId \"${codecId}\" with an entity-ref argument, but its codec descriptor has no \"columnFromEntity\" authoring hook. This is a contributor bug in the pack registering \"${helperPath}\", not a user-schema error.`, { meta: {\n\t\thelperPath,\n\t\tcodecId\n\t} });\n\tconst resolved = codecDescriptor.columnFromEntity(entity);\n\tif (resolved === void 0) return reportUnknownRef();\n\tconst derivedValueSet = input.namespaceExtensionEntities?.[\"valueSet\"]?.[ref];\n\tif (derivedValueSet !== void 0 && input.namespaceId === void 0) {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} type constructor \"${helperPath}(${ref})\" resolves to a value-set-typed entity, but the field has no resolvable namespace to scope the value-set ref to`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t}\n\tconst valueSet = derivedValueSet !== void 0 && input.namespaceId !== void 0 ? {\n\t\tplane: \"storage\",\n\t\tentityKind: \"valueSet\",\n\t\tnamespaceId: input.namespaceId,\n\t\tentityName: ref\n\t} : void 0;\n\treturn {\n\t\tok: true,\n\t\tdescriptor: {\n\t\t\tcodecId,\n\t\t\tnativeType: resolved.nativeType,\n\t\t\t...resolved.typeParams !== void 0 ? { typeParams: resolved.typeParams } : {},\n\t\t\t...valueSet !== void 0 ? { valueSet } : {}\n\t\t}\n\t};\n}\nfunction resolveFieldTypeDescriptor(input) {\n\tconst source = diagnosticSource(input.sources, input.field.node.syntax);\n\tif (input.field.malformedType) return {\n\t\tok: false,\n\t\talreadyReported: true\n\t};\n\tif (input.field.typeConstructor) {\n\t\tconst presetDescriptor = getAuthoringFieldPreset(input.authoringContributions, input.field.typeConstructor.path);\n\t\tif (presetDescriptor) {\n\t\t\tconst instantiated = instantiatePslFieldPreset({\n\t\t\t\tcall: input.field.typeConstructor,\n\t\t\t\tdescriptor: presetDescriptor,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tsource,\n\t\t\t\tentityLabel: input.entityLabel\n\t\t\t});\n\t\t\tif (!instantiated) return {\n\t\t\t\tok: false,\n\t\t\t\talreadyReported: true\n\t\t\t};\n\t\t\tconst presetContributions = {\n\t\t\t\tnullable: instantiated.nullable,\n\t\t\t\tid: instantiated.id,\n\t\t\t\tunique: instantiated.unique,\n\t\t\t\t...instantiated.default !== void 0 ? { default: instantiated.default } : {},\n\t\t\t\t...instantiated.executionDefaults !== void 0 ? { executionDefaults: instantiated.executionDefaults } : {}\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdescriptor: instantiated.descriptor,\n\t\t\t\tpresetContributions\n\t\t\t};\n\t\t}\n\t\tconst helperPath = input.field.typeConstructor.path.join(\".\");\n\t\tconst namespacePrefix = input.field.typeConstructor.path.length > 1 ? input.field.typeConstructor.path[0] : void 0;\n\t\tconst typeDescriptor = getAuthoringTypeConstructor(input.authoringContributions, input.field.typeConstructor.path);\n\t\tif (typeDescriptor?.entityRefArg) return resolveEntityRefTypeConstructorCall({\n\t\t\tcall: input.field.typeConstructor,\n\t\t\tdescriptor: typeDescriptor,\n\t\t\tnamespaceId: input.namespaceId,\n\t\t\tnamespaceExtensionEntities: input.namespaceExtensionEntities,\n\t\t\tcodecLookup: input.codecLookup,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource,\n\t\t\tentityLabel: input.entityLabel\n\t\t});\n\t\tif (!typeDescriptor && namespacePrefix && hasRegisteredFieldNamespace(input.authoringContributions, namespacePrefix)) {\n\t\t\treportUnknownFieldPreset({\n\t\t\t\tentityLabel: input.entityLabel,\n\t\t\t\tnamespace: namespacePrefix,\n\t\t\t\thelperPath,\n\t\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\t\tsource,\n\t\t\t\tspan: input.field.typeConstructor.span,\n\t\t\t\tdiagnostics: input.diagnostics\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\talreadyReported: true\n\t\t\t};\n\t\t}\n\t\tconst descriptor = typeDescriptor ?? resolvePslTypeConstructorDescriptor({\n\t\t\tcall: input.field.typeConstructor,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource,\n\t\t\tunsupportedCode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\tunsupportedMessage: `${input.entityLabel} type constructor \"${helperPath}\" is not supported in SQL PSL provider v1`\n\t\t});\n\t\tif (!descriptor) return {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t\tconst instantiated = instantiatePslTypeConstructor({\n\t\t\tcall: input.field.typeConstructor,\n\t\t\tdescriptor,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource,\n\t\t\tentityLabel: input.entityLabel\n\t\t});\n\t\tif (!instantiated) return {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdescriptor: instantiated\n\t\t};\n\t}\n\tconst descriptor = resolveColumnDescriptor(input.field, input.enumTypeDescriptors, input.namedTypeDescriptors, input.scalarColumnDescriptors);\n\tif (!descriptor) return {\n\t\tok: false,\n\t\talreadyReported: false\n\t};\n\treturn {\n\t\tok: true,\n\t\tdescriptor\n\t};\n}\nconst PSL_INVALID_DEFAULT_SQL = \"PSL_INVALID_DEFAULT_SQL\";\nconst TAGGED_LITERAL_CANONICALIZATION_CODES = {\n\tnul: \"PSL_TAGGED_LITERAL_NUL\",\n\t\"too-large\": \"PSL_TAGGED_LITERAL_TOO_LARGE\"\n};\nfunction readTaggedLiteral(literal, support, source) {\n\tconst reject = (code, message) => ({\n\t\tok: false,\n\t\tdiagnostic: {\n\t\t\tcode,\n\t\t\tmessage,\n\t\t\t...source.at(literal.span)\n\t\t}\n\t});\n\tif (entryForTag(support, literal.tag) === void 0) return reject(\"PSL_UNKNOWN_LITERAL_TAG\", `Unknown literal tag \"${literal.tag}\". Known tags: ${knownTags(support).join(\", \")}.`);\n\tconst { canonicalization } = literal;\n\tif (!canonicalization.ok) return reject(TAGGED_LITERAL_CANONICALIZATION_CODES[canonicalization.reason], describeTaggedLiteralFailure(canonicalization.reason));\n\treturn {\n\t\tok: true,\n\t\twritten: {\n\t\t\tkind: \"tag\",\n\t\t\ttag: literal.tag,\n\t\t\ttext: canonicalization.body\n\t\t}\n\t};\n}\nfunction lowerDefaultForField(input) {\n\tconst node = getAttribute(input.field.attributes, \"default\")?.node;\n\tif (node === void 0) return {};\n\tconst source = diagnosticSource(input.sources, node.syntax);\n\tconst spec = sqlAttributeSpecs.field.default(fieldSpecContext({\n\t\tsymbols: input.symbolTable,\n\t\tmodel: input.model,\n\t\tfield: input.field,\n\t\tcontrolMutationDefaults: {\n\t\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\t\tdataTypeEntries: input.dataTypeSupport.entries\n\t\t}\n\t}));\n\tconst interpreted = interpretFieldAttribute({\n\t\tsymbols: input.symbolTable,\n\t\tnode,\n\t\tspec,\n\t\tmodel: input.model,\n\t\tfield: input.field,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tdiagnostics: input.diagnostics\n\t});\n\tif (interpreted === void 0) return {};\n\tconst value = interpreted.value;\n\tconst readAsLiteral = (written) => {\n\t\tconst lowered = lowerDataTypeDefault({\n\t\t\twritten,\n\t\t\tisList: input.field.list,\n\t\t\tcolumn: input.columnDescriptor,\n\t\t\tcodecLookup: input.codecLookup,\n\t\t\tsupport: input.dataTypeSupport,\n\t\t\tfieldPath: `${input.modelName}.${input.fieldName}`\n\t\t});\n\t\tif (!lowered.ok) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: lowered.code,\n\t\t\t\tmessage: lowered.message,\n\t\t\t\t...source.at()\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\treturn { defaultValue: {\n\t\t\tkind: \"literal\",\n\t\t\tvalue: lowered.value,\n\t\t\tcanonical: true\n\t\t} };\n\t};\n\tconst writtenElement = (element) => {\n\t\tif (typeof element === \"string\") return {\n\t\t\tkind: \"string\",\n\t\t\ttext: element\n\t\t};\n\t\tif (typeof element === \"boolean\") return {\n\t\t\tkind: \"boolean\",\n\t\t\tvalue: element\n\t\t};\n\t\tif (\"text\" in element) return {\n\t\t\tkind: \"number\",\n\t\t\ttext: element.text\n\t\t};\n\t\tconst literal = readTaggedLiteral(element, input.dataTypeSupport, source);\n\t\tif (!literal.ok) {\n\t\t\tinput.diagnostics.push(literal.diagnostic);\n\t\t\treturn { ok: false };\n\t\t}\n\t\treturn literal.written;\n\t};\n\tconst sqlExpressionDefault = (text, span) => {\n\t\tconst reserved = reservedSqlDefaultBody(text);\n\t\tconst refusal = reserved === void 0 ? checkSqlDefaultBody(text) : `Write @default(${reserved}()) instead of ${SQL_EXPRESSION_TAG}\\`${reserved}()\\`; ${reserved}() is a Prisma default function, not raw SQL.`;\n\t\tif (refusal !== void 0) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: PSL_INVALID_DEFAULT_SQL,\n\t\t\t\tmessage: refusal,\n\t\t\t\t...source.at(span)\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\treturn { defaultValue: {\n\t\t\tkind: \"function\",\n\t\t\texpression: text\n\t\t} };\n\t};\n\tif (input.columnDescriptor.valueSet !== void 0) {\n\t\tif (typeof value === \"string\") return { defaultValue: {\n\t\t\tkind: \"literal\",\n\t\t\tvalue\n\t\t} };\n\t\tif (Array.isArray(value)) {\n\t\t\tconst members = value.filter((element) => typeof element === \"string\");\n\t\t\tif (members.length === value.length) return { defaultValue: {\n\t\t\t\tkind: \"literal\",\n\t\t\t\tvalue: members\n\t\t\t} };\n\t\t}\n\t}\n\tif (Array.isArray(value)) {\n\t\tconst elements = [];\n\t\tfor (const element of value) {\n\t\t\tconst written = writtenElement(element);\n\t\t\tif (\"ok\" in written) return {};\n\t\t\telements.push(written);\n\t\t}\n\t\treturn readAsLiteral({\n\t\t\tkind: \"list\",\n\t\t\telements\n\t\t});\n\t}\n\tif (typeof value === \"string\") return readAsLiteral({\n\t\tkind: \"string\",\n\t\ttext: value\n\t});\n\tif (typeof value === \"boolean\") return readAsLiteral({\n\t\tkind: \"boolean\",\n\t\tvalue\n\t});\n\tif (\"text\" in value) return readAsLiteral({\n\t\tkind: \"number\",\n\t\ttext: value.text\n\t});\n\tif (\"tag\" in value) {\n\t\tconst literal = readTaggedLiteral(value, input.dataTypeSupport, source);\n\t\tif (!literal.ok) {\n\t\t\tinput.diagnostics.push(literal.diagnostic);\n\t\t\treturn {};\n\t\t}\n\t\tconst read = readValue(input.dataTypeSupport, literal.written, void 0);\n\t\tif (read.ok && read.typed.type === SQL_EXPRESSION_DATA_TYPE_ID) return sqlExpressionDefault(sqlTextFromCanonical(read.typed.value), value.span);\n\t\treturn readAsLiteral(literal.written);\n\t}\n\tif (typeof value === \"object\") {\n\t\tconst context = {\n\t\t\tsourceId: input.sources.sourceFileFor(node.syntax).filename,\n\t\t\tmodelName: input.modelName,\n\t\t\tfieldName: input.fieldName,\n\t\t\tcolumnCodecId: input.columnDescriptor.codecId\n\t\t};\n\t\tconst lowered = lowerDefaultFunctionWithRegistry({\n\t\t\tcall: value,\n\t\t\tregistry: input.defaultFunctionRegistry,\n\t\t\tcontext,\n\t\t\tsource\n\t\t});\n\t\tif (!lowered.ok) {\n\t\t\tif (lowered.kind === \"owned\") input.diagnostics.push(lowered.diagnostic);\n\t\t\telse input.diagnostics.pushExternal(lowered.diagnostic);\n\t\t\treturn {};\n\t\t}\n\t\tif (lowered.value.kind === \"storage\") return { defaultValue: lowered.value.defaultValue };\n\t\tconst generatorDescriptor = input.generatorDescriptorById.get(lowered.value.generated.id);\n\t\tif (!generatorDescriptor) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\t\tmessage: `Default generator \"${lowered.value.generated.id}\" is not available in the composed mutation default registry.`,\n\t\t\t\t...source.at(value.span)\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\tif (generatorDescriptor.applicableCodecIds === void 0) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\t\tmessage: `Default generator \"${generatorDescriptor.id}\" is not applicable to \"@default(...)\" lowering. Use the corresponding field preset (e.g. \\`temporal.${generatorDescriptor.id === \"timestampNow\" ? \"updatedAt\" : generatorDescriptor.id}()\\`) instead.`,\n\t\t\t\t...source.at(value.span)\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\tif (!generatorDescriptor.applicableCodecIds.includes(input.columnDescriptor.codecId)) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\t\tmessage: `Default generator \"${generatorDescriptor.id}\" is not applicable to \"${input.modelName}.${input.fieldName}\" with codecId \"${input.columnDescriptor.codecId}\".`,\n\t\t\t\t...source.at(value.span)\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\treturn { executionDefaults: { onCreate: lowered.value.generated } };\n\t}\n\treturn {};\n}\nfunction resolveColumnDescriptor(field, enumTypeDescriptors, namedTypeDescriptors, scalarColumnDescriptors) {\n\tif (namedTypeDescriptors.has(field.typeName)) return namedTypeDescriptors.get(field.typeName);\n\tif (enumTypeDescriptors.has(field.typeName)) return enumTypeDescriptors.get(field.typeName);\n\treturn scalarColumnDescriptors.get(field.typeName);\n}\n//#endregion\n//#region src/psl-field-resolution.ts\nfunction lowerEnumDefaultForField(input) {\n\tconst { field, model, enumHandle, diagnostics } = input;\n\tconst node = getAttribute(field.attributes, \"default\")?.node;\n\tif (node === void 0) return {};\n\tif (enumHandle.enumMembers.length === 0) return {};\n\tconst interpreted = interpretFieldAttribute({\n\t\tnode,\n\t\tspec: sqlAttributeSpecs.field.default(fieldSpecContext({\n\t\t\tsymbols: input.symbolTable,\n\t\t\tmodel,\n\t\t\tfield,\n\t\t\tcontrolMutationDefaults: {\n\t\t\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\t\t\tdataTypeEntries: input.dataTypeSupport.entries\n\t\t\t}\n\t\t})),\n\t\tsymbols: input.symbolTable,\n\t\tmodel,\n\t\tfield,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tdiagnostics\n\t});\n\tif (interpreted === void 0) return {};\n\tconst member = interpreted.value;\n\tinvariant(typeof member === \"string\", \"the enum @default grammar admits only member identifiers, so the parsed value is a string\");\n\tconst match = enumHandle.enumMembers.find((m) => m.name === member);\n\tif (!match) return {};\n\treturn { defaultValue: {\n\t\tkind: \"literal\",\n\t\tvalue: blindCast(match.value)\n\t} };\n}\nconst MODEL_COORDINATE_SEPARATOR = \"\\0\";\nfunction modelCoordinateKey(namespaceId, modelName) {\n\treturn `${namespaceId}${MODEL_COORDINATE_SEPARATOR}${modelName}`;\n}\nconst REMOVED_ATTRIBUTE_RULES = /* @__PURE__ */ new Map([[\"updatedAt\", {\n\thint: \"Use `temporal.updatedAt()` as a field-preset call instead.\",\n\tsuppressWhen: (field) => field.typeConstructor?.path[0] === \"temporal\"\n}]]);\n{\n\tconst overlap = [...REMOVED_ATTRIBUTE_RULES.keys()].filter((name) => Object.hasOwn(sqlAttributeSpecs.field, name));\n\tif (overlap.length > 0) throw new InternalError(`Registered SQL field attributes and REMOVED_ATTRIBUTE_RULES must not overlap. Names in both: ${overlap.join(\", \")}`);\n}\nfunction describeUnsupportedSqlAttribute(input) {\n\tconst namespaceContext = {\n\t\t...ifDefined(\"familyId\", input.familyId),\n\t\t...ifDefined(\"targetId\", input.targetId),\n\t\tauthoringContributions: input.authoringContributions\n\t};\n\treturn ({ attribute, level, owner, field }) => {\n\t\tif (level === \"model\") {\n\t\t\tconst source = diagnosticSource(input.sources, owner.node.syntax);\n\t\t\tconst uncomposedNamespace = checkUncomposedNamespace(attribute.name, input.composedExtensions, namespaceContext);\n\t\t\tif (uncomposedNamespace) return uncomposedNamespaceDiagnostic({\n\t\t\t\tsubjectLabel: `Attribute \"@@${attribute.name}\"`,\n\t\t\t\tnamespace: uncomposedNamespace,\n\t\t\t\tsource,\n\t\t\t\tspan: attribute.span\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcode: \"PSL_UNSUPPORTED_MODEL_ATTRIBUTE\",\n\t\t\t\tmessage: `Model \"${owner.name}\" uses unsupported attribute \"@@${attribute.name}\"`,\n\t\t\t\t...source.at(attribute.span)\n\t\t\t};\n\t\t}\n\t\tif (field === void 0) return void 0;\n\t\tconst source = diagnosticSource(input.sources, field.node.syntax);\n\t\tif (attribute.name.startsWith(\"db.\")) return {\n\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\tmessage: formatDbAttributeMigrationMessage(attribute),\n\t\t\t...source.at(attribute.span)\n\t\t};\n\t\tconst uncomposedNamespace = checkUncomposedNamespace(attribute.name, input.composedExtensions, namespaceContext);\n\t\tif (uncomposedNamespace) return uncomposedNamespaceDiagnostic({\n\t\t\tsubjectLabel: `Attribute \"@${attribute.name}\"`,\n\t\t\tnamespace: uncomposedNamespace,\n\t\t\tsource,\n\t\t\tspan: attribute.span\n\t\t});\n\t\tconst baseMessage = `Field \"${owner.name}.${field.name}\" uses unsupported attribute \"@${attribute.name}\"`;\n\t\tconst removedRule = REMOVED_ATTRIBUTE_RULES.get(attribute.name);\n\t\treturn {\n\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\tmessage: removedRule && !removedRule.suppressWhen(field) ? `${baseMessage}. ${removedRule.hint}` : baseMessage,\n\t\t\t...source.at(attribute.span)\n\t\t};\n\t};\n}\nfunction extractFieldConstraintNames(input) {\n\tconst idAttribute = getAttribute(input.field.attributes, \"id\");\n\tconst uniqueAttribute = getAttribute(input.field.attributes, \"unique\");\n\tconst idNode = getAttribute(input.field.attributes, \"id\")?.node;\n\tconst idName = idNode === void 0 ? void 0 : interpretFieldAttribute({\n\t\tnode: idNode,\n\t\tsymbols: input.symbolTable,\n\t\tspec: sqlAttributeSpecs.field.id(),\n\t\tmodel: input.model,\n\t\tfield: input.field,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tdiagnostics: input.diagnostics\n\t})?.map;\n\tconst uniqueNode = getAttribute(input.field.attributes, \"unique\")?.node;\n\treturn {\n\t\tidAttribute,\n\t\tuniqueAttribute,\n\t\tidName,\n\t\tuniqueName: uniqueNode === void 0 ? void 0 : interpretFieldAttribute({\n\t\t\tnode: uniqueNode,\n\t\t\tsymbols: input.symbolTable,\n\t\t\tspec: sqlAttributeSpecs.field.unique(),\n\t\t\tmodel: input.model,\n\t\t\tfield: input.field,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tdiagnostics: input.diagnostics\n\t\t})?.map\n\t};\n}\n/**\n* Interprets a field's `@noCheck` attribute and resolves it against the\n* column's shape: the bare form becomes every kind the shape derives, and a\n* named kind that can never apply is a spec-validation diagnostic on the\n* attribute node. Returns the concrete kinds in canonical ascending order —\n* the only form the definition tree carries.\n*/\nfunction lowerNoCheckForField(input) {\n\tconst node = getAttribute(input.field.attributes, \"noCheck\")?.node;\n\tif (node === void 0) return void 0;\n\tconst interpreted = interpretFieldAttribute({\n\t\tnode,\n\t\tspec: sqlAttributeSpecs.field.noCheck(),\n\t\tsymbols: input.symbolTable,\n\t\tmodel: input.model,\n\t\tfield: input.field,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tdiagnostics: input.diagnostics\n\t});\n\tif (interpreted === void 0) return void 0;\n\tconst span = getAttribute(input.field.attributes, \"noCheck\")?.span ?? input.field.span;\n\tconst subject = `Field \"${input.model.name}.${input.field.name}\"`;\n\tconst derivable = [];\n\tif (input.isListField) derivable.push(\"elementNotNull\");\n\tif (input.isDomainEnum) derivable.push(\"membership\");\n\tconst authored = [interpreted.first, interpreted.second].filter((kind) => kind === \"membership\" || kind === \"elementNotNull\");\n\tif (authored.length === 0) {\n\t\tif (derivable.length === 0) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: `${subject} @noCheck waives nothing — this column's shape derives no generated checks`,\n\t\t\t\t...diagnosticSource(input.sources, input.field.node.syntax).at(span)\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\treturn derivable;\n\t}\n\tfor (const kind of authored) if (!derivable.includes(kind)) {\n\t\tconst explanation = kind === \"membership\" ? \"membership checks are derived only from enum value sets\" : \"element-non-null checks are derived only for list columns\";\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${subject} @noCheck(${kind}) does not apply — ${explanation}`,\n\t\t\t...diagnosticSource(input.sources, input.field.node.syntax).at(span)\n\t\t});\n\t\treturn;\n\t}\n\treturn [...authored].sort();\n}\nfunction collectResolvedFields(input) {\n\tconst { model, symbolTable, enumTypeDescriptors, namedTypeDescriptors, composedExtensions, authoringContributions, binder, familyId, targetId, defaultFunctionRegistry, dataTypeSupport, generatorDescriptorById, diagnostics, sources, scalarColumnDescriptors, enumHandles, capabilities, namespaceId, namespaceExtensionEntities, codecLookup } = input;\n\tconst resolvedFields = [];\n\tconst valueObjectStorageTypeName = authoringContributions?.valueObjectStorageType;\n\tconst declaredControlPolicy = getAttribute(model.attributes, \"control\")?.args.find((arg) => arg.kind === \"positional\")?.value.trim();\n\tconst modelDerivesChecks = declaredControlPolicy === void 0 || declaredControlPolicy === \"managed\";\n\tfor (const field of Object.values(model.fields)) {\n\t\tconst source = diagnosticSource(sources, field.node.syntax);\n\t\tconst fieldTypeReference = typeReferenceNode(field);\n\t\tconst fieldTypeResolution = fieldTypeReference === void 0 ? void 0 : binder.symbolForNode(fieldTypeReference);\n\t\tconst isModelField = fieldTypeResolution?.kind === \"model\";\n\t\tif (field.list && isModelField) continue;\n\t\tconst relationAttribute = getAttribute(field.attributes, \"relation\");\n\t\tif (isModelField && relationAttribute) continue;\n\t\tif (field.typeContractSpaceId !== void 0 && relationAttribute) continue;\n\t\tif (isModelField) continue;\n\t\tconst isValueObjectField = fieldTypeResolution?.kind === \"compositeType\";\n\t\tconst isListField = field.list;\n\t\tlet descriptor;\n\t\tlet scalarCodecId;\n\t\tlet presetContributions;\n\t\tconst resolveInput = {\n\t\t\tfield,\n\t\t\tbinder,\n\t\t\tenumTypeDescriptors,\n\t\t\tnamedTypeDescriptors,\n\t\t\tscalarColumnDescriptors,\n\t\t\tauthoringContributions,\n\t\t\tcomposedExtensions,\n\t\t\tfamilyId,\n\t\t\ttargetId,\n\t\t\tdiagnostics,\n\t\t\tsources,\n\t\t\tentityLabel: `Field \"${model.name}.${field.name}\"`,\n\t\t\t...ifDefined(\"namespaceId\", namespaceId),\n\t\t\t...ifDefined(\"namespaceExtensionEntities\", namespaceExtensionEntities),\n\t\t\t...ifDefined(\"codecLookup\", codecLookup)\n\t\t};\n\t\tif (isValueObjectField) descriptor = valueObjectStorageTypeName !== void 0 ? scalarColumnDescriptors.get(valueObjectStorageTypeName) : void 0;\n\t\telse if (isListField) {\n\t\t\tif (capabilities[\"sql\"]?.[\"scalarList\"] !== true) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_SCALAR_LIST_UNSUPPORTED_TARGET\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is a scalar list, but target \"${targetId}\" does not support scalar lists (the adapter does not report the \"scalarList\" capability). Remove the list or author it against a target that supports scalar lists.`,\n\t\t\t\t\t...source.at(field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst resolved = resolveFieldTypeDescriptor(resolveInput);\n\t\t\tif (!resolved.ok) {\n\t\t\t\tif (!resolved.alreadyReported && fieldTypeResolution?.kind !== \"unresolved\") diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" type \"${field.typeName}\" is not supported in SQL PSL provider v1`,\n\t\t\t\t\t...source.at(field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (resolved.presetContributions) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_PRESET_NOT_LIST\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call as a list element type. Presets cannot be list elements; remove \"[]\" or use a scalar type.`,\n\t\t\t\t\t...source.at(field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tscalarCodecId = resolved.descriptor.codecId;\n\t\t\tdescriptor = resolved.descriptor;\n\t\t} else {\n\t\t\tconst resolved = resolveFieldTypeDescriptor(resolveInput);\n\t\t\tif (!resolved.ok) {\n\t\t\t\tif (!resolved.alreadyReported && fieldTypeResolution?.kind !== \"unresolved\") diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" type \"${field.typeName}\" is not supported in SQL PSL provider v1`,\n\t\t\t\t\t...source.at(field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdescriptor = resolved.descriptor;\n\t\t\tpresetContributions = resolved.presetContributions;\n\t\t}\n\t\tif (!descriptor) continue;\n\t\tif (presetContributions && field.optional) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_PRESET_NOT_OPTIONAL\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call and cannot be optional. Remove \"?\" or use a different field type.`,\n\t\t\t\t...source.at(field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst defaultAttribute = getAttribute(field.attributes, \"default\");\n\t\tif (presetContributions && defaultAttribute) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_PRESET_AND_DEFAULT_CONFLICT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call and cannot also declare @default(...). The preset already specifies the default value.`,\n\t\t\t\t...source.at(defaultAttribute.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst enumHandle = enumHandles?.get(field.typeName);\n\t\tconst loweredDefault = defaultAttribute ? enumHandle ? lowerEnumDefaultForField({\n\t\t\tmodelName: model.name,\n\t\t\tfieldName: field.name,\n\t\t\tfield,\n\t\t\tmodel,\n\t\t\tsymbolTable,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tenumHandle,\n\t\t\tdefaultFunctionRegistry,\n\t\t\tdataTypeSupport,\n\t\t\tdiagnostics\n\t\t}) : lowerDefaultForField({\n\t\t\tmodelName: model.name,\n\t\t\tfieldName: field.name,\n\t\t\tfield,\n\t\t\tmodel,\n\t\t\tsymbolTable,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tcolumnDescriptor: descriptor,\n\t\t\tgeneratorDescriptorById,\n\t\t\tdefaultFunctionRegistry,\n\t\t\tdataTypeSupport,\n\t\t\tcodecLookup,\n\t\t\tdiagnostics\n\t\t}) : {};\n\t\tconst loweredOnCreate = loweredDefault.executionDefaults?.onCreate;\n\t\tif (isListField && loweredDefault.defaultValue?.kind === \"function\" && loweredDefault.defaultValue.expression === \"autoincrement()\") {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_LIST_AUTOINCREMENT_UNSUPPORTED\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is a list and cannot use autoincrement(); it is a Prisma marker for a sequence-backed scalar column, not SQL.`,\n\t\t\t\t...source.at(defaultAttribute?.span ?? field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (isListField && loweredOnCreate) {\n\t\t\tconst defaultExpression = defaultAttribute?.args.find((arg) => arg.kind === \"positional\")?.value.trim() ?? \"this function\";\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_LIST_EXECUTION_DEFAULT_UNSUPPORTED\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is a list and cannot use an execution default (\"${defaultExpression}\"). Lists have no per-element execution-default semantics; use a literal list @default or remove the default.`,\n\t\t\t\t...source.at(defaultAttribute?.span ?? field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (field.optional && loweredOnCreate) {\n\t\t\tconst generatorDescription = loweredOnCreate.kind === \"generator\" ? `\"${loweredOnCreate.id}\"` : \"for this field\";\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_FUNCTION_ARGUMENT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" cannot be optional when using execution default ${generatorDescription}. Remove \"?\" or use a storage default.`,\n\t\t\t\t...source.at(defaultAttribute?.span ?? field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst mappedColumnName = storageName(field, input.physicalNames);\n\t\tconst { idAttribute, uniqueAttribute, idName, uniqueName } = extractFieldConstraintNames({\n\t\t\tsymbolTable: input.symbolTable,\n\t\t\tmodel,\n\t\t\tfield,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tdiagnostics\n\t\t});\n\t\tlet isIdField = Boolean(idAttribute);\n\t\tif (idAttribute && isListField) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_LIST_ID_UNSUPPORTED\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is a list and cannot be a primary key. Remove @id; a list cannot be an identity column.`,\n\t\t\t\t...source.at(idAttribute.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (idAttribute && field.optional) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" @id cannot be optional; primary key columns must be NOT NULL`,\n\t\t\t\t...source.at(idAttribute.span)\n\t\t\t});\n\t\t\tisIdField = false;\n\t\t}\n\t\tif (presetContributions && idAttribute && !presetContributions.id) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_PRESET_AND_ID_CONFLICT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call and cannot also declare @id. Use a preset that contributes id semantics, or drop @id.`,\n\t\t\t\t...source.at(idAttribute.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst fieldExecutionDefaults = presetContributions?.executionDefaults ?? loweredDefault.executionDefaults;\n\t\tconst fieldDefaultValue = presetContributions?.default ?? loweredDefault.defaultValue;\n\t\tconst noCheckKinds = modelDerivesChecks ? lowerNoCheckForField({\n\t\t\tsymbolTable: input.symbolTable,\n\t\t\tmodel,\n\t\t\tfield,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tisListField: isListField && !isValueObjectField,\n\t\t\tisDomainEnum: enumHandle !== void 0,\n\t\t\tdiagnostics\n\t\t}) : void 0;\n\t\tresolvedFields.push({\n\t\t\tfield,\n\t\t\tcolumnName: mappedColumnName,\n\t\t\tdescriptor,\n\t\t\tnullable: presetContributions?.nullable ?? field.optional,\n\t\t\t...ifDefined(\"defaultValue\", fieldDefaultValue),\n\t\t\t...ifDefined(\"executionDefaults\", fieldExecutionDefaults),\n\t\t\tisId: isIdField || Boolean(presetContributions?.id),\n\t\t\tisUnique: Boolean(uniqueAttribute) || Boolean(presetContributions?.unique),\n\t\t\t...ifDefined(\"idName\", idName),\n\t\t\t...ifDefined(\"uniqueName\", uniqueName),\n\t\t\t...ifDefined(\"many\", isListField ? true : void 0),\n\t\t\t...ifDefined(\"noCheck\", noCheckKinds),\n\t\t\t...ifDefined(\"valueObjectTypeName\", isValueObjectField ? field.typeName : void 0),\n\t\t\t...ifDefined(\"scalarCodecId\", scalarCodecId)\n\t\t});\n\t}\n\treturn resolvedFields;\n}\n//#endregion\n//#region src/psl-named-type-resolution.ts\nfunction validateNamedTypeAttributes(input) {\n\tlet hasUnsupportedNamedTypeAttribute = false;\n\tfor (const attribute of input.declaration.attributes) {\n\t\tif (attribute.name.startsWith(\"db.\")) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_ATTRIBUTE\",\n\t\t\t\tmessage: formatDbAttributeMigrationMessage(attribute),\n\t\t\t\t...input.source.at(attribute.span)\n\t\t\t});\n\t\t\thasUnsupportedNamedTypeAttribute = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst uncomposedNamespace = checkUncomposedNamespace(attribute.name, input.composedExtensions, {\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tauthoringContributions: input.authoringContributions\n\t\t});\n\t\tif (uncomposedNamespace) {\n\t\t\treportUncomposedNamespace({\n\t\t\t\tsubjectLabel: `Attribute \"@${attribute.name}\"`,\n\t\t\t\tnamespace: uncomposedNamespace,\n\t\t\t\tsource: input.source,\n\t\t\t\tspan: attribute.span,\n\t\t\t\tdiagnostics: input.diagnostics\n\t\t\t});\n\t\t\thasUnsupportedNamedTypeAttribute = true;\n\t\t\tcontinue;\n\t\t}\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_ATTRIBUTE\",\n\t\t\tmessage: `Named type \"${input.declaration.name}\" uses unsupported attribute \"${attribute.name}\"`,\n\t\t\t...input.source.at(attribute.span)\n\t\t});\n\t\thasUnsupportedNamedTypeAttribute = true;\n\t}\n\treturn hasUnsupportedNamedTypeAttribute;\n}\nfunction resolveNamedTypeDeclarations(input) {\n\tconst storageTypeEntries = [];\n\tconst namedTypeDescriptors = /* @__PURE__ */ new Map();\n\tfor (const declaration of input.declarations) {\n\t\tconst source = diagnosticSource(input.source.sources, declaration.node.syntax);\n\t\tif (declaration.isConstructor) {\n\t\t\tconst typeConstructor = declaration.typeConstructor;\n\t\t\tif (typeConstructor === void 0) {\n\t\t\t\tinput.diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_BASE\",\n\t\t\t\t\tmessage: `Named type \"${declaration.name}\" must declare a base type or constructor`,\n\t\t\t\t\t...source.at(declaration.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (validateNamedTypeAttributes({\n\t\t\t\tdeclaration,\n\t\t\t\tsource,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\t\tfamilyId: input.familyId,\n\t\t\t\ttargetId: input.targetId\n\t\t\t})) continue;\n\t\t\tconst helperPath = typeConstructor.path.join(\".\");\n\t\t\tconst descriptor = resolvePslTypeConstructorDescriptor({\n\t\t\t\tcall: typeConstructor,\n\t\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\t\tfamilyId: input.familyId,\n\t\t\t\ttargetId: input.targetId,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tsource,\n\t\t\t\tunsupportedCode: \"PSL_UNSUPPORTED_NAMED_TYPE_CONSTRUCTOR\",\n\t\t\t\tunsupportedMessage: `Named type \"${declaration.name}\" references unsupported constructor \"${helperPath}\"`\n\t\t\t});\n\t\t\tif (!descriptor) continue;\n\t\t\tconst storageType = instantiatePslTypeConstructor({\n\t\t\t\tcall: typeConstructor,\n\t\t\t\tdescriptor,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tsource,\n\t\t\t\tentityLabel: `Named type \"${declaration.name}\"`\n\t\t\t});\n\t\t\tif (!storageType) continue;\n\t\t\tnamedTypeDescriptors.set(declaration.name, toNamedTypeFieldDescriptor(declaration.name, storageType));\n\t\t\tstorageTypeEntries.push([declaration.name, {\n\t\t\t\tkind: \"codec-instance\",\n\t\t\t\tcodecId: storageType.codecId,\n\t\t\t\tnativeType: storageType.nativeType,\n\t\t\t\ttypeParams: storageType.typeParams ?? {}\n\t\t\t}]);\n\t\t\tcontinue;\n\t\t}\n\t\tconst baseType = declaration.baseType;\n\t\tif (baseType === void 0) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_BASE\",\n\t\t\t\tmessage: `Named type \"${declaration.name}\" must declare a base type or constructor`,\n\t\t\t\t...source.at(declaration.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst baseDescriptor = input.enumTypeDescriptors.get(baseType) ?? input.scalarColumnDescriptors.get(baseType);\n\t\tif (!baseDescriptor) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_BASE\",\n\t\t\t\tmessage: `Named type \"${declaration.name}\" references unsupported base type \"${baseType}\"`,\n\t\t\t\t...source.at(declaration.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (validateNamedTypeAttributes({\n\t\t\tdeclaration,\n\t\t\tsource,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId\n\t\t})) continue;\n\t\tconst descriptor = toNamedTypeFieldDescriptor(declaration.name, baseDescriptor);\n\t\tnamedTypeDescriptors.set(declaration.name, descriptor);\n\t\tstorageTypeEntries.push([declaration.name, {\n\t\t\tkind: \"codec-instance\",\n\t\t\tcodecId: baseDescriptor.codecId,\n\t\t\tnativeType: baseDescriptor.nativeType,\n\t\t\ttypeParams: baseDescriptor.typeParams ?? {}\n\t\t}]);\n\t}\n\treturn {\n\t\tstorageTypes: Object.fromEntries(storageTypeEntries),\n\t\tnamedTypeDescriptors\n\t};\n}\n//#endregion\n//#region src/psl-relation-resolution.ts\nconst REFERENTIAL_ACTION_MAP = {\n\tNoAction: \"noAction\",\n\tRestrict: \"restrict\",\n\tCascade: \"cascade\",\n\tSetNull: \"setNull\",\n\tSetDefault: \"setDefault\",\n\tnoAction: \"noAction\",\n\trestrict: \"restrict\",\n\tcascade: \"cascade\",\n\tsetNull: \"setNull\",\n\tsetDefault: \"setDefault\"\n};\nfunction modelName(key) {\n\treturn typeof key === \"string\" ? key : key.name;\n}\nfunction normalizeReferentialAction(actionToken) {\n\treturn REFERENTIAL_ACTION_MAP[actionToken];\n}\nfunction interpretRelationAttribute(input) {\n\tconst node = getAttribute(input.field.attributes, \"relation\")?.node;\n\tif (node === void 0) return void 0;\n\treturn interpretFieldAttribute({\n\t\tsymbols: input.symbols,\n\t\tnode,\n\t\tspec: sqlAttributeSpecs.field.relation(),\n\t\tmodel: input.selfModel,\n\t\tfield: input.field,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tdiagnostics: input.diagnostics\n\t});\n}\nfunction indexFkRelations(input) {\n\tconst modelRelations = /* @__PURE__ */ new Map();\n\tconst fkRelationsByPair = /* @__PURE__ */ new Map();\n\tconst fkRelationsByDeclaringModel = /* @__PURE__ */ new Map();\n\tfor (const relation of input.fkRelationMetadata) {\n\t\tconst declaringFkRelations = fkRelationsByDeclaringModel.get(relation.declaringModelName);\n\t\tif (declaringFkRelations) declaringFkRelations.push(relation);\n\t\telse fkRelationsByDeclaringModel.set(relation.declaringModelName, [relation]);\n\t\tconst existing = modelRelations.get(relation.declaringModelName);\n\t\tconst current = existing ?? [];\n\t\tif (!existing) modelRelations.set(relation.declaringModelName, current);\n\t\tcurrent.push({\n\t\t\tfieldName: relation.declaringFieldName,\n\t\t\ttoModel: modelName(relation.targetModelName),\n\t\t\ttoTable: relation.targetTableName,\n\t\t\t...ifDefined(\"toNamespaceId\", relation.targetNamespaceId),\n\t\t\tcardinality: \"N:1\",\n\t\t\tnullable: relation.nullable,\n\t\t\ton: {\n\t\t\t\tparentTable: relation.declaringTableName,\n\t\t\t\tparentColumns: relation.localColumns,\n\t\t\t\tchildTable: relation.targetTableName,\n\t\t\t\tchildColumns: relation.referencedColumns\n\t\t\t}\n\t\t});\n\t\tlet targets = fkRelationsByPair.get(relation.declaringModelName);\n\t\tif (!targets) {\n\t\t\ttargets = /* @__PURE__ */ new Map();\n\t\t\tfkRelationsByPair.set(relation.declaringModelName, targets);\n\t\t}\n\t\tconst pairRelations = targets.get(relation.targetModelName);\n\t\tif (pairRelations) pairRelations.push(relation);\n\t\telse targets.set(relation.targetModelName, [relation]);\n\t}\n\treturn {\n\t\tmodelRelations,\n\t\tfkRelationsByPair,\n\t\tfkRelationsByDeclaringModel\n\t};\n}\nfunction idColumnsAreExactlyFkPair(idColumns, parentColumns, childColumns) {\n\tif (idColumns.length !== parentColumns.length + childColumns.length) return false;\n\tconst fkColumns = /* @__PURE__ */ new Set([...parentColumns, ...childColumns]);\n\tif (fkColumns.size !== parentColumns.length + childColumns.length) return false;\n\treturn idColumns.every((column) => fkColumns.has(column));\n}\n/**\n* Reorders the child FK's junction columns into the target model's id-column\n* order. Returns undefined unless the FK references exactly the target's full\n* id, because downstream consumers pair `through.childColumns` positionally\n* against the target id columns — an FK referencing anything else (a non-id\n* unique, a partial id) would produce a silently wrong join.\n*/\nfunction childColumnsInTargetIdOrder(childFk, targetIdColumns) {\n\tif (childFk.referencedColumns.length !== targetIdColumns.length) return;\n\tconst localByReferenced = /* @__PURE__ */ new Map();\n\tfor (const [index, referencedColumn] of childFk.referencedColumns.entries()) {\n\t\tconst localColumn = childFk.localColumns[index];\n\t\tif (localColumn === void 0) return;\n\t\tlocalByReferenced.set(referencedColumn, localColumn);\n\t}\n\tif (localByReferenced.size !== targetIdColumns.length) return;\n\tconst ordered = [];\n\tfor (const idColumn of targetIdColumns) {\n\t\tconst localColumn = localByReferenced.get(idColumn);\n\t\tif (localColumn === void 0) return;\n\t\tordered.push(localColumn);\n\t}\n\treturn ordered;\n}\n/**\n* Finds explicit junction models that connect a bare backrelation list field\n* to its target model: a model whose composite id columns are exactly the FK\n* columns of one relation back to the candidate's model (the parent side) and\n* one relation to the candidate's target model (the child side). The child\n* FK must reference exactly the target model's id columns; its junction\n* columns are carried in target-id order on the pair. A relation name on the\n* list field pins the parent-side FK relation, which is how self-referential\n* many-to-many sides are disambiguated.\n*\n* Alongside the recognised pairs, returns junction-shaped near-misses (models\n* that link both sides but were declined) so the caller can emit a\n* junction-specific diagnostic instead of the generic orphaned-list message.\n*/\nfunction findJunctionFkPairs(input) {\n\tconst targetIdColumns = input.modelIdColumns.get(input.candidate.targetModelName);\n\tif (!targetIdColumns || targetIdColumns.length === 0) return {\n\t\tpairs: [],\n\t\tnearMisses: []\n\t};\n\tconst pairs = [];\n\tconst nearMisses = [];\n\tfor (const [junctionModelName, junctionFks] of input.fkRelationsByDeclaringModel) {\n\t\tconst idColumns = input.modelIdColumns.get(junctionModelName);\n\t\tfor (const parentFk of junctionFks) {\n\t\t\tif (parentFk.targetModelName !== input.candidate.modelName) continue;\n\t\t\tif (input.candidate.relationName !== void 0 && parentFk.relationName !== input.candidate.relationName) continue;\n\t\t\tfor (const childFk of junctionFks) {\n\t\t\t\tif (childFk === parentFk || childFk.targetModelName !== input.candidate.targetModelName) continue;\n\t\t\t\tif (!idColumns || !idColumnsAreExactlyFkPair(idColumns, parentFk.localColumns, childFk.localColumns)) {\n\t\t\t\t\tnearMisses.push({\n\t\t\t\t\t\tjunctionModelName: modelName(junctionModelName),\n\t\t\t\t\t\treason: \"id-not-fk-covering\"\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst orderedChildColumns = childColumnsInTargetIdOrder(childFk, targetIdColumns);\n\t\t\t\tif (!orderedChildColumns) {\n\t\t\t\t\tnearMisses.push({\n\t\t\t\t\t\tjunctionModelName: modelName(junctionModelName),\n\t\t\t\t\t\treason: \"target-fk-not-id\"\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tpairs.push({\n\t\t\t\t\tparentFk,\n\t\t\t\t\tchildFk,\n\t\t\t\t\tchildColumnsInTargetIdOrder: orderedChildColumns\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tpairs,\n\t\tnearMisses\n\t};\n}\nfunction junctionNearMissDiagnostic(candidate, nearMiss, sources) {\n\tconst source = diagnosticSource(sources, candidate.field.node.syntax);\n\tconst listField = `${modelName(candidate.modelName)}.${candidate.field.name}`;\n\tconst targetModelName = modelName(candidate.targetModelName);\n\tconst data = {\n\t\tlistField,\n\t\tjunctionModel: nearMiss.junctionModelName,\n\t\ttargetModel: targetModelName\n\t};\n\tif (nearMiss.reason === \"target-fk-not-id\") return {\n\t\tcode: \"PSL_JUNCTION_TARGET_FK_NOT_ID\",\n\t\tmessage: `Backrelation list field \"${listField}\" found junction model \"${nearMiss.junctionModelName}\", but its foreign key to \"${targetModelName}\" does not reference \"${targetModelName}\"'s @id. The junction's target-side foreign key must reference \"${targetModelName}\"'s full @id columns for many-to-many recognition.`,\n\t\t...source.at(candidate.field.span),\n\t\tdata\n\t};\n\treturn {\n\t\tcode: \"PSL_JUNCTION_ID_NOT_FK_COVERING\",\n\t\tmessage: `Backrelation list field \"${listField}\" found junction-shaped model \"${nearMiss.junctionModelName}\" linking \"${modelName(candidate.modelName)}\" and \"${targetModelName}\", but its id does not cover exactly its foreign-key columns. Declare @@id([...]) on \"${nearMiss.junctionModelName}\" listing exactly the two foreign-key columns for many-to-many recognition.`,\n\t\t...source.at(candidate.field.span),\n\t\tdata\n\t};\n}\nfunction manyToManyRelationNode(candidate, pair) {\n\treturn {\n\t\tfieldName: candidate.field.name,\n\t\ttoModel: modelName(pair.childFk.targetModelName),\n\t\ttoTable: pair.childFk.targetTableName,\n\t\t...ifDefined(\"toNamespaceId\", pair.childFk.targetNamespaceId),\n\t\tcardinality: \"N:M\",\n\t\ton: {\n\t\t\tparentTable: candidate.tableName,\n\t\t\tparentColumns: pair.parentFk.referencedColumns,\n\t\t\tchildTable: pair.parentFk.declaringTableName,\n\t\t\tchildColumns: pair.parentFk.localColumns\n\t\t},\n\t\tthrough: {\n\t\t\ttable: pair.parentFk.declaringTableName,\n\t\t\t...ifDefined(\"namespaceId\", pair.parentFk.declaringNamespaceId),\n\t\t\tparentColumns: pair.parentFk.localColumns,\n\t\t\tchildColumns: pair.childColumnsInTargetIdOrder\n\t\t}\n\t};\n}\nfunction relationsForModel(modelRelations, modelName) {\n\tconst existing = modelRelations.get(modelName);\n\tif (existing) return existing;\n\tconst created = [];\n\tmodelRelations.set(modelName, created);\n\treturn created;\n}\n/**\n* A set of columns is unique when it exactly matches one of the model's unique\n* column sets — its primary key, any single- or multi-column `@unique` /\n* `@@unique` constraint, or a unique index over plain columns with no `where`\n* clause. Set equality (not subset) is required: a singular back-relation means\n* at most one child per parent, which a unique constraint covering exactly the\n* FK columns guarantees.\n*/\nfunction fkColumnsAreUnique(localColumns, uniqueColumnSets) {\n\tconst local = new Set(localColumns);\n\treturn uniqueColumnSets.some((columns) => columns.length === local.size && columns.every((column) => local.has(column)));\n}\nfunction applyBackrelationCandidates(input) {\n\tfor (const candidate of input.backrelationCandidates) {\n\t\tconst source = diagnosticSource(input.sources, candidate.field.node.syntax);\n\t\tconst pairMatches = input.fkRelationsByPair.get(candidate.targetModelName)?.get(candidate.modelName) ?? [];\n\t\tconst matches = candidate.relationName ? pairMatches.filter((relation) => relation.relationName === candidate.relationName) : [...pairMatches];\n\t\tif (matches.length === 0) {\n\t\t\tconst invalidIndex = input.invalidFkPairings.findIndex((pairing) => {\n\t\t\t\tif (pairing.relationName !== candidate.relationName) return false;\n\t\t\t\tif (\"pairKey\" in pairing) return typeof candidate.targetModelName === \"string\" && typeof candidate.modelName === \"string\" && pairing.pairKey === fkRelationPairKey(candidate.targetModelName, candidate.modelName);\n\t\t\t\treturn pairing.declaringModel === candidate.targetModelName && pairing.targetModel === candidate.modelName;\n\t\t\t});\n\t\t\tif (invalidIndex !== -1) {\n\t\t\t\tinput.invalidFkPairings.splice(invalidIndex, 1);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (candidate.isList) {\n\t\t\t\tconst { pairs: junctionPairs, nearMisses } = findJunctionFkPairs({\n\t\t\t\t\tcandidate,\n\t\t\t\t\tfkRelationsByDeclaringModel: input.fkRelationsByDeclaringModel,\n\t\t\t\t\tmodelIdColumns: input.modelIdColumns\n\t\t\t\t});\n\t\t\t\tconst junctionPair = junctionPairs[0];\n\t\t\t\tif (junctionPairs.length === 1 && junctionPair) {\n\t\t\t\t\trelationsForModel(input.modelRelations, candidate.modelName).push(manyToManyRelationNode(candidate, junctionPair));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (junctionPairs.length > 1) {\n\t\t\t\t\tinput.diagnostics.push({\n\t\t\t\t\t\tcode: \"PSL_AMBIGUOUS_BACKRELATION\",\n\t\t\t\t\t\tmessage: `Backrelation list field \"${modelName(candidate.modelName)}.${candidate.field.name}\" matches multiple junction FK pairs for a many-to-many relation. Add @relation(name: \"...\") (or @relation(\"...\")) to the list field and the junction FK-side relation pointing back at \"${modelName(candidate.modelName)}\" to disambiguate.`,\n\t\t\t\t\t\t...source.at(candidate.field.span)\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst nearMiss = nearMisses[0];\n\t\t\t\tif (nearMiss) {\n\t\t\t\t\tinput.diagnostics.push(junctionNearMissDiagnostic(candidate, nearMiss, input.sources));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_ORPHANED_BACKRELATION\",\n\t\t\t\tmessage: `Backrelation field \"${modelName(candidate.modelName)}.${candidate.field.name}\" has no matching FK-side relation on model \"${modelName(candidate.targetModelName)}\". Add @relation(fields: [...], references: [...]) on the FK-side relation${candidate.isList ? \" or use an explicit join model for many-to-many\" : \"\"}.`,\n\t\t\t\t...source.at(candidate.field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (matches.length > 1) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_AMBIGUOUS_BACKRELATION\",\n\t\t\t\tmessage: `Backrelation field \"${modelName(candidate.modelName)}.${candidate.field.name}\" matches multiple FK-side relations on model \"${modelName(candidate.targetModelName)}\". Add @relation(name: \"...\") (or @relation(\"...\")) to both sides to disambiguate.`,\n\t\t\t\t...source.at(candidate.field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tinvariant(matches.length === 1, \"Backrelation matching requires exactly one match\");\n\t\tconst matched = matches[0];\n\t\tassertDefined(matched, \"Backrelation matching requires a defined relation match\");\n\t\tif (!candidate.isList) {\n\t\t\tconst uniqueColumnSets = input.modelUniqueColumnSets.get(matched.declaringModelName) ?? [];\n\t\t\tif (!fkColumnsAreUnique(matched.localColumns, uniqueColumnSets)) {\n\t\t\t\tinput.diagnostics.push({\n\t\t\t\t\tcode: \"PSL_NON_UNIQUE_BACKRELATION\",\n\t\t\t\t\tmessage: `Backrelation field \"${modelName(candidate.modelName)}.${candidate.field.name}\" is singular, but the matching FK on \"${modelName(matched.declaringModelName)}\" (fields ${matched.localColumns.map((column) => `\"${column}\"`).join(\", \")}) is not unique. A singular back-relation implies at most one related row; add @unique (or @@unique([...])) to the FK fields, or make \"${candidate.field.name}\" a list.`,\n\t\t\t\t\t...source.at(candidate.field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (!candidate.isList && !candidate.field.optional) input.diagnostics.push(requiredOneToOneBackrelationDiagnostic({\n\t\t\tmodelName: modelName(candidate.modelName),\n\t\t\tfield: candidate.field,\n\t\t\ttargetModelName: modelName(candidate.targetModelName),\n\t\t\tsources: input.sources,\n\t\t\trecordNoun: \"row\"\n\t\t}));\n\t\trelationsForModel(input.modelRelations, candidate.modelName).push({\n\t\t\tfieldName: candidate.field.name,\n\t\t\ttoModel: modelName(matched.declaringModelName),\n\t\t\ttoTable: matched.declaringTableName,\n\t\t\t...ifDefined(\"toNamespaceId\", matched.declaringNamespaceId),\n\t\t\t...candidate.isList ? { cardinality: \"1:N\" } : {\n\t\t\t\tcardinality: \"1:1\",\n\t\t\t\tnullable: true\n\t\t\t},\n\t\t\ton: {\n\t\t\t\tparentTable: candidate.tableName,\n\t\t\t\tparentColumns: matched.referencedColumns,\n\t\t\t\tchildTable: matched.declaringTableName,\n\t\t\t\tchildColumns: matched.localColumns\n\t\t\t}\n\t\t});\n\t}\n}\nfunction validateBackrelationFieldAttributes(input) {\n\tconst source = diagnosticSource(input.sources, input.field.node.syntax);\n\tlet valid = true;\n\tfor (const attribute of input.field.attributes) {\n\t\tif (attribute.name === \"relation\") continue;\n\t\tconst uncomposedNamespace = checkUncomposedNamespace(attribute.name, input.composedExtensions, {\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tauthoringContributions: input.authoringContributions\n\t\t});\n\t\tif (uncomposedNamespace) {\n\t\t\treportUncomposedNamespace({\n\t\t\t\tsubjectLabel: `Attribute \"@${attribute.name}\"`,\n\t\t\t\tnamespace: uncomposedNamespace,\n\t\t\t\tsource,\n\t\t\t\tspan: attribute.span,\n\t\t\t\tdiagnostics: input.diagnostics\n\t\t\t});\n\t\t\tvalid = false;\n\t\t\tcontinue;\n\t\t}\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\tmessage: `Field \"${input.modelName}.${input.field.name}\" uses unsupported attribute \"@${attribute.name}\"`,\n\t\t\t...source.at(attribute.span)\n\t\t});\n\t\tvalid = false;\n\t}\n\treturn valid;\n}\n//#endregion\n//#region src/interpreter.ts\nfunction buildComposedExtensionPackRefs(target, extensionIds, extensionPackRefs = []) {\n\tif (extensionIds.length === 0) return;\n\tconst extensionPackRefById = new Map(extensionPackRefs.map((packRef) => [packRef.id, packRef]));\n\treturn Object.fromEntries(extensionIds.map((extensionId) => [extensionId, extensionPackRefById.get(extensionId) ?? {\n\t\tkind: \"extension\",\n\t\tid: extensionId,\n\t\tfamilyId: target.familyId,\n\t\ttargetId: target.targetId,\n\t\tversion: \"0.0.1\"\n\t}]));\n}\nfunction compareStrings(left, right) {\n\tif (left < right) return -1;\n\tif (left > right) return 1;\n\treturn 0;\n}\n/**\n* Per-target namespace-block validation: walk the AST's namespace buckets and\n* emit diagnostics for syntactic constructs the target does not accept.\n*\n* - **SQLite** has no schema concept and rejects every explicit\n* `namespace { … }` block. The implicit `__unspecified__` bucket\n* (produced by the parser for top-level declarations outside any\n* block) is the only namespace SQLite accepts.\n* - **Postgres** accepts every explicit block — `namespace unbound { … }`\n* is the late-binding opt-in (lowers to the IR `__unbound__` slot in\n* a follow-on commit), `namespace public { … }` reopen-merges with\n* the implicit bucket, and any other name lowers to a named schema.\n*\n* Storage-side lowering of these buckets to IR namespace slots is not\n* yet wired; this helper closes only the diagnostic surface.\n*/\n/**\n* Per-target namespace lowering: map a PSL AST namespace bucket name to the\n* resolved IR namespace id (the key downstream consumers use against\n* `SqlStorage.namespaces`).\n*\n* - **Postgres**: an explicit `namespace unbound { … }` block lowers\n* to the framework sentinel `__unbound__` — the slot whose binding\n* the connection's `search_path` resolves at runtime. Every other\n* explicit bucket name (e.g. `auth`, `public`) passes through as a\n* named schema id. The implicit `__unspecified__` bucket — top-level\n* declarations outside any `namespace { … }` block — leaves the\n* coordinate unset; downstream consumers treat unset as the\n* late-bound default, and TS / PSL authoring stay byte-identical\n* on single-namespace contracts. (A future round will add a\n* target-default-namespace surface so `__unspecified__` lowers to\n* `public` consistently on both authoring paths.)\n* - **SQLite**: SQLite has no schema concept; every namespace\n* collapses to the late-bound default. The namespace-block\n* validation step (above) has already rejected any explicit\n* `namespace { … }` block on SQLite, so the only bucket the\n* lowering ever sees there is `__unspecified__`.\n*\n* Returns `undefined` for targets / bucket names with no explicit\n* namespaceId to assign — callers leave the model's `namespaceId`\n* slot empty (which means the late-bound default at the `StorageTable`\n* layer; emitted JSON omits the field).\n*/\nfunction resolveNamespaceIdForSqlTarget(input) {\n\tif (input.targetId !== \"postgres\") return;\n\tif (input.bucketName === UNSPECIFIED_PSL_NAMESPACE_ID) return \"public\";\n\tif (input.bucketName === UNBOUND_PSL_NAMESPACE_NAME) return UNBOUND_NAMESPACE_ID;\n\treturn input.bucketName;\n}\n/**\n* A namespace block is the unbound block when its name RESOLVES to the\n* unbound id — both the `namespace unbound { }` spelling (mapped by\n* {@link resolveNamespaceIdForSqlTarget}) and the raw sentinel spelling\n* `namespace __unbound__ { }` (passed through verbatim) behave identically:\n* same models-sibling restriction, same block-lowering bucket.\n*/\nfunction isUnboundNamespaceBlock(ns, targetId) {\n\treturn resolveNamespaceIdForSqlTarget({\n\t\tbucketName: ns.name,\n\t\ttargetId\n\t}) === UNBOUND_NAMESPACE_ID;\n}\nfunction validateNamespaceBlocksForSqlTarget(input) {\n\tif (input.targetId === \"sqlite\") {\n\t\tfor (const namespace of input.namespaces) for (const { node, span } of namespace.declarations) input.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_NAMESPACE_BLOCK\",\n\t\t\tmessage: `SQLite does not support \\`namespace ${namespace.name} { … }\\` blocks (SQLite has no schema concept; declare models at the document top level instead).`,\n\t\t\t...diagnosticSource(input.sources, node.syntax).at(span)\n\t\t});\n\t\treturn;\n\t}\n\tif (input.targetId === \"postgres\") {\n\t\tconst unboundBlock = input.namespaces.find((ns) => isUnboundNamespaceBlock(ns, input.targetId) && Object.keys(ns.models).length > 0);\n\t\tconst hasSibling = input.namespaces.some((ns) => !isUnboundNamespaceBlock(ns, input.targetId));\n\t\tif (unboundBlock !== void 0 && hasSibling) for (const { node, span } of unboundBlock.declarations) input.diagnostics.push({\n\t\t\tcode: \"PSL_RESERVED_NAMESPACE_NAME\",\n\t\t\tmessage: \"Namespace \\\"unbound\\\" is reserved for the late-binding sentinel mapping; a `namespace unbound { … }` containing models cannot appear alongside other named namespace blocks. Use `namespace unbound { … }` alone (no sibling named namespaces) for late-binding multi-tenant contracts.\",\n\t\t\t...diagnosticSource(input.sources, node.syntax).at(span)\n\t\t});\n\t}\n}\n/**\n* Walks the flat `entityTypes` namespace tree in `authoringContributions` and\n* returns a map from discriminator string to the matching descriptor. The\n* interpreter uses this to dispatch parsed extension blocks to their factory\n* without naming any specific discriminator value (generic, by-discriminator).\n*/\nfunction buildEntityTypesByDiscriminator(contributions) {\n\tconst result = /* @__PURE__ */ new Map();\n\tconst namespace = contributions?.entityTypes;\n\tif (namespace === void 0) return result;\n\tconst walk = (node) => {\n\t\tfor (const value of Object.values(node)) if (isAuthoringEntityTypeDescriptor(value)) result.set(value.discriminator, value);\n\t\telse if (typeof value === \"object\" && value !== null) walk(value);\n\t};\n\twalk(namespace);\n\treturn result;\n}\n/**\n* The `PSL_DUPLICATE_ATTRIBUTE` diagnostic for a model attribute declared\n* more than once on one model. Shared by the built-in `@@control` path and\n* the contributed-model-attribute path so the code and wording stay in one\n* place. `name` is the bare attribute name (`control`, `rls`, …).\n*/\nfunction duplicateModelAttributeDiagnostic(input) {\n\treturn {\n\t\tcode: \"PSL_DUPLICATE_ATTRIBUTE\",\n\t\tmessage: `\\`@@${input.name}\\` declared more than once on model \"${input.modelName}\".`,\n\t\t...input.source.at(input.span)\n\t};\n}\nfunction isResolvedModelReference(value) {\n\tif (typeof value !== \"object\" || value === null || !(\"declaration\" in value)) return false;\n\tconst declaration = value.declaration;\n\treturn typeof declaration === \"object\" && declaration !== null && \"kind\" in declaration && declaration.kind === \"model\";\n}\nfunction validateBlockModelAttributeRequirements(input) {\n\tfor (const [blockSymbol, envelope] of input.parsedBlocks) {\n\t\tconst requirement = findBlockDescriptor(input.pslBlockDescriptors, blockSymbol.keyword)?.requiresModelAttribute;\n\t\tif (requirement === void 0) continue;\n\t\tconst target = envelope.values[requirement.parameter];\n\t\tif (!isResolvedModelReference(target)) continue;\n\t\tconst model = target.declaration;\n\t\tif (model.attributes.some((attribute) => attribute.name === requirement.attribute)) continue;\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_EXTENSION_TARGET_MODEL_MISSING_ATTRIBUTE\",\n\t\t\tmessage: `\\`${blockSymbol.keyword}\\` block \"${envelope.name}\" targets model \"${model.name}\", which does not declare \\`@@${requirement.attribute}\\`. Add \\`@@${requirement.attribute}\\` to model \"${model.name}\".`,\n\t\t\t...diagnosticSource(input.sources, blockSymbol.node.syntax).at(envelope.parameterSpans[requirement.parameter] ?? envelope.span)\n\t\t});\n\t}\n}\n/**\n* Walks the flat `modelAttributes` namespace tree in `authoringContributions`\n* and returns a map from bare `@@` attribute name to the matching\n* descriptor. The model-attribute loop in `buildModelNodeFromPsl` uses this\n* to dispatch a contributed attribute without naming any specific attribute.\n*/\nfunction buildModelAttributesByName(contributions) {\n\tconst result = /* @__PURE__ */ new Map();\n\tconst namespace = contributions?.modelAttributes;\n\tif (namespace === void 0) return result;\n\tconst walk = (node) => {\n\t\tfor (const value of Object.values(node)) if (isAuthoringModelAttributeDescriptor(value)) result.set(value.attribute, value);\n\t\telse if (typeof value === \"object\" && value !== null) walk(value);\n\t};\n\twalk(namespace);\n\treturn result;\n}\n/**\n* This pass is intentionally generic: no discriminator value is named here.\n* The factory (registered by the target pack) owns all block-specific logic.\n*/\nfunction lowerExtensionBlocksForNamespace(blocks, ownerNamespaceId, entityTypesByDiscriminator, entityContext, parsedBlocks, modelCoordinateOf, sources) {\n\tconst rows = [];\n\tfor (const blockSymbol of Object.values(blocks)) {\n\t\tconst envelope = parsedBlocks.get(blockSymbol);\n\t\tif (envelope === void 0) continue;\n\t\tconst descriptor = entityTypesByDiscriminator.get(envelope.kind);\n\t\tif (descriptor === void 0) continue;\n\t\tlet resolvedModelRefs;\n\t\tfor (const [paramName, value] of Object.entries(envelope.values)) {\n\t\t\tif (!isResolvedModelReference(value)) continue;\n\t\t\tconst coordinate = modelCoordinateOf(value.declaration);\n\t\t\tinvariant(coordinate !== void 0, `model mappings cover every collected model; \\`${envelope.keyword}\\` block \"${envelope.name}\" selected model \"${value.declaration.name}\" in \\`${paramName}\\` without a storage coordinate`);\n\t\t\tresolvedModelRefs = {\n\t\t\t\t...resolvedModelRefs ?? {},\n\t\t\t\t[paramName]: coordinate\n\t\t\t};\n\t\t}\n\t\tconst annotatedBlock = {\n\t\t\t...envelope,\n\t\t\tnamespaceId: ownerNamespaceId,\n\t\t\t...resolvedModelRefs !== void 0 ? { resolvedModelRefs } : {}\n\t\t};\n\t\tconst entity = instantiateAuthoringEntityType(descriptor.discriminator, descriptor, [annotatedBlock], {\n\t\t\t...entityContext,\n\t\t\tsourceId: sources.sourceFileFor(blockSymbol.node.syntax).filename\n\t\t});\n\t\tif (entity === void 0) continue;\n\t\tconst namespaceId = providesPslEntityPlacement(descriptor.output) ? descriptor.output.pslPlacement(entity).namespaceId : ownerNamespaceId;\n\t\trows.push({\n\t\t\tnamespaceId,\n\t\t\tentityKind: descriptor.discriminator,\n\t\t\tkey: envelope.name,\n\t\t\tentity\n\t\t});\n\t\tconst derivedValueSet = deriveValueSetFromEntity(descriptor.output, entity);\n\t\tif (derivedValueSet !== void 0) rows.push({\n\t\t\tnamespaceId,\n\t\t\tentityKind: \"valueSet\",\n\t\t\tkey: envelope.name,\n\t\t\tentity: derivedValueSet\n\t\t});\n\t}\n\treturn rows;\n}\nfunction processEnumDeclarations(input) {\n\tconst enumHandles = {};\n\tconst enumTypeDescriptors = /* @__PURE__ */ new Map();\n\tif (input.enumBlocks.length === 0) return {\n\t\tenumHandles,\n\t\tenumTypeDescriptors\n\t};\n\tconst enumDescriptor = getAuthoringEntity(input.authoringContributions, [\"enum\"]);\n\tif (!enumDescriptor) {\n\t\tfor (const symbol of input.enumBlocks) input.diagnostics.push({\n\t\t\tcode: \"PSL_ENUM_MISSING_FACTORY\",\n\t\t\tmessage: `enum \"${symbol.name}\" requires an \"enum\" entityType factory in the active authoring contributions`,\n\t\t\t...diagnosticSource(input.source.sources, symbol.node.syntax).at(symbol.span)\n\t\t});\n\t\treturn {\n\t\t\tenumHandles,\n\t\t\tenumTypeDescriptors\n\t\t};\n\t}\n\tfor (const symbol of input.enumBlocks) {\n\t\tconst envelope = input.parsedBlocks.get(symbol);\n\t\tinput.diagnostics.push(...enumMemberAttributeDiagnostics(symbol, input.source.sources));\n\t\tif (envelope === void 0) continue;\n\t\tconst handle = instantiateAuthoringEntityType(\"enum\", enumDescriptor, [envelope], {\n\t\t\t...input.entityContext,\n\t\t\tsourceId: input.source.sources.sourceFileFor(symbol.node.syntax).filename\n\t\t});\n\t\tif (handle === void 0 || handle === null) continue;\n\t\tenumHandles[envelope.name] = handle;\n\t\tenumTypeDescriptors.set(envelope.name, {\n\t\t\tcodecId: handle.codecId,\n\t\t\tnativeType: handle.nativeType\n\t\t});\n\t}\n\treturn {\n\t\tenumHandles,\n\t\tenumTypeDescriptors\n\t};\n}\n/**\n* The owning side of a relation is the one that declares `fields`/`references` on its\n* `@relation` attribute — those name the FK columns. A singular model-typed field whose\n* `@relation` carries only a name (or nothing at all) is the back side: infer prints exactly\n* that shape for a 1:1 back-relation whenever the FK needs disambiguating (two FKs between the\n* same table pair, or a self-referencing unique FK). Checking for the attribute's mere presence\n* would misclassify that back side as the owning side.\n*/\nfunction relationAttributeDeclaresOwningSide(relationAttribute) {\n\treturn getNamedArgument(relationAttribute, \"fields\") !== void 0 || getNamedArgument(relationAttribute, \"references\") !== void 0;\n}\nfunction relationNullabilityMismatch(relationField, localColumns, resolvedFields) {\n\treturn resolveToOneRelationNullable({\n\t\tdeclaredNullable: relationField.optional,\n\t\tlocalFieldNullability: resolvedFields.filter((resolvedField) => localColumns.includes(resolvedField.columnName)).map((resolvedField) => resolvedField.nullable),\n\t\townsReference: true\n\t}).contradiction !== void 0;\n}\nfunction relationNullabilityMismatchDiagnostic(modelName, relationAttribute, source) {\n\tconst fieldLabel = `Relation field \"${modelName}.${relationAttribute.field.name}\"`;\n\treturn {\n\t\tcode: \"PSL_RELATION_NULLABILITY_MISMATCH\",\n\t\tmessage: relationAttribute.field.optional ? `${fieldLabel} is optional but every field in @relation(fields: [...]) is required. Make one of those fields optional with \"?\" or remove \"?\" from \"${relationAttribute.field.name}\".` : `${fieldLabel} is required but a field in @relation(fields: [...]) is optional. Add \"?\" to \"${relationAttribute.field.name}\" or make those fields required.`,\n\t\t...source.at(relationAttribute.field.span)\n\t};\n}\nfunction buildModelNodeFromPsl(input) {\n\tconst { model, diagnostics } = input;\n\tconst source = diagnosticSource(input.sources, model.node.syntax);\n\tconst tableName = storageName(model, input.physicalNames);\n\tconst modelNamespaceId = input.namespaceId;\n\tconst namespaceExtensionEntitiesForModel = modelNamespaceId !== void 0 ? input.namespaceExtensionEntities?.get(modelNamespaceId) : void 0;\n\tconst resolvedFields = collectResolvedFields({\n\t\tmodel,\n\t\tphysicalNames: input.physicalNames,\n\t\tsymbolTable: input.symbolTable,\n\t\tenumTypeDescriptors: input.enumTypeDescriptors,\n\t\tnamedTypeDescriptors: input.namedTypeDescriptors,\n\t\tcomposedExtensions: input.composedExtensions,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tfamilyId: input.familyId,\n\t\ttargetId: input.targetId,\n\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\tdataTypeSupport: input.dataTypeSupport,\n\t\tgeneratorDescriptorById: input.generatorDescriptorById,\n\t\tdiagnostics,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\t...ifDefined(\"enumHandles\", input.enumHandles),\n\t\tcapabilities: input.capabilities,\n\t\t...ifDefined(\"namespaceId\", modelNamespaceId),\n\t\t...ifDefined(\"namespaceExtensionEntities\", namespaceExtensionEntitiesForModel),\n\t\t...ifDefined(\"codecLookup\", input.codecLookup)\n\t});\n\tconst inlineIdFields = resolvedFields.filter((field) => field.isId);\n\tif (inlineIdFields.length > 1) diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `Model \"${model.name}\" cannot declare inline @id on multiple fields; use model-level @@id([...]) for composite identity`,\n\t\t...source.at(model.span)\n\t});\n\tconst singleInlineIdField = inlineIdFields.length === 1 ? inlineIdFields[0] : void 0;\n\tlet primaryKey = singleInlineIdField ? {\n\t\tcolumns: [singleInlineIdField.columnName],\n\t\t...ifDefined(\"name\", singleInlineIdField.idName)\n\t} : void 0;\n\tconst hasInlinePrimaryKey = primaryKey !== void 0;\n\tlet blockPrimaryKeyDeclared = false;\n\tlet controlPolicyDeclared = false;\n\tlet controlPolicy;\n\tconst declaredContributedModelAttributes = /* @__PURE__ */ new Set();\n\tconst modelAttributeEntities = {};\n\tconst resultBackrelationCandidates = [];\n\tfor (const field of Object.values(model.fields)) {\n\t\tconst backrelationTarget = backrelationTargetSymbol(field, input.binder);\n\t\tif (backrelationTarget === void 0) continue;\n\t\tconst relationAttribute = getAttribute(field.attributes, \"relation\");\n\t\tif (!field.list && relationAttribute && relationAttributeDeclaresOwningSide(relationAttribute)) continue;\n\t\tconst attributesValid = validateBackrelationFieldAttributes({\n\t\t\tmodelName: model.name,\n\t\t\tfield,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tdiagnostics,\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId\n\t\t});\n\t\tlet relationName;\n\t\tif (relationAttribute) {\n\t\t\tconst parsedRelation = interpretRelationAttribute({\n\t\t\t\tselfModel: model,\n\t\t\t\tfield,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (!parsedRelation) continue;\n\t\t\tif (parsedRelation.fields || parsedRelation.references) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Backrelation list field \"${model.name}.${field.name}\" cannot declare fields/references; define them on the FK-side relation field`,\n\t\t\t\t\t...source.at(relationAttribute.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (parsedRelation.onDelete || parsedRelation.onUpdate || parsedRelation.index !== void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Backrelation list field \"${model.name}.${field.name}\" cannot declare onDelete/onUpdate/index; define them on the FK-side relation field`,\n\t\t\t\t\t...source.at(relationAttribute.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trelationName = parsedRelation.name;\n\t\t}\n\t\tif (!attributesValid) continue;\n\t\tresultBackrelationCandidates.push({\n\t\t\tmodelName: model,\n\t\t\ttableName,\n\t\t\tfield,\n\t\t\ttargetModelName: backrelationTarget,\n\t\t\tisList: field.list,\n\t\t\t...ifDefined(\"relationName\", relationName)\n\t\t});\n\t}\n\tconst relationAttributes = Object.values(model.fields).map((field) => ({\n\t\tfield,\n\t\trelation: getAttribute(field.attributes, \"relation\")\n\t})).filter((entry) => Boolean(entry.relation));\n\tconst uniqueConstraints = resolvedFields.filter((field) => field.isUnique).map((field) => ({\n\t\tcolumns: [field.columnName],\n\t\t...ifDefined(\"name\", field.uniqueName)\n\t}));\n\tconst indexNodes = [];\n\tconst checkNodes = [];\n\tconst foreignKeyNodes = [];\n\tconst modelAttributeNodes = Array.from(model.node.attributes());\n\tfor (const [attributeIndex, modelAttribute] of model.attributes.entries()) {\n\t\tif (!Object.hasOwn(sqlAttributeSpecs.model, modelAttribute.name) && !input.modelAttributesByName.has(modelAttribute.name)) continue;\n\t\tif (modelAttribute.name === \"map\") continue;\n\t\tif (modelAttribute.name === \"discriminator\" || modelAttribute.name === \"base\") continue;\n\t\tif (modelAttribute.name === \"control\") {\n\t\t\tif (controlPolicyDeclared) {\n\t\t\t\tdiagnostics.push(duplicateModelAttributeDiagnostic({\n\t\t\t\t\tname: \"control\",\n\t\t\t\t\tmodelName: model.name,\n\t\t\t\t\tsource,\n\t\t\t\t\tspan: modelAttribute.span\n\t\t\t\t}));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcontrolPolicyDeclared = true;\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.control(),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) controlPolicy = parsed.policy;\n\t\t\tcontinue;\n\t\t}\n\t\tconst attributeLabel = `Model \"${model.name}\" @@${modelAttribute.name}`;\n\t\tif (modelAttribute.name === \"id\") {\n\t\t\tif (blockPrimaryKeyDeclared) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `Model \"${model.name}\" declares @@id more than once`,\n\t\t\t\t\t...source.at(modelAttribute.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (hasInlinePrimaryKey) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `Model \"${model.name}\" cannot declare both field-level @id and model-level @@id`,\n\t\t\t\t\t...source.at(modelAttribute.span)\n\t\t\t\t});\n\t\t\t\tblockPrimaryKeyDeclared = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.id(),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst fieldNames = parsed.fields;\n\t\t\tconst nullableFieldName = fieldNames.find((name) => model.fields[name]?.optional === true);\n\t\t\tif (nullableFieldName !== void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `${attributeLabel} cannot include optional field \"${nullableFieldName}\"; primary key columns must be NOT NULL`,\n\t\t\t\t\t...source.at(modelAttribute.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst columnNames = mapFieldNamesToColumns({\n\t\t\t\tmodel,\n\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\tfieldNames,\n\t\t\t\tsource,\n\t\t\t\tdiagnostics,\n\t\t\t\tspan: modelAttribute.span,\n\t\t\t\tentityLabel: attributeLabel\n\t\t\t});\n\t\t\tif (!columnNames) continue;\n\t\t\tprimaryKey = {\n\t\t\t\tcolumns: columnNames,\n\t\t\t\t...ifDefined(\"name\", parsed.map)\n\t\t\t};\n\t\t\tblockPrimaryKeyDeclared = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (modelAttribute.name === \"unique\") {\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.unique(),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst columnNames = mapFieldNamesToColumns({\n\t\t\t\tmodel,\n\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\tfieldNames: parsed.fields,\n\t\t\t\tsource,\n\t\t\t\tdiagnostics,\n\t\t\t\tspan: modelAttribute.span,\n\t\t\t\tentityLabel: attributeLabel\n\t\t\t});\n\t\t\tif (!columnNames) continue;\n\t\t\tuniqueConstraints.push({\n\t\t\t\tcolumns: columnNames,\n\t\t\t\t...ifDefined(\"name\", parsed.map)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (modelAttribute.name === \"index\") {\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.index(),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tlet columnNames;\n\t\t\tif (parsed.fields !== void 0) {\n\t\t\t\tconst mapped = mapFieldNamesToColumns({\n\t\t\t\t\tmodel,\n\t\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\t\tfieldNames: parsed.fields,\n\t\t\t\t\tsource,\n\t\t\t\t\tdiagnostics,\n\t\t\t\t\tspan: modelAttribute.span,\n\t\t\t\t\tentityLabel: attributeLabel\n\t\t\t\t});\n\t\t\t\tif (!mapped) continue;\n\t\t\t\tcolumnNames = mapped;\n\t\t\t}\n\t\t\tindexNodes.push(blindCast({\n\t\t\t\t...ifDefined(\"columns\", columnNames),\n\t\t\t\t...ifDefined(\"expression\", parsed.expression),\n\t\t\t\twhere: parsed.where,\n\t\t\t\tunique: parsed.unique,\n\t\t\t\tname: parsed.name,\n\t\t\t\tmap: parsed.map,\n\t\t\t\ttype: parsed.type,\n\t\t\t\toptions: parsed.options\n\t\t\t}));\n\t\t\tcontinue;\n\t\t}\n\t\tif (modelAttribute.name === \"check\") {\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tif (input.capabilities[\"sql\"]?.[\"checkConstraint\"] !== true) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_CHECK_UNSUPPORTED_TARGET\",\n\t\t\t\t\tmessage: `Model \"${model.name}\" declares \"@@check\", but target \"${input.targetId}\" does not support check constraints (the adapter does not report the \"checkConstraint\" capability). Remove the check or author it against a target that supports check constraints.`,\n\t\t\t\t\t...source.at(modelAttribute.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.check(),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tcheckNodes.push({\n\t\t\t\texpression: parsed.expression,\n\t\t\t\tname: parsed.name,\n\t\t\t\tmap: parsed.map\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst contributedModelAttribute = input.modelAttributesByName.get(modelAttribute.name);\n\t\tif (contributedModelAttribute !== void 0) {\n\t\t\tif (contributedModelAttribute.repeatable !== true && declaredContributedModelAttributes.has(modelAttribute.name)) {\n\t\t\t\tdiagnostics.push(duplicateModelAttributeDiagnostic({\n\t\t\t\t\tname: modelAttribute.name,\n\t\t\t\t\tmodelName: model.name,\n\t\t\t\t\tsource,\n\t\t\t\t\tspan: modelAttribute.span\n\t\t\t\t}));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdeclaredContributedModelAttributes.add(modelAttribute.name);\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst specFactory = input.contributedModelAttributeSpecs[contributedModelAttribute.attribute];\n\t\t\tif (specFactory === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: specFactory({\n\t\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\t\tmodel,\n\t\t\t\t\tcontrolMutationDefaults: {\n\t\t\t\t\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\t\t\t\t\tdataTypeEntries: input.dataTypeSupport.entries\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst lowered = blindCast(contributedModelAttribute.lower)(parsed, {\n\t\t\t\tfamily: input.familyId,\n\t\t\t\ttarget: input.targetId,\n\t\t\t\tmodelName: model.name,\n\t\t\t\tstorageName: tableName,\n\t\t\t\tfieldStorageName: (fieldName) => {\n\t\t\t\t\tconst field = model.fields[fieldName];\n\t\t\t\t\treturn field === void 0 ? void 0 : storageName(field, input.physicalNames);\n\t\t\t\t},\n\t\t\t\tfieldCodecId: (fieldName) => resolvedFields.find((resolved) => resolved.field.name === fieldName)?.descriptor.codecId,\n\t\t\t\tnamespaceId: modelNamespaceId ?? input.defaultNamespaceId,\n\t\t\t\tsourceId: source.sources.sourceFileFor(source.node).filename,\n\t\t\t\tdiagnostics: { push: (d) => {\n\t\t\t\t\tdiagnostics.pushExternal(blindCast(d));\n\t\t\t\t} }\n\t\t\t});\n\t\t\tif (lowered === void 0) continue;\n\t\t\tif (\"index\" in lowered) {\n\t\t\t\tif (!isAuthoredIndexInput(lowered.index)) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `model attribute \"@@${modelAttribute.name}\" on model \"${model.name}\" lowered to a malformed index. A contributed attribute that returns { index } must return an authored-index input: exactly one of a columns list or an expression, plus explicit where/unique/name/map and a type-with-options pair.`, { meta: {\n\t\t\t\t\tattribute: modelAttribute.name,\n\t\t\t\t\tmodelName: model.name\n\t\t\t\t} });\n\t\t\t\tindexNodes.push(lowered.index);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst slot = modelAttributeEntities[contributedModelAttribute.attribute] ?? {};\n\t\t\tmodelAttributeEntities[contributedModelAttribute.attribute] = slot;\n\t\t\tslot[lowered.key] = lowered.entity;\n\t\t\tcontinue;\n\t\t}\n\t\tthrow new InternalError(`Model attribute \"@@${modelAttribute.name}\" is registered but has no interpreter branch`);\n\t}\n\tconst resultFkRelationMetadata = [];\n\tconst resultInvalidFkPairings = [];\n\tconst resultCrossSpaceRelations = [];\n\tfor (const relationAttribute of relationAttributes) {\n\t\tconst { typeName: fieldTypeName, typeNamespaceId: fieldTypeNamespaceId, typeContractSpaceId: fieldTypeContractSpaceId } = relationAttribute.field;\n\t\tif (relationAttribute.field.list) {\n\t\t\tif (fieldTypeContractSpaceId !== void 0) diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_CROSS_SPACE_LIST\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" is a cross-space list relation (type \"${fieldTypeContractSpaceId}:${fieldTypeNamespaceId !== void 0 ? `${fieldTypeNamespaceId}.` : \"\"}${fieldTypeName}[]\"). Cross-space relations must be singular in v0.1 — list cross-space relations are not supported.`,\n\t\t\t\t...source.at(relationAttribute.field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!relationAttributeDeclaresOwningSide(relationAttribute.relation)) continue;\n\t\tif (fieldTypeContractSpaceId !== void 0) {\n\t\t\tconst extContractForSpace = input.composedExtensionContracts.get(fieldTypeContractSpaceId);\n\t\t\tif (extContractForSpace === void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNKNOWN_CONTRACT_SPACE\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" references contract space \"${fieldTypeContractSpaceId}\" which is not declared in extensions. Add \"${fieldTypeContractSpaceId}\" to extensions in prisma.config.ts.`,\n\t\t\t\t\t...source.at(relationAttribute.field.span),\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tspace: fieldTypeContractSpaceId,\n\t\t\t\t\t\tsuggestedPack: fieldTypeContractSpaceId\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst parsedRelation = interpretRelationAttribute({\n\t\t\t\tselfModel: model,\n\t\t\t\tfield: relationAttribute.field,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (!parsedRelation) continue;\n\t\t\tif (!parsedRelation.fields || !parsedRelation.references) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" requires fields and references arguments`,\n\t\t\t\t\t...source.at(relationAttribute.relation.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst localColumns = mapFieldNamesToColumns({\n\t\t\t\tmodel,\n\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\tfieldNames: parsedRelation.fields,\n\t\t\t\tsource,\n\t\t\t\tdiagnostics,\n\t\t\t\tspan: relationAttribute.relation.span,\n\t\t\t\tentityLabel: `Relation field \"${model.name}.${relationAttribute.field.name}\"`\n\t\t\t});\n\t\t\tif (!localColumns) continue;\n\t\t\tif (relationNullabilityMismatch(relationAttribute.field, localColumns, resolvedFields)) {\n\t\t\t\tdiagnostics.push(relationNullabilityMismatchDiagnostic(model.name, relationAttribute, source));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst referencedColumns = parsedRelation.references;\n\t\t\tif (localColumns.length !== referencedColumns.length) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" must provide the same number of fields and references`,\n\t\t\t\t\t...source.at(relationAttribute.relation.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst onDelete = parsedRelation.onDelete ? normalizeReferentialAction(parsedRelation.onDelete) : void 0;\n\t\t\tconst onUpdate = parsedRelation.onUpdate ? normalizeReferentialAction(parsedRelation.onUpdate) : void 0;\n\t\t\tconst crossTargetNamespaceId = fieldTypeNamespaceId ?? UNBOUND_NAMESPACE_ID;\n\t\t\tconst extContract = extContractForSpace;\n\t\t\tconst resolvedTable = extContract.domain.namespaces[crossTargetNamespaceId]?.models[fieldTypeName]?.storage[\"table\"];\n\t\t\tif (typeof resolvedTable !== \"string\") {\n\t\t\t\tconst availableModels = Object.keys(extContract.domain.namespaces[crossTargetNamespaceId]?.models ?? {}).join(\", \") || \"(none)\";\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNKNOWN_CROSS_SPACE_TARGET\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" references model \"${fieldTypeName}\" in namespace \"${crossTargetNamespaceId}\" of space \"${fieldTypeContractSpaceId}\", but that model was not found in the extension contract. Available models: ${availableModels}`,\n\t\t\t\t\t...source.at(relationAttribute.field.span),\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tspace: fieldTypeContractSpaceId,\n\t\t\t\t\t\tnamespace: crossTargetNamespaceId,\n\t\t\t\t\t\tmodel: fieldTypeName\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst crossTargetTableName = resolvedTable;\n\t\t\tforeignKeyNodes.push({\n\t\t\t\tcolumns: localColumns,\n\t\t\t\treferences: {\n\t\t\t\t\tmodel: fieldTypeName,\n\t\t\t\t\ttable: crossTargetTableName,\n\t\t\t\t\tcolumns: referencedColumns,\n\t\t\t\t\tnamespaceId: crossTargetNamespaceId,\n\t\t\t\t\tspaceId: fieldTypeContractSpaceId\n\t\t\t\t},\n\t\t\t\t...ifDefined(\"name\", parsedRelation.map),\n\t\t\t\t...ifDefined(\"onDelete\", onDelete),\n\t\t\t\t...ifDefined(\"onUpdate\", onUpdate),\n\t\t\t\t...ifDefined(\"index\", parsedRelation.index)\n\t\t\t});\n\t\t\tresultCrossSpaceRelations.push({\n\t\t\t\tfieldName: relationAttribute.field.name,\n\t\t\t\ttoModel: fieldTypeName,\n\t\t\t\ttoTable: crossTargetTableName,\n\t\t\t\tcardinality: \"N:1\",\n\t\t\t\tnullable: relationAttribute.field.optional,\n\t\t\t\tspaceId: fieldTypeContractSpaceId,\n\t\t\t\tnamespaceId: crossTargetNamespaceId,\n\t\t\t\ton: {\n\t\t\t\t\tparentTable: tableName,\n\t\t\t\t\tparentColumns: localColumns,\n\t\t\t\t\tchildTable: crossTargetTableName,\n\t\t\t\t\tchildColumns: referencedColumns\n\t\t\t\t}\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst qualifiedTypeName = fieldTypeNamespaceId ? `${fieldTypeNamespaceId}.${fieldTypeName}` : fieldTypeName;\n\t\tconst typeReference = typeReferenceNode(relationAttribute.field);\n\t\tconst targetResolution = typeReference === void 0 ? void 0 : input.binder.symbolForNode(typeReference);\n\t\tif (targetResolution?.kind === \"unresolved\") continue;\n\t\tconst targetModel = targetResolution?.kind === \"model\" ? targetResolution.symbol : void 0;\n\t\tif (targetModel === void 0) {\n\t\t\tconst foundKind = targetResolution === void 0 ? void 0 : relationTargetKindLabel(targetResolution);\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_TARGET\",\n\t\t\t\tmessage: foundKind === void 0 ? `Relation field \"${model.name}.${relationAttribute.field.name}\" references unknown model \"${qualifiedTypeName}\"` : `Relation field \"${model.name}.${relationAttribute.field.name}\" references ${foundKind} \"${qualifiedTypeName}\"; a relation target must be a model`,\n\t\t\t\t...source.at(relationAttribute.field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst parsedRelation = interpretRelationAttribute({\n\t\t\tselfModel: model,\n\t\t\tfield: relationAttribute.field,\n\t\t\tsymbols: input.symbolTable,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tdiagnostics\n\t\t});\n\t\tif (!parsedRelation) continue;\n\t\tif (!parsedRelation.fields || !parsedRelation.references) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" requires fields and references arguments`,\n\t\t\t\t...source.at(relationAttribute.relation.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst localColumns = mapFieldNamesToColumns({\n\t\t\tmodel,\n\t\t\tphysicalNames: input.physicalNames,\n\t\t\tfieldNames: parsedRelation.fields,\n\t\t\tsource,\n\t\t\tdiagnostics,\n\t\t\tspan: relationAttribute.relation.span,\n\t\t\tentityLabel: `Relation field \"${model.name}.${relationAttribute.field.name}\"`\n\t\t});\n\t\tif (!localColumns) continue;\n\t\tif (relationNullabilityMismatch(relationAttribute.field, localColumns, resolvedFields)) {\n\t\t\tdiagnostics.push(relationNullabilityMismatchDiagnostic(model.name, relationAttribute, source));\n\t\t\tresultInvalidFkPairings.push({\n\t\t\t\tdeclaringModel: model,\n\t\t\t\ttargetModel,\n\t\t\t\t...ifDefined(\"relationName\", parsedRelation.name)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst referencedColumns = mapFieldNamesToColumns({\n\t\t\tmodel: targetModel,\n\t\t\tphysicalNames: input.physicalNames,\n\t\t\tfieldNames: parsedRelation.references,\n\t\t\tsource,\n\t\t\tdiagnostics,\n\t\t\tspan: relationAttribute.relation.span,\n\t\t\tentityLabel: `Relation field \"${model.name}.${relationAttribute.field.name}\"`\n\t\t});\n\t\tif (!referencedColumns) continue;\n\t\tif (localColumns.length !== referencedColumns.length) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" must provide the same number of fields and references`,\n\t\t\t\t...source.at(relationAttribute.relation.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst onDelete = parsedRelation.onDelete ? normalizeReferentialAction(parsedRelation.onDelete) : void 0;\n\t\tconst onUpdate = parsedRelation.onUpdate ? normalizeReferentialAction(parsedRelation.onUpdate) : void 0;\n\t\tconst targetNamespaceId = resolveNamespaceIdForSqlTarget({\n\t\t\tbucketName: targetModel.node.syntax.findAncestor(NamespaceDeclarationAst.cast)?.name()?.name() ?? UNSPECIFIED_PSL_NAMESPACE_ID,\n\t\t\ttargetId: input.targetId\n\t\t});\n\t\tconst targetTableName = storageName(targetModel, input.physicalNames);\n\t\tforeignKeyNodes.push({\n\t\t\tcolumns: localColumns,\n\t\t\treferences: {\n\t\t\t\tmodel: targetModel.name,\n\t\t\t\ttable: targetTableName,\n\t\t\t\tcolumns: referencedColumns,\n\t\t\t\t...ifDefined(\"namespaceId\", targetNamespaceId)\n\t\t\t},\n\t\t\t...ifDefined(\"name\", parsedRelation.map),\n\t\t\t...ifDefined(\"onDelete\", onDelete),\n\t\t\t...ifDefined(\"onUpdate\", onUpdate),\n\t\t\t...ifDefined(\"index\", parsedRelation.index)\n\t\t});\n\t\tresultFkRelationMetadata.push({\n\t\t\tdeclaringModelName: model,\n\t\t\tdeclaringFieldName: relationAttribute.field.name,\n\t\t\tdeclaringTableName: tableName,\n\t\t\t...ifDefined(\"declaringNamespaceId\", modelNamespaceId),\n\t\t\ttargetModelName: targetModel,\n\t\t\ttargetTableName,\n\t\t\t...ifDefined(\"targetNamespaceId\", targetNamespaceId),\n\t\t\t...ifDefined(\"relationName\", parsedRelation.name),\n\t\t\tnullable: relationAttribute.field.optional,\n\t\t\tlocalColumns,\n\t\t\treferencedColumns\n\t\t});\n\t}\n\treturn {\n\t\tmodelNode: {\n\t\t\tmodelName: model.name,\n\t\t\ttableName,\n\t\t\tfields: resolvedFields.map((resolvedField) => {\n\t\t\t\tconst enumHandle = input.enumHandles?.get(resolvedField.field.typeName);\n\t\t\t\treturn {\n\t\t\t\t\tfieldName: resolvedField.field.name,\n\t\t\t\t\tcolumnName: resolvedField.columnName,\n\t\t\t\t\tdescriptor: resolvedField.descriptor,\n\t\t\t\t\tnullable: resolvedField.nullable,\n\t\t\t\t\t...resolvedField.many && resolvedField.valueObjectTypeName === void 0 ? { many: true } : {},\n\t\t\t\t\t...ifDefined(\"default\", resolvedField.defaultValue),\n\t\t\t\t\t...ifDefined(\"executionDefaults\", resolvedField.executionDefaults),\n\t\t\t\t\t...ifDefined(\"noCheck\", resolvedField.noCheck),\n\t\t\t\t\t...ifDefined(\"enumTypeHandle\", enumHandle)\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...ifDefined(\"id\", primaryKey),\n\t\t\t...uniqueConstraints.length > 0 ? { uniques: uniqueConstraints } : {},\n\t\t\t...indexNodes.length > 0 ? { indexes: indexNodes } : {},\n\t\t\t...checkNodes.length > 0 ? { checks: checkNodes } : {},\n\t\t\t...foreignKeyNodes.length > 0 ? { foreignKeys: foreignKeyNodes } : {},\n\t\t\t...ifDefined(\"control\", controlPolicy)\n\t\t},\n\t\tfkRelationMetadata: resultFkRelationMetadata,\n\t\tinvalidFkPairings: resultInvalidFkPairings,\n\t\tcrossSpaceRelations: resultCrossSpaceRelations,\n\t\tbackrelationCandidates: resultBackrelationCandidates,\n\t\tresolvedFields,\n\t\tmodelAttributeEntities\n\t};\n}\nfunction buildValueObjects(input) {\n\tconst { compositeTypes, enumTypeDescriptors, namedTypeDescriptors, scalarColumnDescriptors, composedExtensions, familyId, targetId, authoringContributions, diagnostics, sources, binder } = input;\n\tconst valueObjects = {};\n\tfor (const compositeType of compositeTypes) {\n\t\tconst fields = {};\n\t\tfor (const field of Object.values(compositeType.fields)) {\n\t\t\tconst fieldTypeReference = typeReferenceNode(field);\n\t\t\tconst fieldTypeResolution = fieldTypeReference === void 0 ? void 0 : binder.symbolForNode(fieldTypeReference);\n\t\t\tif (fieldTypeResolution?.kind === \"compositeType\") {\n\t\t\t\tconst result = {\n\t\t\t\t\ttype: {\n\t\t\t\t\t\tkind: \"valueObject\",\n\t\t\t\t\t\tname: fieldTypeResolution.symbol.name\n\t\t\t\t\t},\n\t\t\t\t\tnullable: field.optional\n\t\t\t\t};\n\t\t\t\tfields[field.name] = field.list ? {\n\t\t\t\t\t...result,\n\t\t\t\t\tmany: true\n\t\t\t\t} : result;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst resolved = resolveFieldTypeDescriptor({\n\t\t\t\tfield,\n\t\t\t\tenumTypeDescriptors,\n\t\t\t\tnamedTypeDescriptors,\n\t\t\t\tscalarColumnDescriptors,\n\t\t\t\tauthoringContributions,\n\t\t\t\tcomposedExtensions,\n\t\t\t\tfamilyId,\n\t\t\t\ttargetId,\n\t\t\t\tdiagnostics,\n\t\t\t\tsources,\n\t\t\t\tentityLabel: `Field \"${compositeType.name}.${field.name}\"`\n\t\t\t});\n\t\t\tif (!resolved.ok) {\n\t\t\t\tif (!resolved.alreadyReported && fieldTypeResolution?.kind !== \"unresolved\") diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${compositeType.name}.${field.name}\" type \"${field.typeName}\" is not supported`,\n\t\t\t\t\t...diagnosticSource(sources, field.node.syntax).at(field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst scalarField = {\n\t\t\t\tnullable: field.optional,\n\t\t\t\ttype: {\n\t\t\t\t\tkind: \"scalar\",\n\t\t\t\t\tcodecId: resolved.descriptor.codecId\n\t\t\t\t}\n\t\t\t};\n\t\t\tfields[field.name] = field.list ? {\n\t\t\t\t...scalarField,\n\t\t\t\tmany: true\n\t\t\t} : scalarField;\n\t\t}\n\t\tvalueObjects[compositeType.name] = { fields };\n\t}\n\treturn valueObjects;\n}\nfunction patchModelDomainFields(models, modelResolvedFields) {\n\tlet patched = models;\n\tfor (const [modelName, resolvedFields] of modelResolvedFields) {\n\t\tconst model = patched[modelName];\n\t\tif (!model) continue;\n\t\tlet needsPatch = false;\n\t\tconst patchedFields = { ...model.fields };\n\t\tfor (const rf of resolvedFields) if (rf.valueObjectTypeName) {\n\t\t\tneedsPatch = true;\n\t\t\tpatchedFields[rf.field.name] = {\n\t\t\t\tnullable: rf.field.optional,\n\t\t\t\ttype: {\n\t\t\t\t\tkind: \"valueObject\",\n\t\t\t\t\tname: rf.valueObjectTypeName\n\t\t\t\t},\n\t\t\t\t...rf.many ? { many: true } : {}\n\t\t\t};\n\t\t} else if (rf.many && rf.scalarCodecId) {\n\t\t\tneedsPatch = true;\n\t\t\tconst builtType = model.fields[rf.field.name]?.type;\n\t\t\tconst typeParams = builtType?.kind === \"scalar\" ? builtType.typeParams : void 0;\n\t\t\tpatchedFields[rf.field.name] = {\n\t\t\t\tnullable: rf.field.optional,\n\t\t\t\ttype: {\n\t\t\t\t\tkind: \"scalar\",\n\t\t\t\t\tcodecId: rf.scalarCodecId,\n\t\t\t\t\t...ifDefined(\"typeParams\", typeParams)\n\t\t\t\t},\n\t\t\t\tmany: true\n\t\t\t};\n\t\t}\n\t\tif (needsPatch) patched = {\n\t\t\t...patched,\n\t\t\t[modelName]: {\n\t\t\t\t...model,\n\t\t\t\tfields: patchedFields\n\t\t\t}\n\t\t};\n\t}\n\treturn patched;\n}\nfunction collectPolymorphismDeclarations(identities, symbols, sources, binder, diagnostics) {\n\tconst discriminatorDeclarations = /* @__PURE__ */ new Map();\n\tconst baseDeclarations = /* @__PURE__ */ new Map();\n\tfor (const { model, key } of identities.values()) {\n\t\tconst source = diagnosticSource(sources, model.node.syntax);\n\t\tconst discriminatorNode = getAttribute(model.attributes, \"discriminator\")?.node;\n\t\tif (discriminatorNode !== void 0) {\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode: discriminatorNode,\n\t\t\t\tsymbols,\n\t\t\t\tspec: sqlAttributeSpecs.model.discriminator(),\n\t\t\t\tmodel,\n\t\t\t\tsources,\n\t\t\t\tbinder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) {\n\t\t\t\tconst span = nodePslSpan(discriminatorNode.syntax, sources);\n\t\t\t\tconst discField = model.fields[parsed.field];\n\t\t\t\tif (discField && discField.typeName !== \"String\") diagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `Discriminator field \"${parsed.field}\" on model \"${model.name}\" must be of type String, but is \"${discField.typeName}\"`,\n\t\t\t\t\t...source.at(span)\n\t\t\t\t});\n\t\t\t\telse discriminatorDeclarations.set(key, {\n\t\t\t\t\tmodel,\n\t\t\t\t\tfieldName: parsed.field,\n\t\t\t\t\tspan,\n\t\t\t\t\tsource\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tconst baseNode = getAttribute(model.attributes, \"base\")?.node;\n\t\tif (baseNode !== void 0) {\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode: baseNode,\n\t\t\t\tsymbols,\n\t\t\t\tspec: sqlAttributeSpecs.model.base(),\n\t\t\t\tmodel,\n\t\t\t\tsources,\n\t\t\t\tbinder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) {\n\t\t\t\tconst base = identities.get(parsed.base.declaration);\n\t\t\t\tinvariant(base !== void 0, `Resolved base model \"${parsed.base.declaration.name}\" is missing from the collected model identities`);\n\t\t\t\tbaseDeclarations.set(key, {\n\t\t\t\t\tmodel,\n\t\t\t\t\tsource,\n\t\t\t\t\tbase,\n\t\t\t\t\tvalue: parsed.value,\n\t\t\t\t\tspan: nodePslSpan(baseNode.syntax, sources)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tdiscriminatorDeclarations,\n\t\tbaseDeclarations\n\t};\n}\nfunction resolvePolymorphism(models, physicalNames, discriminatorDeclarations, baseDeclarations, syntheticPkFieldsByVariant, stiBaseFieldsByBase, diagnostics) {\n\tlet patched = models;\n\tfor (const [baseKey, fieldNames] of stiBaseFieldsByBase) {\n\t\tconst baseModel = patched[baseKey];\n\t\tif (!baseModel || fieldNames.length === 0) continue;\n\t\tpatched = {\n\t\t\t...patched,\n\t\t\t[baseKey]: stripStorageOnlyDomainFields(baseModel, fieldNames)\n\t\t};\n\t}\n\tfor (const [modelKey, decl] of discriminatorDeclarations) {\n\t\tconst modelName = decl.model.name;\n\t\tif (baseDeclarations.has(modelKey)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_DISCRIMINATOR_AND_BASE\",\n\t\t\t\tmessage: `Model \"${modelName}\" cannot have both @@discriminator and @@base`,\n\t\t\t\t...decl.source.at(decl.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst model = patched[modelKey];\n\t\tif (!model) continue;\n\t\tconst variants = {};\n\t\tconst seenValues = /* @__PURE__ */ new Map();\n\t\tfor (const baseDecl of baseDeclarations.values()) {\n\t\t\tif (baseDecl.base.key !== modelKey) continue;\n\t\t\tconst variantName = baseDecl.model.name;\n\t\t\tconst existingVariant = seenValues.get(baseDecl.value);\n\t\t\tif (existingVariant) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_DUPLICATE_DISCRIMINATOR_VALUE\",\n\t\t\t\t\tmessage: `Discriminator value \"${baseDecl.value}\" is used by both \"${existingVariant}\" and \"${variantName}\" on base model \"${modelName}\"`,\n\t\t\t\t\t...baseDecl.source.at(baseDecl.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenValues.set(baseDecl.value, variantName);\n\t\t\tvariants[variantName] = { value: baseDecl.value };\n\t\t}\n\t\tif (Object.keys(variants).length === 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_ORPHANED_DISCRIMINATOR\",\n\t\t\t\tmessage: `Model \"${modelName}\" has @@discriminator but no variant models declare @@base(${modelName}, ...)`,\n\t\t\t\t...decl.source.at(decl.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tpatched = {\n\t\t\t...patched,\n\t\t\t[modelKey]: {\n\t\t\t\t...model,\n\t\t\t\tdiscriminator: { field: decl.fieldName },\n\t\t\t\tvariants\n\t\t\t}\n\t\t};\n\t}\n\tfor (const [variantKey, baseDecl] of baseDeclarations) {\n\t\tconst variantName = baseDecl.model.name;\n\t\tconst baseName = baseDecl.base.model.name;\n\t\tif (!discriminatorDeclarations.has(baseDecl.base.key)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_ORPHANED_BASE\",\n\t\t\t\tmessage: `Model \"${variantName}\" declares @@base(${baseName}, ...) but \"${baseName}\" has no @@discriminator`,\n\t\t\t\t...baseDecl.source.at(baseDecl.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (discriminatorDeclarations.has(variantKey)) continue;\n\t\tconst variantModel = patched[variantKey];\n\t\tif (!variantModel) continue;\n\t\tconst resolvedTable = storageName(getAttribute(baseDecl.model.attributes, \"map\") !== void 0 ? baseDecl.model : baseDecl.base.model, physicalNames);\n\t\tconst patchedVariant = {\n\t\t\t...variantModel,\n\t\t\tbase: crossRef(baseName, baseDecl.base.namespaceId),\n\t\t\t...resolvedTable ? { storage: {\n\t\t\t\t...variantModel.storage,\n\t\t\t\ttable: resolvedTable\n\t\t\t} } : {}\n\t\t};\n\t\tpatched = {\n\t\t\t...patched,\n\t\t\t[variantKey]: stripStorageOnlyDomainFields(patchedVariant, syntheticPkFieldsByVariant.get(variantKey) ?? [])\n\t\t};\n\t}\n\treturn patched;\n}\n/**\n* Multi-table-inheritance variants (`@@base` + their own `@@map`) live in a\n* separate table from their base. The ORM joins that table to the base on the\n* shared primary key (`base.id = variant.id`), so the variant storage table\n* must carry the base PK column even though the variant domain model declares\n* only its own fields. This enriches each MTI variant's `ModelNode` with that\n* link column, a primary key on it, and a FK back to the base table.\n*\n* The link column is reported back per variant in `syntheticPkFieldsByVariant`\n* so the domain-model patch can drop it again — keeping the variant's domain\n* surface thin (its create/read inputs don't gain a redundant `id`) while the\n* storage table stays joinable. Single-table-inheritance variants (no own\n* table) are left untouched.\n*/\nfunction materializeMtiVariantStorageLinks(modelNodes, baseDeclarations, stiVariantKeys, defaultNamespaceId) {\n\tconst keyOf = (node) => modelCoordinateKey(node.namespaceId ?? defaultNamespaceId, node.modelName);\n\tconst nodeByModel = new Map(modelNodes.map((node) => [keyOf(node), node]));\n\tconst syntheticPkFieldsByVariant = /* @__PURE__ */ new Map();\n\treturn {\n\t\tmodelNodes: modelNodes.map((node) => {\n\t\t\tconst variantKey = keyOf(node);\n\t\t\tconst baseDecl = baseDeclarations.get(variantKey);\n\t\t\tif (!baseDecl) return node;\n\t\t\tconst baseNode = nodeByModel.get(baseDecl.base.key);\n\t\t\tif (!baseNode) return node;\n\t\t\tif (stiVariantKeys.has(variantKey)) return node;\n\t\t\tconst basePrimaryKey = baseNode.id;\n\t\t\tif (!basePrimaryKey || basePrimaryKey.columns.length === 0) return node;\n\t\t\tconst existingColumns = new Set(node.fields.map((field) => field.columnName));\n\t\t\tconst linkFields = [];\n\t\t\tfor (const pkColumn of basePrimaryKey.columns) {\n\t\t\t\tif (existingColumns.has(pkColumn)) continue;\n\t\t\t\tconst baseField = baseNode.fields.find((field) => \"descriptor\" in field && field.columnName === pkColumn);\n\t\t\t\tif (!baseField) continue;\n\t\t\t\tlinkFields.push({\n\t\t\t\t\tfieldName: baseField.fieldName,\n\t\t\t\t\tcolumnName: pkColumn,\n\t\t\t\t\tdescriptor: baseField.descriptor,\n\t\t\t\t\tnullable: false\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (linkFields.length === 0) return node;\n\t\t\tsyntheticPkFieldsByVariant.set(variantKey, linkFields.map((field) => field.fieldName));\n\t\t\tconst foreignKey = {\n\t\t\t\tcolumns: basePrimaryKey.columns,\n\t\t\t\treferences: {\n\t\t\t\t\tmodel: baseNode.modelName,\n\t\t\t\t\ttable: baseNode.tableName,\n\t\t\t\t\tcolumns: basePrimaryKey.columns,\n\t\t\t\t\t...ifDefined(\"namespaceId\", baseNode.namespaceId)\n\t\t\t\t},\n\t\t\t\tconstraint: true,\n\t\t\t\tindex: false,\n\t\t\t\tonDelete: \"cascade\"\n\t\t\t};\n\t\t\treturn {\n\t\t\t\t...node,\n\t\t\t\tfields: [...linkFields, ...node.fields],\n\t\t\t\tid: { columns: basePrimaryKey.columns },\n\t\t\t\tforeignKeys: [...node.foreignKeys ?? [], foreignKey]\n\t\t\t};\n\t\t}),\n\t\tsyntheticPkFieldsByVariant\n\t};\n}\n/**\n* Single-table-inheritance variants (`@@base` with no own `@@map`) share the\n* base table: `resolvePolymorphism` points the variant's `storage.table` at the\n* base, and the ORM reads variant-declared fields straight off the base table.\n* For that to validate and round-trip, the base storage table must physically\n* carry every STI variant's declared columns. This enriches the base\n* `ModelNode` with those columns.\n*\n* The materialised columns are always nullable in storage: the base table hosts\n* every variant's rows, so a column a variant declares as required is still\n* NULL on sibling-variant rows. The variant's domain field keeps its declared\n* nullability — required-in-domain / nullable-in-storage is the intended STI\n* shape.\n*\n* Collisions (two variants declaring the same column, or a variant column name\n* clashing with a base column) are resolved skip-if-exists here, mirroring the\n* MTI link guard; surfacing them as diagnostics is tracked separately\n* (TML-2827).\n*/\nfunction materializeStiVariantStorageColumns(modelNodes, baseDeclarations, stiVariantKeys, defaultNamespaceId) {\n\tif (stiVariantKeys.size === 0) return {\n\t\tmodelNodes: [...modelNodes],\n\t\tstiBaseFieldsByBase: /* @__PURE__ */ new Map()\n\t};\n\tconst keyOf = (node) => modelCoordinateKey(node.namespaceId ?? defaultNamespaceId, node.modelName);\n\tconst nodeByModel = new Map(modelNodes.map((node) => [keyOf(node), node]));\n\tconst stiColumnsByBase = /* @__PURE__ */ new Map();\n\tfor (const variantKey of stiVariantKeys) {\n\t\tconst variantNode = nodeByModel.get(variantKey);\n\t\tconst baseDecl = baseDeclarations.get(variantKey);\n\t\tif (!variantNode || !baseDecl) continue;\n\t\tconst baseNode = nodeByModel.get(baseDecl.base.key);\n\t\tif (!baseNode) continue;\n\t\tconst baseColumns = new Set(baseNode.fields.map((field) => field.columnName));\n\t\tconst claimed = stiColumnsByBase.get(baseDecl.base.key) ?? [];\n\t\tconst claimedColumns = new Set(claimed.map((field) => field.columnName));\n\t\tfor (const field of variantNode.fields) {\n\t\t\tif (baseColumns.has(field.columnName) || claimedColumns.has(field.columnName)) continue;\n\t\t\tclaimedColumns.add(field.columnName);\n\t\t\tclaimed.push({\n\t\t\t\t...field,\n\t\t\t\tnullable: true\n\t\t\t});\n\t\t}\n\t\tstiColumnsByBase.set(baseDecl.base.key, claimed);\n\t}\n\tconst stiBaseFieldsByBase = /* @__PURE__ */ new Map();\n\tfor (const [baseName, columns] of stiColumnsByBase) stiBaseFieldsByBase.set(baseName, columns.map((field) => field.fieldName));\n\treturn {\n\t\tmodelNodes: modelNodes.map((node) => {\n\t\t\tif (stiVariantKeys.has(keyOf(node))) return {\n\t\t\t\t...node,\n\t\t\t\tsharesBaseTable: true\n\t\t\t};\n\t\t\tconst stiColumns = stiColumnsByBase.get(keyOf(node));\n\t\t\tif (!stiColumns || stiColumns.length === 0) return node;\n\t\t\treturn {\n\t\t\t\t...node,\n\t\t\t\tfields: [...node.fields, ...stiColumns]\n\t\t\t};\n\t\t}),\n\t\tstiBaseFieldsByBase\n\t};\n}\n/**\n* Drop the storage-only link fields (added by\n* {@link materializeMtiVariantStorageLinks}) from a variant's domain model, so\n* the domain surface stays thin while the storage table keeps the link column.\n*/\nfunction stripStorageOnlyDomainFields(model, fieldNames) {\n\tif (fieldNames.length === 0) return model;\n\tconst fields = { ...model.fields };\n\tfor (const name of fieldNames) delete fields[name];\n\tconst storage = blindCast(model.storage);\n\tconst storageFields = { ...storage.fields };\n\tfor (const name of fieldNames) delete storageFields[name];\n\treturn {\n\t\t...model,\n\t\tfields,\n\t\tstorage: {\n\t\t\t...storage,\n\t\t\tfields: storageFields\n\t\t}\n\t};\n}\nfunction backrelationTargetSymbol(field, binder) {\n\tconst typeReference = typeReferenceNode(field);\n\tif (typeReference === void 0) return void 0;\n\tconst resolution = binder.symbolForNode(typeReference);\n\treturn resolution?.kind === \"model\" ? resolution.symbol : void 0;\n}\nfunction relationTargetKindLabel(resolution) {\n\tswitch (resolution.kind) {\n\t\tcase \"compositeType\": return \"composite type\";\n\t\tcase \"namedType\": return \"named type\";\n\t\tcase \"block\": return resolution.symbol.keyword;\n\t\tcase \"namespace\":\n\t\tcase \"contributedNamespace\": return \"namespace\";\n\t\tcase \"contributedType\": return \"type\";\n\t\tdefault: return;\n\t}\n}\nfunction replacedBySqlTypeVoice(diagnostic, composedExtensions, context) {\n\tconst data = diagnostic.data;\n\tif (data?.[\"reference\"] !== \"type\") return false;\n\tif (data[\"constructorCall\"] !== true) return false;\n\tconst name = data[\"name\"];\n\tif (typeof name !== \"string\") return false;\n\treturn replacesUnresolvedTypeVoice(name, composedExtensions, context);\n}\nfunction interpretPslDocumentToSqlContract(input) {\n\tif (!input.target) throw new InternalError(\"PSL interpretation requires an explicit target context from composition.\");\n\tif (!input.scalarColumnDescriptors) throw new InternalError(\"PSL interpretation requires composed scalar type descriptors.\");\n\tconst [anchorDocument] = input.documents;\n\tassertDefined(anchorDocument, \"interpretPslDocumentToSqlContract requires at least one document\");\n\tconst source = diagnosticSource(input.sources, anchorDocument.syntax);\n\tconst diagnostics = createPslDiagnosticCollector(input.sources);\n\tconst composedExtensionNames = new Set(input.composedExtensions ?? []);\n\tconst modelAttributesByName = buildModelAttributesByName(input.authoringContributions);\n\tconst contributedModelSpecs = modelAttributeSpecsFrom(modelAttributesByName);\n\tconst composedPslBlockDescriptors = input.authoringContributions?.pslBlockDescriptors ?? {};\n\tconst { binder, diagnostics: binderDiagnostics } = createSqlBinder({\n\t\tsymbolTable: input.symbolTable,\n\t\tsources: input.sources,\n\t\tpslBlockDescriptors: composedPslBlockDescriptors,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tcontrolMutationDefaults: {\n\t\t\tdefaultFunctionRegistry: input.controlMutationDefaults?.defaultFunctionRegistry ?? /* @__PURE__ */ new Map(),\n\t\t\tdataTypeEntries: input.authoringContributions?.dataTypes ?? {}\n\t\t},\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\tcontributedModelAttributeSpecs: contributedModelSpecs,\n\t\tdescribeUnsupportedAttribute: describeUnsupportedSqlAttribute({\n\t\t\tcomposedExtensions: composedExtensionNames,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tsources: input.sources,\n\t\t\tfamilyId: input.target.familyId,\n\t\t\ttargetId: input.target.targetId\n\t\t})\n\t});\n\tdiagnostics.push(...binderDiagnostics.filter((diagnostic) => !replacedBySqlTypeVoice(diagnostic, composedExtensionNames, {\n\t\tfamilyId: \"sql\",\n\t\ttargetId: input.target.targetId,\n\t\tauthoringContributions: input.authoringContributions\n\t})));\n\tconst { topLevel } = input.symbolTable;\n\tconst namespaceSymbols = Object.values(topLevel.namespaces);\n\tvalidateNamespaceBlocksForSqlTarget({\n\t\tnamespaces: namespaceSymbols,\n\t\ttargetId: input.target.targetId,\n\t\tsource,\n\t\tsources: input.sources,\n\t\tbinder,\n\t\tdiagnostics\n\t});\n\tconst { parsedBlocks, diagnostics: blockDiagnostics } = interpretExtensionBlocks({\n\t\tsymbolTable: input.symbolTable,\n\t\tsources: input.sources,\n\t\tpslBlockDescriptors: composedPslBlockDescriptors,\n\t\tbinder\n\t});\n\tdiagnostics.push(...blockDiagnostics);\n\tvalidateBlockModelAttributeRequirements({\n\t\tparsedBlocks,\n\t\tpslBlockDescriptors: composedPslBlockDescriptors,\n\t\tsources: input.sources,\n\t\tdiagnostics\n\t});\n\tconst models = [];\n\tconst modelEntries = [];\n\tconst compositeTypes = [];\n\tconst collectScope = (bucketName, scopeModels, scopeCompositeTypes) => {\n\t\tconst resolvedNamespaceId = resolveNamespaceIdForSqlTarget({\n\t\t\tbucketName,\n\t\t\ttargetId: input.target.targetId\n\t\t});\n\t\tfor (const model of scopeModels) {\n\t\t\tmodels.push(model);\n\t\t\tmodelEntries.push({\n\t\t\t\tmodel,\n\t\t\t\tnamespaceId: resolvedNamespaceId\n\t\t\t});\n\t\t}\n\t\tfor (const compositeType of scopeCompositeTypes) compositeTypes.push(compositeType);\n\t};\n\tcollectScope(UNSPECIFIED_PSL_NAMESPACE_ID, Object.values(topLevel.models), Object.values(topLevel.compositeTypes));\n\tfor (const namespace of namespaceSymbols) collectScope(namespace.name, Object.values(namespace.models), Object.values(namespace.compositeTypes));\n\tconst physicalNames = /* @__PURE__ */ new Map();\n\tfor (const model of models) {\n\t\tconst mapNode = getAttribute(model.attributes, \"map\")?.node;\n\t\tconst mapped = mapNode === void 0 ? void 0 : interpretModelAttribute({\n\t\t\tnode: mapNode,\n\t\t\tsymbols: input.symbolTable,\n\t\t\tspec: sqlAttributeSpecs.model.map(),\n\t\t\tmodel,\n\t\t\tsources: input.sources,\n\t\t\tbinder,\n\t\t\tdiagnostics\n\t\t});\n\t\tphysicalNames.set(model, mapped?.name ?? defaultTableName(model.name));\n\t\tfor (const field of Object.values(model.fields)) {\n\t\t\tconst mapNode = getAttribute(field.attributes, \"map\")?.node;\n\t\t\tconst mapped = mapNode === void 0 ? void 0 : interpretFieldAttribute({\n\t\t\t\tnode: mapNode,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tspec: sqlAttributeSpecs.field.map(),\n\t\t\t\tmodel,\n\t\t\t\tfield,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tphysicalNames.set(field, mapped?.name ?? field.name);\n\t\t}\n\t}\n\tconst defaultNamespaceId = input.target.defaultNamespaceId;\n\tconst composedExtensions = new Set(input.composedExtensions ?? []);\n\tconst composedExtensionContracts = input.composedExtensionContracts;\n\tconst defaultFunctionRegistry = input.controlMutationDefaults?.defaultFunctionRegistry ?? /* @__PURE__ */ new Map();\n\tconst dataTypeSupport = {\n\t\tentries: input.authoringContributions?.dataTypes ?? {},\n\t\tlookup: input.dataTypeLookup\n\t};\n\tconst generatorDescriptors = input.controlMutationDefaults?.generatorDescriptors ?? [];\n\tconst generatorDescriptorById = /* @__PURE__ */ new Map();\n\tfor (const descriptor of generatorDescriptors) generatorDescriptorById.set(descriptor.id, descriptor);\n\tconst isEnumBlock = (block) => block.keyword === \"enum\";\n\tconst legitimateBlockKeywords = claimedBlockKeywords(input.authoringContributions?.pslBlockDescriptors);\n\tconst reportUnsupportedTopLevelBlock = (block) => {\n\t\tdiagnostics.push(unsupportedBlockDiagnostic(block, input.sources));\n\t};\n\tconst topLevelEnums = [];\n\tconst topLevelExtensionBlocks = {};\n\tfor (const [blockName, block] of Object.entries(topLevel.blocks)) {\n\t\tif (!legitimateBlockKeywords.has(block.keyword)) {\n\t\t\treportUnsupportedTopLevelBlock(block);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isEnumBlock(block)) topLevelEnums.push(block);\n\t\telse topLevelExtensionBlocks[blockName] = block;\n\t}\n\tfor (const namespace of namespaceSymbols) for (const block of Object.values(namespace.blocks)) {\n\t\tif (isEnumBlock(block)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_ENUM_NAMESPACE_NOT_SUPPORTED\",\n\t\t\t\tmessage: `enum \"${block.name}\" inside namespace \"${namespace.name}\" is not supported; declare enum at the top level`,\n\t\t\t\t...diagnosticSource(input.sources, block.node.syntax).at(nodePslSpan(block.node.syntax, input.sources))\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!legitimateBlockKeywords.has(block.keyword)) reportUnsupportedTopLevelBlock(block);\n\t}\n\tconst enumResult = processEnumDeclarations({\n\t\tenumBlocks: topLevelEnums,\n\t\tparsedBlocks,\n\t\tsource,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tentityContext: {\n\t\t\tfamily: input.target.familyId,\n\t\t\ttarget: input.target.targetId,\n\t\t\t...ifDefined(\"codecLookup\", input.codecLookup),\n\t\t\tsourceId: source.sources.sourceFileFor(source.node).filename,\n\t\t\tdiagnostics: { push: (d) => {\n\t\t\t\tdiagnostics.pushExternal(blindCast(d));\n\t\t\t} },\n\t\t\t...ifDefined(\"enumInferenceCodecs\", input.enumInferenceCodecs)\n\t\t},\n\t\tdiagnostics\n\t});\n\tconst allEnumTypeDescriptors = new Map(enumResult.enumTypeDescriptors);\n\tconst validEnumHandles = { ...enumResult.enumHandles };\n\tconst enumHandlesByName = new Map(Object.entries(validEnumHandles));\n\tconst entityTypesByDiscriminator = buildEntityTypesByDiscriminator(input.authoringContributions);\n\tconst authoringWarnings = [];\n\tconst extensionEntityContext = {\n\t\tfamily: input.target.familyId,\n\t\ttarget: input.target.targetId,\n\t\t...ifDefined(\"enumInferenceCodecs\", input.enumInferenceCodecs),\n\t\t...ifDefined(\"codecLookup\", input.codecLookup),\n\t\tsourceId: source.sources.sourceFileFor(source.node).filename,\n\t\tdiagnostics: { push: (d) => {\n\t\t\tdiagnostics.pushExternal(blindCast(d));\n\t\t} },\n\t\twarnings: authoringWarnings\n\t};\n\tconst modelCoordinateOf = (model) => {\n\t\treturn {\n\t\t\tnamespaceId: resolveNamespaceIdForSqlTarget({\n\t\t\t\tbucketName: model.node.syntax.findAncestor(NamespaceDeclarationAst.cast)?.name()?.name() ?? UNSPECIFIED_PSL_NAMESPACE_ID,\n\t\t\t\ttargetId: input.target.targetId\n\t\t\t}) ?? defaultNamespaceId,\n\t\t\ttableName: storageName(model, physicalNames)\n\t\t};\n\t};\n\tconst namespaceExtensionEntities = /* @__PURE__ */ new Map();\n\tconst fileExtensionEntityRows = (rows, blocks) => {\n\t\tfor (const row of rows) {\n\t\t\tlet entities = namespaceExtensionEntities.get(row.namespaceId);\n\t\t\tif (entities === void 0) {\n\t\t\t\tentities = {};\n\t\t\t\tnamespaceExtensionEntities.set(row.namespaceId, entities);\n\t\t\t}\n\t\t\tconst slot = entities[row.entityKind] ?? {};\n\t\t\tentities[row.entityKind] = slot;\n\t\t\tif (Object.hasOwn(slot, row.key)) {\n\t\t\t\tconst block = Object.values(blocks).find((candidate) => candidate.name === row.key);\n\t\t\t\tinvariant(block !== void 0, \"Lowered entity has an owning block\");\n\t\t\t\tdiagnostics.pushUnlocated({\n\t\t\t\t\tcode: \"PSL_DUPLICATE_EXTENSION_ENTITY\",\n\t\t\t\t\tmessage: `entries slot \"${row.entityKind}\" in namespace \"${row.namespaceId}\": entity \"${row.key}\" is declared more than once in the same namespace.`,\n\t\t\t\t\t...diagnosticSource(input.sources, block.node.syntax).at()\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tslot[row.key] = row.entity;\n\t\t}\n\t};\n\tfor (const ns of namespaceSymbols) {\n\t\tif (ns.name === UNSPECIFIED_PSL_NAMESPACE_ID) continue;\n\t\tconst nsId = resolveNamespaceIdForSqlTarget({\n\t\t\tbucketName: ns.name,\n\t\t\ttargetId: input.target.targetId\n\t\t});\n\t\tif (nsId === void 0) continue;\n\t\tfileExtensionEntityRows(lowerExtensionBlocksForNamespace(ns.blocks, nsId, entityTypesByDiscriminator, extensionEntityContext, parsedBlocks, modelCoordinateOf, input.sources), ns.blocks);\n\t}\n\tif (Object.keys(topLevelExtensionBlocks).length > 0) fileExtensionEntityRows(lowerExtensionBlocksForNamespace(topLevelExtensionBlocks, resolveNamespaceIdForSqlTarget({\n\t\tbucketName: UNSPECIFIED_PSL_NAMESPACE_ID,\n\t\ttargetId: input.target.targetId\n\t}) ?? defaultNamespaceId, entityTypesByDiscriminator, extensionEntityContext, parsedBlocks, modelCoordinateOf, input.sources), topLevelExtensionBlocks);\n\tconst defaultNsExtensionValueSets = namespaceExtensionEntities.get(defaultNamespaceId)?.[\"valueSet\"];\n\tif (defaultNsExtensionValueSets !== void 0) {\n\t\tfor (const name of Object.keys(defaultNsExtensionValueSets)) if (Object.hasOwn(validEnumHandles, name)) {\n\t\t\tconst enumSymbol = topLevel.blocks[name];\n\t\t\tinvariant(enumSymbol !== void 0, \"Domain enum has an owning block\");\n\t\t\tdiagnostics.pushUnlocated({\n\t\t\t\tcode: \"PSL_VALUE_SET_NAME_COLLISION\",\n\t\t\t\tmessage: `namespace \"${defaultNamespaceId}\": name \"${name}\" is declared both as a domain enum and as an extension entity that derives a value-set; rename one`,\n\t\t\t\t...diagnosticSource(input.sources, enumSymbol.node.syntax).at()\n\t\t\t});\n\t\t}\n\t}\n\tconst isScalarRefinement = (symbol) => !symbol.isConstructor && symbol.baseType !== void 0 && input.scalarColumnDescriptors.has(symbol.baseType);\n\tconst allNamedTypes = Object.values(topLevel.namedTypes);\n\tconst namedTypeResult = resolveNamedTypeDeclarations({\n\t\tdeclarations: [...allNamedTypes.filter(isScalarRefinement), ...allNamedTypes.filter((symbol) => !isScalarRefinement(symbol))],\n\t\tsource,\n\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\tcomposedExtensions,\n\t\tfamilyId: input.target.familyId,\n\t\ttargetId: input.target.targetId,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tdiagnostics\n\t});\n\tconst storageTypes = { ...namedTypeResult.storageTypes };\n\tconst modelNodes = /* @__PURE__ */ new Map();\n\tconst fkRelationMetadata = [];\n\tconst invalidFkPairings = [];\n\tconst backrelationCandidates = [];\n\tconst modelResolvedFields = /* @__PURE__ */ new Map();\n\tconst crossSpaceRelationsByModel = /* @__PURE__ */ new Map();\n\tconst modelAttributeEntitiesByNamespace = /* @__PURE__ */ new Map();\n\tfor (const { model, namespaceId } of modelEntries) {\n\t\tconst coordinate = modelCoordinateKey(namespaceId ?? defaultNamespaceId, model.name);\n\t\tconst result = buildModelNodeFromPsl({\n\t\t\tmodel,\n\t\t\tphysicalNames,\n\t\t\tnamespaceId,\n\t\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\t\tnamedTypeDescriptors: namedTypeResult.namedTypeDescriptors,\n\t\t\tcomposedExtensions,\n\t\t\tcomposedExtensionContracts,\n\t\t\tfamilyId: input.target.familyId,\n\t\t\ttargetId: input.target.targetId,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tdefaultFunctionRegistry,\n\t\t\tdataTypeSupport,\n\t\t\tgeneratorDescriptorById,\n\t\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\t\tsources: input.sources,\n\t\t\tbinder,\n\t\t\tsymbolTable: input.symbolTable,\n\t\t\tdiagnostics,\n\t\t\t...enumHandlesByName.size > 0 ? { enumHandles: enumHandlesByName } : {},\n\t\t\tcapabilities: input.capabilities,\n\t\t\t...namespaceExtensionEntities.size > 0 ? { namespaceExtensionEntities } : {},\n\t\t\t...ifDefined(\"codecLookup\", input.codecLookup),\n\t\t\tmodelAttributesByName,\n\t\t\tcontributedModelAttributeSpecs: contributedModelSpecs,\n\t\t\tdefaultNamespaceId,\n\t\t\tparsedBlocks\n\t\t});\n\t\tmodelNodes.set(model, namespaceId !== void 0 ? {\n\t\t\t...result.modelNode,\n\t\t\tnamespaceId\n\t\t} : result.modelNode);\n\t\tfkRelationMetadata.push(...result.fkRelationMetadata);\n\t\tinvalidFkPairings.push(...result.invalidFkPairings);\n\t\tbackrelationCandidates.push(...result.backrelationCandidates);\n\t\tmodelResolvedFields.set(coordinate, result.resolvedFields);\n\t\tif (result.crossSpaceRelations.length > 0) {\n\t\t\tconst existing = crossSpaceRelationsByModel.get(model) ?? [];\n\t\t\tcrossSpaceRelationsByModel.set(model, [...existing, ...result.crossSpaceRelations]);\n\t\t}\n\t\tif (Object.keys(result.modelAttributeEntities).length > 0) {\n\t\t\tconst nsKey = namespaceId ?? defaultNamespaceId;\n\t\t\tconst existingByAttribute = modelAttributeEntitiesByNamespace.get(nsKey) ?? {};\n\t\t\tfor (const [attribute, keyed] of Object.entries(result.modelAttributeEntities)) existingByAttribute[attribute] = {\n\t\t\t\t...existingByAttribute[attribute] ?? {},\n\t\t\t\t...keyed\n\t\t\t};\n\t\t\tmodelAttributeEntitiesByNamespace.set(nsKey, existingByAttribute);\n\t\t}\n\t}\n\tconst { modelRelations, fkRelationsByPair, fkRelationsByDeclaringModel } = indexFkRelations({ fkRelationMetadata });\n\tconst modelIdColumns = /* @__PURE__ */ new Map();\n\tconst modelUniqueColumnSets = /* @__PURE__ */ new Map();\n\tfor (const [model, modelNode] of modelNodes) {\n\t\tif (modelNode.id) modelIdColumns.set(model, modelNode.id.columns);\n\t\tconst uniqueColumnSets = [];\n\t\tif (modelNode.id) uniqueColumnSets.push(modelNode.id.columns);\n\t\tfor (const unique of modelNode.uniques ?? []) uniqueColumnSets.push(unique.columns);\n\t\tfor (const index of modelNode.indexes ?? []) if (index.unique === true && index.columns !== void 0 && index.where === void 0) uniqueColumnSets.push(index.columns);\n\t\tmodelUniqueColumnSets.set(model, uniqueColumnSets);\n\t}\n\tapplyBackrelationCandidates({\n\t\tbackrelationCandidates,\n\t\tfkRelationsByPair,\n\t\tinvalidFkPairings,\n\t\tfkRelationsByDeclaringModel,\n\t\tmodelIdColumns,\n\t\tmodelUniqueColumnSets,\n\t\tmodelRelations,\n\t\tdiagnostics,\n\t\tsources: input.sources\n\t});\n\tfor (const [modelName, relations] of crossSpaceRelationsByModel) {\n\t\tconst existing = modelRelations.get(modelName);\n\t\tif (existing) existing.push(...relations);\n\t\telse modelRelations.set(modelName, [...relations]);\n\t}\n\tconst { discriminatorDeclarations, baseDeclarations } = collectPolymorphismDeclarations(new Map(modelEntries.map(({ model, namespaceId }) => {\n\t\tconst resolvedNamespaceId = namespaceId ?? defaultNamespaceId;\n\t\treturn [model, {\n\t\t\tmodel,\n\t\t\tnamespaceId: resolvedNamespaceId,\n\t\t\tkey: modelCoordinateKey(resolvedNamespaceId, model.name)\n\t\t}];\n\t})), input.symbolTable, input.sources, binder, diagnostics);\n\tconst stiVariantKeys = /* @__PURE__ */ new Set();\n\tfor (const [variantKey, declaration] of baseDeclarations) if (!(getAttribute(declaration.model.attributes, \"map\") !== void 0)) stiVariantKeys.add(variantKey);\n\tfor (const variantKey of stiVariantKeys) {\n\t\tconst baseDecl = baseDeclarations.get(variantKey);\n\t\tinvariant(baseDecl !== void 0, `stiVariantKeys is derived from baseDeclarations.keys(), so \"${variantKey}\" must have a base declaration`);\n\t\tconst variantName = baseDecl.model.name;\n\t\tfor (const attribute of baseDecl.model.node.attributes()) {\n\t\t\tif (attribute.name()?.isSimpleName(\"check\") !== true) continue;\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: PSL_CHECK_ON_STI_VARIANT,\n\t\t\t\tmessage: `Model \"${variantName}\" declares \"@@check\", but it shares its base model \"${baseDecl.base.model.name}\"'s storage table (single-table inheritance via @@base) and has no table of its own to declare a check constraint on. Declare the check on \"${baseDecl.base.model.name}\" instead.`,\n\t\t\t\t...diagnosticSource(input.sources, attribute.syntax).at(nodePslSpan(attribute.syntax, input.sources))\n\t\t\t});\n\t\t}\n\t}\n\tconst { modelNodes: mtiLinkedModelNodes, syntheticPkFieldsByVariant } = materializeMtiVariantStorageLinks(Array.from(modelNodes, ([symbol, model]) => ({\n\t\t...model,\n\t\t...modelRelations.has(symbol) ? { relations: [...modelRelations.get(symbol) ?? []].sort((left, right) => compareStrings(left.fieldName, right.fieldName)) } : {}\n\t})), baseDeclarations, stiVariantKeys, defaultNamespaceId);\n\tconst { modelNodes: stiColumnModelNodes, stiBaseFieldsByBase } = materializeStiVariantStorageColumns(mtiLinkedModelNodes, baseDeclarations, stiVariantKeys, defaultNamespaceId);\n\tconst valueObjects = buildValueObjects({\n\t\tcompositeTypes,\n\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\tnamedTypeDescriptors: namedTypeResult.namedTypeDescriptors,\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\tcomposedExtensions,\n\t\tfamilyId: input.target.familyId,\n\t\ttargetId: input.target.targetId,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tdiagnostics,\n\t\tsources: input.sources,\n\t\tbinder\n\t});\n\tif (diagnostics.length > 0 || (input.seedDiagnostics?.length ?? 0) > 0) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics: [...input.seedDiagnostics ?? [], ...diagnostics.toExternal()]\n\t});\n\tconst { createNamespace } = input;\n\tconst createNamespaceWithExtensions = (nsInput) => {\n\t\tconst entities = namespaceExtensionEntities.get(nsInput.id);\n\t\tconst attributeEntities = modelAttributeEntitiesByNamespace.get(nsInput.id);\n\t\tif (entities === void 0 && attributeEntities === void 0) return createNamespace(nsInput);\n\t\tif (attributeEntities !== void 0) {\n\t\t\tfor (const slot of Object.keys(attributeEntities)) if (Object.hasOwn(nsInput.entries, slot) || entities !== void 0 && slot in entities) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `entries slot \"${slot}\" in namespace \"${nsInput.id}\" is contributed by both a model attribute and a block/base entry kind. A model-attribute entries key must be unique across the namespace's entry kinds.`, { meta: {\n\t\t\t\tslot,\n\t\t\t\tnamespaceId: nsInput.id\n\t\t\t} });\n\t\t}\n\t\tconst mergedValueSet = {\n\t\t\t...nsInput.entries[\"valueSet\"],\n\t\t\t...entities?.[\"valueSet\"]\n\t\t};\n\t\tconst extended = {\n\t\t\t...nsInput,\n\t\t\tentries: {\n\t\t\t\t...nsInput.entries,\n\t\t\t\t...entities,\n\t\t\t\t...attributeEntities,\n\t\t\t\t...Object.keys(mergedValueSet).length > 0 ? { valueSet: mergedValueSet } : {}\n\t\t\t}\n\t\t};\n\t\treturn createNamespace(extended);\n\t};\n\tconst contract = buildSqlContractFromDefinition({\n\t\ttarget: input.target,\n\t\twarnings: authoringWarnings.length > 0 ? authoringWarnings : void 0,\n\t\t...ifDefined(\"extensions\", buildComposedExtensionPackRefs(input.target, [...composedExtensions].sort(compareStrings), input.composedExtensionPackRefs)),\n\t\t...Object.keys(storageTypes).length > 0 ? { storageTypes } : {},\n\t\t...Object.keys(validEnumHandles).length > 0 ? { enums: validEnumHandles } : {},\n\t\t...namespaceExtensionEntities.size > 0 ? { namespaces: [...namespaceExtensionEntities.keys()] } : {},\n\t\tcreateNamespace: createNamespaceWithExtensions,\n\t\tmodels: stiColumnModelNodes\n\t}, input.codecLookup);\n\tconst modelsForPatch = {};\n\tfor (const [namespaceId, namespaceSlice] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespaceSlice.models)) {\n\t\tconst coordinate = modelCoordinateKey(namespaceId, modelName);\n\t\tinvariant(!Object.hasOwn(modelsForPatch, coordinate), `symbol table guarantees coordinate uniqueness; duplicate model \"${namespaceId}.${modelName}\" reached interpretation`);\n\t\tmodelsForPatch[coordinate] = model;\n\t}\n\tlet patchedModels = patchModelDomainFields(modelsForPatch, modelResolvedFields);\n\tconst polyDiagnostics = createPslDiagnosticCollector(input.sources);\n\tpatchedModels = resolvePolymorphism(patchedModels, physicalNames, discriminatorDeclarations, baseDeclarations, syntheticPkFieldsByVariant, stiBaseFieldsByBase, polyDiagnostics);\n\tif (polyDiagnostics.length > 0) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics: polyDiagnostics.toExternal()\n\t});\n\tconst filteredRoots = Object.fromEntries(Object.entries(contract.roots).filter(([, crossReference]) => !baseDeclarations.has(modelCoordinateKey(crossReference.namespace, crossReference.model))));\n\treturn ok({\n\t\t...contract,\n\t\troots: filteredRoots,\n\t\tdomain: { namespaces: Object.fromEntries(Object.entries(contract.domain.namespaces).map(([namespaceId, namespaceSlice]) => [namespaceId, {\n\t\t\tmodels: Object.fromEntries(Object.entries(namespaceSlice.models).map(([modelName, model]) => [modelName, patchedModels[modelCoordinateKey(namespaceId, modelName)] ?? model])),\n\t\t\t...ifDefined(\"enum\", namespaceSlice.enum),\n\t\t\t...ifDefined(\"valueObjects\", namespaceSlice.valueObjects),\n\t\t\t...namespaceId === input.target.defaultNamespaceId && Object.keys(valueObjects).length > 0 ? { valueObjects } : {}\n\t\t}])) }\n\t});\n}\n//#endregion\nexport { normalizeReferentialAction as a, readDataTypeDefault as c, indexFkRelations as i, interpretPslDocumentToSqlContract as n, resolveFieldTypeDescriptor as o, applyBackrelationCandidates as r, entryForTag as s, buildEntityTypesByDiscriminator as t };\n\n//# sourceMappingURL=interpreter-Bcc3MIC5.mjs.map"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-Db0j752I-
|
|
1
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-Db0j752I-faODNLY9.mjs";
|
|
2
2
|
import { ParamRefMutator } from "@prisma/orm-framework/components/runtime";
|
|
3
3
|
//#region ../../../2-sql/4-lanes/relational-core/dist/middleware-CuGBptK0.d.mts
|
|
4
4
|
//#region src/middleware/param-ref-mutator.d.ts
|
|
@@ -116,4 +116,4 @@ interface SqlParamRefMutatorInternal<TCodecMap extends Record<string, unknown> =
|
|
|
116
116
|
declare function createSqlParamRefMutator<TCodecMap extends Record<string, unknown> = Record<string, unknown>>(plan: SqlExecutionPlan): SqlParamRefMutatorInternal<TCodecMap>;
|
|
117
117
|
//#endregion
|
|
118
118
|
export { SqlParamRefMutatorInternal as a, SqlParamRefMutator as i, ParamRefEntryUnion as n, createSqlParamRefMutator as o, ParamRefHandle as r, ParamRefEntry as t };
|
|
119
|
-
//# sourceMappingURL=middleware-CuGBptK0-
|
|
119
|
+
//# sourceMappingURL=middleware-CuGBptK0-UwVChCr2.d.mts.map
|
package/dist/{middleware-CuGBptK0-C88HCnh5.d.mts.map → middleware-CuGBptK0-UwVChCr2.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-CuGBptK0-
|
|
1
|
+
{"version":3,"file":"middleware-CuGBptK0-UwVChCr2.d.mts","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/middleware-CuGBptK0.d.mts"],"mappings":";;;;;;;;;;;;;;cAac;;;;;;;;;;UAUJ,eAAe;YACb,sBAAsB;;;;;;;UAOxB,cAAc;WACb,KAAK,eAAe;WACpB;WACA,SAAS;;;;;;;;;;KAUf,mBAAmB,kBAAkB,8BAA8B,WAAW,qBAAqB,cAAc,YAAY,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;UAyB9I,mBAAmB,kBAAkB,0BAA0B,iCAAiC;;EAExG,WAAW,iBAAiB,mBAAmB;;;;;;;EAO/C,aAAa,uBAAuB,oBAAoB,KAAK,eAAe,WAAW,UAAU,UAAU;EAC3G,aAAa,KAAK,2BAA2B;;EAE7C,cAAc,SAAS;aACZ,KAAK,sBAAsB;aAC3B;;;;;;;;;;;;;UAaH,2BAA2B,kBAAkB,0BAA0B,iCAAiC,mBAAmB;EACnI;;;;;;;;;;;;;;;;;iBAiBe,yBAAyB,kBAAkB,0BAA0B,yBAAyB,MAAM,mBAAmB,2BAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./middleware-CuGBptK0-UwVChCr2.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { c as SqlStorage } from "./sql-storage-8LqxeLAY-DH4DdUXx.mjs";
|
|
2
2
|
import "./types-C36_3E6_.mjs";
|
|
3
|
-
import { f as SqlMigrationPlanOperation, w as SqlPlanTargetDetails } from "./types-BFPRCYGW-
|
|
3
|
+
import { f as SqlMigrationPlanOperation, w as SqlPlanTargetDetails } from "./types-BFPRCYGW-CZrZyp1E.mjs";
|
|
4
4
|
import { Contract } from "@prisma/orm-framework/contract/types";
|
|
5
5
|
import { Migration } from "@prisma/orm-toolchain/migration-tools/migration";
|
|
6
6
|
//#region ../../../2-sql/9-family/dist/migration.d.mts
|
|
@@ -41,4 +41,4 @@ declare abstract class SqlMigration<TDetails extends SqlPlanTargetDetails, TTarg
|
|
|
41
41
|
}
|
|
42
42
|
//#endregion
|
|
43
43
|
export { SqlMigration as t };
|
|
44
|
-
//# sourceMappingURL=migration-
|
|
44
|
+
//# sourceMappingURL=migration-Csmr6bd8.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-
|
|
1
|
+
{"version":3,"file":"migration-Csmr6bd8.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/migration.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA0BuB,aAAa,iBAAiB,sBAAsB,mCAAmC,cAAc,SAAS,cAAc,SAAS,aAAa,YAAY,SAAS,cAAc,SAAS,qBAAqB,UAAU,0BAA0B,kBAAkB,WAAW,OAAO;;;;;;;;;;;MAW5S"}
|