@prisma/orm-family-sql 8.0.0-rc.17-dev.12 → 8.0.0-rc.17-dev.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/{attribute-specs-DfOulPzE.d.mts → attribute-specs-Cpthx28F.d.mts} +4 -4
  2. package/dist/{attribute-specs-DfOulPzE.d.mts.map → attribute-specs-Cpthx28F.d.mts.map} +1 -1
  3. package/dist/{authoring-entity-types-CZ-vdwYS-BtvE94H_.d.mts → authoring-entity-types-CZ-vdwYS-C9QI4H3x.d.mts} +2 -2
  4. package/dist/{authoring-entity-types-CZ-vdwYS-BtvE94H_.d.mts.map → authoring-entity-types-CZ-vdwYS-C9QI4H3x.d.mts.map} +1 -1
  5. package/dist/{authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs → authoring-type-constructors-0Iv2zdwS-D-AoEcR1.mjs} +2 -2
  6. package/dist/{authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs.map → authoring-type-constructors-0Iv2zdwS-D-AoEcR1.mjs.map} +1 -1
  7. package/dist/{config-types-DggwpWr3.mjs → config-types-DabYoGbo.mjs} +2 -2
  8. package/dist/{config-types-DggwpWr3.mjs.map → config-types-DabYoGbo.mjs.map} +1 -1
  9. package/dist/{contract-builder-J9D4EprQ.mjs → contract-builder-C5n9DeDD.mjs} +59 -38
  10. package/dist/contract-builder-C5n9DeDD.mjs.map +1 -0
  11. package/dist/{contract-builder-DCTszECg.d.mts → contract-builder-DPdK6nTs.d.mts} +18 -26
  12. package/dist/contract-builder-DPdK6nTs.d.mts.map +1 -0
  13. package/dist/contract-prisma7__provider.mjs +3 -3
  14. package/dist/contract-psl.d.mts +2 -2
  15. package/dist/contract-psl.mjs +1 -1
  16. package/dist/contract-psl__attribute-specs.d.mts +1 -1
  17. package/dist/contract-psl__attribute-specs.mjs +1 -1
  18. package/dist/contract-psl__provider.mjs +2 -2
  19. package/dist/contract-ts.d.mts +3 -2
  20. package/dist/contract-ts.mjs +4 -3
  21. package/dist/contract-ts__config-types.mjs +1 -1
  22. package/dist/contract-ts__contract-builder.d.mts +3 -2
  23. package/dist/contract-ts__contract-builder.mjs +3 -2
  24. package/dist/contract.d.mts +2 -2
  25. package/dist/contract.mjs +2 -2
  26. package/dist/contract__sql-expression.d.mts +2 -2
  27. package/dist/contract__sql-expression.mjs +2 -2
  28. package/dist/{control-DdyeUFkv.d.mts → control-DJYruagt.d.mts} +6 -9
  29. package/dist/control-DJYruagt.d.mts.map +1 -0
  30. package/dist/{control-Bce-z7el.mjs → control-iqppQcJm.mjs} +8 -8
  31. package/dist/control-iqppQcJm.mjs.map +1 -0
  32. package/dist/{derived-checks-CEK-Ls_a-plK5KxX3.mjs → derived-checks-DSMOrZN--C03ao8_m.mjs} +9 -13
  33. package/dist/derived-checks-DSMOrZN--C03ao8_m.mjs.map +1 -0
  34. package/dist/{diff-l4-qJpTV.d.mts → diff-C-18M6Ii.d.mts} +2 -2
  35. package/dist/{diff-l4-qJpTV.d.mts.map → diff-C-18M6Ii.d.mts.map} +1 -1
  36. package/dist/family.d.mts +5 -5
  37. package/dist/family.mjs +3 -3
  38. package/dist/family__control.d.mts +2 -2
  39. package/dist/family__control.mjs +2 -2
  40. package/dist/family__diff.d.mts +1 -1
  41. package/dist/family__diff.mjs +1 -1
  42. package/dist/family__migration.d.mts +1 -1
  43. package/dist/family__pack.d.mts +1 -1
  44. package/dist/family__pack.mjs +2 -2
  45. package/dist/family__psl-build.mjs +1 -1
  46. package/dist/{interpreter-BTM9k0wn-Cya0qReB.mjs → interpreter-BTM9k0wn-o9kEz-St.mjs} +4 -4
  47. package/dist/{interpreter-BTM9k0wn-Cya0qReB.mjs.map → interpreter-BTM9k0wn-o9kEz-St.mjs.map} +1 -1
  48. package/dist/{migration-DEK3Hxlo.d.mts → migration-Bdt_UrTg.d.mts} +2 -2
  49. package/dist/{migration-DEK3Hxlo.d.mts.map → migration-Bdt_UrTg.d.mts.map} +1 -1
  50. package/dist/orm-client.d.mts +16 -7
  51. package/dist/orm-client.d.mts.map +1 -1
  52. package/dist/orm-client.mjs +34 -26
  53. package/dist/orm-client.mjs.map +1 -1
  54. package/dist/{pack-BIYpJtZF.d.mts → pack-BiHNZl9V.d.mts} +3 -3
  55. package/dist/{pack-BIYpJtZF.d.mts.map → pack-BiHNZl9V.d.mts.map} +1 -1
  56. package/dist/{psl-build-vdqjrTx6.mjs → psl-build-CdvX8qg4.mjs} +2 -2
  57. package/dist/{psl-build-vdqjrTx6.mjs.map → psl-build-CdvX8qg4.mjs.map} +1 -1
  58. package/dist/{psl-column-resolution-Dm5LhN9b-Br_RiSPI.d.mts → psl-column-resolution-Dm5LhN9b-DetB__rj.d.mts} +3 -3
  59. package/dist/{psl-column-resolution-Dm5LhN9b-Br_RiSPI.d.mts.map → psl-column-resolution-Dm5LhN9b-DetB__rj.d.mts.map} +1 -1
  60. package/dist/{psl-field-resolution-CAJsUfST-C4QwwiqV.mjs → psl-field-resolution-CAJsUfST-D_vMRVX2.mjs} +5 -5
  61. package/dist/psl-field-resolution-CAJsUfST-D_vMRVX2.mjs.map +1 -0
  62. package/dist/{schema-verify-DIfHSB4I-CcxNNnKO.mjs → schema-verify-DIfHSB4I-Bbek1093.mjs} +2 -2
  63. package/dist/{schema-verify-DIfHSB4I-CcxNNnKO.mjs.map → schema-verify-DIfHSB4I-Bbek1093.mjs.map} +1 -1
  64. package/dist/sql-expression-BWrjmY6M.d.mts +62 -0
  65. package/dist/sql-expression-BWrjmY6M.d.mts.map +1 -0
  66. package/dist/sql-expression-DSRILiU2.mjs +131 -0
  67. package/dist/sql-expression-DSRILiU2.mjs.map +1 -0
  68. package/dist/{types-CzxOObSY-CxZ_bdVi.d.mts → types-CzxOObSY-BxwvvyRZ.d.mts} +2 -2
  69. package/dist/{types-CzxOObSY-CxZ_bdVi.d.mts.map → types-CzxOObSY-BxwvvyRZ.d.mts.map} +1 -1
  70. package/package.json +18 -18
  71. package/dist/contract-builder-DCTszECg.d.mts.map +0 -1
  72. package/dist/contract-builder-J9D4EprQ.mjs.map +0 -1
  73. package/dist/control-Bce-z7el.mjs.map +0 -1
  74. package/dist/control-DdyeUFkv.d.mts.map +0 -1
  75. package/dist/derived-checks-CEK-Ls_a-plK5KxX3.mjs.map +0 -1
  76. package/dist/psl-field-resolution-CAJsUfST-C4QwwiqV.mjs.map +0 -1
  77. package/dist/sql-expression-DWyTh9M1.d.mts +0 -34
  78. package/dist/sql-expression-DWyTh9M1.d.mts.map +0 -1
  79. package/dist/sql-expression-Dek0jx_g.mjs +0 -64
  80. package/dist/sql-expression-Dek0jx_g.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"derived-checks-CEK-Ls_a-plK5KxX3.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-ts/dist/derived-checks-CEK-Ls_a.mjs"],"sourcesContent":["import { resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { flushAuthoringWarnings, isAuthoringEntityTypeDescriptor } from \"@internal/framework-components/authoring\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { CheckConstraint, Index, SqlStorage, StorageTable, applyFkDefaults, checkConstraintInputFromSerialized, isMaterializedSqlNamespace, resolvedTypeParams, toStorageTypeInstance } from \"@internal/sql-contract/types\";\nimport { isStructuredError, structuredError } from \"@internal/utils/structured-error\";\nimport { asNamespaceId, coreHash, crossRef, effectiveControlPolicy } from \"@internal/contract/types\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { buildExecutionSection, computeProfileHash, computeStorageHash } from \"@internal/contract/hashing\";\nimport { mergeCapabilityMatrices } from \"@internal/framework-components/components\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { sqlContractCanonicalizationHooks } from \"@internal/sql-contract/canonicalization-hooks\";\nimport { dataTypeParams, sqlDataTypeOfCodec, validateSqlTypeParams } from \"@internal/sql-contract/data-type\";\nimport { validateIndexTypes } from \"@internal/sql-contract/index-type-validation\";\nimport { indexTypeRegistryOf } from \"@internal/sql-contract/index-types\";\nimport { validateStorageSemantics } from \"@internal/sql-contract/validators\";\nimport { codecForRef, enumRefusalOf } from \"@internal/framework-components/codec\";\nimport { canonicalStringify } from \"@internal/utils/canonical-stringify\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { invariant } from \"@internal/utils/assertions\";\nimport { compareCodeUnits } from \"@internal/contract/hashing-utils\";\nimport { lowerAuthoredCheck } from \"@internal/sql-contract/authored-check-naming\";\nimport { materializeForeignKeysAndIndexes } from \"@internal/sql-contract/foreign-key-materialization\";\nimport { lowerAuthoredIndex } from \"@internal/sql-contract/index-naming\";\nimport { composeCheckWirePrefix, computeCheckContentHash, derivedCheckPrefixes } from \"@internal/sql-schema-ir/naming\";\nimport { tableEntityKind, valueSetEntityKind } from \"@internal/sql-contract/entity-kinds\";\nimport { deriveValueSetFromEntity } from \"@internal/sql-contract/value-set-derivation-hook\";\nimport { applySpecifierDefaultControlPolicy } from \"@internal/contract/apply-specifier-default-control-policy\";\n//#region src/contract-errors.ts\nfunction contractError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/contract-definition.ts\n/**\n* Whether a field is stored in a list column. A list of scalars is; a list of value objects is not, because it is stored in one column whose value is the whole list, as one JSON array.\n*/\nfunction storedAsListColumn(field) {\n\treturn field.list && !field.typedByValueObject;\n}\n/** Whether a field or member is typed by a value object. */\nfunction isValueObjectMember(field) {\n\treturn \"valueObjectName\" in field;\n}\n//#endregion\n//#region src/describe-column.ts\n/** Describes one column, declared by a model's field or by a table node. */\nfunction describeColumn(column, site) {\n\treturn {\n\t\tcolumnName: column.columnName,\n\t\tdescriptor: column.descriptor,\n\t\tnullable: column.nullable,\n\t\tmany: column.many === true ? { elementNullable: column.elementNullable === true } : false,\n\t\tdefault: column.default,\n\t\tnoCheck: column.noCheck,\n\t\tenumTypeHandle: column.enumTypeHandle,\n\t\tsite\n\t};\n}\n//#endregion\n//#region src/declaration-sites.ts\n/** How an error message names the column: `Field \"Model.field\"` or `Column \"table.column\"`. */\nfunction columnSiteSubject(site) {\n\treturn site.kind === \"field\" ? `Field \"${site.modelName}.${site.fieldName}\"` : `Column \"${site.tableName}.${site.columnName}\"`;\n}\n/** The error metadata that locates the column. */\nfunction columnSiteMeta(site) {\n\treturn site.kind === \"field\" ? {\n\t\tmodelName: site.modelName,\n\t\tfieldName: site.fieldName\n\t} : {\n\t\tnamespaceId: site.namespaceId,\n\t\ttableName: site.tableName,\n\t\tcolumnName: site.columnName\n\t};\n}\n/** How an error message names the owner: `model \"User\"` or `table \"audit_rows\" in namespace \"public\"`. */\nfunction referenceOwnerSubject(owner) {\n\treturn owner.kind === \"model\" ? `model \"${owner.modelName}\"` : `table \"${owner.tableName}\" in namespace \"${owner.namespaceId}\"`;\n}\n/** The error metadata that locates the owner. */\nfunction referenceOwnerMeta(owner) {\n\treturn owner.kind === \"model\" ? { sourceModel: owner.modelName } : {\n\t\tsourceTable: owner.tableName,\n\t\tsourceNamespaceId: owner.namespaceId\n\t};\n}\n//#endregion\n//#region src/column-defaults.ts\n/**\n* The codec that encodes one column's default, built with the column's own `typeParams`, because a parameterized codec checks its params when it encodes and reads a default. Only a column has params; every other encode site takes the representative instance.\n*/\nfunction columnCodec(codecId, typeParams, codecLookup) {\n\treturn codecForRef(codecLookup, {\n\t\tcodecId,\n\t\t...ifDefined(\"typeParams\", typeParams === void 0 ? void 0 : blindCast(typeParams))\n\t});\n}\n/** Encodes a value the contract stores, and reads it back with the codec, which refuses a value its column would not hold. */\nfunction encodeViaCodec(value, codec) {\n\tif (codec) {\n\t\tconst json = codec.encodeJson(value);\n\t\tcodec.decodeJson(json);\n\t\treturn json;\n\t}\n\treturn blindCast(value);\n}\nfunction defaultRefusal(site, cause, elementPosition) {\n\tconst subject = elementPosition === void 0 ? \"default\" : `default (element ${elementPosition})`;\n\tconst reason = cause instanceof Error ? cause.message : String(cause);\n\treturn contractError(\"CONTRACT.DEFAULT_INVALID\", `${columnSiteSubject(site)} has a ${subject} that its codec refuses: ${reason}`, {\n\t\tcause,\n\t\tmeta: {\n\t\t\t...columnSiteMeta(site),\n\t\t\tcodecId: site.codecId,\n\t\t\treason: \"codec-refused-default\",\n\t\t\t...ifDefined(\"elementPosition\", elementPosition)\n\t\t}\n\t});\n}\nfunction encodeDefaultValue(value, codec, site, elementPosition) {\n\ttry {\n\t\treturn encodeViaCodec(value, codec);\n\t} catch (cause) {\n\t\tif (cause instanceof InternalError) throw cause;\n\t\tthrow defaultRefusal(site, cause, elementPosition);\n\t}\n}\nfunction codecForDefault(codecLookup, resolveCodec, site) {\n\tconst codec = buildCodecForDefault(codecLookup, resolveCodec, site);\n\tif (codec === void 0) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `${columnSiteSubject(site)} has a default, but no pack in the contract declares its codec \"${site.codecId}\", so the default cannot be checked. List the pack that owns the codec in \\`extensions\\`.`, { meta: {\n\t\t...columnSiteMeta(site),\n\t\tcodecId: site.codecId,\n\t\treason: \"codec-not-found\"\n\t} });\n\treturn codec;\n}\nfunction buildCodecForDefault(codecLookup, resolveCodec, site) {\n\ttry {\n\t\treturn resolveCodec(codecLookup);\n\t} catch (cause) {\n\t\tif (!isStructuredError(cause) || cause.code !== \"RUNTIME.TYPE_PARAMS_INVALID\") throw cause;\n\t\tthrow contractError(\"CONTRACT.ARGUMENT_INVALID\", `${columnSiteSubject(site)} has type parameters that its codec does not accept: ${cause.message}`, {\n\t\t\tcause,\n\t\t\tmeta: {\n\t\t\t\t...columnSiteMeta(site),\n\t\t\t\tcodecId: site.codecId,\n\t\t\t\treason: \"type-params-invalid\"\n\t\t\t}\n\t\t});\n\t}\n}\nfunction encodeColumnDefault(defaultInput, codecLookup, resolveCodec, site, many = false, elementNullable = false) {\n\tif (defaultInput.kind === \"function\") return {\n\t\tkind: \"function\",\n\t\texpression: defaultInput.expression\n\t};\n\tif (\"canonical\" in defaultInput && defaultInput.canonical === true) return {\n\t\tkind: \"literal\",\n\t\tvalue: blindCast(defaultInput.value)\n\t};\n\tif (many) {\n\t\tif (!Array.isArray(defaultInput.value)) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `${columnSiteSubject(site)} is a list field, so its default is an array; received ${typeof defaultInput.value}. Call .many() before .default().`, { meta: {\n\t\t\t...columnSiteMeta(site),\n\t\t\tcodecId: site.codecId,\n\t\t\treason: \"list-default-not-array\"\n\t\t} });\n\t\tconst codec = codecForDefault(codecLookup, resolveCodec, site);\n\t\treturn {\n\t\t\tkind: \"literal\",\n\t\t\tvalue: defaultInput.value.map((element, index) => {\n\t\t\t\tif (element !== null) return encodeDefaultValue(element, codec, site, index + 1);\n\t\t\t\tif (elementNullable) return null;\n\t\t\t\tthrow new InternalError(\"Literal default on a strict list column cannot contain null elements.\");\n\t\t\t})\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"literal\",\n\t\tvalue: encodeDefaultValue(defaultInput.value, codecForDefault(codecLookup, resolveCodec, site), site)\n\t};\n}\n//#endregion\n//#region src/enum-members.ts\n/** Whether TypeScript gives the value a literal type: a primitive, or an array or plain object of them. */\nfunction hasLiteralType(value) {\n\tif ([\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\",\n\t\t\"bigint\"\n\t].includes(typeof value)) return true;\n\tif (Array.isArray(value)) return value.every(hasLiteralType);\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === Object.prototype || prototype === null) && Object.values(value).every(hasLiteralType);\n}\n/**\n* Refuses a member whose codec reads its stored value back as a different value from the one written.\n* The contract's types name the member as written, while the runtime reads the stored value, so the\n* two must be the same value. A member with no literal type has nothing to contradict. The caller\n* has already read the stored value back once, so the codec takes it.\n*/\nfunction assertStoredAsWritten(enumName, member, stored, codec) {\n\tif (!hasLiteralType(member.value)) return;\n\tconst readBack = codec.decodeJson(stored);\n\tif (hasLiteralType(readBack) && canonicalStringify(readBack) === canonicalStringify(member.value)) return;\n\tconst writeAs = hasLiteralType(readBack) ? canonicalStringify(readBack) : JSON.stringify(stored);\n\tthrow contractError(\"CONTRACT.ENUM_INVALID\", `enumType(\"${enumName}\"): member \"${member.name}\" is written ${canonicalStringify(member.value)}, but the column stores ${JSON.stringify(stored)}. Write the member as ${writeAs}.`, { meta: {\n\t\tenumName,\n\t\tmember: member.name,\n\t\treason: \"member-not-stored-as-written\"\n\t} });\n}\n/** A member's value in the form the enum's codec stores it. A member the codec refuses is a `CONTRACT.ENUM_INVALID` naming the enum and the member. */\nfunction encodeEnumMember(handle, member, codec) {\n\ttry {\n\t\treturn encodeViaCodec(member.value, codec);\n\t} catch (cause) {\n\t\tif (cause instanceof InternalError) throw cause;\n\t\tconst reason = cause instanceof Error ? cause.message : String(cause);\n\t\tthrow contractError(\"CONTRACT.ENUM_INVALID\", `enumType(\"${handle.enumName}\") member \"${member.name}\" has a value its codec ${handle.codecId} refuses: ${reason}`, {\n\t\t\tfix: \"Give the member a value the codec takes, or type the enum with a codec that takes it.\",\n\t\t\tcause,\n\t\t\tmeta: {\n\t\t\t\tenumName: handle.enumName,\n\t\t\t\tmember: member.name,\n\t\t\t\tcodecId: handle.codecId,\n\t\t\t\treason: \"codec-refused-member\"\n\t\t\t}\n\t\t});\n\t}\n}\n/**\n* Each member's value in the form the enum's codec stores it, read back by the codec. A codec an\n* enum cannot use, a member the codec refuses, a member written differently from how it is stored,\n* and two members that store the same value are each a `CONTRACT.ENUM_INVALID`.\n*/\nfunction encodeEnumMembers(handle, codecLookup) {\n\tconst descriptor = codecLookup.descriptorFor(handle.codecId);\n\tconst enumRefusal = descriptor === void 0 ? void 0 : enumRefusalOf(descriptor);\n\tif (enumRefusal !== void 0) throw contractError(\"CONTRACT.ENUM_INVALID\", `enumType(\"${handle.enumName}\"): an enum cannot use the codec ${handle.codecId}. ${enumRefusal}`, {\n\t\tfix: \"Type the enum with another codec.\",\n\t\tmeta: {\n\t\t\tenumName: handle.enumName,\n\t\t\tcodecId: handle.codecId,\n\t\t\treason: \"codec-not-for-enums\"\n\t\t}\n\t});\n\tconst codec = codecLookup.get(handle.codecId);\n\tconst memberByStoredValue = /* @__PURE__ */ new Map();\n\treturn handle.enumMembers.map((member) => {\n\t\tconst value = encodeEnumMember(handle, member, codec);\n\t\tif (codec !== void 0) assertStoredAsWritten(handle.enumName, member, value, codec);\n\t\tconst key = canonicalStringify(value);\n\t\tconst earlier = memberByStoredValue.get(key);\n\t\tif (earlier !== void 0) throw contractError(\"CONTRACT.ENUM_INVALID\", `enumType(\"${handle.enumName}\"): members \"${earlier}\" and \"${member.name}\" both store ${JSON.stringify(value)}. Member values must be unique as the column stores them.`, { meta: {\n\t\t\tenumName: handle.enumName,\n\t\t\tmembers: [earlier, member.name],\n\t\t\treason: \"duplicate-member-value\"\n\t\t} });\n\t\tmemberByStoredValue.set(key, member.name);\n\t\treturn {\n\t\t\tname: member.name,\n\t\t\tvalue\n\t\t};\n\t});\n}\n/**\n* The member values a membership check must enforce, encoded exactly as the\n* column stores them. Membership predicates support strings and finite numbers.\n*/\nfunction checkMemberValues(handle, codecLookup) {\n\tconst encoded = encodeEnumMembers(handle, codecLookup).map((member) => member.value);\n\tconst values = [];\n\tfor (const value of encoded) {\n\t\tif (typeof value !== \"string\" && !(typeof value === \"number\" && Number.isFinite(value))) throw contractError(\"CONTRACT.ENUM_INVALID\", `enumType(\"${handle.enumName}\"): CHECK constraint members must encode to strings or finite numbers.`, { meta: {\n\t\t\tenumName: handle.enumName,\n\t\t\treason: \"unsupported-member-value\"\n\t\t} });\n\t\tvalues.push(value);\n\t}\n\treturn values;\n}\n/**\n* The refs of a field typed by an authored enum: the domain enum and its storage value set. Authored enums are registered in the default namespace, whatever namespace the field's model is in.\n*/\nfunction enumValueSetRefs(enumHandle, defaultNamespaceId) {\n\tif (enumHandle === void 0) return void 0;\n\tconst common = {\n\t\tnamespaceId: defaultNamespaceId,\n\t\tentityName: enumHandle.enumName\n\t};\n\treturn {\n\t\tdomain: {\n\t\t\tplane: \"domain\",\n\t\t\tentityKind: \"enum\",\n\t\t\t...common\n\t\t},\n\t\tstorage: {\n\t\t\tplane: \"storage\",\n\t\t\tentityKind: \"valueSet\",\n\t\t\t...common\n\t\t}\n\t};\n}\n//#endregion\n//#region src/domain-fields.ts\nfunction buildDomainField(field, defaultNamespaceId, storageTypes) {\n\tif (isValueObjectMember(field)) return {\n\t\ttype: {\n\t\t\tkind: \"valueObject\",\n\t\t\tname: field.valueObjectName\n\t\t},\n\t\tnullable: field.nullable,\n\t\tmany: field.many ? { elementNullable: field.elementNullable === true } : false\n\t};\n\treturn {\n\t\ttype: {\n\t\t\tkind: \"scalar\",\n\t\t\tcodecId: field.descriptor.codecId,\n\t\t\t...ifDefined(\"typeParams\", resolvedTypeParams(field.descriptor, storageTypes))\n\t\t},\n\t\tnullable: field.nullable,\n\t\tmany: field.many ? { elementNullable: field.elementNullable === true } : false,\n\t\t...ifDefined(\"valueSet\", enumValueSetRefs(field.enumTypeHandle, defaultNamespaceId)?.domain)\n\t};\n}\n//#endregion\n//#region src/namespace-id.ts\n/** A declared namespace coordinate, where an omitted or empty one means the target's default namespace. */\nfunction namespaceIdOrDefault(namespaceId, defaultNamespaceId) {\n\treturn namespaceId !== void 0 && namespaceId.length > 0 ? namespaceId : defaultNamespaceId;\n}\n//#endregion\n//#region src/model-references.ts\nfunction assertKnownTargetModel(modelsByName, modelsByCoordinate, owner, targetModelName, targetNamespaceId, context) {\n\tconst targetModel = targetNamespaceId !== void 0 && targetNamespaceId.length > 0 ? modelsByCoordinate.get(`${targetNamespaceId}:${targetModelName}`) : modelsByName.get(targetModelName);\n\tif (!targetModel) {\n\t\tconst qualified = targetNamespaceId !== void 0 && targetNamespaceId.length > 0 ? `${targetNamespaceId}.${targetModelName}` : targetModelName;\n\t\tthrow contractError(\"CONTRACT.MODEL_UNKNOWN\", `${context} on ${referenceOwnerSubject(owner)} references unknown model \"${qualified}\"`, { meta: {\n\t\t\t...referenceOwnerMeta(owner),\n\t\t\ttargetModel: qualified,\n\t\t\tcontext\n\t\t} });\n\t}\n\treturn targetModel;\n}\nfunction assertTargetTableMatches(owner, targetModel, referencedTableName, context) {\n\tif (targetModel.tableName !== referencedTableName) throw contractError(\"CONTRACT.TABLE_MISMATCH\", `${context} on ${referenceOwnerSubject(owner)} references table \"${referencedTableName}\" but model \"${targetModel.modelName}\" maps to \"${targetModel.tableName}\"`, { meta: {\n\t\t...referenceOwnerMeta(owner),\n\t\treferencedTable: referencedTableName,\n\t\tmappedTable: targetModel.tableName,\n\t\tcontext\n\t} });\n}\nfunction modelNamespaceId(model, defaultNamespaceId) {\n\treturn namespaceIdOrDefault(model.namespaceId, defaultNamespaceId);\n}\nfunction modelLookupsOf(definition) {\n\tconst defaultNamespaceId = definition.target.defaultNamespaceId;\n\tconst { models } = definition;\n\treturn {\n\t\tdefaultNamespaceId,\n\t\tmodelsByName: new Map(models.map((m) => [m.modelName, m])),\n\t\tmodelsByCoordinate: new Map(models.map((m) => [`${modelNamespaceId(m, defaultNamespaceId)}:${m.modelName}`, m])),\n\t\ttableNamespaceByName: new Map(models.map((m) => [m.tableName, modelNamespaceId(m, defaultNamespaceId)]))\n\t};\n}\n//#endregion\n//#region src/to-one-nullability-message.ts\nfunction toOneNullabilityContradictionMessage(location, contradiction) {\n\treturn contradiction === \"declared-optional\" ? `${location} is optional but every local field it joins on is required` : `${location} is required but a local field it joins on is nullable`;\n}\n//#endregion\n//#region src/model-relations.ts\nfunction toOneRelationNullable(semanticModel, relation) {\n\tconst location = `Relation \"${semanticModel.modelName}.${relation.fieldName}\"`;\n\tif (relation.nullable === void 0) throw contractError(\"CONTRACT.RELATION_INVALID\", `${location} with cardinality \"${relation.cardinality}\" must state whether it is nullable`, { meta: {\n\t\tmodelName: semanticModel.modelName,\n\t\trelationName: relation.fieldName,\n\t\treason: \"to-one-nullability-missing\"\n\t} });\n\tconst localColumns = relation.on.parentColumns;\n\tconst { contradiction } = resolveToOneRelationNullable({\n\t\tdeclaredNullable: relation.nullable,\n\t\tlocalFieldNullability: semanticModel.fields.filter((field) => localColumns.includes(field.columnName)).map((field) => field.nullable),\n\t\townsReference: relation.cardinality === \"N:1\"\n\t});\n\tif (contradiction !== void 0) throw contractError(\"CONTRACT.RELATION_INVALID\", relation.cardinality === \"N:1\" ? toOneNullabilityContradictionMessage(location, contradiction) : `${location} is required but does not own the foreign key, so nothing in storage guarantees the related row exists`, { meta: {\n\t\tmodelName: semanticModel.modelName,\n\t\trelationName: relation.fieldName,\n\t\treason: \"to-one-nullability-mismatch\"\n\t} });\n\treturn relation.nullable;\n}\nfunction buildThroughDescriptor(through, tableNamespaceByName, targetModel, modelName, fieldName, defaultNamespaceId) {\n\tif (!tableNamespaceByName.has(through.table)) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `buildSqlContractFromDefinition: junction table \"${through.table}\" for relation \"${modelName}.${fieldName}\" is not a declared model.`, { meta: {\n\t\tsourceModel: modelName,\n\t\trelationName: fieldName,\n\t\tjunctionTable: through.table\n\t} });\n\tconst namespaceId = through.namespaceId ?? defaultNamespaceId;\n\treturn {\n\t\ttable: through.table,\n\t\tnamespaceId,\n\t\tparentColumns: through.parentColumns,\n\t\tchildColumns: through.childColumns,\n\t\ttargetColumns: targetColumnsForJunction(targetModel, fieldName)\n\t};\n}\nfunction targetColumnsForJunction(targetModel, fieldName) {\n\tconst primaryKeyColumns = targetModel.id?.columns;\n\tif (primaryKeyColumns && primaryKeyColumns.length > 0) return primaryKeyColumns;\n\tconst firstUnique = targetModel.uniques?.find((u) => u.columns.length > 0);\n\tif (firstUnique) return firstUnique.columns;\n\tthrow contractError(\"CONTRACT.IDENTITY_INVALID\", `M:N target model \"${targetModel.modelName}\" (relation field \"${fieldName}\") has no primary id or unique key to derive junction targetColumns.`, { meta: {\n\t\tmodelName: targetModel.modelName,\n\t\treason: \"no-key-for-junction-target-columns\"\n\t} });\n}\n/** The field of `model` that maps a relation's join column. A relation joins on fields, so a column no field maps is refused. */\nfunction joinFieldOf(owner, relation, model, columnToField, column) {\n\tconst field = columnToField.get(column);\n\tif (field !== void 0) return field;\n\tthrow contractError(\"CONTRACT.RELATION_INVALID\", `Relation \"${owner.modelName}.${relation.fieldName}\" joins on column \"${column}\" of table \"${model.tableName}\", which no field of model \"${model.modelName}\" maps. A relation joins on fields; declare a field for the column.`, { meta: {\n\t\tmodelName: owner.modelName,\n\t\trelationName: relation.fieldName,\n\t\tcolumn,\n\t\treason: \"join-column-not-a-field\"\n\t} });\n}\n/** Lowers a model's relations. `columnToField` maps the model's columns to the fields that hold them. */\nfunction lowerRelations(semanticModel, columnToField, lookups) {\n\tconst { defaultNamespaceId } = lookups;\n\tconst modelRelations = {};\n\tfor (const relation of semanticModel.relations ?? []) {\n\t\tif (relation.spaceId !== void 0) {\n\t\t\tconst targetNamespaceId = relation.namespaceId ?? defaultNamespaceId;\n\t\t\tconst localFields = relation.on.parentColumns.map((col) => joinFieldOf(semanticModel, relation, semanticModel, columnToField, col));\n\t\t\tmodelRelations[relation.fieldName] = {\n\t\t\t\tto: crossRef(relation.toModel, targetNamespaceId, relation.spaceId),\n\t\t\t\tcardinality: \"N:1\",\n\t\t\t\tnullable: toOneRelationNullable(semanticModel, relation),\n\t\t\t\ton: {\n\t\t\t\t\tlocalFields,\n\t\t\t\t\ttargetFields: relation.on.childColumns\n\t\t\t\t}\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\t\tconst owner = {\n\t\t\tkind: \"model\",\n\t\t\tmodelName: semanticModel.modelName\n\t\t};\n\t\tconst targetModel = assertKnownTargetModel(lookups.modelsByName, lookups.modelsByCoordinate, owner, relation.toModel, relation.toNamespaceId, \"Relation\");\n\t\tinvariant(relation.toTable !== void 0, `Relation \"${semanticModel.modelName}.${relation.fieldName}\" is local but carries no target table; only cross-space relations may leave it unset.`);\n\t\tassertTargetTableMatches(owner, targetModel, relation.toTable, \"Relation\");\n\t\tconst targetColumnToField = new Map(targetModel.fields.map((f) => [f.columnName, f.fieldName]));\n\t\tconst to = crossRef(relation.toModel, relation.toNamespaceId !== void 0 && relation.toNamespaceId.length > 0 ? relation.toNamespaceId : modelNamespaceId(targetModel, defaultNamespaceId));\n\t\tconst joinField = (model, fields, column) => joinFieldOf(semanticModel, relation, model, fields, column);\n\t\tconst on = {\n\t\t\tlocalFields: relation.on.parentColumns.map((col) => joinField(semanticModel, columnToField, col)),\n\t\t\ttargetFields: relation.through !== void 0 ? [...relation.on.childColumns] : relation.on.childColumns.map((col) => joinField(targetModel, targetColumnToField, col))\n\t\t};\n\t\tif (relation.cardinality === \"N:M\") {\n\t\t\tif (!relation.through) throw contractError(\"CONTRACT.RELATION_INVALID\", `Relation \"${semanticModel.modelName}.${relation.fieldName}\" with cardinality \"N:M\" requires through metadata`, { meta: {\n\t\t\t\tmodelName: semanticModel.modelName,\n\t\t\t\trelationName: relation.fieldName,\n\t\t\t\treason: \"many-to-many-missing-through\"\n\t\t\t} });\n\t\t\tmodelRelations[relation.fieldName] = {\n\t\t\t\tto,\n\t\t\t\tcardinality: \"N:M\",\n\t\t\t\ton,\n\t\t\t\tthrough: buildThroughDescriptor(relation.through, lookups.tableNamespaceByName, targetModel, semanticModel.modelName, relation.fieldName, defaultNamespaceId)\n\t\t\t};\n\t\t} else if (relation.cardinality === \"1:N\") modelRelations[relation.fieldName] = {\n\t\t\tto,\n\t\t\tcardinality: \"1:N\",\n\t\t\ton\n\t\t};\n\t\telse modelRelations[relation.fieldName] = {\n\t\t\tto,\n\t\t\tcardinality: relation.cardinality,\n\t\t\tnullable: toOneRelationNullable(semanticModel, relation),\n\t\t\ton\n\t\t};\n\t}\n\treturn modelRelations;\n}\n//#endregion\n//#region src/storage-description.ts\n/** The key of a table among all tables of a contract: its namespace and its name. */\nfunction tableKey(namespaceId, tableName) {\n\treturn JSON.stringify([namespaceId, tableName]);\n}\n//#endregion\n//#region src/resolve-foreign-key.ts\n/** Resolves a foreign key's target. A cross-space key keeps its foreign space; a local key names either a model of this definition and that model's table, or a table a model or table node declares. */\nfunction resolveForeignKey(fk, sourceTable, context) {\n\tconst source = {\n\t\tnamespaceId: asNamespaceId(sourceTable.namespaceId),\n\t\ttableName: sourceTable.tableName,\n\t\tcolumns: fk.columns\n\t};\n\tconst options = {\n\t\t...applyFkDefaults({\n\t\t\t...ifDefined(\"constraint\", fk.constraint),\n\t\t\t...ifDefined(\"index\", fk.index)\n\t\t}, context.foreignKeyDefaults),\n\t\t...ifDefined(\"name\", fk.name),\n\t\t...ifDefined(\"onDelete\", fk.onDelete),\n\t\t...ifDefined(\"onUpdate\", fk.onUpdate)\n\t};\n\tif (fk.references.spaceId !== void 0) return {\n\t\tsource,\n\t\ttarget: {\n\t\t\tnamespaceId: asNamespaceId(fk.references.namespaceId ?? context.defaultNamespaceId),\n\t\t\ttableName: fk.references.table,\n\t\t\tcolumns: fk.references.columns,\n\t\t\tspaceId: fk.references.spaceId\n\t\t},\n\t\t...options\n\t};\n\tconst { references } = fk;\n\tif (references.model === void 0) {\n\t\tconst namespaceId = namespaceIdOrDefault(references.namespaceId, context.defaultNamespaceId);\n\t\tif (!context.declaredTables.has(tableKey(namespaceId, references.table))) throw contractError(\"CONTRACT.TABLE_UNKNOWN\", `Foreign key on ${referenceOwnerSubject(sourceTable.owner)} references table \"${references.table}\" in namespace \"${namespaceId}\", which no model or table node declares. Declare the table with a model or a table node, or correct the name.`, { meta: {\n\t\t\t...referenceOwnerMeta(sourceTable.owner),\n\t\t\treferencedTable: references.table,\n\t\t\tnamespaceId\n\t\t} });\n\t\treturn {\n\t\t\tsource,\n\t\t\ttarget: {\n\t\t\t\tnamespaceId: asNamespaceId(namespaceId),\n\t\t\t\ttableName: references.table,\n\t\t\t\tcolumns: references.columns\n\t\t\t},\n\t\t\t...options\n\t\t};\n\t}\n\tconst targetModel = assertKnownTargetModel(context.modelsByName, context.modelsByCoordinate, sourceTable.owner, references.model, fk.references.namespaceId, \"Foreign key\");\n\tassertTargetTableMatches(sourceTable.owner, targetModel, fk.references.table, \"Foreign key\");\n\treturn {\n\t\tsource,\n\t\ttarget: {\n\t\t\tnamespaceId: asNamespaceId(namespaceIdOrDefault(fk.references.namespaceId, modelNamespaceId(targetModel, context.defaultNamespaceId))),\n\t\t\ttableName: fk.references.table,\n\t\t\tcolumns: fk.references.columns\n\t\t},\n\t\t...options\n\t};\n}\n//#endregion\n//#region src/target-authoring-hooks.ts\n/**\n* Resolves a deferred entity-ref column descriptor (e.g. a `pg.enum(handle)`\n* column) against the field's now-known owning namespace: attaches the\n* storage `valueSet` ref the collected entity's derived value-set is stored\n* under. `typeParams.typeName` stays bare here — schema\n* qualification (e.g. `auth.aal_level`) is a target concern applied in the\n* next step, `qualifyColumnDescriptor`. A descriptor with no `entityRef` (the\n* ordinary case) passes through unchanged.\n*/\nfunction resolveEntityRefDescriptor(descriptor, namespaceId) {\n\tconst entityRef = descriptor.entityRef;\n\tif (entityRef === void 0) return descriptor;\n\treturn {\n\t\t...descriptor,\n\t\tvalueSet: {\n\t\t\tplane: \"storage\",\n\t\t\tentityKind: \"valueSet\",\n\t\t\tnamespaceId,\n\t\t\tentityName: entityRef.entityName\n\t\t}\n\t};\n}\n/**\n* Structural check for a target that contributes a `qualifyColumnType` hook\n* on its authoring contributions. Duck-typed (mirroring\n* `contract-psl`'s `hasColumnFromEntityHook`) so the SQL family stays blind\n* to the target's qualification logic and no framework/family interface has\n* to name the hook.\n*/\nfunction hasColumnTypeQualifier(authoring) {\n\treturn \"qualifyColumnType\" in authoring && typeof authoring.qualifyColumnType === \"function\";\n}\n/**\n* Structural check for a target that contributes a `renderCheckExpressions`\n* hook, duck-typed for the same reason {@link hasColumnTypeQualifier} is: the\n* SQL family stays blind to the target's predicate syntax.\n*/\nfunction hasCheckExpressionRenderer(authoring) {\n\treturn \"renderCheckExpressions\" in authoring && typeof authoring.renderCheckExpressions === \"function\";\n}\nfunction resolveCheckExpressionRenderer(target) {\n\tconst authoring = target.authoring;\n\tif (authoring === void 0) return void 0;\n\treturn hasCheckExpressionRenderer(authoring) ? authoring.renderCheckExpressions : void 0;\n}\nfunction resolveColumnTypeQualifier(target) {\n\tconst authoring = target.authoring;\n\tif (authoring === void 0) return void 0;\n\treturn hasColumnTypeQualifier(authoring) ? authoring.qualifyColumnType : void 0;\n}\n/**\n* Applies the target's `qualifyColumnType` hook to a scalar column descriptor.\n* A descriptor whose codec the target leaves unchanged passes through untouched.\n*/\nfunction qualifyColumnDescriptor(descriptor, namespaceId, qualify) {\n\tif (qualify === void 0) return descriptor;\n\tconst qualified = qualify({\n\t\tcodecId: descriptor.codecId,\n\t\t...ifDefined(\"typeParams\", descriptor.typeParams)\n\t}, namespaceId);\n\tif (qualified.typeParams === descriptor.typeParams) return descriptor;\n\treturn {\n\t\t...descriptor,\n\t\t...ifDefined(\"typeParams\", qualified.typeParams)\n\t};\n}\n/**\n* A column's descriptor as its namespace makes it: a deferred entity ref gets its storage value set, and the target's `qualifyColumnType` hook qualifies the type for the namespace.\n*/\nfunction resolveColumnDescriptor(descriptor, namespaceId, qualify) {\n\treturn qualifyColumnDescriptor(resolveEntityRefDescriptor(descriptor, namespaceId), namespaceId, qualify);\n}\n//#endregion\n//#region src/describe-model.ts\n/**\n* Converts one model into the storage it implies and its domain model. Other models are read only to resolve the references this one makes to them.\n*/\nfunction describeModel(model, context) {\n\tconst namespaceId = modelNamespaceId(model, context.defaultNamespaceId);\n\tconst { tableName } = model;\n\tconst fieldToColumn = {};\n\tconst domainFields = {};\n\tconst executionDefaults = [];\n\tfor (const field of model.fields) {\n\t\tconst executionDefault = executionDefaultOf(model.modelName, field);\n\t\tfieldToColumn[field.fieldName] = field.columnName;\n\t\tdomainFields[field.fieldName] = buildDomainField(isValueObjectMember(field) ? field : {\n\t\t\t...field,\n\t\t\tdescriptor: resolveColumnDescriptor(field.descriptor, namespaceId, context.qualifyColumnType)\n\t\t}, context.defaultNamespaceId, context.storageTypes);\n\t\tif (executionDefault) executionDefaults.push({\n\t\t\tref: {\n\t\t\t\tnamespace: namespaceId,\n\t\t\t\tentry: tableName,\n\t\t\t\tfield: field.columnName\n\t\t\t},\n\t\t\t...ifDefined(\"onCreate\", executionDefault.onCreate),\n\t\t\t...ifDefined(\"onUpdate\", executionDefault.onUpdate)\n\t\t});\n\t}\n\tconst storage = describeModelStorage(model, namespaceId, (model.foreignKeys ?? []).map((fk) => resolveForeignKey(fk, {\n\t\tnamespaceId,\n\t\ttableName: model.tableName,\n\t\towner: {\n\t\t\tkind: \"model\",\n\t\t\tmodelName: model.modelName\n\t\t}\n\t}, context)));\n\tconst storageFields = {};\n\tfor (const [fieldName, columnName] of Object.entries(fieldToColumn)) storageFields[fieldName] = { column: columnName };\n\tconst columnToField = new Map(Object.entries(fieldToColumn).map(([field, col]) => [col, field]));\n\treturn {\n\t\tstorage,\n\t\tdomain: {\n\t\t\tnamespaceId,\n\t\t\tmodelName: model.modelName,\n\t\t\tmodel: {\n\t\t\t\tstorage: {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\tfields: storageFields\n\t\t\t\t},\n\t\t\t\tfields: domainFields,\n\t\t\t\trelations: lowerRelations(model, columnToField, context)\n\t\t\t},\n\t\t\texecutionDefaults\n\t\t}\n\t};\n}\n/**\n* Single-table-inheritance variants share their base model's table: the variant's columns must already be on that table, and it has no table of its own. That leaves an authored check nowhere to attach, so it is refused here as a backstop; the PSL surface refuses it earlier, at interpretation, with a diagnostic that names the base model.\n*/\nfunction describeModelStorage(model, namespaceId, foreignKeys) {\n\tconst { tableName } = model;\n\tconst columns = model.fields.map((field) => describeFieldColumn(model.modelName, field));\n\tif (model.sharesBaseTable) {\n\t\tif (model.checks && model.checks.length > 0) throw contractError(\"CONTRACT.CHECK_ON_STI_VARIANT\", `Model \"${model.modelName}\" declares a check constraint but shares its base model's storage table (single-table inheritance) and has no table of its own to declare it on. Declare the check on the base model instead.`, { meta: {\n\t\t\ttableName,\n\t\t\tmodelName: model.modelName\n\t\t} });\n\t\treturn {\n\t\t\tkind: \"baseTable\",\n\t\t\tmodelName: model.modelName,\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\tcolumns\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"ownTable\",\n\t\tmodelName: model.modelName,\n\t\ttable: {\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\tcolumns,\n\t\t\tcontrol: model.control,\n\t\t\tid: model.id,\n\t\t\tuniques: model.uniques ?? [],\n\t\t\tindexes: model.indexes ?? [],\n\t\t\tchecks: model.checks ?? [],\n\t\t\tforeignKeys\n\t\t}\n\t};\n}\nfunction describeFieldColumn(modelName, field) {\n\tconst site = {\n\t\tkind: \"field\",\n\t\tmodelName,\n\t\tfieldName: field.fieldName\n\t};\n\tif (isValueObjectMember(field)) return describeColumn({\n\t\tcolumnName: field.columnName,\n\t\tdescriptor: field.descriptor,\n\t\tnullable: field.nullable,\n\t\t...ifDefined(\"default\", field.default)\n\t}, site);\n\treturn describeColumn(field, site);\n}\n/** The phases a generated default fills the field on, refused alongside a default or on an optional field. */\nfunction executionDefaultOf(modelName, field) {\n\tconst phases = field.executionDefaults?.onCreate || field.executionDefaults?.onUpdate ? field.executionDefaults : void 0;\n\tif (phases === void 0) return void 0;\n\tif (field.default !== void 0) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `Field \"${modelName}.${field.fieldName}\" cannot define both default and executionDefaults.`, { meta: {\n\t\tmodelName,\n\t\tfieldName: field.fieldName,\n\t\treason: \"default-and-executionDefaults\"\n\t} });\n\tif (field.nullable) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `Field \"${modelName}.${field.fieldName}\" is filled on write by a generated default (a preset such as temporal.createdAt() or an id generator), so it cannot be optional; remove .optional().`, { meta: {\n\t\tmodelName,\n\t\tfieldName: field.fieldName,\n\t\treason: \"nullable-with-executionDefaults\"\n\t} });\n\treturn phases;\n}\n//#endregion\n//#region src/describe-table-node.ts\n/** Describes a table node: its columns, and its foreign keys resolved against the definition's models and tables. */\nfunction describeTableNode(table, context) {\n\tconst namespaceId = namespaceIdOrDefault(table.namespaceId, context.defaultNamespaceId);\n\tconst { tableName } = table;\n\tconst owner = {\n\t\tkind: \"tableNode\",\n\t\tnamespaceId,\n\t\ttableName\n\t};\n\treturn {\n\t\tnamespaceId,\n\t\ttableName,\n\t\tcolumns: table.columns.map((column) => describeColumn(column, {\n\t\t\tkind: \"tableNode\",\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\tcolumnName: column.columnName\n\t\t})),\n\t\tid: table.id,\n\t\tuniques: table.uniques ?? [],\n\t\tindexes: table.indexes ?? [],\n\t\tchecks: table.checks ?? [],\n\t\tforeignKeys: (table.foreignKeys ?? []).map((fk) => resolveForeignKey(fk, {\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\towner\n\t\t}, context)),\n\t\tcontrol: table.control\n\t};\n}\n//#endregion\n//#region src/pack-entities.ts\n/**\n* Records a deferred column's entity-ref into the namespace-scoped collection\n* accumulator (`namespaceId → entityKind → entityName`) — folded into the same\n* namespace assembly `deriveEntityValueSets`/`entries.<kind>` step as the\n* entities-channel attachments, so a column-collected entity gets its\n* value-set the same way an entities-channel one does.\n*\n* The same handle reused by many columns in one namespace is normal (a native\n* enum type backs any number of columns) and records the identical entity once.\n* Two *different* entity instances sharing a name+kind in one namespace is a\n* name collision — the emitted `entries.valueSet.<name>` could only reflect one\n* of them, silently mismatching the other column's type/cast. PSL hard-errors\n* on the equivalent (`PSL_DUPLICATE_DECLARATION`); the TS path rejects it too.\n*/\nfunction collectEntityFromColumn(collected, namespaceId, entityRef) {\n\tconst forNs = collected[namespaceId] ?? {};\n\tconst forKind = forNs[entityRef.entityKind] ?? {};\n\tconst existing = forKind[entityRef.entityName];\n\tif (existing !== void 0 && existing !== entityRef.entity) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `buildSqlContractFromDefinition: two different \"${entityRef.entityKind}\" entities named \"${entityRef.entityName}\" in namespace \"${namespaceId}\" — pack-entity names must be unique per namespace.`, { meta: {\n\t\tkind: entityRef.entityKind,\n\t\tname: entityRef.entityName,\n\t\tnamespaceId\n\t} });\n\tforKind[entityRef.entityName] = entityRef.entity;\n\tforNs[entityRef.entityKind] = forKind;\n\tcollected[namespaceId] = forNs;\n}\n/**\n* Merges a namespace's entities-channel attachments (lowered from the\n* `entities` handle list, carried on `ContractDefinition.attachedEntities`)\n* with the entities collected from that namespace's deferred entity-ref\n* columns. A column-collected entity that shadows a *different* attached\n* entity of the same kind+name (or vice-versa) is the same name-collision bug\n* `collectEntityFromColumn` guards against across columns, so it is rejected\n* the same way — by entity identity, so the same handle attached and used by\n* a column does not throw.\n*/\nfunction mergeColumnAndAttachedEntities(namespaceId, attached, columnCollected) {\n\tif (attached === void 0) return columnCollected;\n\tif (columnCollected === void 0) return attached;\n\tconst kinds = /* @__PURE__ */ new Set([...Object.keys(attached), ...Object.keys(columnCollected)]);\n\tconst result = {};\n\tfor (const kind of kinds) {\n\t\tconst attachedForKind = attached[kind];\n\t\tconst columnForKind = columnCollected[kind];\n\t\tfor (const [name, entity] of Object.entries(columnForKind ?? {})) {\n\t\t\tconst existing = attachedForKind?.[name];\n\t\t\tif (existing !== void 0 && existing !== entity) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `buildSqlContractFromDefinition: two different \"${kind}\" entities named \"${name}\" in namespace \"${namespaceId}\" — a column-referenced entity conflicts with an attached one; pack-entity names must be unique per namespace.`, { meta: {\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tnamespaceId\n\t\t\t} });\n\t\t}\n\t\tresult[kind] = {\n\t\t\t...attachedForKind,\n\t\t\t...columnForKind\n\t\t};\n\t}\n\treturn result;\n}\n/**\n* Entry kinds the framework assembler itself manages (`table` from models,\n* `valueSet` from `enums` and attached-entity value-set derivation). A\n* pack-attached entity claiming one of these would silently clobber or be\n* clobbered by the managed slot, so it is rejected outright.\n*/\nconst MANAGED_ENTRY_KINDS = /* @__PURE__ */ new Set([tableEntityKind.kind, valueSetEntityKind.kind]);\nfunction assertNoManagedEntityKinds(namespaceId, entitiesForNs) {\n\tif (entitiesForNs === void 0) return;\n\tfor (const kind of Object.keys(entitiesForNs)) if (MANAGED_ENTRY_KINDS.has(kind)) throw contractError(\"CONTRACT.ENTITY_KIND_INVALID\", `buildSqlContractFromDefinition: attached entity in namespace \"${namespaceId}\" declares entry kind \"${kind}\", which is managed by the framework (table/valueSet) and cannot be attached.`, { meta: {\n\t\tentityKind: kind,\n\t\tnamespaceId\n\t} });\n}\n/**\n* Walks the flat `entityTypes` namespace tree contributed by the target pack\n* and every extension pack, indexing descriptors by their `discriminator` —\n* the same string a pack entity's entries-map key (`entries.<kind>`) uses.\n* Mirrors `contract-psl`'s `buildEntityTypesByDiscriminator`, recomposed here\n* from the packs `ContractDefinition` already carries (`target` +\n* `extensions`) since the TS assembler has no single pre-merged\n* `AuthoringContributions` input to read the way the PSL interpreter does.\n*/\nfunction collectEntityTypeDescriptorsByDiscriminator(definition) {\n\tconst result = /* @__PURE__ */ new Map();\n\tconst walk = (namespace) => {\n\t\tfor (const value of Object.values(namespace)) if (isAuthoringEntityTypeDescriptor(value)) result.set(value.discriminator, value);\n\t\telse walk(value);\n\t};\n\tconst components = [definition.target, ...Object.values(definition.extensions ?? {})];\n\tfor (const component of components) {\n\t\tconst entityTypes = component.authoring?.entityTypes;\n\t\tif (entityTypes !== void 0) walk(entityTypes);\n\t}\n\treturn result;\n}\n/**\n* Derives value-sets for every pack entity declared in one namespace,\n* reusing the same `SqlValueSetDerivingEntityTypeOutput.deriveValueSet` hook\n* `contract-psl`'s `lowerExtensionBlocksForNamespace` folds into\n* `entries.valueSet` on the PSL path — so a TS-attached entity (e.g. a\n* native enum) gets its value-set the same way. Entity kinds with no\n* registered descriptor, or whose descriptor output doesn't derive a\n* value-set, contribute nothing.\n*/\nfunction deriveEntityValueSets(entitiesForNs, entityTypesByDiscriminator) {\n\tif (entitiesForNs === void 0) return void 0;\n\tlet result;\n\tfor (const [kind, entitiesByName] of Object.entries(entitiesForNs)) {\n\t\tconst descriptor = entityTypesByDiscriminator.get(kind);\n\t\tif (descriptor === void 0) continue;\n\t\tfor (const [name, entity] of Object.entries(entitiesByName)) {\n\t\t\tconst derivedValueSet = deriveValueSetFromEntity(descriptor.output, entity);\n\t\t\tif (derivedValueSet === void 0) continue;\n\t\t\tresult ??= {};\n\t\t\tresult[name] = derivedValueSet;\n\t\t}\n\t}\n\treturn result;\n}\n/**\n* Merges a namespace's `enumType()`-derived value-sets with its pack-entity-\n* derived value-sets. Both land in the same `entries.valueSet[name]` slot —\n* which drives value-set → codec typing and the domain-enum CHECK — so a\n* same-named entry in both would let one silently overwrite the other and\n* corrupt whichever column resolves against it. The same collision class the\n* `mergeColumnAndAttachedEntities` guard rejects; the PSL path already hard-errors\n* on the equivalent (`interpretPslDocumentToSqlContract`). Reject it here too.\n*/\nfunction mergeNamespaceValueSets(namespaceId, enumValueSets, packValueSets) {\n\tif (enumValueSets !== void 0 && packValueSets !== void 0) {\n\t\tfor (const name of Object.keys(packValueSets)) if (Object.hasOwn(enumValueSets, name)) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `buildSqlContractFromDefinition: value-set \"${name}\" in namespace \"${namespaceId}\" is derived from both an enum and a pack entity — names must be unique per namespace.`, { meta: {\n\t\t\tkind: \"valueSet\",\n\t\t\tname,\n\t\t\tnamespaceId\n\t\t} });\n\t}\n\treturn {\n\t\t...enumValueSets,\n\t\t...packValueSets\n\t};\n}\n//#endregion\n//#region src/lower-column.ts\n/**\n* Resolves a field's authored `noCheck` kinds against its column shape:\n* the bare form (`[]`) becomes every kind the shape derives, and a named\n* kind that can never apply to the shape is an authoring error\n* (`CONTRACT.CHECK_OPTOUT_INVALID`). Returns the concrete kinds in\n* canonical ascending order — the only form the contract persists.\n*/\nfunction resolveNoCheckKinds(input) {\n\tconst derivable = [];\n\tif (input.many && !input.elementNullable) derivable.push(\"elementNotNull\");\n\tif (input.isDomainEnum) derivable.push(\"membership\");\n\tconst subject = columnSiteSubject(input.site);\n\tconst meta = columnSiteMeta(input.site);\n\tif (input.kinds.length === 0) {\n\t\tif (derivable.length === 0) throw contractError(\"CONTRACT.CHECK_OPTOUT_INVALID\", `${subject}: noCheck() waives nothing — this column's shape derives no generated checks.`, { meta: {\n\t\t\t...meta,\n\t\t\treason: \"no-derivable-checks\"\n\t\t} });\n\t\treturn derivable;\n\t}\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const kind of input.kinds) {\n\t\tif (seen.has(kind)) throw contractError(\"CONTRACT.CHECK_OPTOUT_INVALID\", `${subject}: noCheck(\"${kind}\") names the same kind twice.`, { meta: {\n\t\t\t...meta,\n\t\t\tkind,\n\t\t\treason: \"duplicate-kind\"\n\t\t} });\n\t\tseen.add(kind);\n\t\tif (!derivable.includes(kind)) throw contractError(\"CONTRACT.CHECK_OPTOUT_INVALID\", `${subject}: noCheck(\"${kind}\") does not apply — ${kind === \"membership\" ? \"membership checks are derived only from enumType() value sets\" : \"element-non-null checks are derived only for lists whose elements are semantically non-null\"}.`, { meta: {\n\t\t\t...meta,\n\t\t\tkind,\n\t\t\treason: \"inapplicable-kind\"\n\t\t} });\n\t}\n\treturn [...input.kinds].sort();\n}\n/**\n* Names the target's rendered checks and lowers them into contract entities.\n*\n* Naming is composed family-side ({@link composeCheckWirePrefix}) rather than\n* by the target, and suffixed with the predicate's content hash. Composing\n* family-side is what makes the truncation safe — two prefixes that truncate\n* alike still differ in their hashes, and the family can see that the\n* (table, column, kind) triple they were built from is unique per table,\n* rather than having to assume something about SQL text it declares itself\n* unable to read.\n*/\nfunction lowerRenderedChecks(tableName, candidates) {\n\treturn candidates.map((candidate) => new CheckConstraint({\n\t\tnaming: {\n\t\t\tkind: \"wire\",\n\t\t\tprefix: composeCheckWirePrefix(tableName, candidate.columnName, candidate.kind),\n\t\t\thash: computeCheckContentHash(candidate.expression)\n\t\t},\n\t\texpression: candidate.expression\n\t}));\n}\nfunction validateColumnTypeParams(dataType, typeParams, site) {\n\ttry {\n\t\tvalidateSqlTypeParams(dataType, dataTypeParams(dataType, typeParams));\n\t} catch (cause) {\n\t\tif (!isStructuredError(cause) || cause.code !== \"CONTRACT.TYPE_PARAMS_INVALID\") throw cause;\n\t\tthrow contractError(\"CONTRACT.TYPE_PARAMS_INVALID\", `${columnSiteSubject(site)} has type parameters that its data type does not accept: ${cause.message}`, {\n\t\t\tcause,\n\t\t\tmeta: {\n\t\t\t\t...cause.meta,\n\t\t\t\t...columnSiteMeta(site)\n\t\t\t}\n\t\t});\n\t}\n}\n/**\n* Lowers one column into its storage column and the enforcement checks its shape derives.\n*\n* A column whose type constructor refers to a pack entity (e.g. `pg.enum(handle)`) records that entity, and its descriptor is resolved against the column's namespace and handed to the target's `qualifyColumnType` hook. An opt-out from derived checks on a table that derives none is dropped, never persisted: the policy may also be stamped after the build by a specifier.\n*\n* Member values reach the check renderer only for a column typed by an `enumType()` handle: that column is a plain scalar with no native type of its own to enforce membership. A value set resolved by a type constructor binds the column to a native type that already enforces it.\n*/\nfunction lowerColumn(description, placement, context) {\n\tconst { site, many } = description;\n\tconst { codecLookup } = context.lookups;\n\tconst entityRef = description.descriptor.entityRef;\n\tif (entityRef !== void 0) collectEntityFromColumn(context.collectedColumnEntities, placement.namespaceId, entityRef);\n\tconst descriptor = resolveColumnDescriptor(description.descriptor, placement.namespaceId, context.qualifyColumnType);\n\tconst elementNullable = many !== false && many.elementNullable;\n\tconst noCheck = description.noCheck !== void 0 && placement.derivesChecks ? resolveNoCheckKinds({\n\t\tsite,\n\t\tkinds: description.noCheck,\n\t\tmany: many !== false,\n\t\telementNullable,\n\t\tisDomainEnum: description.enumTypeHandle !== void 0\n\t}) : void 0;\n\tconst codecId = descriptor.codecId;\n\tconst typeParams = resolvedTypeParams(descriptor, context.storageTypes);\n\tconst dataType = sqlDataTypeOfCodec(codecId, context.lookups);\n\tvalidateColumnTypeParams(dataType, typeParams, site);\n\tconst encodedDefault = description.default !== void 0 ? encodeColumnDefault(description.default, codecLookup, (lookup) => columnCodec(codecId, typeParams, lookup), {\n\t\t...site,\n\t\tcodecId\n\t}, many !== false, elementNullable) : void 0;\n\tconst enumRefs = enumValueSetRefs(description.enumTypeHandle, context.defaultNamespaceId);\n\tinvariant(enumRefs === void 0 || descriptor.valueSet === void 0, `${columnSiteSubject(site)} is typed by a domain enum and also carries a storage value set from its type constructor.`);\n\tconst valueSet = enumRefs?.storage ?? descriptor.valueSet;\n\tconst column = {\n\t\tdataType: dataType.id,\n\t\tcodecId,\n\t\tnullable: description.nullable,\n\t\tmany,\n\t\t...ifDefined(\"noCheck\", noCheck && [...noCheck].sort()),\n\t\t...ifDefined(\"typeParams\", descriptor.typeParams),\n\t\t...ifDefined(\"default\", encodedDefault),\n\t\t...ifDefined(\"typeRef\", descriptor.typeRef),\n\t\t...ifDefined(\"valueSet\", valueSet)\n\t};\n\tconst render = context.renderCheckExpressions;\n\tif (render === void 0 || !placement.derivesChecks) return {\n\t\tcolumn,\n\t\tderivedChecks: []\n\t};\n\tconst { enumTypeHandle } = description;\n\tconst candidates = render({\n\t\ttableName: placement.tableName,\n\t\tcolumnName: description.columnName,\n\t\tmany: many !== false,\n\t\telementNullable,\n\t\tmemberValues: enumTypeHandle !== void 0 ? checkMemberValues(enumTypeHandle, codecLookup) : void 0\n\t}).filter((candidate) => !(noCheck?.includes(candidate.kind) ?? false));\n\treturn {\n\t\tcolumn,\n\t\tderivedChecks: lowerRenderedChecks(placement.tableName, candidates)\n\t};\n}\n//#endregion\n//#region src/lower-table.ts\nconst DERIVABLE_CHECK_KINDS = [\"membership\", \"elementNotNull\"];\n/**\n* Which of `columnNames` could have produced `prefix` for some\n* {@link CheckKind} — the reverse of {@link derivedCheckPrefixes}, used only\n* to name the collision in `CONTRACT.CHECK_NAME_RESERVED`'s message. Callers\n* already know `prefix` is a member of `derivedCheckPrefixes(tableName,\n* columnNames)`, so the result is never empty.\n*/\nfunction columnsProducingCheckPrefix(tableName, columnNames, prefix) {\n\treturn columnNames.filter((columnName) => DERIVABLE_CHECK_KINDS.some((kind) => composeCheckWirePrefix(tableName, columnName, kind) === prefix));\n}\n/**\n* Lowers one table: each of its columns, then its indexes, checks, primary key, uniques and foreign keys, with the backing indexes its foreign keys need.\n*\n* Checks are derived only for tables Prisma 8 owns: the contract describes an external schema, it does not prescribe enforcement for it. This reads the policy the source declares; a policy applied by a contract specifier lands after the build and is handled by `stripDerivedChecksFromNonManagedTables`. Authored checks are kept whatever the policy: they are the author's statement about a constraint they know exists.\n*/\nfunction lowerTable(table, context) {\n\tconst { tableName } = table;\n\tconst derivesChecks = effectiveControlPolicy(table.control, context.defaultControlPolicy) === \"managed\";\n\tconst placement = {\n\t\tnamespaceId: table.namespaceId,\n\t\ttableName,\n\t\tderivesChecks\n\t};\n\tconst columns = {};\n\tconst checks = [];\n\tfor (const description of table.columns) {\n\t\tconst lowered = lowerColumn(description, placement, context);\n\t\tcolumns[description.columnName] = lowered.column;\n\t\tchecks.push(...lowered.derivedChecks);\n\t}\n\tconst uniques = table.uniques.map((u) => ({\n\t\tcolumns: u.columns,\n\t\t...ifDefined(\"name\", u.name)\n\t}));\n\tconst declaredIndexes = table.indexes.map((index) => ({\n\t\tnamedByUser: index.name !== void 0 || index.map !== void 0,\n\t\tindex: lowerAuthoredIndex(tableName, authoredIndexInput(index), context.warnings, context.indexTypeRegistry)\n\t}));\n\tchecks.push(...lowerAuthoredChecks(tableName, Object.keys(columns), table.checks, context));\n\tconst primaryKey = table.id ? {\n\t\tcolumns: table.id.columns,\n\t\t...ifDefined(\"name\", table.id.name)\n\t} : void 0;\n\tconst { foreignKeys, indexes } = materializeForeignKeysAndIndexes({\n\t\ttableName,\n\t\tforeignKeys: table.foreignKeys,\n\t\tdeclaredIndexes,\n\t\tuniques,\n\t\tprimaryKey,\n\t\twarnings: context.warnings,\n\t\tindexTypes: context.indexTypeRegistry\n\t});\n\treturn {\n\t\tcolumns,\n\t\t...ifDefined(\"control\", table.control),\n\t\tuniques,\n\t\tindexes: indexes.map((i) => new Index(i)),\n\t\tforeignKeys,\n\t\t...primaryKey ? { primaryKey } : {},\n\t\t...checks.length > 0 ? { checks: inCanonicalOrder(checks) } : {}\n\t};\n}\n/**\n* The checks sorted by name in UTF-16 code-unit order, the order contract canonicalization gives them. The table's storage is then the same whichever declaration each column came from and in whatever order the columns were listed.\n*/\nfunction inCanonicalOrder(checks) {\n\treturn [...checks].sort((a, b) => compareCodeUnits(a.name, b.name));\n}\nfunction authoredIndexInput(index) {\n\treturn blindCast({\n\t\t...ifDefined(\"columns\", index.columns),\n\t\t...ifDefined(\"expression\", index.expression),\n\t\twhere: index.where,\n\t\tunique: index.unique,\n\t\tmap: index.map,\n\t\tname: index.name,\n\t\ttype: index.type,\n\t\toptions: index.options\n\t});\n}\n/** Names the authored checks, and refuses one whose name could be taken for a derived check of a column of this table. */\nfunction lowerAuthoredChecks(tableName, tableColumnNames, authoredChecks, context) {\n\tif (authoredChecks.length === 0) return [];\n\tconst reservedCheckPrefixes = derivedCheckPrefixes(tableName, tableColumnNames);\n\treturn authoredChecks.map((authoredCheck) => {\n\t\tconst lowered = lowerAuthoredCheck(tableName, authoredCheck, context.warnings);\n\t\tif (lowered.naming.kind === \"wire\" && reservedCheckPrefixes.has(lowered.naming.prefix)) {\n\t\t\tconst collidingColumns = columnsProducingCheckPrefix(tableName, tableColumnNames, lowered.naming.prefix);\n\t\t\tconst columnList = collidingColumns.map((name) => `\"${name}\"`).join(\", \");\n\t\t\tthrow contractError(\"CONTRACT.CHECK_NAME_RESERVED\", `Check \"${lowered.naming.prefix}\" on table \"${tableName}\": this name's prefix matches the shape a derived enforcement check would use for column${collidingColumns.length === 1 ? \"\" : \"s\"} ${columnList} of this table, so it can't be told apart from one. Choose a different name.`, { meta: {\n\t\t\t\ttableName,\n\t\t\t\tprefix: lowered.naming.prefix,\n\t\t\t\tcollidingColumns\n\t\t\t} });\n\t\t}\n\t\treturn new CheckConstraint(lowered);\n\t});\n}\n//#endregion\n//#region src/merge-tables.ts\n/** How a refusal names each table-level property. Typed by every key of {@link TableProperties}, so a new property cannot be left out of the check. */\nconst tablePropertyLabels = {\n\tid: \"a primary key\",\n\tuniques: \"unique constraints\",\n\tindexes: \"indexes\",\n\tchecks: \"check constraints\",\n\tforeignKeys: \"foreign keys\",\n\tcontrol: \"a control policy\"\n};\nfunction isTableProperty(key) {\n\treturn Object.hasOwn(tablePropertyLabels, key);\n}\n/**\n* Collects the tables the models and table nodes describe, one per namespace and table name: the models' tables in model order, then the tables only table nodes declare.\n*\n* A table node for a table a model maps adds its columns to that table and nothing else, because the model owns the table's table-level properties. A table node for any other table is the whole table. A single-table variant adds nothing: each of its columns must already be on its base's table, which the base owns, and no table node may declare a column a variant's field maps. A variant whose table no model owns is not checked.\n*\n* Every table comes out with its foreign keys from exactly one declaration, a model or a table node, in the order that declaration lists them.\n*/\nfunction mergeTables(storages, tableNodes) {\n\tconst tables = /* @__PURE__ */ new Map();\n\tconst modelOfTable = /* @__PURE__ */ new Map();\n\tfor (const storage of storages) {\n\t\tif (storage.kind !== \"ownTable\") continue;\n\t\tconst { table } = storage;\n\t\tconst key = tableKey(table.namespaceId, table.tableName);\n\t\tif (tables.has(key)) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `buildSqlContractFromDefinition: duplicate table \"${table.tableName}\" in namespace \"${table.namespaceId}\".`, { meta: {\n\t\t\tkind: \"table\",\n\t\t\tname: table.tableName,\n\t\t\tnamespaceId: table.namespaceId\n\t\t} });\n\t\ttables.set(key, table);\n\t\tmodelOfTable.set(key, storage.modelName);\n\t}\n\tconst variants = storages.filter((storage) => storage.kind === \"baseTable\");\n\tconst variantColumnSites = variantColumnSitesByTable(variants);\n\tconst tableNodeKeys = /* @__PURE__ */ new Set();\n\tfor (const tableNode of tableNodes) {\n\t\tconst key = tableKey(tableNode.namespaceId, tableNode.tableName);\n\t\tif (tableNodeKeys.has(key)) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Table \"${tableNode.tableName}\" in namespace \"${tableNode.namespaceId}\" is declared by two table nodes.`, { meta: {\n\t\t\tkind: \"table\",\n\t\t\tname: tableNode.tableName,\n\t\t\tnamespaceId: tableNode.namespaceId\n\t\t} });\n\t\ttableNodeKeys.add(key);\n\t\tconst columnSites = variantColumnSites.get(key) ?? /* @__PURE__ */ new Map();\n\t\tconst modelName = modelOfTable.get(key);\n\t\tconst modelled = tables.get(key);\n\t\tif (modelName === void 0 || modelled === void 0) {\n\t\t\ttables.set(key, {\n\t\t\t\t...tableNode,\n\t\t\t\tcolumns: withColumns([], tableNode, columnSites)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tassertOnlyColumns(tableNode, modelName);\n\t\ttables.set(key, {\n\t\t\t...modelled,\n\t\t\tcolumns: withColumns(modelled.columns, tableNode, columnSites)\n\t\t});\n\t}\n\tfor (const variant of variants) {\n\t\tconst table = tables.get(tableKey(variant.namespaceId, variant.tableName));\n\t\tif (table !== void 0) assertVariantColumnsOnBaseTable(variant, table);\n\t}\n\treturn [...tables.values()];\n}\n/** For each table, the variant field that maps each variant column; the first variant to map a column names it. */\nfunction variantColumnSitesByTable(variants) {\n\tconst sites = /* @__PURE__ */ new Map();\n\tfor (const variant of variants) {\n\t\tconst key = tableKey(variant.namespaceId, variant.tableName);\n\t\tconst byColumn = sites.get(key) ?? /* @__PURE__ */ new Map();\n\t\tfor (const column of variant.columns) if (!byColumn.has(column.columnName)) byColumn.set(column.columnName, column.site);\n\t\tsites.set(key, byColumn);\n\t}\n\treturn sites;\n}\n/**\n* The table's columns with the table node's columns added. A column some field already declares is refused, and the error names the field the author wrote: a single-table variant's field when a variant maps the column, even though the base table carries a copy of it.\n*/\nfunction withColumns(columns, tableNode, variantColumnSites) {\n\tconst sites = new Map(columns.map((column) => [column.columnName, column.site]));\n\tfor (const column of tableNode.columns) {\n\t\tconst earlier = variantColumnSites.get(column.columnName) ?? sites.get(column.columnName);\n\t\tif (earlier !== void 0) {\n\t\t\tconst problem = earlier.kind === \"field\" ? `is declared by field \"${earlier.modelName}.${earlier.fieldName}\" and again by a table node` : \"is listed twice by its table node\";\n\t\t\tthrow contractError(\"CONTRACT.NAME_DUPLICATE\", `Column \"${column.columnName}\" of table \"${tableNode.tableName}\" ${problem}.`, { meta: {\n\t\t\t\tkind: \"column\",\n\t\t\t\tname: column.columnName,\n\t\t\t\ttableName: tableNode.tableName,\n\t\t\t\tnamespaceId: tableNode.namespaceId\n\t\t\t} });\n\t\t}\n\t\tsites.set(column.columnName, column.site);\n\t}\n\treturn [...columns, ...tableNode.columns];\n}\nfunction isStated(value) {\n\treturn Array.isArray(value) ? value.length > 0 : value !== void 0;\n}\nfunction assertOnlyColumns(tableNode, modelName) {\n\tconst property = Object.keys(tablePropertyLabels).filter(isTableProperty).find((name) => isStated(tableNode[name]));\n\tif (property === void 0) return;\n\tthrow contractError(\"CONTRACT.TABLE_OWNED_BY_MODEL\", `A table node for table \"${tableNode.tableName}\" states ${tablePropertyLabels[property]}, but model \"${modelName}\" maps that table and owns its table-level properties. A table node for a modelled table may only add columns.`, { meta: {\n\t\tnamespaceId: tableNode.namespaceId,\n\t\ttableName: tableNode.tableName,\n\t\tmodelName,\n\t\tproperty\n\t} });\n}\nfunction assertVariantColumnsOnBaseTable(variant, table) {\n\tconst present = new Set(table.columns.map((column) => column.columnName));\n\tconst missing = variant.columns.find((column) => !present.has(column.columnName));\n\tif (missing === void 0) return;\n\tthrow contractError(\"CONTRACT.VARIANT_COLUMN_NOT_ON_BASE_TABLE\", `Model \"${variant.modelName}\" shares table \"${variant.tableName}\" with its base model (single-table inheritance), but its column \"${missing.columnName}\" is not on that table. The base model owns the table; declare the column there.`, { meta: {\n\t\tmodelName: variant.modelName,\n\t\tnamespaceId: variant.namespaceId,\n\t\ttableName: variant.tableName,\n\t\tcolumnName: missing.columnName\n\t} });\n}\n//#endregion\n//#region src/unmapped-column-warnings.ts\n/**\n* A warning for each column a table node adds to a table some model maps, when the column is required and has no default. The ORM writes only the columns fields map, so every insert it makes into that table fails. Prisma 7 accepts such a schema, so this warns rather than refuses.\n*/\nfunction requiredUnmappedColumnWarnings(storages, tables) {\n\tconst modelOfTable = /* @__PURE__ */ new Map();\n\tfor (const storage of storages) if (storage.kind === \"ownTable\") modelOfTable.set(tableKey(storage.table.namespaceId, storage.table.tableName), storage.modelName);\n\tconst warnings = [];\n\tfor (const table of tables) {\n\t\tconst modelName = modelOfTable.get(tableKey(table.namespaceId, table.tableName));\n\t\tif (modelName === void 0) continue;\n\t\tfor (const column of table.columns) {\n\t\t\tif (column.site.kind !== \"tableNode\" || column.nullable || column.default !== void 0) continue;\n\t\t\twarnings.push({\n\t\t\t\tcode: \"PN_COLUMN_REQUIRED_UNMAPPED\",\n\t\t\t\tmessage: `Column \"${column.columnName}\" of table \"${table.tableName}\" is required and has no default, and no field of model \"${modelName}\" maps it, so every insert the ORM makes into the table fails. Make the column nullable, give it a database default, or map it with a field.`,\n\t\t\t\titem: `table \"${table.tableName}\": column \"${column.columnName}\"`,\n\t\t\t\tsummary: \"columns are required, have no default, and no field maps them, so every insert the ORM makes into their tables fails. Make each column nullable, give it a database default, or map it with a field.\"\n\t\t\t});\n\t\t}\n\t}\n\treturn warnings;\n}\n//#endregion\n//#region src/build-contract.ts\nfunction assertStorageSemantics(contract, indexTypeRegistry, codecLookup) {\n\tconst semanticErrors = validateStorageSemantics(contract.storage);\n\tif (semanticErrors.length > 0) throw contractError(\"CONTRACT.VALIDATION_FAILED\", `Contract semantic validation failed: ${semanticErrors.join(\"; \")}`, { meta: { errors: semanticErrors } });\n\tvalidateIndexTypes(contract, indexTypeRegistry, (codecId) => codecLookup.descriptorFor(codecId)?.traits);\n}\nfunction collectStorageNamespaceCoordinateIds(definition) {\n\tconst defaultNamespaceId = definition.target.defaultNamespaceId;\n\tconst declared = [\n\t\t...definition.namespaces ?? [],\n\t\t...definition.models.map((model) => model.namespaceId),\n\t\t...(definition.tables ?? []).map((table) => table.namespaceId),\n\t\t...Object.keys(definition.attachedEntities ?? {})\n\t];\n\treturn /* @__PURE__ */ new Set([defaultNamespaceId, ...declared.map((id) => namespaceIdOrDefault(id, defaultNamespaceId))]);\n}\nfunction ensureUnboundNamespaceSlot(namespaces, createNamespace) {\n\tif (Object.hasOwn(namespaces, UNBOUND_NAMESPACE_ID)) return namespaces;\n\tconst unbound = createNamespace({\n\t\tid: UNBOUND_NAMESPACE_ID,\n\t\tentries: { table: {} }\n\t});\n\treturn {\n\t\t[UNBOUND_NAMESPACE_ID]: unbound,\n\t\t...namespaces\n\t};\n}\nfunction declaredTableKeys(definition) {\n\tconst defaultNamespaceId = definition.target.defaultNamespaceId;\n\treturn /* @__PURE__ */ new Set([...definition.models.map((model) => tableKey(modelNamespaceId(model, defaultNamespaceId), model.tableName)), ...(definition.tables ?? []).map((table) => tableKey(namespaceIdOrDefault(table.namespaceId, defaultNamespaceId), table.tableName))]);\n}\n/**\n* Builds the contract in two stages. First each model is converted on its own into the table it describes and its domain model, and each table node into the table it describes. Then the tables are merged, each is lowered, and the contract is assembled.\n*/\nfunction buildSqlContractFromDefinition(definition, codecLookup, dataTypeLookup) {\n\tconst lookups = {\n\t\tcodecLookup,\n\t\tdataTypeLookup\n\t};\n\tconst target = definition.target.targetId;\n\tconst defaultNamespaceId = definition.target.defaultNamespaceId;\n\tconst indexTypeRegistry = indexTypeRegistryOf(definition.target, Object.values(definition.extensions ?? {}));\n\tconst qualifyColumnType = resolveColumnTypeQualifier(definition.target);\n\tconst storageTypes = definition.storageTypes ?? {};\n\tconst targetFamily = \"sql\";\n\tconst modelDescriptionContext = {\n\t\t...modelLookupsOf(definition),\n\t\tdeclaredTables: declaredTableKeys(definition),\n\t\tforeignKeyDefaults: definition.foreignKeyDefaults,\n\t\tstorageTypes,\n\t\tqualifyColumnType\n\t};\n\tconst components = definition.models.map((model) => describeModel(model, modelDescriptionContext));\n\tconst tableNodes = (definition.tables ?? []).map((table) => describeTableNode(table, modelDescriptionContext));\n\tconst authoringWarnings = [...definition.warnings ?? []];\n\tconst collectedColumnEntities = {};\n\tconst tableLoweringContext = {\n\t\tlookups,\n\t\tstorageTypes,\n\t\tdefaultNamespaceId,\n\t\tqualifyColumnType,\n\t\trenderCheckExpressions: resolveCheckExpressionRenderer(definition.target),\n\t\tcollectedColumnEntities,\n\t\tdefaultControlPolicy: definition.defaultControlPolicy,\n\t\tindexTypeRegistry,\n\t\twarnings: authoringWarnings\n\t};\n\tconst tablesByNamespace = {};\n\tconst modelStorages = components.map((c) => c.storage);\n\tconst tables = mergeTables(modelStorages, tableNodes);\n\tauthoringWarnings.push(...requiredUnmappedColumnWarnings(modelStorages, tables));\n\tfor (const table of tables) {\n\t\tconst namespaceTables = tablesByNamespace[table.namespaceId] ?? {};\n\t\tnamespaceTables[table.tableName] = lowerTable(table, tableLoweringContext);\n\t\ttablesByNamespace[table.namespaceId] = namespaceTables;\n\t}\n\tconst executionDefaults = components.flatMap((c) => c.domain.executionDefaults);\n\tconst modelsByNamespace = {};\n\tfor (const { domain } of components) {\n\t\tconst namespaceModels = modelsByNamespace[domain.namespaceId] ?? {};\n\t\tnamespaceModels[domain.modelName] = domain.model;\n\t\tmodelsByNamespace[domain.namespaceId] = namespaceModels;\n\t}\n\tconst roots = buildRoots(components);\n\tconst documentTypes = Object.fromEntries(Object.entries(storageTypes).map(([name, entry]) => [name, toStorageTypeInstance({\n\t\tcodecId: entry.codecId,\n\t\tdataType: sqlDataTypeOfCodec(entry.codecId, lookups).id,\n\t\ttypeParams: entry.typeParams\n\t})]));\n\tconst namespaceCoordinateIds = collectStorageNamespaceCoordinateIds(definition);\n\tconst domainEnumsByNs = {};\n\tconst storageValueSetsByNs = {};\n\tfor (const [enumName, handle] of Object.entries(definition.enums ?? {})) {\n\t\tif (enumName !== handle.enumName) throw contractError(\"CONTRACT.ENUM_INVALID\", `enum declaration key \"${enumName}\" must match enumType name \"${handle.enumName}\". Aliases are not supported.`, { meta: {\n\t\t\tenumName: handle.enumName,\n\t\t\tdeclarationKey: enumName,\n\t\t\treason: \"key-name-mismatch\"\n\t\t} });\n\t\tconst nsId = defaultNamespaceId;\n\t\tlet domainSlot = domainEnumsByNs[nsId];\n\t\tif (domainSlot === void 0) {\n\t\t\tdomainSlot = {};\n\t\t\tdomainEnumsByNs[nsId] = domainSlot;\n\t\t}\n\t\tconst storedMembers = encodeEnumMembers(handle, codecLookup);\n\t\tdomainSlot[enumName] = {\n\t\t\tcodecId: handle.codecId,\n\t\t\tmembers: storedMembers\n\t\t};\n\t\tlet storageSlot = storageValueSetsByNs[nsId];\n\t\tif (storageSlot === void 0) {\n\t\t\tstorageSlot = {};\n\t\t\tstorageValueSetsByNs[nsId] = storageSlot;\n\t\t}\n\t\tstorageSlot[enumName] = {\n\t\t\tkind: \"valueSet\",\n\t\t\tvalues: storedMembers.map((member) => member.value)\n\t\t};\n\t}\n\tconst { createNamespace } = definition;\n\tconst entityTypesByDiscriminator = collectEntityTypeDescriptorsByDiscriminator(definition);\n\tconst namespaces = Object.fromEntries([...namespaceCoordinateIds].sort().map((id) => {\n\t\tconst entitiesForNs = mergeColumnAndAttachedEntities(id, definition.attachedEntities?.[id], collectedColumnEntities[id]);\n\t\tassertNoManagedEntityKinds(id, entitiesForNs);\n\t\tconst enumValueSetEntries = storageValueSetsByNs[id];\n\t\tconst packValueSetEntries = deriveEntityValueSets(entitiesForNs, entityTypesByDiscriminator);\n\t\tconst valueSetEntries = enumValueSetEntries !== void 0 || packValueSetEntries !== void 0 ? mergeNamespaceValueSets(id, enumValueSetEntries, packValueSetEntries) : void 0;\n\t\tconst nsInput = {\n\t\t\tid,\n\t\t\tentries: {\n\t\t\t\ttable: tablesByNamespace[id] ?? {},\n\t\t\t\t...entitiesForNs,\n\t\t\t\t...valueSetEntries !== void 0 && Object.keys(valueSetEntries).length > 0 ? { valueSet: valueSetEntries } : {}\n\t\t\t}\n\t\t};\n\t\treturn [id, createNamespace(nsInput)];\n\t}));\n\tconst storageWithoutHash = {\n\t\t...Object.keys(documentTypes).length > 0 ? { types: documentTypes } : {},\n\t\tnamespaces: defaultNamespaceId === UNBOUND_NAMESPACE_ID ? ensureUnboundNamespaceSlot(namespaces, createNamespace) : namespaces\n\t};\n\tconst storageHash = definition.storageHash ? coreHash(definition.storageHash) : computeStorageHash({\n\t\ttarget,\n\t\ttargetFamily,\n\t\tstorage: blindCast(storageWithoutHash),\n\t\t...sqlContractCanonicalizationHooks\n\t});\n\tconst storage = new SqlStorage({\n\t\t...storageWithoutHash,\n\t\tstorageHash\n\t});\n\tconst extensionNamespaces = definition.extensions ? Object.values(definition.extensions).map((pack) => pack.id) : void 0;\n\tconst extensions = { ...definition.extensions || {} };\n\tif (extensionNamespaces) {\n\t\tfor (const namespace of extensionNamespaces) if (!Object.hasOwn(extensions, namespace)) extensions[namespace] = {};\n\t}\n\tconst capabilities = mergeCapabilityMatrices({}, [definition.target, ...Object.values(definition.extensions ?? {})]);\n\tconst profileHash = computeProfileHash({\n\t\ttarget,\n\t\ttargetFamily,\n\t\tcapabilities: {}\n\t});\n\tconst executionWithHash = buildExecutionSection({\n\t\ttarget,\n\t\ttargetFamily,\n\t\tdefaults: executionDefaults\n\t});\n\tconst valueObjects = definition.valueObjects && definition.valueObjects.length > 0 ? Object.fromEntries(definition.valueObjects.map((vo) => [vo.name, { fields: Object.fromEntries(vo.fields.map((f) => [f.fieldName, buildDomainField(f, defaultNamespaceId, storageTypes)])) }])) : void 0;\n\tconst domainNamespaceIds = new Set(Object.keys(modelsByNamespace));\n\tif (domainNamespaceIds.size === 0) domainNamespaceIds.add(defaultNamespaceId);\n\tif (valueObjects !== void 0) domainNamespaceIds.add(defaultNamespaceId);\n\tfor (const nsId of Object.keys(domainEnumsByNs)) domainNamespaceIds.add(nsId);\n\tconst domainNamespaces = Object.fromEntries([...domainNamespaceIds].sort().map((namespaceId) => {\n\t\tconst modelsInNs = modelsByNamespace[namespaceId] ?? {};\n\t\tconst enumsInNs = domainEnumsByNs[namespaceId];\n\t\treturn [namespaceId, {\n\t\t\tmodels: modelsInNs,\n\t\t\t...namespaceId === defaultNamespaceId && valueObjects !== void 0 ? { valueObjects } : {},\n\t\t\t...enumsInNs !== void 0 && Object.keys(enumsInNs).length > 0 ? { enum: enumsInNs } : {}\n\t\t}];\n\t}));\n\tconst contract = {\n\t\ttarget,\n\t\ttargetFamily,\n\t\t...ifDefined(\"defaultControlPolicy\", definition.defaultControlPolicy),\n\t\tdomain: { namespaces: domainNamespaces },\n\t\troots,\n\t\tstorage,\n\t\t...executionWithHash ? { execution: executionWithHash } : {},\n\t\textensions,\n\t\tcapabilities,\n\t\tprofileHash,\n\t\tmeta: {}\n\t};\n\tassertStorageSemantics(contract, indexTypeRegistry, codecLookup);\n\tflushAuthoringWarnings(authoringWarnings);\n\treturn contract;\n}\n/**\n* Aggregate roots, one per model that owns a table, keyed by bare storage table name. When two models in different namespaces map to the same bare table name, the bare key would collide, so those entries fall back to a namespace-qualified key. Single-namespace contracts never collide and keep their bare keys.\n*/\nfunction buildRoots(components) {\n\tconst rootEntries = components.flatMap(({ storage, domain }) => storage.kind === \"ownTable\" ? [{\n\t\ttableName: storage.table.tableName,\n\t\tnamespaceId: domain.namespaceId,\n\t\tref: crossRef(domain.modelName, domain.namespaceId)\n\t}] : []);\n\tconst rootTableNameCounts = /* @__PURE__ */ new Map();\n\tfor (const entry of rootEntries) rootTableNameCounts.set(entry.tableName, (rootTableNameCounts.get(entry.tableName) ?? 0) + 1);\n\tconst roots = {};\n\tfor (const entry of rootEntries) {\n\t\tconst key = (rootTableNameCounts.get(entry.tableName) ?? 0) > 1 ? `${entry.namespaceId}.${entry.tableName}` : entry.tableName;\n\t\troots[key] = entry.ref;\n\t}\n\treturn roots;\n}\n//#endregion\n//#region src/derived-checks.ts\n/**\n* The one step every SQL contract specifier funnels its loaded contract\n* through: stamp the specifier's default control policy, then strip derived\n* checks from every table the stamped policy leaves non-managed. Composing the\n* two here is what keeps the managed-only consequence from being skipped on\n* any specifier route.\n*/\nfunction applySqlSpecifierControlPolicy(contract, defaultControlPolicy, createNamespace) {\n\treturn stripDerivedChecksFromNonManagedTables(applySpecifierDefaultControlPolicy(contract, defaultControlPolicy), createNamespace);\n}\n/**\n* Removes generated enforcement checks from every table whose effective\n* control policy is not `managed`.\n*\n* A check is derived iff its wire prefix is one derivation would produce for\n* some column of its table — {@link derivedCheckPrefixes} enumerates that\n* set. Wire-naming alone no longer identifies derivation: an authored\n* `name:` check (`@@check` / `check()`) is wire-named too, so a bare\n* `check.prefix === undefined` test would delete an author's own constraint\n* from every non-`managed` table. The prefix-shape rule tests against the\n* table's own columns instead of the naming mode, so an authored check with\n* an unrelated prefix survives.\n*\n* The rule is weaker than recomputing the content hash `contract infer`\n* uses: that needs `postgresRenderCheckExpressions` to know what a kind\n* renders, and this funnel has no target descriptor to reach it through. It\n* can only ask whether some column could have produced a prefix of this\n* shape, not whether this exact column produced this exact check. The gap\n* that opens — an authored name that collides with a derived-prefix shape —\n* is closed at authoring time instead: such a name is rejected\n* (`CONTRACT.CHECK_NAME_RESERVED`) before it ever reaches storage.\n*\n* Why derivation stops at the namespace boundary: the contract *describes* an\n* external schema, it does not *prescribe* enforcement for it. Deriving a check\n* for a table Prisma 8 never creates declares a constraint the live database\n* has no reason to carry, and `external` fails verify on a declared shape the\n* database lacks — an unfixable failure, since no plan may emit DDL there\n* either.\n*\n* This is the post-build half of the rule. Authoring skips derivation for a\n* table whose policy is known in the source; this pass catches the policy a\n* contract *specifier* applies after the contract is already built, which is\n* the only signal a pack like the Supabase extension gives. Specifiers reach\n* it through `applySqlSpecifierControlPolicy` above.\n*\n* Returns the contract unchanged (same reference) when nothing is stripped.\n* When something is, the storage hash is recomputed — the stripped contract\n* describes different storage.\n*/\nfunction stripDerivedChecksFromNonManagedTables(contract, createNamespace) {\n\tconst storage = contract.storage;\n\tif (!isSqlStorageShaped(storage)) return contract;\n\tlet anyStripped = false;\n\tconst namespaces = {};\n\tfor (const [namespaceId, namespace] of Object.entries(storage.namespaces)) {\n\t\tif (!isMaterializedSqlNamespace(namespace)) return contract;\n\t\tconst tables = namespace.entries[\"table\"];\n\t\tif (tables === void 0) {\n\t\t\tnamespaces[namespaceId] = namespace;\n\t\t\tcontinue;\n\t\t}\n\t\tlet namespaceStripped = false;\n\t\tconst nextTables = {};\n\t\tfor (const [tableName, table] of Object.entries(tables)) {\n\t\t\tconst stripped = StorageTable.is(table) ? withoutDerivedChecks(tableName, table, contract.defaultControlPolicy) : table;\n\t\t\tif (stripped !== table) namespaceStripped = true;\n\t\t\tnextTables[tableName] = stripped;\n\t\t}\n\t\tif (!namespaceStripped) {\n\t\t\tnamespaces[namespaceId] = namespace;\n\t\t\tcontinue;\n\t\t}\n\t\tanyStripped = true;\n\t\tnamespaces[namespaceId] = createNamespace({\n\t\t\tid: namespace.id,\n\t\t\tentries: {\n\t\t\t\t...namespace.entries,\n\t\t\t\ttable: nextTables\n\t\t\t}\n\t\t});\n\t}\n\tif (!anyStripped) return contract;\n\tconst storageWithoutHash = {\n\t\tnamespaces,\n\t\t...ifDefined(\"types\", storage.types)\n\t};\n\treturn {\n\t\t...contract,\n\t\tstorage: new SqlStorage({\n\t\t\t...storageWithoutHash,\n\t\t\tstorageHash: computeStorageHash({\n\t\t\t\ttarget: contract.target,\n\t\t\t\ttargetFamily: contract.targetFamily,\n\t\t\t\tstorage: storageWithoutHash,\n\t\t\t\t...sqlContractCanonicalizationHooks\n\t\t\t})\n\t\t})\n\t};\n}\n/**\n* Structural stand-in for `instanceof SqlStorage`: like the checks it wraps, a\n* storage instance can arrive from a realm whose IR classes are a separate\n* copy (the dist e2e shape), where an `instanceof` test would miss.\n*/\nfunction isSqlStorageShaped(x) {\n\tif (typeof x !== \"object\" || x === null || !(\"namespaces\" in x)) return false;\n\treturn typeof x.namespaces === \"object\" && x.namespaces !== null;\n}\n/** The table itself when it keeps every check, a rebuilt one when it does not. */\nfunction withoutDerivedChecks(tableName, table, contractDefault) {\n\tconst checks = table.checks;\n\tif (checks === void 0 || checks.length === 0) return table;\n\tif (effectiveControlPolicy(table.control, contractDefault) === \"managed\") return table;\n\tconst columnNames = Object.keys(table.columns);\n\tinvariant(columnNames.length > 0, `withoutDerivedChecks: table \"${tableName}\" carries checks but its column map is empty. The caller must pass the table's real, complete column set — an empty or partial map makes every check misclassify as non-derived and survive the strip.`);\n\tconst derivedPrefixes = derivedCheckPrefixes(tableName, columnNames);\n\tconst kept = checks.filter((check) => check.prefix === void 0 || !derivedPrefixes.has(check.prefix));\n\tif (kept.length === checks.length) return table;\n\treturn new StorageTable({\n\t\tcolumns: table.columns,\n\t\tuniques: table.uniques,\n\t\tindexes: table.indexes,\n\t\tforeignKeys: table.foreignKeys,\n\t\t...ifDefined(\"primaryKey\", table.primaryKey),\n\t\t...ifDefined(\"control\", table.control),\n\t\t...kept.length > 0 ? { checks: kept.map((check) => checkConstraintInputFromSerialized({\n\t\t\tname: check.name,\n\t\t\t...ifDefined(\"prefix\", check.prefix),\n\t\t\texpression: check.expression\n\t\t})) } : {}\n\t});\n}\n//#endregion\nexport { storedAsListColumn as a, isValueObjectMember as i, buildSqlContractFromDefinition as n, contractError as o, toOneNullabilityContradictionMessage as r, applySqlSpecifierControlPolicy as t };\n\n//# sourceMappingURL=derived-checks-CEK-Ls_a.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"psl-field-resolution-CAJsUfST-C4QwwiqV.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-psl/dist/psl-field-resolution-CAJsUfST.mjs"],"sourcesContent":["import { bool, dataTypeValue, diagnosticSource, entityRef, fieldAttribute, fieldRef, funcCall, identifier, interpretAttribute, leafDiagnostic, list, mapArg, modelAttribute, nodePslSpan, numLiteral, oneOf, optional, record, referencedFieldRef, str, taggedLiteral, typeReferenceNode, writtenList, writtenScalar } from \"@internal/psl-parser\";\nimport { isValueObjectMember, storedAsListColumn } from \"@internal/sql-contract-ts/contract-builder\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError, isInternalError } from \"@internal/utils/internal-error\";\nimport { admittedForms, castTypedValue, describeExpected, describeRefusal, describeRefusedValueType, exactRewrite, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, readWrittenValue, tagForm, validateAuthoringHelperArguments, validateAuthoringTypeParams } from \"@internal/framework-components/authoring\";\nimport { describeTaggedLiteralFailure } from \"@internal/framework-components/control\";\nimport { instantiatePslFieldPreset, isBareTypeConstructor, mapPslHelperArgs, reportPresetNotCalled, reportTypeConstructorNotCalled } from \"@internal/psl-parser/interpret\";\nimport { SQL_EXPRESSION_DATA_TYPE_ID, SQL_EXPRESSION_TAG, sqlTextFromCanonical } from \"@internal/sql-contract/sql-expression\";\nimport { checkSqlDefaultText, reservedSqlDefaultText } from \"@internal/sql-contract/validators\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { canonicalFormOf, codecForRef } from \"@internal/framework-components/codec\";\nimport { FunctionCallAst } from \"@internal/psl-parser/syntax\";\nimport { notOk, ok } from \"@internal/utils/result\";\n//#region src/psl-attribute-parsing.ts\nfunction storageName(symbol, physicalNames) {\n\tconst name = physicalNames.get(symbol);\n\tassertDefined(name, \"Physical names are populated for every model and field before lowering\");\n\treturn name;\n}\nfunction getAttribute(attributes, name) {\n\treturn attributes?.find((attribute) => attribute.name === name);\n}\nfunction formatDbAttributeMigrationMessage(attribute) {\n\tconst renderedArguments = attribute.args.map((argument) => argument.kind === \"named\" && argument.name !== void 0 ? `${argument.name}: ${argument.value}` : argument.value).join(\", \");\n\tconst argumentList = attribute.args.length === 0 ? \"\" : `(${renderedArguments})`;\n\tconst constructorName = attribute.name.slice(3);\n\treturn `@${attribute.name}${argumentList} is no longer supported; use ${constructorName}${argumentList} in type position`;\n}\nfunction getNamedArgument(attribute, name) {\n\tconst entry = attribute.args.find((arg) => arg.kind === \"named\" && arg.name === name);\n\tif (entry?.kind !== \"named\") return;\n\treturn entry.value;\n}\nfunction mapFieldNamesToColumns(input) {\n\tconst columns = [];\n\tfor (const fieldName of input.fieldNames) {\n\t\tconst field = input.model.fields[fieldName];\n\t\tif (field === void 0) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: `${input.entityLabel} references unknown field \"${input.model.name}.${fieldName}\"`,\n\t\t\t\t...input.source.at(input.span)\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcolumns.push(storageName(field, input.physicalNames));\n\t}\n\treturn columns;\n}\n//#endregion\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 written value whose data type the receiving type neither is nor casts from. */\nconst PSL_VALUE_TYPE_INCOMPATIBLE = \"PSL_VALUE_TYPE_INCOMPATIBLE\";\n/** A single value written as the default of a column that holds a list. */\nconst PSL_DEFAULT_LIST_EXPECTED = \"PSL_DEFAULT_LIST_EXPECTED\";\nfunction messageOf(error) {\n\treturn error instanceof Error ? error.message : String(error);\n}\nfunction refused(refusal, suggestedTypes) {\n\treturn {\n\t\tok: false,\n\t\trefusal,\n\t\tsuggestedTypes\n\t};\n}\nfunction readOneValue(dataTypes, written, elementIndex, suggestedTypes) {\n\tconst read = readWrittenValue(dataTypes, written);\n\treturn read.ok ? {\n\t\tok: true,\n\t\ttyped: read.value\n\t} : refused({\n\t\t...read.failure,\n\t\telementIndex\n\t}, suggestedTypes);\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/** A value in the canonical form of the column's values, when they have one. */\nfunction inCanonicalForm(toCanonicalForm, value, elementIndex, suggestedTypes) {\n\tif (toCanonicalForm === void 0) return {\n\t\tok: true,\n\t\tvalue\n\t};\n\ttry {\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: toCanonicalForm(value)\n\t\t};\n\t} catch (error) {\n\t\tif (isInternalError(error)) throw 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\tsuggestedTypes\n\t\t};\n\t}\n}\n/**\n* The column's codec descriptor, and `read`, which reads a value in its stored JSON form with the column's codec, built with the column's type parameters, and gives it the canonical form of the column's values.\n*/\nfunction storedValueReader(input) {\n\tconst descriptor = input.codecLookup.descriptorFor(input.column.codecId);\n\tconst codec = codecForRef(input.codecLookup, {\n\t\tcodecId: input.column.codecId,\n\t\t...ifDefined(\"typeParams\", codecRefTypeParams(input.column.typeParams))\n\t});\n\tif (codec === void 0 || 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 suggestedTypes = [descriptor.dataType];\n\tconst toCanonicalForm = canonicalFormOf(descriptor, input.dataTypeLookup);\n\tconst read = (written, elementIndex) => {\n\t\ttry {\n\t\t\tcodec.decodeJson(written);\n\t\t} catch (error) {\n\t\t\tif (isInternalError(error)) throw error;\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\trefusal: {\n\t\t\t\t\tkind: \"refused-by-codec\",\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\tsuggestedTypes\n\t\t\t};\n\t\t}\n\t\treturn inCanonicalForm(toCanonicalForm, written, elementIndex, suggestedTypes);\n\t};\n\treturn {\n\t\tdescriptor,\n\t\tread\n\t};\n}\n/**\n* Reads a value already in its stored JSON form, such as one member of a JSON document default, with the column's codec, and gives it the canonical form of the column's values. Worded as {@link lowerDataTypeDefault} words the same refusals.\n*/\nfunction readStoredValue(input) {\n\tconst reading = storedValueReader(input).read(input.value, void 0);\n\treturn reading.ok ? reading : {\n\t\tok: false,\n\t\t...storedRefusalMessage(reading.refusal, `Field \"${input.fieldPath}\"`)\n\t};\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 { descriptor, read: readStored } = storedValueReader({\n\t\t...input,\n\t\tdataTypeLookup: input.dataTypes.lookup\n\t});\n\tconst columnType = descriptor.dataType;\n\tconst suggestedTypes = [columnType];\n\tconst readOne = (written, elementIndex) => {\n\t\tconst read = readOneValue(input.dataTypes, written, elementIndex, suggestedTypes);\n\t\tif (!read.ok) return read;\n\t\tconst cast = castTypedValue(input.dataTypes, columnType, read.typed);\n\t\tif (!cast.ok) return refused({\n\t\t\t...cast.failure,\n\t\t\telementIndex\n\t\t}, suggestedTypes);\n\t\treturn readStored(cast.value.value, elementIndex);\n\t};\n\tif (input.written.kind !== \"list\") {\n\t\tif (input.isList) return refused({\n\t\t\tkind: \"not-a-list\",\n\t\t\telementIndex: void 0\n\t\t}, suggestedTypes);\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 nestedList(elementIndex, suggestedTypes);\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\treadStored\n\t});\n}\nfunction nestedList(elementIndex, suggestedTypes) {\n\treturn refused({\n\t\tkind: \"unreadable\",\n\t\tmessage: \"a list holds values, not other lists\",\n\t\telementIndex\n\t}, suggestedTypes);\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 declaration = input.dataTypes.lookup.get(input.columnType);\n\tconst listCast = declaration?.listCast;\n\tif (listCast === void 0) return refused({\n\t\tkind: \"no-list-cast\",\n\t\treceivingType: input.columnType,\n\t\tcasts: Object.keys(declaration?.casts ?? {}),\n\t\telementIndex: void 0\n\t}, [input.columnType]);\n\tconst elements = [];\n\tfor (const [elementIndex, written] of input.written.elements.entries()) {\n\t\tif (written.kind === \"list\") return nestedList(elementIndex, listCast.of);\n\t\tconst read = readOneValue(input.dataTypes, written, elementIndex, listCast.of);\n\t\tif (!read.ok) return read;\n\t\tif (!listCast.of.includes(read.typed.type)) return refused({\n\t\t\tkind: \"no-element-cast\",\n\t\t\treceivingType: input.columnType,\n\t\t\tvalueType: read.typed.type,\n\t\t\telementTypes: listCast.of,\n\t\t\telementIndex\n\t\t}, listCast.of);\n\t\telements.push(read.typed.value);\n\t}\n\ttry {\n\t\treturn input.readStored(listCast.cast(elements), void 0);\n\t} catch (error) {\n\t\tif (isInternalError(error)) throw error;\n\t\treturn refused({\n\t\t\tkind: \"unreadable\",\n\t\t\tmessage: messageOf(error),\n\t\t\telementIndex: void 0\n\t\t}, [input.columnType]);\n\t}\n}\n/** Where a diagnostic is about, for a message: `Field \"N.count\" at element 2`. */\nfunction location(subject, elementIndex) {\n\treturn elementIndex === void 0 ? subject : `${subject} at element ${elementIndex + 1}`;\n}\n/**\n* What may be written where every one of `types` is received, each form once: `a number`. A column\n* whose type nothing writes still takes a `sql` literal, which `@default` stores as a SQL expression.\n*/\nfunction formsOf(dataTypes, types) {\n\tconst forms = admittedForms(dataTypes, types);\n\treturn forms.length === 0 ? [tagForm(SQL_EXPRESSION_TAG)] : forms;\n}\n/** The exact rewrite of the written value a `no-cast` refusal is about, before list elements are renumbered to the source list. */\nfunction rewriteOf(refusal, written, dataTypes) {\n\tif (refusal.kind !== \"no-cast\") return void 0;\n\tconst refused = refusal.elementIndex === void 0 || written.kind !== \"list\" ? written : written.elements[refusal.elementIndex];\n\treturn refused === void 0 || refused.kind === \"list\" ? void 0 : exactRewrite(dataTypes, refusal.receivingType, refused);\n}\n/**\n* {@link readDataTypeDefault} worded as a PSL diagnostic's code, message and span: a cast-rule\n* refusal at the written value, or the element of a written list it is about; a refusal only\n* defaults have at the `@default` attribute.\n*/\nfunction lowerDataTypeDefault(input) {\n\tconst read = readDataTypeDefault(input);\n\tif (read.ok) return read;\n\tconst refusal = atSourceElement(read.refusal, input.sourceElementIndexes);\n\treturn {\n\t\tok: false,\n\t\t...refusalMessage(refusal, `Field \"${input.fieldPath}\"`, input.dataTypes, guidanceFor(read, input.written, input.dataTypes)),\n\t\tspan: refusalSpan(refusal, input.spans, input.fieldPath)\n\t};\n}\n/**\n* Reads one number literal written in a contract source outside a default, such as an enum member's value, from its source text for a codec, as {@link lowerDataTypeDefault} reads a default: the number's entry gives it a data type, the codec's data type takes it directly or through a cast, and the codec checks it. A refusal is worded for `subject`, and the caller reports it at its own span.\n*/\nfunction readWrittenNumberForCodec(input) {\n\tconst written = {\n\t\tkind: \"number\",\n\t\ttext: input.text\n\t};\n\tconst read = readDataTypeDefault({\n\t\twritten,\n\t\tisList: false,\n\t\tcolumn: { codecId: input.codecId },\n\t\tcodecLookup: input.codecLookup,\n\t\tdataTypes: input.dataTypes,\n\t\tfieldPath: input.subject\n\t});\n\treturn read.ok ? read : {\n\t\tok: false,\n\t\t...refusalMessage(read.refusal, input.subject, input.dataTypes, guidanceFor(read, written, input.dataTypes))\n\t};\n}\n/** What a refusal of `written` tells the author to write instead. */\nfunction guidanceFor(failure, written, dataTypes) {\n\treturn {\n\t\tforms: formsOf(dataTypes, failure.suggestedTypes),\n\t\trewrite: rewriteOf(failure.refusal, written, dataTypes)\n\t};\n}\nfunction atSourceElement(refusal, sourceElementIndexes) {\n\tif (refusal.elementIndex === void 0) return refusal;\n\tconst elementIndex = sourceElementIndexes?.[refusal.elementIndex];\n\treturn elementIndex === void 0 ? refusal : {\n\t\t...refusal,\n\t\telementIndex\n\t};\n}\nfunction codecRefusalMessage(refusal, subject) {\n\treturn {\n\t\tcode: PSL_INVALID_DEFAULT_LITERAL,\n\t\tmessage: `${location(subject, refusal.elementIndex)}: ${refusal.message}`\n\t};\n}\nfunction storedRefusalMessage(refusal, subject) {\n\tif (refusal.kind === \"refused-by-codec\") return codecRefusalMessage(refusal, subject);\n\treturn {\n\t\tcode: \"PSL_INVALID_LITERAL\",\n\t\tmessage: `${location(subject, refusal.elementIndex)}: ${refusal.message}`\n\t};\n}\n/** A refusal worded as a PSL diagnostic's code and message; `guidance` says what to write instead. */\nfunction refusalMessage(refusal, subject, dataTypes, guidance) {\n\tconst where = location(subject, refusal.elementIndex);\n\tswitch (refusal.kind) {\n\t\tcase \"not-a-list\": return {\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 \"refused-by-codec\": return codecRefusalMessage(refusal, subject);\n\t\tcase \"no-list-cast\": return {\n\t\t\tcode: PSL_VALUE_TYPE_INCOMPATIBLE,\n\t\t\tmessage: `${where}: ${describeExpected(guidance.forms)}; got a list`\n\t\t};\n\t\tcase \"no-element-cast\": return {\n\t\t\tcode: PSL_VALUE_TYPE_INCOMPATIBLE,\n\t\t\tmessage: `${where}: ${describeRefusedValueType(refusal, dataTypes, guidance)}`\n\t\t};\n\t\tdefault: {\n\t\t\tconst { code, message } = describeRefusal(refusal, dataTypes, guidance);\n\t\t\treturn {\n\t\t\t\tcode,\n\t\t\t\tmessage: `${where}: ${message}`\n\t\t\t};\n\t\t}\n\t}\n}\nfunction refusalSpan(refusal, spans, fieldPath) {\n\tswitch (refusal.kind) {\n\t\tcase \"not-a-list\":\n\t\tcase \"refused-by-codec\": return spans.attribute;\n\t\tdefault: return writtenValueSpan(spans, refusal.elementIndex, fieldPath);\n\t}\n}\nfunction writtenValueSpan(spans, elementIndex, fieldPath) {\n\tif (elementIndex === void 0) return spans.value;\n\tconst span = spans.elements[elementIndex];\n\tif (span === void 0) throw new InternalError(`Field \"${fieldPath}\": a refused @default list element ${elementIndex + 1} has no written span.`);\n\treturn span;\n}\n//#endregion\n//#region src/default-function-registry.ts\nfunction formatSupportedFunctionList(registry) {\n\tconst signatures = Array.from(registry.entries()).sort(([a], [b]) => a.localeCompare(b)).flatMap(([functionName, entry]) => {\n\t\tconst usageSignatures = entry.usageSignatures?.filter((signature) => signature.length > 0);\n\t\treturn usageSignatures && usageSignatures.length > 0 ? usageSignatures : [`${functionName}()`];\n\t});\n\treturn signatures.length > 0 ? signatures.join(\", \") : \"none\";\n}\n/** The diagnostic message for a `dbgenerated(...)` call, which raw SQL tagged literals replaced. */\nfunction removedDbgeneratedMessage(registry) {\n\treturn `Default function \"dbgenerated\" was removed. Write the SQL as a tagged literal: @default(sql\\`<expression>\\`). Supported functions: ${formatSupportedFunctionList(registry)}.`;\n}\nfunction lowerDefaultFunctionWithRegistry(input) {\n\tconst entry = input.registry.get(input.call.fn);\n\tif (entry) {\n\t\tconst result = entry.lower({\n\t\t\tcall: input.call,\n\t\t\tcontext: input.context\n\t\t});\n\t\treturn result.ok ? result : {\n\t\t\t...result,\n\t\t\tkind: \"external\"\n\t\t};\n\t}\n\tconst supportedFunctionList = formatSupportedFunctionList(input.registry);\n\treturn {\n\t\tok: false,\n\t\tkind: \"owned\",\n\t\tdiagnostic: {\n\t\t\tcode: \"PSL_UNKNOWN_DEFAULT_FUNCTION\",\n\t\t\tmessage: `Default function \"${input.call.fn}\" is not supported in SQL PSL provider v1. Supported functions: ${supportedFunctionList}.`,\n\t\t\t...input.source.at(input.call.span)\n\t\t}\n\t};\n}\n//#endregion\n//#region src/sql-attribute-specs.ts\nfunction buildModelAttributeCtx(input) {\n\treturn {\n\t\tsources: input.sources,\n\t\tselfModel: input.selfModel,\n\t\tbinder: input.binder,\n\t\tsymbols: input.symbols\n\t};\n}\nfunction buildFieldAttributeCtx(input) {\n\treturn {\n\t\tsources: input.sources,\n\t\tselfModel: input.selfModel,\n\t\tfield: input.field,\n\t\tbinder: input.binder,\n\t\tsymbols: input.symbols\n\t};\n}\nfunction modelAttributeSpecsFrom(modelAttributesByName) {\n\tconst result = Object.create(null);\n\tfor (const [name, descriptor] of modelAttributesByName) result[name] = blindCast(descriptor.spec);\n\treturn result;\n}\nfunction interpretModelAttribute(input) {\n\tconst result = interpretAttribute(input.node, input.spec, buildModelAttributeCtx({\n\t\tsymbols: input.symbols,\n\t\tselfModel: input.model,\n\t\tsources: input.sources,\n\t\tbinder: input.binder\n\t}));\n\tif (!result.ok) {\n\t\tinput.diagnostics.push(...result.failure);\n\t\treturn;\n\t}\n\treturn result.value;\n}\nfunction interpretFieldAttribute(input) {\n\tconst result = interpretAttribute(input.node, input.spec, buildFieldAttributeCtx({\n\t\tsymbols: input.symbols,\n\t\tselfModel: input.model,\n\t\tfield: input.field,\n\t\tsources: input.sources,\n\t\tbinder: input.binder\n\t}));\n\tif (!result.ok) {\n\t\tinput.diagnostics.push(...result.failure);\n\t\treturn;\n\t}\n\treturn result.value;\n}\nfunction validateMappedName(value, ctx, attributeNode) {\n\treturn value.name === \"\" ? [leafDiagnostic(ctx, attributeNode, \"Mapped name must not be empty\")] : [];\n}\nconst mapModelSpec = modelAttribute(\"map\", {\n\tdocumentation: \"Maps this model to a database table name.\",\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: str(),\n\t\tdocumentation: \"The nonempty database table name.\"\n\t}],\n\trefine: validateMappedName\n});\nconst mapFieldSpec = fieldAttribute(\"map\", {\n\tdocumentation: \"Maps this field to a database column name.\",\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: str(),\n\t\tdocumentation: \"The nonempty database column name.\"\n\t}],\n\trefine: validateMappedName\n});\nfunction nullLiteral() {\n\tconst nullIdentifier = identifier(\"null\", { documentation: \"A null list element or nullable scalar default.\" });\n\treturn mapArg({\n\t\tkind: \"null\",\n\t\tlabel: \"null\",\n\t\tparse: (arg, ctx) => {\n\t\t\tconst result = nullIdentifier.parse(arg, ctx);\n\t\t\treturn result.ok ? ok(null) : result;\n\t\t}\n\t}, (_null, arg, ctx) => ({\n\t\tkind: \"null\",\n\t\tspan: nodePslSpan(arg.syntax, ctx.sources)\n\t}));\n}\nfunction defaultFunctionArm(name, signature) {\n\treturn mapArg(funcCall(name, signature), (call) => ({\n\t\tkind: \"default-function\",\n\t\tcall\n\t}));\n}\nfunction scalarDefaultArms(isList, dataTypes, defaultFunctionRegistry) {\n\tconst tagArms = (admits) => {\n\t\tconst tagsByDocumentation = /* @__PURE__ */ new Map();\n\t\tfor (const [dataType, entry] of Object.entries(dataTypes.entries)) {\n\t\t\tif (entry.written.kind !== \"tag\" || !admits(dataType)) continue;\n\t\t\tconst tags = tagsByDocumentation.get(entry.documentation);\n\t\t\tif (tags === void 0) tagsByDocumentation.set(entry.documentation, [entry.written.tag]);\n\t\t\telse tags.push(entry.written.tag);\n\t\t}\n\t\treturn [...tagsByDocumentation].map(([documentation, tags]) => writtenScalar(taggedLiteral(tags, { documentation })));\n\t};\n\tconst anyTag = () => tagArms(() => true);\n\tconst literal = () => oneOf(writtenScalar(str()), writtenScalar(numLiteral()), writtenScalar(bool()), nullLiteral(), ...tagArms((dataType) => dataType !== SQL_EXPRESSION_DATA_TYPE_ID));\n\tconst listArm = () => writtenList(literal());\n\tconst funcArms = [...defaultFunctionRegistry.entries()].map(([name, entry]) => defaultFunctionArm(name, blindCast(entry.signature)));\n\treturn isList ? [\n\t\tlistArm(),\n\t\t...funcArms,\n\t\t...anyTag()\n\t] : [\n\t\twrittenScalar(str()),\n\t\twrittenScalar(numLiteral()),\n\t\twrittenScalar(bool()),\n\t\tnullLiteral(),\n\t\t...funcArms,\n\t\t...anyTag(),\n\t\tlistArm()\n\t];\n}\n/**\n* The `@default` value arms, with a `dbgenerated(...)` call reported as removed before the arms\n* are tried, so the author is told what replaced it instead of being shown the list of arms.\n*/\nfunction defaultValueArm(arms, registry) {\n\tconst value = arms.length === 1 && arms[0].kind === \"list\" ? arms[0] : oneOf(...arms);\n\treturn {\n\t\t...value,\n\t\tparse: (arg, ctx) => FunctionCallAst.cast(arg.syntax)?.path().join(\".\") === \"dbgenerated\" ? notOk([leafDiagnostic(ctx, arg, removedDbgeneratedMessage(registry), \"PSL_UNKNOWN_DEFAULT_FUNCTION\")]) : value.parse(arg, ctx)\n\t};\n}\nfunction noEnumMember() {\n\treturn {\n\t\tkind: \"rejecting\",\n\t\tlabel: \"enum member\",\n\t\tmessage: \"Enum declares no members\",\n\t\tparse: (arg, ctx) => notOk([leafDiagnostic(ctx, arg, \"Enum declares no members\")])\n\t};\n}\nfunction enumMemberNames(ctx) {\n\tconst resolution = ctx.typeResolution;\n\tif (resolution?.kind !== \"block\" || resolution.symbol.keyword !== \"enum\") return void 0;\n\tconst block = resolution.symbol;\n\tconst names = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const entry of block.node.entries()) {\n\t\tconst key = entry.key()?.name();\n\t\tif (key === void 0 || seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tnames.push(key);\n\t}\n\treturn names;\n}\nfunction enumDefaultArms(members, enumName, isList) {\n\tconst [first, ...rest] = members;\n\tif (first === void 0) return [noEnumMember()];\n\tconst member = (name) => mapArg(identifier(name, { documentation: `The \\`${name}\\` member of enum \\`${enumName}\\`.` }), (parsed) => ({\n\t\tkind: \"member\",\n\t\tname: parsed\n\t}));\n\tif (isList) return [mapArg(list(oneOf(member(first), ...rest.map(member), nullLiteral())), (elements) => ({\n\t\tkind: \"member-list\",\n\t\telements\n\t}))];\n\treturn [member(first), ...rest.map(member)];\n}\nfunction defaultFieldSpec(ctx) {\n\tconst members = enumMemberNames(ctx);\n\treturn fieldAttribute(\"default\", {\n\t\tdocumentation: \"Supplies a default value when this field is omitted from a mutation.\",\n\t\tpositional: [{\n\t\t\tkey: \"value\",\n\t\t\ttype: defaultValueArm(members === void 0 ? scalarDefaultArms(ctx.field.list, ctx.dataTypes, ctx.defaultFunctionRegistry) : enumDefaultArms(members, ctx.field.typeName, ctx.field.list), ctx.defaultFunctionRegistry),\n\t\t\tdocumentation: \"A literal, enum member, or registered default function compatible with this field.\"\n\t\t}]\n\t});\n}\nconst idFieldSpec = fieldAttribute(\"id\", {\n\tdocumentation: \"Makes this field the primary key of the table.\",\n\tnamed: { map: {\n\t\ttype: optional(str()),\n\t\tdocumentation: \"The database primary-key constraint name.\"\n\t} }\n});\nconst uniqueFieldSpec = fieldAttribute(\"unique\", {\n\tdocumentation: \"Requires values in this field to be unique.\",\n\tnamed: { map: {\n\t\ttype: optional(str()),\n\t\tdocumentation: \"The database unique-constraint name.\"\n\t} }\n});\nconst noCheckKindArgument = () => oneOf(identifier(\"membership\", { documentation: \"Waives the generated check that values belong to the declared domain enum.\" }), identifier(\"elementNotNull\", { documentation: \"Waives the generated check that scalar-list elements are non-null.\" }));\n/**\n* `@noCheck` waives generated CHECK constraints on one column: bare for every\n* kind the column's shape derives, or naming concrete kinds. Two optional\n* positional slots cover the whole kind vocabulary; a third argument is\n* necessarily a duplicate and fails as excess arity.\n*/\nconst noCheckFieldSpec = fieldAttribute(\"noCheck\", {\n\tdocumentation: \"Waives generated CHECK constraints for this column. With no arguments, waives every generated kind.\",\n\tpositional: [{\n\t\tkey: \"first\",\n\t\ttype: optional(noCheckKindArgument()),\n\t\tdocumentation: \"The first generated check kind to waive: `membership` or `elementNotNull`.\"\n\t}, {\n\t\tkey: \"second\",\n\t\ttype: optional(noCheckKindArgument()),\n\t\tdocumentation: \"A second, distinct generated check kind to waive.\"\n\t}],\n\trefine: (value, ctx, attributeNode) => {\n\t\tif (value.first !== void 0 && value.first === value.second) return [leafDiagnostic(ctx, attributeNode, \"`@noCheck` names the same kind twice\")];\n\t\treturn [];\n\t}\n});\nconst idModelSpec = modelAttribute(\"id\", {\n\tdocumentation: \"Declares a compound primary key for this table.\",\n\tpositional: [{\n\t\tkey: \"fields\",\n\t\ttype: list(fieldRef(), {\n\t\t\tallowEmpty: false,\n\t\t\tunique: true\n\t\t}),\n\t\tdocumentation: \"The ordered, nonempty list of distinct primary-key fields.\"\n\t}],\n\tnamed: { map: {\n\t\ttype: optional(str()),\n\t\tdocumentation: \"The database primary-key constraint name.\"\n\t} }\n});\nconst uniqueModelSpec = modelAttribute(\"unique\", {\n\tdocumentation: \"Requires the combination of these fields to be unique.\",\n\tpositional: [{\n\t\tkey: \"fields\",\n\t\ttype: list(fieldRef(), {\n\t\t\tallowEmpty: false,\n\t\t\tunique: true\n\t\t}),\n\t\tdocumentation: \"The ordered, nonempty list of distinct fields in the unique constraint.\"\n\t}],\n\tnamed: { map: {\n\t\ttype: optional(str()),\n\t\tdocumentation: \"The database unique-constraint name.\"\n\t} }\n});\nconst PSL_INDEX_FIELDS_XOR_EXPRESSION = \"PSL_INDEX_FIELDS_XOR_EXPRESSION\";\nconst PSL_INDEX_EXPRESSION_REQUIRES_NAME = \"PSL_INDEX_EXPRESSION_REQUIRES_NAME\";\nconst PSL_INDEX_NAME_XOR_MAP = \"PSL_INDEX_NAME_XOR_MAP\";\nfunction indexModelSpec(ctx) {\n\treturn modelAttribute(\"index\", {\n\t\tdocumentation: \"Declares a database index over fields or a SQL expression, optionally restricted by a predicate.\",\n\t\tpositional: [{\n\t\t\tkey: \"fields\",\n\t\t\ttype: optional(list(fieldRef(), {\n\t\t\t\tallowEmpty: false,\n\t\t\t\tunique: true\n\t\t\t})),\n\t\t\tdocumentation: \"The ordered list of distinct indexed fields. Mutually exclusive with `expression`.\"\n\t\t}],\n\t\tnamed: {\n\t\t\texpression: {\n\t\t\t\ttype: optional(dataTypeValue(SQL_EXPRESSION_DATA_TYPE_ID, ctx.dataTypes)),\n\t\t\t\tdocumentation: \"The SQL index expression. Requires `name` or `map` and cannot be combined with a fields list.\"\n\t\t\t},\n\t\t\twhere: {\n\t\t\t\ttype: optional(dataTypeValue(SQL_EXPRESSION_DATA_TYPE_ID, ctx.dataTypes)),\n\t\t\t\tdocumentation: \"The SQL predicate restricting rows included in a partial index.\"\n\t\t\t},\n\t\t\tunique: {\n\t\t\t\ttype: optional(bool()),\n\t\t\t\tdocumentation: \"Whether the index enforces uniqueness.\"\n\t\t\t},\n\t\t\tname: {\n\t\t\t\ttype: optional(str()),\n\t\t\t\tdocumentation: \"The index name. Mutually exclusive with `map`.\"\n\t\t\t},\n\t\t\tmap: {\n\t\t\t\ttype: optional(str()),\n\t\t\t\tdocumentation: \"The database index name. Mutually exclusive with `name`.\"\n\t\t\t},\n\t\t\ttype: {\n\t\t\t\ttype: optional(str()),\n\t\t\t\tdocumentation: \"The target-specific index access method.\"\n\t\t\t},\n\t\t\toptions: {\n\t\t\t\ttype: optional(record(str())),\n\t\t\t\tdocumentation: \"Target-specific index options. Requires an explicit `type`.\"\n\t\t\t}\n\t\t},\n\t\trefine: (value, ctx, attributeNode) => {\n\t\t\tconst diagnostics = [];\n\t\t\tif (value.fields === void 0 === (value.expression === void 0)) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` requires exactly one of a fields list or an `expression` argument\", PSL_INDEX_FIELDS_XOR_EXPRESSION));\n\t\t\tif (value.expression !== void 0 && value.name === void 0 && value.map === void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` with an `expression` argument requires a `name` or `map` argument (a default name cannot be derived from an expression)\", PSL_INDEX_EXPRESSION_REQUIRES_NAME));\n\t\t\tif (value.name !== void 0 && value.map !== void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` takes at most one of `name` and `map`\", PSL_INDEX_NAME_XOR_MAP));\n\t\t\tif (value.options !== void 0 && value.type === void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` options argument requires a type argument\"));\n\t\t\treturn diagnostics;\n\t\t}\n\t});\n}\nconst PSL_CHECK_REQUIRES_NAME_OR_MAP = \"PSL_CHECK_REQUIRES_NAME_OR_MAP\";\nconst PSL_CHECK_NAME_XOR_MAP = \"PSL_CHECK_NAME_XOR_MAP\";\nconst PSL_CHECK_EXPRESSION_EMPTY = \"PSL_CHECK_EXPRESSION_EMPTY\";\n/**\n* A single-table-inheritance variant (`@@base` with no own `@@map`) shares\n* its base model's storage table and has no table of its own to declare a\n* check on — raised from {@link interpretPslDocumentToSqlContract}, not from\n* this spec's own `refine`, because the rule needs the model's `@@base`\n* declaration, which a single attribute's `refine` cannot see.\n*/\nconst PSL_CHECK_ON_STI_VARIANT = \"PSL_CHECK_ON_STI_VARIANT\";\nfunction checkModelSpec(ctx) {\n\treturn modelAttribute(\"check\", {\n\t\tdocumentation: \"Declares a named database CHECK constraint on this table.\",\n\t\tnamed: {\n\t\t\texpression: {\n\t\t\t\ttype: dataTypeValue(SQL_EXPRESSION_DATA_TYPE_ID, ctx.dataTypes),\n\t\t\t\tdocumentation: \"The nonempty SQL predicate checked for each row.\"\n\t\t\t},\n\t\t\tname: {\n\t\t\t\ttype: optional(str()),\n\t\t\t\tdocumentation: \"The constraint name. Exactly one of `name` and `map` is required.\"\n\t\t\t},\n\t\t\tmap: {\n\t\t\t\ttype: optional(str()),\n\t\t\t\tdocumentation: \"The database constraint name. Exactly one of `name` and `map` is required.\"\n\t\t\t}\n\t\t},\n\t\trefine: (value, ctx, attributeNode) => {\n\t\t\tconst diagnostics = [];\n\t\t\tif (sqlTextFromCanonical(value.expression.value).trim().length === 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@check` expression must not be empty — an empty predicate is not a constraint\", PSL_CHECK_EXPRESSION_EMPTY));\n\t\t\tif (value.name === void 0 && value.map === void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@check` requires a `name` or `map` argument (a default name cannot be derived — a check has no column tuple to name itself after)\", PSL_CHECK_REQUIRES_NAME_OR_MAP));\n\t\t\tif (value.name !== void 0 && value.map !== void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@check` takes at most one of `name` and `map`\", PSL_CHECK_NAME_XOR_MAP));\n\t\t\treturn diagnostics;\n\t\t}\n\t});\n}\nconst controlModelSpec = modelAttribute(\"control\", {\n\tdocumentation: \"Sets how schema management treats this model’s storage.\",\n\tpositional: [{\n\t\tkey: \"policy\",\n\t\tdocumentation: \"The storage control policy: `managed`, `tolerated`, `external`, or `observed`.\",\n\t\ttype: oneOf(identifier(\"managed\", { documentation: \"Verifies the declared shape strictly and allows migrations to create, alter, or drop the storage object.\" }), identifier(\"tolerated\", { documentation: \"Verifies declared columns while allowing extra columns. Migrations may create missing storage, but never alter or drop existing storage.\" }), identifier(\"external\", { documentation: \"Verifies declared storage without creating, altering, or dropping it.\" }), identifier(\"observed\", { documentation: \"Reports storage differences as warnings rather than verification failures and never emits migration operations.\" }))\n\t}]\n});\nconst discriminatorModelSpec = modelAttribute(\"discriminator\", {\n\tdocumentation: \"Selects the field that identifies inheritance variants of this model.\",\n\tpositional: [{\n\t\tkey: \"field\",\n\t\ttype: fieldRef(),\n\t\tdocumentation: \"The discriminator field on this model.\"\n\t}]\n});\nfunction baseModelSpec() {\n\treturn modelAttribute(\"base\", {\n\t\tdocumentation: \"Declares this model as a variant of a base model.\",\n\t\tpositional: [{\n\t\t\tkey: \"base\",\n\t\t\ttype: entityRef({ kind: \"model\" }),\n\t\t\tdocumentation: \"The base model to inherit from.\"\n\t\t}, {\n\t\t\tkey: \"value\",\n\t\t\ttype: str(),\n\t\t\tdocumentation: \"The discriminator value identifying this variant.\"\n\t\t}]\n\t});\n}\nfunction relationAttributeSpan(ctx) {\n\tconst node = getAttribute(ctx.field.attributes, \"relation\")?.node;\n\tif (node !== void 0) return nodePslSpan(node.syntax, ctx.sources);\n\treturn ctx.field.span;\n}\nfunction relationInvariants(parsed, ctx) {\n\tif (parsed.fields !== void 0 !== (parsed.references !== void 0)) return [{\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_SYNTAX\",\n\t\tmessage: `Relation field \"${ctx.selfModel.name}.${ctx.field.name}\" requires fields and references arguments`,\n\t\t...diagnosticSource(ctx.sources, ctx.field.node.syntax).at(relationAttributeSpan(ctx))\n\t}];\n\treturn [];\n}\nconst referentialActionArgument = () => oneOf(identifier(\"NoAction\", { documentation: \"Rejects a change that would violate the foreign key when the constraint is checked; checking may be deferred when supported and configured.\" }), identifier(\"Restrict\", { documentation: \"Rejects deleting or updating a referenced row while referencing rows remain, without deferring the check.\" }), identifier(\"Cascade\", { documentation: \"Propagates deletion or key updates of a referenced row to its referencing rows.\" }), identifier(\"SetNull\", { documentation: \"Sets referencing foreign-key fields to null when the referenced row is deleted or its key changes. The fields must allow null.\" }), identifier(\"SetDefault\", { documentation: \"Sets referencing foreign-key fields to their defaults when the referenced row is deleted or its key changes. The resulting values must satisfy the foreign key.\" }));\nconst relationFieldSpec = fieldAttribute(\"relation\", {\n\tdocumentation: \"Defines the relation name, foreign-key fields, and referential actions for this relation.\",\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: optional(str()),\n\t\tdocumentation: \"The relation name used to pair both sides. May also be supplied by name.\"\n\t}],\n\tnamed: {\n\t\tname: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The relation name used to pair both sides. Cannot also be supplied positionally.\"\n\t\t},\n\t\tfields: {\n\t\t\ttype: optional(list(fieldRef(), {\n\t\t\t\tallowEmpty: false,\n\t\t\t\tunique: true\n\t\t\t})),\n\t\t\tdocumentation: \"The ordered local foreign-key fields. Must be supplied together with `references`.\"\n\t\t},\n\t\treferences: {\n\t\t\ttype: optional(list(referencedFieldRef(), {\n\t\t\t\tallowEmpty: false,\n\t\t\t\tunique: true\n\t\t\t})),\n\t\t\tdocumentation: \"The corresponding fields on the referenced model. Must be supplied together with `fields`.\"\n\t\t},\n\t\tmap: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The database foreign-key constraint name.\"\n\t\t},\n\t\tonDelete: {\n\t\t\ttype: optional(referentialActionArgument()),\n\t\t\tdocumentation: \"The referential action when a referenced row is deleted.\"\n\t\t},\n\t\tonUpdate: {\n\t\t\ttype: optional(referentialActionArgument()),\n\t\t\tdocumentation: \"The referential action when a referenced key is updated.\"\n\t\t},\n\t\tindex: {\n\t\t\ttype: optional(oneOf(bool(), str())),\n\t\t\tdocumentation: \"Whether to create an index for the relation’s foreign-key fields (`false` for none), or the name of an index, unique constraint or primary key on this model to use instead. The name is the `name` or `map` it was given, or an index’s stored name, and its first columns must be the foreign-key fields in order.\"\n\t\t}\n\t},\n\trefine: relationInvariants\n});\nfunction modelSpecContext(input) {\n\treturn {\n\t\tsymbols: input.symbols,\n\t\tmodel: input.model,\n\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\tdataTypes: input.dataTypes\n\t};\n}\nfunction fieldSpecContext(input) {\n\tconst node = typeReferenceNode(input.field);\n\treturn {\n\t\tsymbols: input.symbols,\n\t\tmodel: input.model,\n\t\tfield: input.field,\n\t\ttypeResolution: node === void 0 ? void 0 : input.binder.symbolForNode(node),\n\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\tdataTypes: input.dataTypes\n\t};\n}\n/** Every entry is a factory over the spec context, whether or not its spec reads it. ADR 249. */\nconst sqlAttributeSpecs = {\n\tmodel: {\n\t\tmap: (_ctx) => mapModelSpec,\n\t\tid: (_ctx) => idModelSpec,\n\t\tunique: (_ctx) => uniqueModelSpec,\n\t\tindex: indexModelSpec,\n\t\tcheck: checkModelSpec,\n\t\tcontrol: (_ctx) => controlModelSpec,\n\t\tdiscriminator: (_ctx) => discriminatorModelSpec,\n\t\tbase: (_ctx) => baseModelSpec()\n\t},\n\tfield: {\n\t\tmap: (_ctx) => mapFieldSpec,\n\t\tid: (_ctx) => idFieldSpec,\n\t\tunique: (_ctx) => uniqueFieldSpec,\n\t\tnoCheck: (_ctx) => noCheckFieldSpec,\n\t\trelation: (_ctx) => relationFieldSpec,\n\t\tdefault: defaultFieldSpec\n\t}\n};\n//#endregion\n//#region src/value-object-default.ts\n/**\n* The value-object column's default as the document it holds, and in the form the column stores. A\n* column may store the document's JSON text, as `sqlite/json@1` does, so its codec reads the stored\n* value into the document the composite type describes. A list literal on a list of value objects\n* is read element by element; the column stores the list's document in its own form.\n*/\nfunction valueObjectDefaultDocument(input) {\n\tconst codec = codecForRef(input.codecLookup, { codecId: input.codecId });\n\tif (codec === void 0) return {\n\t\tdocument: input.stored,\n\t\tstored: input.stored\n\t};\n\tif (input.elementwise && Array.isArray(input.stored)) {\n\t\tconst document = input.stored.map((element) => readDocument(codec, element));\n\t\treturn {\n\t\t\tdocument,\n\t\t\tstored: codec.encodeJson(document)\n\t\t};\n\t}\n\treturn {\n\t\tdocument: readDocument(codec, input.stored),\n\t\tstored: input.stored\n\t};\n}\n/** The column's codec has already read `stored` while the default was lowered, so it reads again. */\nfunction readDocument(codec, stored) {\n\tif (stored === null) return null;\n\treturn blindCast(codec.decodeJson(stored));\n}\n/** Each way the default does not match the composite type. */\nfunction valueObjectDefaultMismatches(input) {\n\tconst mismatches = [];\n\tconst shape = (path, message) => mismatches.push({\n\t\tcode: PSL_VALUE_TYPE_INCOMPATIBLE,\n\t\tmessage: `Field \"${path}\": ${message}`\n\t});\n\tconst checkObject = (value, valueObjectName, path) => {\n\t\tconst valueObject = input.types.nodes.get(valueObjectName);\n\t\tconst declared = input.types.declaredMembers.get(valueObjectName);\n\t\tif (valueObject === void 0 || declared === void 0) throw new InternalError(`Field \"${path}\" is typed by the value object \"${valueObjectName}\", which the contract does not declare.`);\n\t\tif (!isJsonObject(value)) {\n\t\t\tshape(path, `a value of \"${valueObjectName}\" is a JSON object, not ${jsonKind(value)}`);\n\t\t\treturn;\n\t\t}\n\t\tfor (const key of Object.keys(value)) if (!declared.has(key)) shape(path, `\"${key}\" is not a member of \"${valueObjectName}\"`);\n\t\tfor (const member of valueObject.fields) checkMember(value[member.fieldName], member, `${path}.${member.fieldName}`);\n\t};\n\tconst checkMember = (value, member, path) => {\n\t\tif (value === void 0) {\n\t\t\tif (!member.nullable) shape(path, \"the member is required, and the default has no value for it\");\n\t\t\treturn;\n\t\t}\n\t\tif (value === null && member.nullable) return;\n\t\tif (member.many === true) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tshape(path, `the member is a list, so its value is a JSON array, not ${jsonKind(value)}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (const [index, element] of value.entries()) {\n\t\t\t\tif (element === null && member.elementNullable) continue;\n\t\t\t\tcheckOne(element, member, `${path}[${index}]`, \"an element of the member is not null\");\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tcheckOne(value, member, path, \"the member is not optional, so its value is not null\");\n\t};\n\tconst checkOne = (value, member, path, notNull) => {\n\t\tif (isValueObjectMember(member)) {\n\t\t\tif (value === null) shape(path, notNull);\n\t\t\telse checkObject(value, member.valueObjectName, path);\n\t\t\treturn;\n\t\t}\n\t\tconst reading = readStoredValue({\n\t\t\tvalue,\n\t\t\tcolumn: member.descriptor,\n\t\t\tcodecLookup: input.codecLookup,\n\t\t\tdataTypeLookup: input.dataTypeLookup,\n\t\t\tfieldPath: path\n\t\t});\n\t\tif (!reading.ok) {\n\t\t\tif (value === null) shape(path, notNull);\n\t\t\telse mismatches.push({\n\t\t\t\tcode: reading.code,\n\t\t\t\tmessage: reading.message\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst enumMismatch = enumValueMismatch(value, member, path, input.codecLookup);\n\t\tif (enumMismatch !== void 0) mismatches.push(enumMismatch);\n\t};\n\tif (input.value === null) {\n\t\tif (input.nullable) return mismatches;\n\t\tshape(input.fieldPath, input.list ? \"the default of a list of value objects is a JSON array, not null\" : \"the default of a value object is a JSON object, not null\");\n\t\treturn mismatches;\n\t}\n\tif (input.list) {\n\t\tif (!Array.isArray(input.value)) {\n\t\t\tshape(input.fieldPath, `the default of a list of value objects is a JSON array, not ${jsonKind(input.value)}`);\n\t\t\treturn mismatches;\n\t\t}\n\t\tfor (const [index, element] of input.value.entries()) {\n\t\t\tif (element === null && input.elementNullable) continue;\n\t\t\tcheckObject(element, input.valueObjectName, `${input.fieldPath}[${index}]`);\n\t\t}\n\t\treturn mismatches;\n\t}\n\tif (!isJsonObject(input.value)) {\n\t\tshape(input.fieldPath, `the default of a value object is a JSON object, not ${jsonKind(input.value)}`);\n\t\treturn mismatches;\n\t}\n\tcheckObject(input.value, input.valueObjectName, input.fieldPath);\n\treturn mismatches;\n}\n/**\n* A member typed by an enum takes only the enum's values, in the form its codec stores them, as a model field of that enum takes only its members.\n*/\nfunction enumValueMismatch(value, member, path, codecLookup) {\n\tconst handle = member.enumTypeHandle;\n\tif (handle === void 0) return void 0;\n\tconst codec = codecLookup.get(handle.codecId);\n\tconst stored = handle.values.map((enumValue) => codec === void 0 ? enumValue : codec.encodeJson(enumValue));\n\tif (stored.some((storedValue) => storedValue === value)) return void 0;\n\treturn {\n\t\tcode: PSL_INVALID_DEFAULT_LITERAL,\n\t\tmessage: `Field \"${path}\": Expected one of: ${stored.map((storedValue) => JSON.stringify(storedValue)).join(\" | \")}`\n\t};\n}\nfunction isJsonObject(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction jsonKind(value) {\n\tif (value === null) return \"null\";\n\tif (Array.isArray(value)) return \"a JSON array\";\n\tif (typeof value === \"object\") return \"a JSON object\";\n\treturn `a JSON ${typeof value}`;\n}\n//#endregion\n//#region src/psl-column-resolution.ts\nfunction toNamedTypeFieldDescriptor(typeRef, descriptor) {\n\treturn {\n\t\tcodecId: descriptor.codecId,\n\t\ttypeRef\n\t};\n}\nfunction argumentSpan(call, descriptors, index) {\n\tif (index === void 0) return call.span;\n\tconst name = descriptors?.[index]?.name;\n\tconst named = call.args.find((arg) => arg.kind === \"named\" && arg.name === name);\n\tconst positional = call.args.filter((arg) => arg.kind === \"positional\")[index];\n\treturn (named ?? positional)?.span ?? call.span;\n}\n/**\n* Checks the type parameters a constructor or preset produced against its codec's parameter schema,\n* reporting a failure at the argument the failing parameter came from. Returns whether they passed.\n*/\nfunction checkPslTypeParams(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\ttry {\n\t\tvalidateAuthoringTypeParams(helperPath, input.template, input.typeParams, input.codecLookup.descriptorFor(input.template.codecId)?.paramsSchema);\n\t\treturn true;\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.subject} ${message}`,\n\t\t\t...input.source.at(argumentSpan(input.call, input.args, argumentIndexOf(error)))\n\t\t});\n\t\treturn false;\n\t}\n}\nfunction argumentIndexOf(error) {\n\tif (typeof error !== \"object\" || error === null || !(\"details\" in error)) return void 0;\n\tconst { details } = error;\n\tif (typeof details !== \"object\" || details === null || !(\"argumentIndex\" in details)) return;\n\treturn typeof details.argumentIndex === \"number\" ? details.argumentIndex : 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 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\tlet output;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\toutput = instantiateAuthoringTypeConstructor(input.descriptor, args);\n\t} catch (error) {\n\t\tif (isInternalError(error)) throw 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\treturn checkPslTypeParams({\n\t\tcall: input.call,\n\t\tsubject: `${input.entityLabel} constructor \"${helperPath}\"`,\n\t\targs: input.descriptor.args,\n\t\ttemplate: input.descriptor.output,\n\t\ttypeParams: output.typeParams,\n\t\tcodecLookup: input.codecLookup,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source\n\t}) ? output : void 0;\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\n* `typeParams.typeName` `columnFromEntity` returns is 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 NOT_RESOLVED;\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 NOT_RESOLVED;\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 NOT_RESOLVED;\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\t...resolved.typeParams !== void 0 ? { typeParams: resolved.typeParams } : {},\n\t\t\t...valueSet !== void 0 ? { valueSet } : {}\n\t\t}\n\t};\n}\nconst NOT_RESOLVED = { ok: false };\nfunction instantiateFieldTypeConstructor(input) {\n\tif (input.descriptor.entityRefArg !== void 0) return resolveEntityRefTypeConstructorCall({\n\t\tcall: input.call,\n\t\tdescriptor: input.descriptor,\n\t\tnamespaceId: input.namespaceId,\n\t\tnamespaceExtensionEntities: input.namespaceExtensionEntities,\n\t\tcodecLookup: input.codecLookup,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tentityLabel: input.entityLabel\n\t});\n\tconst instantiated = instantiatePslTypeConstructor({\n\t\tcall: input.call,\n\t\tdescriptor: input.descriptor,\n\t\tcodecLookup: input.codecLookup,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tentityLabel: input.entityLabel\n\t});\n\treturn instantiated === void 0 ? NOT_RESOLVED : {\n\t\tok: true,\n\t\tdescriptor: instantiated\n\t};\n}\nfunction instantiateFieldPreset(input) {\n\tconst instantiated = instantiatePslFieldPreset(input);\n\tif (!instantiated) return NOT_RESOLVED;\n\tif (!checkPslTypeParams({\n\t\tcall: input.call,\n\t\tsubject: `${input.entityLabel} preset \"${input.call.path.join(\".\")}\"`,\n\t\targs: input.descriptor.args,\n\t\ttemplate: input.descriptor.output,\n\t\ttypeParams: instantiated.descriptor.typeParams,\n\t\tcodecLookup: input.codecLookup,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source\n\t})) return NOT_RESOLVED;\n\tconst presetContributions = {\n\t\tnullable: instantiated.nullable,\n\t\tid: instantiated.id,\n\t\tunique: instantiated.unique,\n\t\t...instantiated.default !== void 0 ? { default: instantiated.default } : {},\n\t\t...instantiated.executionDefaults !== void 0 ? { executionDefaults: instantiated.executionDefaults } : {}\n\t};\n\treturn {\n\t\tok: true,\n\t\tdescriptor: instantiated.descriptor,\n\t\tpresetContributions\n\t};\n}\nfunction bareTypeConstructorOf(resolution) {\n\tif (resolution?.kind !== \"contributedType\") return void 0;\n\tconst { descriptor } = resolution.symbol;\n\treturn descriptor.kind === \"typeConstructor\" && isBareTypeConstructor(descriptor) ? descriptor : void 0;\n}\nfunction resolvedKindLabel(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 \"crossSpace\": return \"type of another contract space\";\n\t\tdefault: return resolution.kind;\n\t}\n}\nfunction resolveFieldTypeDescriptor(input) {\n\tconst { field, resolution, entityLabel, diagnostics } = input;\n\tif (field.malformedType || resolution === void 0) return NOT_RESOLVED;\n\tconst source = diagnosticSource(input.sources, field.node.syntax);\n\tconst unsupported = (message) => {\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\tmessage,\n\t\t\t...source.at(field.span)\n\t\t});\n\t\treturn NOT_RESOLVED;\n\t};\n\tconst call = field.typeConstructor;\n\tswitch (resolution.kind) {\n\t\tcase \"unresolved\":\n\t\tcase \"namespace\":\n\t\tcase \"contributedNamespace\": return NOT_RESOLVED;\n\t\tcase \"contributedType\": {\n\t\t\tconst { descriptor, path } = resolution.symbol;\n\t\t\tconst written = path.join(\".\");\n\t\t\tif (descriptor.kind === \"fieldPreset\") {\n\t\t\t\tif (call === void 0) {\n\t\t\t\t\treportPresetNotCalled({\n\t\t\t\t\t\tentityLabel,\n\t\t\t\t\t\tpresetPath: written,\n\t\t\t\t\t\tsource,\n\t\t\t\t\t\tspan: field.span,\n\t\t\t\t\t\tdiagnostics\n\t\t\t\t\t});\n\t\t\t\t\treturn NOT_RESOLVED;\n\t\t\t\t}\n\t\t\t\treturn instantiateFieldPreset({\n\t\t\t\t\tcall,\n\t\t\t\t\tdescriptor,\n\t\t\t\t\tcodecLookup: input.codecLookup,\n\t\t\t\t\tdiagnostics,\n\t\t\t\t\tsource,\n\t\t\t\t\tentityLabel\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (call !== void 0) return instantiateFieldTypeConstructor({\n\t\t\t\t...input,\n\t\t\t\tcall,\n\t\t\t\tdescriptor,\n\t\t\t\tsource\n\t\t\t});\n\t\t\tif (!isBareTypeConstructor(descriptor)) {\n\t\t\t\treportTypeConstructorNotCalled({\n\t\t\t\t\tentityLabel,\n\t\t\t\t\tpath: written,\n\t\t\t\t\tdescriptor,\n\t\t\t\t\tsource,\n\t\t\t\t\tspan: field.span,\n\t\t\t\t\tdiagnostics\n\t\t\t\t});\n\t\t\t\treturn NOT_RESOLVED;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdescriptor: instantiateAuthoringTypeConstructor(descriptor, [])\n\t\t\t};\n\t\t}\n\t\tcase \"field\":\n\t\tcase \"attribute\":\n\t\tcase \"parameter\":\n\t\tcase \"function\":\n\t\tcase \"constant\": throw new InternalError(`The type of ${entityLabel} resolved to a ${resolution.kind}; a type reference never names one. This is a binder bug.`);\n\t}\n\tif (call !== void 0) return unsupported(`${entityLabel} calls \"${call.path.join(\".\")}\", which is a ${resolvedKindLabel(resolution)}, not a type constructor. Remove the arguments.`);\n\tswitch (resolution.kind) {\n\t\tcase \"namedType\": {\n\t\t\tconst descriptor = input.namedTypeDescriptors.get(resolution.symbol);\n\t\t\treturn descriptor === void 0 ? NOT_RESOLVED : {\n\t\t\t\tok: true,\n\t\t\t\tdescriptor\n\t\t\t};\n\t\t}\n\t\tcase \"block\": {\n\t\t\tif (resolution.symbol.keyword !== \"enum\") return unsupported(`${entityLabel} is typed by the ${resolution.symbol.keyword} \"${resolution.symbol.name}\", which is not a column type.`);\n\t\t\tconst descriptor = input.enumTypeDescriptors.get(resolution.symbol);\n\t\t\treturn descriptor === void 0 ? NOT_RESOLVED : {\n\t\t\t\tok: true,\n\t\t\t\tdescriptor\n\t\t\t};\n\t\t}\n\t\tcase \"model\":\n\t\tcase \"compositeType\": return unsupported(`${entityLabel} is typed by the ${resolvedKindLabel(resolution)} \"${resolution.symbol.name}\", which is not a column type.`);\n\t\tcase \"crossSpace\": return unsupported(`${entityLabel} type \"${field.typeName}\" is a type of contract space \"${field.typeContractSpaceId}\"; only a relation field can name a type of another contract space.`);\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};\n/**\n* Refuses a `null` element in the list default of a field whose list elements are not nullable,\n* at the first `null`. Returns whether it refused.\n*/\nfunction rejectStrictListNullDefault(input) {\n\tif (input.field.elementOptional) return false;\n\tconst nullElement = input.elements.find(isParsedNullLiteral);\n\tif (nullElement === void 0) return false;\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\tmessage: `Field \"${input.modelName}.${input.field.name}\" has strict list elements and cannot use null in a literal list default. Make the element type nullable or remove null from the default.`,\n\t\t...input.source.at(nullElement.span)\n\t});\n\treturn true;\n}\nfunction isParsedNullLiteral(element) {\n\treturn element.kind === \"null\";\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\tbinder: input.binder,\n\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\tdataTypes: input.dataTypes\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 attributeSpan = nodePslSpan(node.syntax, input.sources);\n\tif (value.kind === \"null\") {\n\t\tif (!input.field.optional) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\t\tmessage: `Field \"${input.modelName}.${input.fieldName}\" is non-nullable and cannot use null as its literal default. Make the field nullable or use a non-null default.`,\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: null,\n\t\t\tcanonical: true\n\t\t} };\n\t}\n\tif (value.kind === \"list\" && rejectStrictListNullDefault({\n\t\t...input,\n\t\telements: value.elements,\n\t\tsource\n\t})) return {};\n\tconst readsListElements = (written) => input.isListColumn || input.field.list && written.kind === \"list\";\n\tconst readAsLiteral = (written, spans, sourceElementIndexes) => {\n\t\tconst lowered = lowerDataTypeDefault({\n\t\t\twritten,\n\t\t\tspans,\n\t\t\tsourceElementIndexes,\n\t\t\tisList: readsListElements(written),\n\t\t\tcolumn: input.columnDescriptor,\n\t\t\tcodecLookup: input.codecLookup,\n\t\t\tdataTypes: input.dataTypes,\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(lowered.span)\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\tlet restoredValue = lowered.value;\n\t\tif (value.kind === \"list\" && value.elements.some(isParsedNullLiteral) && Array.isArray(lowered.value)) {\n\t\t\tlet index = 0;\n\t\t\tconst nonNullValues = lowered.value;\n\t\t\trestoredValue = value.elements.map((element) => element.kind === \"null\" ? null : nonNullValues[index++] ?? null);\n\t\t}\n\t\tif (input.valueObjectDefault !== void 0) {\n\t\t\tconst { document, stored } = valueObjectDefaultDocument({\n\t\t\t\tstored: restoredValue,\n\t\t\t\telementwise: readsListElements(written) && !input.isListColumn,\n\t\t\t\tcodecId: input.columnDescriptor.codecId,\n\t\t\t\tcodecLookup: input.codecLookup\n\t\t\t});\n\t\t\tconst mismatches = valueObjectDefaultMismatches({\n\t\t\t\tfieldPath: `${input.modelName}.${input.fieldName}`,\n\t\t\t\tvalue: document,\n\t\t\t\tlist: input.field.list,\n\t\t\t\tnullable: input.field.optional,\n\t\t\t\telementNullable: input.field.elementOptional,\n\t\t\t\t...input.valueObjectDefault,\n\t\t\t\tcodecLookup: input.codecLookup,\n\t\t\t\tdataTypeLookup: input.dataTypes.lookup\n\t\t\t});\n\t\t\tfor (const { code, message } of mismatches) input.diagnostics.push({\n\t\t\t\tcode,\n\t\t\t\tmessage,\n\t\t\t\t...source.at()\n\t\t\t});\n\t\t\tif (mismatches.length > 0) return {};\n\t\t\treturn { defaultValue: {\n\t\t\t\tkind: \"literal\",\n\t\t\t\tvalue: stored,\n\t\t\t\tcanonical: true\n\t\t\t} };\n\t\t}\n\t\treturn { defaultValue: {\n\t\t\tkind: \"literal\",\n\t\t\tvalue: restoredValue,\n\t\t\tcanonical: true\n\t\t} };\n\t};\n\tconst canonicalized = (scalar) => {\n\t\tif (scalar.written !== void 0) return scalar.written;\n\t\tinput.diagnostics.push({\n\t\t\tcode: TAGGED_LITERAL_CANONICALIZATION_CODES[scalar.reason],\n\t\t\tmessage: describeTaggedLiteralFailure(scalar.reason),\n\t\t\t...source.at(scalar.span)\n\t\t});\n\t};\n\tconst sqlExpressionDefault = (text, span) => {\n\t\tconst reserved = reservedSqlDefaultText(text);\n\t\tconst refusal = reserved === void 0 ? checkSqlDefaultText(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 (value.kind === \"member\" || value.kind === \"member-list\") return {};\n\tif (input.columnDescriptor.valueSet !== void 0) {\n\t\tconst memberName = (element) => element.kind === \"scalar\" && element.written?.kind === \"string\" ? element.written.text : void 0;\n\t\tif (value.kind === \"scalar\") {\n\t\t\tconst member = memberName(value);\n\t\t\tif (member !== void 0) return { defaultValue: {\n\t\t\t\tkind: \"literal\",\n\t\t\t\tvalue: member\n\t\t\t} };\n\t\t}\n\t\tif (value.kind === \"list\") {\n\t\t\tconst members = value.elements.map((element) => element.kind === \"null\" ? null : memberName(element));\n\t\t\tif (members.every((member) => member !== void 0)) 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 (value.kind === \"list\") {\n\t\tconst elements = [];\n\t\tconst sourceElementIndexes = [];\n\t\tfor (const [sourceIndex, element] of value.elements.entries()) {\n\t\t\tif (element.kind === \"null\") continue;\n\t\t\tconst written = canonicalized(element);\n\t\t\tif (written === void 0) return {};\n\t\t\telements.push(written);\n\t\t\tsourceElementIndexes.push(sourceIndex);\n\t\t}\n\t\treturn readAsLiteral({\n\t\t\tkind: \"list\",\n\t\t\telements\n\t\t}, {\n\t\t\tattribute: attributeSpan,\n\t\t\tvalue: value.span,\n\t\t\telements: value.elements.map((element) => element.span)\n\t\t}, sourceElementIndexes);\n\t}\n\tif (value.kind === \"scalar\") {\n\t\tconst written = canonicalized(value);\n\t\tif (written === void 0) return {};\n\t\tconst spans = {\n\t\t\tattribute: attributeSpan,\n\t\t\tvalue: value.span,\n\t\t\telements: []\n\t\t};\n\t\tif (written.kind !== \"tag\") return readAsLiteral(written, spans);\n\t\tconst read = readWrittenValue(input.dataTypes, written);\n\t\tif (read.ok && read.value.type === SQL_EXPRESSION_DATA_TYPE_ID) return sqlExpressionDefault(sqlTextFromCanonical(read.value.value), value.span);\n\t\treturn readAsLiteral(written, spans);\n\t}\n\tconst { call } = value;\n\tconst context = {\n\t\tsourceId: input.sources.sourceFileFor(node.syntax).filename,\n\t\tmodelName: input.modelName,\n\t\tfieldName: input.fieldName,\n\t\tcolumnCodecId: input.columnDescriptor.codecId\n\t};\n\tconst lowered = lowerDefaultFunctionWithRegistry({\n\t\tcall,\n\t\tregistry: input.defaultFunctionRegistry,\n\t\tcontext,\n\t\tsource\n\t});\n\tif (!lowered.ok) {\n\t\tif (lowered.kind === \"owned\") input.diagnostics.push(lowered.diagnostic);\n\t\telse input.diagnostics.pushExternal(lowered.diagnostic);\n\t\treturn {};\n\t}\n\tif (lowered.value.kind === \"storage\") return { defaultValue: lowered.value.defaultValue };\n\tconst generatorDescriptor = input.generatorDescriptorById.get(lowered.value.generated.id);\n\tif (!generatorDescriptor) {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\tmessage: `Default generator \"${lowered.value.generated.id}\" is not available in the composed mutation default registry.`,\n\t\t\t...source.at(call.span)\n\t\t});\n\t\treturn {};\n\t}\n\tif (generatorDescriptor.applicableCodecIds === void 0) {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\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...source.at(call.span)\n\t\t});\n\t\treturn {};\n\t}\n\tif (!generatorDescriptor.applicableCodecIds.includes(input.columnDescriptor.codecId)) {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\tmessage: `Default generator \"${generatorDescriptor.id}\" is not applicable to \"${input.modelName}.${input.fieldName}\" with codecId \"${input.columnDescriptor.codecId}\".`,\n\t\t\t...source.at(call.span)\n\t\t});\n\t\treturn {};\n\t}\n\treturn { executionDefaults: { onCreate: lowered.value.generated } };\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\tbinder: input.binder,\n\t\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\t\tdataTypes: input.dataTypes\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\tif (member.kind === \"member-list\") {\n\t\tif (rejectStrictListNullDefault({\n\t\t\t...input,\n\t\t\telements: member.elements,\n\t\t\tsource: diagnosticSource(input.sources, node.syntax)\n\t\t})) return {};\n\t\treturn { defaultValue: {\n\t\t\tkind: \"literal\",\n\t\t\tvalue: blindCast(member.elements.map((entry) => entry.kind === \"null\" ? null : enumHandle.enumMembers.find((candidate) => candidate.name === entry.name)?.value))\n\t\t} };\n\t}\n\tinvariant(member.kind === \"member\", \"the enum @default grammar admits only member identifiers\");\n\tconst match = enumHandle.enumMembers.find((m) => m.name === member.name);\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(sources) {\n\treturn ({ attribute, level, owner, field }) => {\n\t\tif (owner.kind === \"compositeType\") return void 0;\n\t\tif (level === \"model\") {\n\t\t\tconst source = diagnosticSource(sources, owner.node.syntax);\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(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 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(input.specContext),\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(input.specContext),\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(input.specContext),\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.isListColumn && !input.elementNullable) 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 lists whose elements are semantically non-null\";\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, valueObjectTypes, authoringContributions, binder, targetId, defaultFunctionRegistry, dataTypes, 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 valueObjectName = fieldTypeResolution?.kind === \"compositeType\" ? fieldTypeResolution.symbol.name : void 0;\n\t\tconst isValueObjectField = valueObjectName !== void 0;\n\t\tconst isListField = field.list;\n\t\tconst isListColumn = storedAsListColumn({\n\t\t\tlist: isListField,\n\t\t\ttypedByValueObject: isValueObjectField\n\t\t});\n\t\tlet descriptor;\n\t\tlet presetContributions;\n\t\tconst resolveInput = {\n\t\t\tfield,\n\t\t\tresolution: fieldTypeResolution,\n\t\t\tenumTypeDescriptors,\n\t\t\tnamedTypeDescriptors,\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\tcodecLookup\n\t\t};\n\t\tif (isValueObjectField) {\n\t\t\tif (valueObjectStorageTypeName === void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is typed by the composite type \"${field.typeName}\", but the adapter of the stack declares no storage type for value objects, so the field has no column to be stored in.`,\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 = scalarColumnDescriptors.get(valueObjectStorageTypeName);\n\t\t\tif (descriptor === void 0) throw new InternalError(`The stack declares \"${valueObjectStorageTypeName}\" as its value-object storage type, but it is not one of the stack's scalar types; the control stack checks this when it is assembled.`);\n\t\t} else 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) continue;\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\tdescriptor = resolved.descriptor;\n\t\t} else {\n\t\t\tconst resolved = resolveFieldTypeDescriptor(resolveInput);\n\t\t\tif (!resolved.ok) continue;\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 = fieldTypeResolution?.kind === \"block\" ? enumHandles.get(fieldTypeResolution.symbol) : void 0;\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\tdataTypes,\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\tisListColumn,\n\t\t\tvalueObjectDefault: valueObjectName === void 0 ? void 0 : {\n\t\t\t\tvalueObjectName,\n\t\t\t\ttypes: valueObjectTypes\n\t\t\t},\n\t\t\tgeneratorDescriptorById,\n\t\t\tdefaultFunctionRegistry,\n\t\t\tdataTypes,\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 specContext = fieldSpecContext({\n\t\t\tsymbols: symbolTable,\n\t\t\tmodel,\n\t\t\tfield,\n\t\t\tbinder,\n\t\t\tdefaultFunctionRegistry,\n\t\t\tdataTypes\n\t\t});\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\tspecContext,\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\tspecContext,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tisListColumn,\n\t\t\telementNullable: field.elementOptional,\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(\"elementNullable\", field.elementOptional ? true : void 0),\n\t\t\t...ifDefined(\"valueObjectTypeName\", valueObjectName),\n\t\t\t...ifDefined(\"enumTypeHandle\", enumHandle)\n\t\t});\n\t}\n\treturn resolvedFields;\n}\n//#endregion\nexport { mapFieldNamesToColumns as C, getNamedArgument as S, readDataTypeDefault as _, getAuthoringEntity as a, formatDbAttributeMigrationMessage as b, resolveFieldTypeDescriptor as c, fieldSpecContext as d, interpretFieldAttribute as f, sqlAttributeSpecs as g, modelSpecContext as h, bareTypeConstructorOf as i, toNamedTypeFieldDescriptor as l, modelAttributeSpecsFrom as m, describeUnsupportedSqlAttribute as n, instantiateFieldTypeConstructor as o, interpretModelAttribute as p, modelCoordinateKey as r, instantiatePslTypeConstructor as s, collectResolvedFields as t, PSL_CHECK_ON_STI_VARIANT as u, readWrittenNumberForCodec as v, storageName as w, getAttribute as x, contractError as y };\n\n//# sourceMappingURL=psl-field-resolution-CAJsUfST.mjs.map"],"mappings":"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"}