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

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 (44) hide show
  1. package/dist/{authoring-type-constructors-0Iv2zdwS-DX59Qw3z.mjs → authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs} +2 -2
  2. package/dist/{authoring-type-constructors-0Iv2zdwS-DX59Qw3z.mjs.map → authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs.map} +1 -1
  3. package/dist/{config-types-HwU-FfRj.mjs → config-types-DggwpWr3.mjs} +2 -2
  4. package/dist/{config-types-HwU-FfRj.mjs.map → config-types-DggwpWr3.mjs.map} +1 -1
  5. package/dist/{contract-builder-Tmmlb0mv.mjs → contract-builder-J9D4EprQ.mjs} +3 -3
  6. package/dist/{contract-builder-Tmmlb0mv.mjs.map → contract-builder-J9D4EprQ.mjs.map} +1 -1
  7. package/dist/contract-prisma7__provider.mjs +4 -4
  8. package/dist/contract-psl.mjs +1 -1
  9. package/dist/contract-psl__attribute-specs.mjs +1 -1
  10. package/dist/contract-psl__provider.mjs +2 -2
  11. package/dist/contract-ts.mjs +3 -3
  12. package/dist/contract-ts__config-types.mjs +1 -1
  13. package/dist/contract-ts__contract-builder.mjs +2 -2
  14. package/dist/contract.d.mts +2 -2
  15. package/dist/contract.mjs +2 -2
  16. package/dist/contract__validators.d.mts +2 -2
  17. package/dist/contract__validators.mjs +2 -2
  18. package/dist/{control-COI98aRs.mjs → control-Bce-z7el.mjs} +5 -5
  19. package/dist/{control-COI98aRs.mjs.map → control-Bce-z7el.mjs.map} +1 -1
  20. package/dist/{control-BQpDsD3I.d.mts → control-DdyeUFkv.d.mts} +2 -2
  21. package/dist/{control-BQpDsD3I.d.mts.map → control-DdyeUFkv.d.mts.map} +1 -1
  22. package/dist/{derived-checks-RB_lNgFJ-CHamqgFW.mjs → derived-checks-CEK-Ls_a-plK5KxX3.mjs} +45 -7
  23. package/dist/derived-checks-CEK-Ls_a-plK5KxX3.mjs.map +1 -0
  24. package/dist/family.d.mts +2 -2
  25. package/dist/family.mjs +3 -3
  26. package/dist/family__control.d.mts +2 -2
  27. package/dist/family__control.mjs +2 -2
  28. package/dist/family__ir.mjs +1 -1
  29. package/dist/family__pack.mjs +2 -2
  30. package/dist/{interpreter-BTM9k0wn-Bu5eCC-Z.mjs → interpreter-BTM9k0wn-Cya0qReB.mjs} +3 -3
  31. package/dist/{interpreter-BTM9k0wn-Bu5eCC-Z.mjs.map → interpreter-BTM9k0wn-Cya0qReB.mjs.map} +1 -1
  32. package/dist/orm-client.mjs +421 -252
  33. package/dist/orm-client.mjs.map +1 -1
  34. package/dist/{psl-field-resolution-CAJsUfST-DWY_oqor.mjs → psl-field-resolution-CAJsUfST-C4QwwiqV.mjs} +3 -3
  35. package/dist/{psl-field-resolution-CAJsUfST-DWY_oqor.mjs.map → psl-field-resolution-CAJsUfST-C4QwwiqV.mjs.map} +1 -1
  36. package/dist/{sql-contract-serializer-DDaAVCQr-CGG0I8ur.mjs → sql-contract-serializer-DDaAVCQr-CK2KUyq0.mjs} +2 -2
  37. package/dist/{sql-contract-serializer-DDaAVCQr-CGG0I8ur.mjs.map → sql-contract-serializer-DDaAVCQr-CK2KUyq0.mjs.map} +1 -1
  38. package/dist/{validators-CIfn8ezs.mjs → validators-B9prRmOP.mjs} +63 -6
  39. package/dist/validators-B9prRmOP.mjs.map +1 -0
  40. package/dist/{validators-COcD3_iw.d.mts → validators-CudqzmkF.d.mts} +11 -6
  41. package/dist/{validators-COcD3_iw.d.mts.map → validators-CudqzmkF.d.mts.map} +1 -1
  42. package/package.json +18 -18
  43. package/dist/derived-checks-RB_lNgFJ-CHamqgFW.mjs.map +0 -1
  44. package/dist/validators-CIfn8ezs.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"derived-checks-RB_lNgFJ-CHamqgFW.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-ts/dist/derived-checks-RB_lNgFJ.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/** 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\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: relation.on.parentColumns.map((col) => columnToField.get(col) ?? col),\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 on = {\n\t\t\tlocalFields: relation.on.parentColumns.map((col) => columnToField.get(col) ?? col),\n\t\t\ttargetFields: relation.on.childColumns.map((col) => targetColumnToField.get(col) ?? 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/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\tfor (const table of mergeTables(components.map((c) => c.storage), tableNodes)) {\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-RB_lNgFJ.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators-CIfn8ezs.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/validators.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { a as ColumnDefaultFunctionSchema, c as ForeignKeyReferenceSchema, d as IndexSchema, f as ReferentialActionSchema, i as CheckConstraintSchema, l as ForeignKeySchema, m as StorageValueSetSchema, o as ColumnDefaultLiteralSchema, p as StorageTableSchema, s as ColumnDefaultSchema, t as composeSqlEntityKinds, u as ForeignKeySourceSchema } from \"./entity-kinds-DDTkNIr9.mjs\";\nimport { a as sameColumns$1, s as startsWithColumns } from \"./index-equivalence-DswCiq5l.mjs\";\nimport { computeCheckContentHash, computeIndexContentHash } from \"@internal/sql-schema-ir/naming\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { isPlainRecord } from \"@internal/framework-components/ir\";\nimport { DATA_TYPE_ID_PATTERN } from \"@internal/framework-components/codec\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { type } from \"arktype\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { ContractExecutionSectionSchema, CrossReferenceSchema } from \"@internal/contract/types\";\nimport { validateContractDomain } from \"@internal/contract/validate-domain\";\nimport { canonicalizeJson } from \"@internal/framework-components/utils\";\n//#region src/default-sql-text.ts\nconst UNSAFE_DEFAULT_TEXT = /;|--|\\/\\*|\\$\\$|\\bSELECT\\b/i;\n/** Returns undefined when the text may be rendered as `DEFAULT (<text>)`, else the reason. */\nfunction checkSqlDefaultText(text) {\n\treturn UNSAFE_DEFAULT_TEXT.test(text) ? \"Default SQL must not contain semicolons, SQL comment tokens, dollar-quoting, or subqueries.\" : void 0;\n}\n/**\n* Names the Prisma default function that raw SQL text is exactly, ignoring surrounding whitespace. The planners treat the contract expressions `now()` and `autoincrement()` as those functions, so raw SQL with that text would not be used as written.\n*/\nfunction reservedSqlDefaultText(text) {\n\tswitch (text.trim()) {\n\t\tcase \"now()\": return \"now\";\n\t\tcase \"autoincrement()\": return \"autoincrement\";\n\t\tdefault: return;\n\t}\n}\n//#endregion\n//#region src/relation-storage.ts\nfunction sameColumns(left, right) {\n\treturn left.length === right.length && left.every((column, index) => column === right[index]);\n}\n/**\n* The storage facts behind a same-space to-one relation's nullability: which side owns the\n* foreign key, and whether each local column is nullable.\n*/\nfunction resolveSqlToOneRelationStorage(contract, modelStorage, relation) {\n\tconst table = blindCast(contract.storage.namespaces[modelStorage.namespaceId]?.entries.table?.[modelStorage.table]);\n\tconst columns = relation.on.localFields.map((fieldName) => {\n\t\tconst columnName = modelStorage.fields[fieldName]?.column;\n\t\tconst column = columnName === void 0 ? void 0 : table?.columns[columnName];\n\t\treturn {\n\t\t\tname: columnName ?? fieldName,\n\t\t\tnullable: column?.nullable ?? true\n\t\t};\n\t});\n\tconst columnNames = columns.map((column) => column.name);\n\treturn {\n\t\townsForeignKey: relation.cardinality === \"N:1\" || (table?.foreignKeys ?? []).some((foreignKey) => sameColumns(foreignKey.source.columns, columnNames)),\n\t\tcolumns\n\t};\n}\n//#endregion\n//#region src/validators.ts\nconst ControlPolicySchema = type(\"'managed' | 'tolerated' | 'external' | 'observed'\");\nconst DomainEnumRefSchema = type({\n\tplane: \"'domain'\",\n\tnamespaceId: \"string\",\n\tentityKind: \"'enum'\",\n\tentityName: \"string\",\n\t\"spaceId?\": \"string\"\n});\n/** Document-scoped `storage.types`: codec triples only. */\nconst DocumentScopedStorageTypeSchema = type.declare().type({\n\tkind: \"'codec-instance'\",\n\tcodecId: \"string\",\n\tdataType: DATA_TYPE_ID_PATTERN,\n\t\"typeParams?\": \"Record<string, unknown>\"\n});\n/**\n* Domain enum entry under `domain.namespaces[id].enum[name]`.\n* Carries the codec id and an ordered `members` array of `{name, value}` pairs.\n*/\nconst ContractEnumSchema = type({\n\t\"+\": \"reject\",\n\tcodecId: \"string\",\n\tmembers: type({\n\t\tname: \"string\",\n\t\tvalue: \"string | number | boolean | null | unknown[] | Record<string, unknown>\"\n\t}).array().readonly()\n});\n/**\n* Derives a schema map from a descriptor map: maps each kind's key to its\n* `schema` field. Used by validation functions to validate entries.\n*/\nfunction schemaViewOf(kinds) {\n\treturn new Map([...kinds].map(([k, d]) => [k, d.schema]));\n}\nconst DEFAULT_SQL_KINDS = composeSqlEntityKinds();\n/**\n* Builds the per-namespace entry schema for `storage.namespaces[id]`.\n*\n* Validation is descriptor-driven: the `kinds` map carries both the schema\n* (used here for structural validation) and the construct function (used at\n* hydration time). An unregistered key fails validation naming the kind and\n* the namespace id, so validation fails closed.\n*/\nfunction createNamespaceEntrySchema(kinds) {\n\tconst schemas = schemaViewOf(kinds);\n\tconst knownKinds = new Set(kinds.keys());\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\tid: \"string\",\n\t\t\"kind?\": \"string\",\n\t\tentries: \"object\"\n\t}).narrow((ns, ctx) => {\n\t\tif (!isPlainRecord(ns.entries)) return ctx.mustBe(\"an entries object\");\n\t\tfor (const [key, innerMap] of Object.entries(ns.entries)) {\n\t\t\tif (!knownKinds.has(key)) return ctx.reject({ expected: `entries key \"${key}\" in namespace \"${ns.id}\" is not a registered entity kind` });\n\t\t\tif (!isPlainRecord(innerMap)) return ctx.reject({ expected: `entries[\"${key}\"] in namespace \"${ns.id}\" must be an object` });\n\t\t\tconst entrySchema = blindCast(schemas.get(key));\n\t\t\tfor (const [, value] of Object.entries(innerMap)) {\n\t\t\t\tconst parsed = entrySchema(value);\n\t\t\t\tif (parsed instanceof type.errors) return ctx.reject({ expected: parsed.summary });\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t});\n}\n/**\n* Builds the storage schema. Pack contributions reach the per-namespace\n* entry shape through {@link createNamespaceEntrySchema}; the\n* document-scoped `storage.types` field (codec triples only) and the\n* storage hash stay family-shared.\n*/\nfunction createSqlStorageSchema(kinds) {\n\tconst namespaceEntry = createNamespaceEntrySchema(kinds);\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\tstorageHash: \"string\",\n\t\t\"types?\": type({ \"[string]\": DocumentScopedStorageTypeSchema }),\n\t\t\"namespaces?\": type({ \"[string]\": namespaceEntry })\n\t});\n}\nconst StorageSchema = createSqlStorageSchema(DEFAULT_SQL_KINDS);\n/** The refusal of a value-object column when the stack declares no value-object storage type. */\nfunction valueObjectStorageTypeMissingMessage(columnPath) {\n\treturn `${columnPath}: a value-object column needs the stack's value-object storage type, and the stack declares none`;\n}\nconst LISTED_STORED_TYPE_NAMES = 5;\nfunction fieldOf(value, key) {\n\treturn isPlainRecord(value) ? value[key] : void 0;\n}\nfunction entriesOf(value) {\n\treturn isPlainRecord(value) ? Object.entries(value) : [];\n}\nfunction storedTypeNamePaths(storage) {\n\tconst columns = entriesOf(fieldOf(storage, \"namespaces\")).flatMap(([namespaceId, namespace]) => entriesOf(fieldOf(fieldOf(namespace, \"entries\"), \"table\")).flatMap(([tableName, table]) => entriesOf(fieldOf(table, \"columns\")).map(([columnName, column]) => ({\n\t\tpath: `storage.namespaces.${namespaceId}.entries.table.${tableName}.columns.${columnName}`,\n\t\tentry: column\n\t}))));\n\tconst types = entriesOf(fieldOf(storage, \"types\")).map(([typeName, entry]) => ({\n\t\tpath: `storage.types.${typeName}`,\n\t\tentry\n\t}));\n\treturn [...columns, ...types].filter(({ entry }) => isPlainRecord(entry) && Object.hasOwn(entry, \"nativeType\")).map(({ path }) => path);\n}\n/**\n* Contracts emitted before a column named its data type stored the database type name in `nativeType` on columns and `storage.types` entries. The first five such keys are reported with their paths and the rest are counted, so an old contract is refused with a short message that says what changed.\n*/\nfunction storedTypeNameProblems(storage) {\n\tconst paths = storedTypeNamePaths(storage);\n\tconst listed = paths.slice(0, LISTED_STORED_TYPE_NAMES).map((path) => `${path}.nativeType: contracts no longer store a column's database type name; the column names its data type in \"dataType\"`);\n\tconst unlisted = paths.length - listed.length;\n\treturn unlisted > 0 ? [...listed, `and ${unlisted} more ${unlisted === 1 ? \"path\" : \"paths\"} (${paths.length} in all)`] : listed;\n}\n/**\n* Any entries entity that declares both a `tableName` and a physical `name`\n* (e.g. a target's RLS policy entities) shares one physical-name space per\n* table: two such entries of one kind on the same table would collide as\n* DDL (`CREATE POLICY \"<name>\" ON <table>` fails on the second), while the\n* same name on different tables is legal. Structural — no entry-kind\n* vocabulary; `table` entries are keyed by name already and are excluded.\n*/\nfunction validateTableScopedEntryNames(storage, errors) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) {\n\t\tif (!isPlainRecord(ns.entries)) continue;\n\t\tfor (const [entriesKind, slot] of Object.entries(ns.entries)) {\n\t\t\tif (entriesKind === \"table\" || !isPlainRecord(slot)) continue;\n\t\t\tconst seen = /* @__PURE__ */ new Map();\n\t\t\tfor (const entity of Object.values(slot)) {\n\t\t\t\tif (typeof entity !== \"object\" || entity === null) continue;\n\t\t\t\tconst record = blindCast(entity);\n\t\t\t\tconst name = record[\"name\"];\n\t\t\t\tconst tableName = record[\"tableName\"];\n\t\t\t\tif (typeof name !== \"string\" || typeof tableName !== \"string\") continue;\n\t\t\t\tconst key = JSON.stringify([tableName, name]);\n\t\t\t\tseen.set(key, (seen.get(key) ?? 0) + 1);\n\t\t\t\tif (seen.get(key) === 2) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": ${entriesKind} \"${name}\" is declared multiple times`);\n\t\t\t}\n\t\t}\n\t}\n}\nfunction eachStorageTable(storage) {\n\treturn Object.entries(storage.namespaces).flatMap(([namespaceId, ns]) => Object.entries(ns.entries[\"table\"] ?? {}).map(([tableName, table]) => ({\n\t\tnamespaceId,\n\t\ttableName,\n\t\ttable\n\t})));\n}\nfunction findDuplicateValue(values) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const value of values) {\n\t\tif (seen.has(value)) return value;\n\t\tseen.add(value);\n\t}\n}\n/** A column may appear at most once in one index's element tuple. */\nfunction rejectRepeatedIndexColumns(indexes, coordinate, errors) {\n\tfor (const index of indexes) {\n\t\tconst duplicateColumn = findDuplicateValue(index.columns ?? []);\n\t\tif (duplicateColumn !== void 0) errors.push(`${coordinate}: index contains duplicate column \"${duplicateColumn}\"`);\n\t}\n}\n/**\n* Two wire-named indexes with the same content are one index written twice —\n* the content hash is their identity, so neither spelling can survive. An\n* exact-named index is identified by its name instead, so content twins under\n* two names are legal and a repeated name is rejected by the named-object\n* check.\n*/\nfunction rejectDuplicateWireNamedIndexContent(indexes, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const index of indexes) {\n\t\tif (index.prefix === void 0) continue;\n\t\tconst content = computeIndexContentHash(index);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate index definition on columns [${(index.columns ?? []).join(\", \")}]`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\n/**\n* Two wire-named checks with the same predicate are one check written twice —\n* the content hash is their identity, so neither spelling can survive, and\n* whitespace variants of one predicate collapse onto the same hash. An\n* exact-named check is identified by its name instead, so content twins under\n* two names are legal (the legacy shape a database adopts from) and a repeated\n* name is rejected by the named-object check.\n*/\nfunction rejectDuplicateWireNamedCheckContent(checks, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const check of checks) {\n\t\tif (check.prefix === void 0) continue;\n\t\tconst content = computeCheckContentHash(check.expression);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate check constraint definition (expression \"${check.expression}\")`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\nfunction isContractFieldType(value) {\n\tif (!isPlainRecord(value)) return false;\n\tconst kind = value[\"kind\"];\n\tif (kind === \"scalar\") {\n\t\tif (typeof value[\"codecId\"] !== \"string\") return false;\n\t\tconst typeParams = value[\"typeParams\"];\n\t\tif (typeParams !== void 0 && !isPlainRecord(typeParams)) return false;\n\t\treturn true;\n\t}\n\tif (kind === \"valueObject\") return typeof value[\"name\"] === \"string\";\n\tif (kind === \"union\") {\n\t\tconst members = value[\"members\"];\n\t\tif (!Array.isArray(members)) return false;\n\t\treturn members.every((m) => isContractFieldType(m));\n\t}\n\treturn false;\n}\nconst ModelFieldSchema = type({\n\t\"+\": \"reject\",\n\tnullable: \"boolean\",\n\ttype: type(\"unknown\").narrow((value, ctx) => isContractFieldType(value) ? true : ctx.mustBe(\"scalar, valueObject, or union field type\")),\n\tmany: type(\"false\").or({\n\t\t\"+\": \"reject\",\n\t\telementNullable: \"boolean\"\n\t}).default(false),\n\t\"dict?\": \"true\",\n\t\"valueSet?\": DomainEnumRefSchema\n});\nconst ModelStorageSchema = type({\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tfields: type({ \"[string]\": type({\n\t\tcolumn: \"string\",\n\t\t\"codecId?\": \"string\",\n\t\t\"nullable?\": \"boolean\"\n\t}) })\n});\nconst ContractRelationThroughSchema = type({\n\t\"+\": \"reject\",\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tparentColumns: type.string.array().readonly(),\n\tchildColumns: type.string.array().readonly(),\n\ttargetColumns: type.string.array().readonly()\n});\nconst ContractRelationOnSchema = type({\n\t\"+\": \"reject\",\n\tlocalFields: type.string.array().readonly(),\n\ttargetFields: type.string.array().readonly()\n});\nconst ContractManyToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'N:M'\",\n\ton: ContractRelationOnSchema,\n\tthrough: ContractRelationThroughSchema\n});\nconst ContractToOneRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | 'N:1'\",\n\t\"nullable?\": \"boolean\",\n\ton: ContractRelationOnSchema\n});\nconst ContractToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:N'\",\n\ton: ContractRelationOnSchema\n});\nconst ContractReferenceRelationSchema = ContractManyToManyRelationSchema.or(ContractToOneRelationSchema).or(ContractToManyRelationSchema);\nconst ContractEmbedRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | '1:N'\"\n});\nconst ContractRelationSchema = ContractReferenceRelationSchema.or(ContractEmbedRelationSchema);\nconst ModelSchema = type({\n\tstorage: ModelStorageSchema,\n\t\"fields?\": type({ \"[string]\": ModelFieldSchema }),\n\t\"relations?\": type({ \"[string]\": ContractRelationSchema }),\n\t\"discriminator?\": \"unknown\",\n\t\"variants?\": \"unknown\",\n\t\"base?\": CrossReferenceSchema,\n\t\"owner?\": \"string\"\n});\nconst ContractMetaSchema = type({ \"[string]\": \"unknown\" });\n/**\n* Builds the full SQL contract schema. The storage subtree threads\n* pack contributions through {@link createSqlStorageSchema}; the rest\n* of the contract envelope is family-shared.\n*/\nfunction createSqlContractSchema(kinds) {\n\tconst storage = createSqlStorageSchema(kinds);\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\ttarget: \"string\",\n\t\ttargetFamily: \"'sql'\",\n\t\t\"coreHash?\": \"string\",\n\t\tprofileHash: \"string\",\n\t\t\"capabilities?\": \"Record<string, Record<string, boolean>>\",\n\t\t\"extensions?\": \"Record<string, unknown>\",\n\t\t\"meta?\": ContractMetaSchema,\n\t\t\"defaultControlPolicy?\": ControlPolicySchema,\n\t\t\"roots?\": type({ \"[string]\": CrossReferenceSchema }),\n\t\tdomain: type({ namespaces: type({ \"[string]\": type({\n\t\t\tmodels: type({ \"[string]\": ModelSchema }),\n\t\t\t\"valueObjects?\": type({ \"[string]\": type({ fields: type({ \"[string]\": ModelFieldSchema }) }) }),\n\t\t\t\"enum?\": type({ \"[string]\": ContractEnumSchema })\n\t\t}) }) }),\n\t\tstorage,\n\t\t\"execution?\": ContractExecutionSectionSchema\n\t});\n}\nconst SqlContractSchema = createSqlContractSchema(DEFAULT_SQL_KINDS);\n/**\n* Validates the structural shape of SqlStorage using Arktype. Pure\n* structural check: namespace IR is never materialized here (that needs\n* a target concretion via the serializer hydration path), so this throws\n* on invalid input and constructs nothing.\n*\n* @param value - The storage value to validate\n* @throws Error if the storage structure is invalid\n*/\nfunction validateStorage(value) {\n\tconst storedTypeNames = storedTypeNameProblems(value);\n\tconst result = StorageSchema(value);\n\tconst errors = storedTypeNames.length > 0 ? [...storedTypeNames] : result instanceof type.errors ? result.map((p) => p.message) : [];\n\tif (errors.length > 0) throw contractError(\"CONTRACT.VALIDATION_FAILED\", `Storage validation failed: ${errors.join(\"; \")}`, { meta: { errors } });\n}\nfunction validateModel(value) {\n\tconst result = ModelSchema(value);\n\tif (result instanceof type.errors) {\n\t\tconst errors = result.map((p) => p.message);\n\t\tthrow contractError(\"CONTRACT.VALIDATION_FAILED\", `Model validation failed: ${errors.join(\"; \")}`, { meta: { errors } });\n\t}\n\treturn result;\n}\n/**\n* Structural arktype validation of an SQL contract envelope. Internal\n* helper for {@link validateSqlContractFully} — exposed only inside\n* this module, since the family seam-of-record is the\n* `SqlContractSerializerBase.deserializeContract` SPI.\n*/\nfunction validateSqlContractStructure(value, contractSchema) {\n\tif (typeof value !== \"object\" || value === null) throw new ContractValidationError(\"Contract structural validation failed: value must be an object\", \"structural\");\n\tconst targetFamily = \"targetFamily\" in value ? value.targetFamily : void 0;\n\tif (targetFamily !== void 0 && targetFamily !== \"sql\") throw new ContractValidationError(`Unsupported target family: ${targetFamily}`, \"structural\");\n\tconst storedTypeNames = storedTypeNameProblems(fieldOf(value, \"storage\"));\n\tif (storedTypeNames.length > 0) throw new ContractValidationError(`Contract structural validation failed: ${storedTypeNames.join(\"; \")}`, \"structural\");\n\tconst contractResult = contractSchema(value);\n\tif (contractResult instanceof type.errors) throw new ContractValidationError(`Contract structural validation failed: ${contractResult.map((p) => p.message).join(\"; \")}`, \"structural\");\n\treturn blindCast(contractResult);\n}\nfunction foreignKeyBackingError(table, fk) {\n\tconst { index } = fk;\n\tif (index === void 0) return void 0;\n\tconst columns = fk.source.columns;\n\tif (\"name\" in index) {\n\t\tconst named = table.indexes.find((candidate) => candidate.name === index.name);\n\t\tif (named === void 0) return `is indexed by \"${index.name}\", but the table has no index with that name`;\n\t\treturn named.columns !== void 0 && startsWithColumns(named.columns, columns) ? void 0 : `is indexed by \"${index.name}\", but that index does not start with those columns`;\n\t}\n\tif (\"primaryKey\" in index) return table.primaryKey !== void 0 && startsWithColumns(table.primaryKey.columns, columns) ? void 0 : \"is indexed by the primary key, but the table's primary key does not start with those columns\";\n\tconst described = `the unique constraint on [${index.unique.join(\", \")}]`;\n\tif (!table.uniques.some((unique) => sameColumns$1(unique.columns, index.unique))) return `is indexed by ${described}, but the table has no unique constraint on those columns`;\n\treturn startsWithColumns(index.unique, columns) ? void 0 : `is indexed by ${described}, which does not start with those columns`;\n}\n/**\n* Validates semantic constraints on SqlStorage that cannot be expressed in Arktype schemas.\n*\n* Returns an array of human-readable error strings. Empty array = valid.\n*\n* Currently checks:\n* - duplicate named primary key / unique / index / foreign key objects within a table\n* - duplicate unique, index, or foreign key declarations within a table\n* - duplicate columns within primary key / unique / index definitions\n* - nullable columns in primary key definitions\n* - `setNull` referential action on a non-nullable FK column (would fail at runtime)\n* - `setDefault` referential action on a non-nullable FK column without a DEFAULT (would fail at runtime)\n* - a foreign key whose `index` is an index, primary key or unique constraint its table does not have\n*/\nfunction validateStorageSemantics(storage) {\n\tconst errors = [];\n\tvalidateTableScopedEntryNames(storage, errors);\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst namedObjects = /* @__PURE__ */ new Map();\n\t\tconst registerNamedObject = (kind, name) => {\n\t\t\tif (!name) return;\n\t\t\tnamedObjects.set(name, [...namedObjects.get(name) ?? [], kind]);\n\t\t};\n\t\tregisterNamedObject(\"primary key\", table.primaryKey?.name);\n\t\tfor (const unique of table.uniques) registerNamedObject(\"unique constraint\", unique.name);\n\t\tfor (const index of table.indexes) registerNamedObject(\"index\", index.name);\n\t\tfor (const fk of table.foreignKeys) registerNamedObject(\"foreign key\", fk.name);\n\t\tfor (const check of table.checks ?? []) registerNamedObject(\"check constraint\", check.name);\n\t\tfor (const [name, kinds] of namedObjects) if (kinds.length > 1) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": named object \"${name}\" is declared multiple times (${kinds.join(\", \")})`);\n\t\tif (table.primaryKey) {\n\t\t\tconst duplicateColumn = findDuplicateValue(table.primaryKey.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tfor (const columnName of table.primaryKey.columns) if (table.columns[columnName]?.nullable === true) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key column \"${columnName}\" is nullable; primary key columns must be NOT NULL`);\n\t\t}\n\t\tconst seenUniqueDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const unique of table.uniques) {\n\t\t\tconst duplicateColumn = findDuplicateValue(unique.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": unique constraint contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tconst signature = JSON.stringify({ columns: unique.columns });\n\t\t\tif (seenUniqueDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate unique constraint definition on columns [${unique.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenUniqueDefinitions.add(signature);\n\t\t}\n\t\tconst tableCoordinate = `Namespace \"${namespaceId}\" table \"${tableName}\"`;\n\t\trejectRepeatedIndexColumns(table.indexes, tableCoordinate, errors);\n\t\trejectDuplicateWireNamedIndexContent(table.indexes, tableCoordinate, errors);\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst error = foreignKeyBackingError(table, fk);\n\t\t\tif (error !== void 0) errors.push(`${tableCoordinate}: foreign key on columns [${fk.source.columns.join(\", \")}] ${error}`);\n\t\t}\n\t\tconst seenForeignKeyDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst signature = JSON.stringify({\n\t\t\t\tsource: fk.source,\n\t\t\t\ttarget: fk.target,\n\t\t\t\tonDelete: fk.onDelete ?? null,\n\t\t\t\tonUpdate: fk.onUpdate ?? null\n\t\t\t});\n\t\t\tif (seenForeignKeyDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate foreign key definition on columns [${fk.source.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenForeignKeyDefinitions.add(signature);\n\t\t}\n\t\tfor (const fk of table.foreignKeys) for (const colName of fk.source.columns) {\n\t\t\tconst column = table.columns[colName];\n\t\t\tif (!column) continue;\n\t\t\tif (fk.onDelete === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onUpdate === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onDelete === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t\tif (fk.onUpdate === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t}\n\t\trejectDuplicateWireNamedCheckContent(table.checks ?? [], tableCoordinate, errors);\n\t}\n\treturn errors;\n}\n/**\n* SQL storage logical-consistency checks: every model.storage.table\n* resolves to a real table and every model.storage.fields[*].column\n* resolves to a real column. Throws `ContractValidationError` on the first\n* mismatch.\n*/\nfunction validateModelStorageReferences(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) {\n\t\tconst modelStorage = blindCast(model.storage);\n\t\tconst qualifiedName = `${namespaceId}:${modelName}`;\n\t\tconst storageNamespaceId = modelStorage.namespaceId;\n\t\tif (storageNamespaceId !== namespaceId) throw new ContractValidationError(`Model \"${qualifiedName}\" storage.namespaceId \"${storageNamespaceId}\" does not match domain namespace \"${namespaceId}\"`, \"storage\");\n\t\tconst storageTable = modelStorage.table;\n\t\tconst rawTable = contract.storage.namespaces[storageNamespaceId]?.entries.table?.[storageTable];\n\t\tif (rawTable === void 0) throw new ContractValidationError(`Model \"${qualifiedName}\" references non-existent table \"${storageNamespaceId}.${storageTable}\"`, \"storage\");\n\t\tconst table = blindCast(rawTable);\n\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\tfor (const [fieldName, field] of Object.entries(modelStorage.fields)) if (!columnNames.has(field.column)) throw new ContractValidationError(`Model \"${qualifiedName}\" field \"${fieldName}\" references non-existent column \"${field.column}\" in table \"${storageTable}\"`, \"storage\");\n\t}\n}\n/**\n* Cross-table consistency checks for SQL storage: primary key, unique,\n* index, and foreign key column references resolve to real columns;\n* NOT NULL columns don't carry a literal `null` default; FK column\n* counts match their referenced columns. Throws on the first mismatch.\n*/\nfunction validateSqlStorageConsistency(contract) {\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(contract.storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\tif (table.primaryKey) {\n\t\t\tfor (const colName of table.primaryKey.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" primaryKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t}\n\t\tfor (const unique of table.uniques) for (const colName of unique.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" unique constraint references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const index of table.indexes) for (const colName of index.columns ?? []) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" index references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const [colName, column] of Object.entries(table.columns)) if (!column.nullable && column.default?.kind === \"literal\" && column.default.value === null) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" column \"${colName}\" is NOT NULL but has a literal null default`, \"storage\");\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tif (fk.source.namespaceId !== namespaceId || fk.source.tableName !== tableName) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" contains foreignKey with mismatched source coordinates (${fk.source.namespaceId}.${fk.source.tableName})`, \"storage\");\n\t\t\tfor (const colName of fk.source.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t\tif (fk.target.spaceId === void 0) {\n\t\t\t\tconst referencedRaw = contract.storage.namespaces[fk.target.namespaceId]?.entries.table?.[fk.target.tableName];\n\t\t\t\tif (referencedRaw === void 0) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent table \"${fk.target.namespaceId}.${fk.target.tableName}\"`, \"storage\");\n\t\t\t\tconst referencedTable = blindCast(referencedRaw);\n\t\t\t\tconst referencedColumnNames = new Set(Object.keys(referencedTable.columns));\n\t\t\t\tfor (const colName of fk.target.columns) if (!referencedColumnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\" in table \"${fk.target.tableName}\"`, \"storage\");\n\t\t\t}\n\t\t\tif (fk.source.columns.length !== fk.target.columns.length) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey column count (${fk.source.columns.length}) does not match referenced column count (${fk.target.columns.length})`, \"storage\");\n\t\t}\n\t}\n}\n/**\n* Full SQL contract validation: structural (arktype) +\n* framework-shared domain + SQL storage logical-consistency + SQL\n* storage semantic + model ↔ storage reference checks. Throws\n* `ContractValidationError` on the first failure. Returns the\n* validated flat-data shape; IR class hydration happens in the SPI\n* base on top of this helper.\n*/\nfunction validateSqlContractFully(value, options) {\n\tconst validated = validateSqlContractStructure(typeof value === \"object\" && value !== null ? (() => {\n\t\tconst { schemaVersion: _, _generated: _g, ...rest } = blindCast(value);\n\t\treturn rest;\n\t})() : value, options?.contractSchema ?? SqlContractSchema);\n\tvalidateContractDomain({\n\t\troots: validated.roots,\n\t\tdomain: validated.domain\n\t});\n\tvalidateSqlStorageConsistency(validated);\n\tconst semanticErrors = validateStorageSemantics(validated.storage);\n\tif (semanticErrors.length > 0) throw new ContractValidationError(`Contract semantic validation failed: ${semanticErrors.join(\"; \")}`, \"storage\");\n\tvalidateModelStorageReferences(validated);\n\tvalidateRelationThroughConsistency(validated);\n\tvalidateToOneRelationNullabilityAgainstStorage(validated);\n\treturn validated;\n}\n/**\n* A same-space to-one relation that states `nullable` must agree with its local FK columns:\n* nullable exactly when one of them is nullable (a column that cannot be resolved counts as\n* nullable). A relation without the flag is left to hydration, which derives it the same way.\n*/\nfunction validateToOneRelationNullabilityAgainstStorage(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) {\n\t\tconst storage = blindCast(model.storage);\n\t\tfor (const [relationName, relation] of Object.entries(model.relations)) {\n\t\t\tif (!(\"on\" in relation && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\") && relation.to.space === void 0) || relation.nullable === void 0) continue;\n\t\t\tconst location = `Relation \"${relationName}\" on model \"${namespaceId}:${modelName}\"`;\n\t\t\tconst { ownsForeignKey, columns } = resolveSqlToOneRelationStorage(contract, storage, relation);\n\t\t\tif (!ownsForeignKey) {\n\t\t\t\tif (relation.nullable) continue;\n\t\t\t\tthrow new ContractValidationError(`${location} is required but does not own the foreign key, so nothing in storage guarantees the related row exists`, \"storage\");\n\t\t\t}\n\t\t\tconst anyNullable = columns.some((column) => column.nullable);\n\t\t\tif (relation.nullable === anyNullable) continue;\n\t\t\tconst columnList = columns.filter((column) => column.nullable !== relation.nullable).map((column) => `\"${column.name}\"`).join(\", \");\n\t\t\tthrow new ContractValidationError(relation.nullable ? `${location} is nullable but every local FK column is NOT NULL (columns ${columnList})` : `${location} is required but a local FK column is nullable (columns ${columnList})`, \"storage\");\n\t\t}\n\t}\n}\n/** Storage column lookup for through-consistency validation. */\nfunction lookupStorageColumn(contract, namespaceId, tableName, columnName) {\n\tconst rawTable = contract.storage.namespaces[namespaceId]?.entries.table?.[tableName];\n\tif (rawTable === void 0) return;\n\treturn blindCast(rawTable).columns[columnName];\n}\n/**\n* Two storage columns share a type when their `dataType` and `typeParams` match. `codecId` and\n* `nullable` are not compared: they do not change the database type that governs a join.\n*/\nfunction sameStorageType(a, b) {\n\treturn a.dataType === b.dataType && canonicalizeJson(a.typeParams ?? {}) === canonicalizeJson(b.typeParams ?? {});\n}\nfunction describeColumnType(column) {\n\treturn column.typeParams === void 0 ? column.dataType : `${column.dataType} ${canonicalizeJson(column.typeParams)}`;\n}\n/**\n* Validates one side of an N:M join: the junction columns and the model\n* columns they pair against positionally must be equal in number, exist in\n* their tables, and share the same storage type (`dataType` + `typeParams`).\n* The junction's storage foreign keys already guarantee this for user-declared\n* FK constraints, but `through` is a logical descriptor never tied to them by\n* the rest of validation — and the TS builder accepts explicit join columns\n* without requiring a junction FK at all — so this checks the columns directly\n* against storage, one path regardless of how the junction was authored.\n*\n* Joined columns must be the *same* storage type, not merely compatible:\n* relying on implicit conversion (e.g. `text`↔`character`) is unsafe on writes\n* — `character(n)` space-padding makes such coercions non-associative — and no\n* ADR sanctions heterogeneous junction columns. Equality is the conservative\n* default; it can be relaxed deliberately if a real use case ever appears.\n*/\nfunction validateThroughJoinSide(input) {\n\tconst fail = (detail) => new ContractValidationError(`Many-to-many relation \"${input.qualifiedName}\" ${detail}`, \"storage\");\n\tif (input.junctionColumns.length !== input.modelColumns.length) throw fail(`pairs ${input.junctionColumnsLabel} (${input.junctionColumns.length}) with ${input.modelColumnsLabel} (${input.modelColumns.length}) of differing length; they join positionally and must match.`);\n\tfor (const [index, junctionColumnName] of input.junctionColumns.entries()) {\n\t\tconst modelColumnRef = input.modelColumns[index];\n\t\tif (modelColumnRef === void 0) continue;\n\t\tconst junctionColumn = lookupStorageColumn(input.contract, input.junctionNamespaceId, input.junctionTable, junctionColumnName);\n\t\tif (junctionColumn === void 0) throw fail(`${input.junctionColumnsLabel} references column \"${junctionColumnName}\" absent from junction table \"${input.junctionNamespaceId}.${input.junctionTable}\".`);\n\t\tconst model = input.model;\n\t\tif (model === void 0) continue;\n\t\tlet modelColumnName = modelColumnRef;\n\t\tif (model.fieldToColumn !== void 0) {\n\t\t\tconst mapped = model.fieldToColumn[modelColumnRef];\n\t\t\tif (mapped === void 0) throw fail(`${input.modelColumnsLabel} references field \"${modelColumnRef}\" absent from model on table \"${model.namespaceId}.${model.table}\".`);\n\t\t\tmodelColumnName = mapped.column;\n\t\t}\n\t\tconst modelColumn = lookupStorageColumn(input.contract, model.namespaceId, model.table, modelColumnName);\n\t\tif (modelColumn === void 0) throw fail(`${input.modelColumnsLabel} references column \"${modelColumnName}\" absent from table \"${model.namespaceId}.${model.table}\".`);\n\t\tif (!sameStorageType(junctionColumn, modelColumn)) throw fail(`joins \"${input.junctionTable}.${junctionColumnName}\" (${describeColumnType(junctionColumn)}) with \"${model.table}.${modelColumnName}\" (${describeColumnType(modelColumn)}) of differing storage type; junction columns must match the type of the column they reference.`);\n\t}\n}\n/**\n* Validates that every N:M relation's `through` descriptor is consistent with\n* the storage columns it joins: both join sides match in column count,\n* reference columns that exist in their tables, and pair columns of the same\n* storage type. Without this, a `through` that disagrees with storage surfaces\n* as a silently wrong JOIN at query time rather than a validation error here.\n*/\nfunction validateRelationThroughConsistency(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) for (const [relationName, relation] of Object.entries(model.relations)) {\n\t\tif (relation.cardinality !== \"N:M\") continue;\n\t\tconst qualifiedName = `${namespaceId}.${modelName}.${relationName}`;\n\t\tconst { on, through } = relation;\n\t\tconst modelStorage = blindCast(model.storage);\n\t\tvalidateThroughJoinSide({\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: on.localFields,\n\t\t\tmodelColumnsLabel: \"on.localFields\",\n\t\t\tmodel: {\n\t\t\t\tnamespaceId,\n\t\t\t\ttable: modelStorage.table,\n\t\t\t\tfieldToColumn: modelStorage.fields\n\t\t\t},\n\t\t\tjunctionColumns: through.parentColumns,\n\t\t\tjunctionColumnsLabel: \"through.parentColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t\tconst targetModel = relation.to.space === void 0 ? contract.domain.namespaces[relation.to.namespace]?.models[relation.to.model] : void 0;\n\t\tconst targetModelSide = targetModel === void 0 ? void 0 : {\n\t\t\tnamespaceId: relation.to.namespace,\n\t\t\ttable: blindCast(targetModel.storage).table\n\t\t};\n\t\tvalidateThroughJoinSide({\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: through.targetColumns,\n\t\t\tmodelColumnsLabel: \"through.targetColumns\",\n\t\t\t...ifDefined(\"model\", targetModelSide),\n\t\t\tjunctionColumns: through.childColumns,\n\t\t\tjunctionColumnsLabel: \"through.childColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t}\n}\n//#endregion\nexport { CheckConstraintSchema, ColumnDefaultFunctionSchema, ColumnDefaultLiteralSchema, ColumnDefaultSchema, ContractEnumSchema, ForeignKeyReferenceSchema, ForeignKeySchema, ForeignKeySourceSchema, IndexSchema, ReferentialActionSchema, StorageTableSchema, StorageValueSetSchema, checkSqlDefaultText, createNamespaceEntrySchema, createSqlContractSchema, createSqlStorageSchema, reservedSqlDefaultText, resolveSqlToOneRelationStorage, validateModel, validateModelStorageReferences, validateSqlContractFully, validateSqlStorageConsistency, validateStorage, validateStorageSemantics, valueObjectStorageTypeMissingMessage };\n\n//# sourceMappingURL=validators.mjs.map"],"mappings":"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"}