@prisma/orm-family-sql 8.0.0-rc.15-dev.2 → 8.0.0-rc.16

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 (75) hide show
  1. package/dist/{authoring-type-constructors-dihiQslc-DqtjQyqj.mjs → authoring-type-constructors-dihiQslc-B5nYi7p2.mjs} +2 -2
  2. package/dist/{authoring-type-constructors-dihiQslc-DqtjQyqj.mjs.map → authoring-type-constructors-dihiQslc-B5nYi7p2.mjs.map} +1 -1
  3. package/dist/{config-types-CPTtyHK8.mjs → config-types-BMRDvgSW.mjs} +2 -2
  4. package/dist/{config-types-CPTtyHK8.mjs.map → config-types-BMRDvgSW.mjs.map} +1 -1
  5. package/dist/{contract-builder-Dy172HD2.mjs → contract-builder-83EIkQrg.mjs} +8 -8
  6. package/dist/{contract-builder-Dy172HD2.mjs.map → contract-builder-83EIkQrg.mjs.map} +1 -1
  7. package/dist/contract-prisma7__provider.mjs +23 -17
  8. package/dist/contract-prisma7__provider.mjs.map +1 -1
  9. package/dist/contract-psl.d.mts +6 -6
  10. package/dist/contract-psl.d.mts.map +1 -1
  11. package/dist/contract-psl.mjs +1 -1
  12. package/dist/contract-psl__attribute-specs.d.mts +2 -3
  13. package/dist/contract-psl__attribute-specs.d.mts.map +1 -1
  14. package/dist/contract-psl__attribute-specs.mjs +1 -1
  15. package/dist/contract-psl__provider.mjs +3 -3
  16. package/dist/contract-psl__provider.mjs.map +1 -1
  17. package/dist/contract-ts.mjs +3 -3
  18. package/dist/contract-ts__config-types.mjs +1 -1
  19. package/dist/contract-ts__contract-builder.mjs +2 -2
  20. package/dist/contract.d.mts +3 -3
  21. package/dist/contract.mjs +3 -3
  22. package/dist/contract__data-type-support.d.mts +2 -2
  23. package/dist/contract__data-type-support.mjs +2 -2
  24. package/dist/contract__validators.d.mts +2 -2
  25. package/dist/contract__validators.mjs +2 -2
  26. package/dist/{control-D18L8cFa.d.mts → control-Bi2JsNep.d.mts} +6 -6
  27. package/dist/control-Bi2JsNep.d.mts.map +1 -0
  28. package/dist/{control-CMe5ABYI.mjs → control-ihau09EM.mjs} +6 -6
  29. package/dist/control-ihau09EM.mjs.map +1 -0
  30. package/dist/{data-type-support-DoxtCfXq.d.mts → data-type-support-4TcZuD7d.d.mts} +6 -6
  31. package/dist/{data-type-support-DoxtCfXq.d.mts.map → data-type-support-4TcZuD7d.d.mts.map} +1 -1
  32. package/dist/{data-type-support-DeL6iJt8.mjs → data-type-support-Bu-VpT7z.mjs} +7 -7
  33. package/dist/data-type-support-Bu-VpT7z.mjs.map +1 -0
  34. package/dist/{derived-checks-DAbro9yn-DtEowq-J.mjs → derived-checks-DAbro9yn-BgBbql-q.mjs} +2 -2
  35. package/dist/{derived-checks-DAbro9yn-DtEowq-J.mjs.map → derived-checks-DAbro9yn-BgBbql-q.mjs.map} +1 -1
  36. package/dist/family.d.mts +6 -6
  37. package/dist/family.mjs +5 -5
  38. package/dist/family__control.d.mts +3 -3
  39. package/dist/family__control.mjs +3 -3
  40. package/dist/family__ir.mjs +1 -1
  41. package/dist/family__pack.mjs +2 -2
  42. package/dist/family__psl-build.d.mts +2 -2
  43. package/dist/family__psl-build.mjs +1 -1
  44. package/dist/family__psl-infer.d.mts +1 -1
  45. package/dist/{interpreter-D50jf6Dd-BW-Bj8Qr.mjs → interpreter-BF5Xrf3W-DK928Clg.mjs} +14 -20
  46. package/dist/interpreter-BF5Xrf3W-DK928Clg.mjs.map +1 -0
  47. package/dist/{psl-build-C1P-sV0c.mjs → psl-build-B_fRV6lN.mjs} +34 -33
  48. package/dist/psl-build-B_fRV6lN.mjs.map +1 -0
  49. package/dist/{psl-build-ClK2AyY1.d.mts → psl-build-C_n5uPZH.d.mts} +2 -2
  50. package/dist/psl-build-C_n5uPZH.d.mts.map +1 -0
  51. package/dist/{psl-column-resolution-BegCa1-t-1XiYCC7t.d.mts → psl-column-resolution-CNtNJ7g7-CR_auHUV.d.mts} +5 -7
  52. package/dist/psl-column-resolution-CNtNJ7g7-CR_auHUV.d.mts.map +1 -0
  53. package/dist/{psl-field-resolution-Bi-CSeoQ-Do_5hZ8Z.mjs → psl-field-resolution-DUCrDnuq-BXwISml1.mjs} +222 -279
  54. package/dist/psl-field-resolution-DUCrDnuq-BXwISml1.mjs.map +1 -0
  55. package/dist/{psl-infer-B91bSSdN.d.mts → psl-infer-Cm7eDSA-.d.mts} +2 -2
  56. package/dist/{psl-infer-B91bSSdN.d.mts.map → psl-infer-Cm7eDSA-.d.mts.map} +1 -1
  57. package/dist/{sql-contract-serializer-DDaAVCQr-h_U10PEJ.mjs → sql-contract-serializer-DDaAVCQr-D40NltYi.mjs} +2 -2
  58. package/dist/{sql-contract-serializer-DDaAVCQr-h_U10PEJ.mjs.map → sql-contract-serializer-DDaAVCQr-D40NltYi.mjs.map} +1 -1
  59. package/dist/{type-map-dnvRKl9o-avUb9OLv.d.mts → type-map-3w0ieDAb-DiMpKEc2.d.mts} +6 -8
  60. package/dist/type-map-3w0ieDAb-DiMpKEc2.d.mts.map +1 -0
  61. package/dist/{validators-BLkHaNpd.d.mts → validators-BAa0JKuB.d.mts} +7 -7
  62. package/dist/{validators-BLkHaNpd.d.mts.map → validators-BAa0JKuB.d.mts.map} +1 -1
  63. package/dist/{validators-BF_JSK38.mjs → validators-Ddcw8nHL.mjs} +9 -9
  64. package/dist/validators-Ddcw8nHL.mjs.map +1 -0
  65. package/package.json +18 -18
  66. package/dist/control-CMe5ABYI.mjs.map +0 -1
  67. package/dist/control-D18L8cFa.d.mts.map +0 -1
  68. package/dist/data-type-support-DeL6iJt8.mjs.map +0 -1
  69. package/dist/interpreter-D50jf6Dd-BW-Bj8Qr.mjs.map +0 -1
  70. package/dist/psl-build-C1P-sV0c.mjs.map +0 -1
  71. package/dist/psl-build-ClK2AyY1.d.mts.map +0 -1
  72. package/dist/psl-column-resolution-BegCa1-t-1XiYCC7t.d.mts.map +0 -1
  73. package/dist/psl-field-resolution-Bi-CSeoQ-Do_5hZ8Z.mjs.map +0 -1
  74. package/dist/type-map-dnvRKl9o-avUb9OLv.d.mts.map +0 -1
  75. package/dist/validators-BF_JSK38.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators-Ddcw8nHL.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-JlqzyFoo.mjs\";\nimport { computeCheckContentHash, computeIndexContentHash } from \"@internal/sql-schema-ir/naming\";\nimport { isPlainRecord } from \"@internal/framework-components/ir\";\nimport { DATA_TYPE_ID_PATTERN } from \"@internal/framework-components/codec\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\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}\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*/\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\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-family-sql",
3
- "version": "8.0.0-rc.15-dev.2",
3
+ "version": "8.0.0-rc.16",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,8 +9,8 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@prisma/orm-framework": "8.0.0-rc.15-dev.2",
13
- "@prisma/orm-toolchain": "8.0.0-rc.15-dev.2",
12
+ "@prisma/orm-framework": "8.0.0-rc.16",
13
+ "@prisma/orm-toolchain": "8.0.0-rc.16",
14
14
  "@standard-schema/spec": "^1.1.0",
15
15
  "arktype": "^2.2.2",
16
16
  "pathe": "^2.0.3",
@@ -19,21 +19,21 @@
19
19
  "ts-toolbelt": "^9.6.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@internal/family-sql": "8.0.0-rc.15-dev.2",
23
- "@internal/sql-builder": "8.0.0-rc.15-dev.2",
24
- "@internal/sql-contract": "8.0.0-rc.15-dev.2",
25
- "@internal/sql-contract-emitter": "8.0.0-rc.15-dev.2",
26
- "@internal/sql-contract-prisma7": "8.0.0-rc.15-dev.2",
27
- "@internal/sql-contract-psl": "8.0.0-rc.15-dev.2",
28
- "@internal/sql-contract-ts": "8.0.0-rc.15-dev.2",
29
- "@internal/sql-errors": "8.0.0-rc.15-dev.2",
30
- "@internal/sql-operations": "8.0.0-rc.15-dev.2",
31
- "@internal/sql-orm-client": "8.0.0-rc.15-dev.2",
32
- "@internal/sql-relational-core": "8.0.0-rc.15-dev.2",
33
- "@internal/sql-runtime": "8.0.0-rc.15-dev.2",
34
- "@internal/sql-schema-ir": "8.0.0-rc.15-dev.2",
35
- "@repo/tsconfig": "8.0.0-rc.15-dev.2",
36
- "@repo/tsdown": "8.0.0-rc.15-dev.2",
22
+ "@internal/family-sql": "8.0.0-rc.16",
23
+ "@internal/sql-builder": "8.0.0-rc.16",
24
+ "@internal/sql-contract": "8.0.0-rc.16",
25
+ "@internal/sql-contract-emitter": "8.0.0-rc.16",
26
+ "@internal/sql-contract-prisma7": "8.0.0-rc.16",
27
+ "@internal/sql-contract-psl": "8.0.0-rc.16",
28
+ "@internal/sql-contract-ts": "8.0.0-rc.16",
29
+ "@internal/sql-errors": "8.0.0-rc.16",
30
+ "@internal/sql-operations": "8.0.0-rc.16",
31
+ "@internal/sql-orm-client": "8.0.0-rc.16",
32
+ "@internal/sql-relational-core": "8.0.0-rc.16",
33
+ "@internal/sql-runtime": "8.0.0-rc.16",
34
+ "@internal/sql-schema-ir": "8.0.0-rc.16",
35
+ "@repo/tsconfig": "8.0.0-rc.16",
36
+ "@repo/tsdown": "8.0.0-rc.16",
37
37
  "tsdown": "0.22.14",
38
38
  "typescript": "5.9.3"
39
39
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-CMe5ABYI.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/control.mjs"],"sourcesContent":["import { i as sqlFamilyPslBlockDescriptors, n as sqlFamilyAuthoringFieldPresets, r as sqlFamilyEntityTypes, t as sqlFamilyAuthoringTypes } from \"./authoring-type-constructors-dihiQslc.mjs\";\nimport { c as extractCodecControlHooks, n as classifyDiffSubjectGranularity, o as verifySqlSchemaByDiff, s as enforceSqlDataTypeInvariants, t as classifyDiffEntityKind } from \"./schema-verify-DIfHSB4I.mjs\";\nimport { t as sqlFamilyError } from \"./errors-B5g0xWro.mjs\";\nimport { t as SqlContractSerializer } from \"./sql-contract-serializer-DDaAVCQr.mjs\";\nimport { t as collectSupportedCodecTypeIds } from \"./verify-BVk5bjdH.mjs\";\nimport { SQL_EXPRESSION_DATA_TYPE_ID, sqlExpressionAuthoringEntry, sqlExpressionDataType } from \"@internal/sql-contract/sql-expression\";\nimport { sqlEmission } from \"@internal/sql-contract-emitter\";\nimport { describeUnsupportedSqlAttribute, sqlAttributeSpecs } from \"@internal/sql-contract-psl/attribute-specs\";\nimport { TEMPORAL_ON_CREATE_ARG, TEMPORAL_ON_UPDATE_ARG, TIMESTAMP_NOW_GENERATOR_ID, collectScalarTypeConstructors, temporalAuthoringPresets, temporalPhaseTemplate } from \"@internal/framework-components/authoring\";\nimport { assembleDataTypes, canonicalFormOf } from \"@internal/framework-components/codec\";\nimport { APP_SPACE_ID, SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions, extractCodecLookup, issueOutcome, sameMarkerHashes } from \"@internal/framework-components/control\";\nimport { UNBOUND_NAMESPACE_ID, isPlainRecord } from \"@internal/framework-components/ir\";\nimport { assertDescriptorSelfConsistency } from \"@internal/migration-tools/spaces\";\nimport { sqlContractCanonicalizationHooks } from \"@internal/sql-contract/canonicalization-hooks\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { dataTypeParams, renderSqlTypeName, sqlDataTypeOfCodec, unquotedSqlBaseName } from \"@internal/sql-contract/data-type\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { ForeignKey, SqlStorage, StorageTable, isMaterializedSqlNamespace, isStorageTypeInstance } from \"@internal/sql-contract/types\";\nimport { checkSqlDefaultBody, valueObjectStorageTypeMissingMessage } from \"@internal/sql-contract/validators\";\nimport { effectiveControlPolicy } from \"@internal/contract/types\";\nimport { isStructuredError, structuredError } from \"@internal/utils/structured-error\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { namingOf } from \"@internal/sql-schema-ir/naming\";\nimport { RelationalSchemaNodeKind, SqlSchemaIR, SqlTableIR } from \"@internal/sql-schema-ir/types\";\n//#region src/core/contract-stack-checks.ts\nfunction tablesOf(storage) {\n\treturn Object.entries(storage.namespaces).flatMap(([namespaceId, namespace]) => Object.entries(namespace.entries[\"table\"] ?? {}).map(([tableName, table]) => ({\n\t\tpath: `storage.namespaces.${namespaceId}.entries.table.${tableName}`,\n\t\tnamespaceId,\n\t\ttableName,\n\t\ttable: blindCast(table)\n\t})));\n}\nfunction dataTypeProblems(storage, codecLookup) {\n\treturn [...tablesOf(storage).flatMap(({ path, table }) => Object.entries(table.columns).map(([columnName, column]) => ({\n\t\tpath: `${path}.columns.${columnName}`,\n\t\tcodecId: column.codecId,\n\t\tdataType: column.dataType\n\t}))), ...Object.entries(storage.types ?? {}).flatMap(([typeName, entry]) => isStorageTypeInstance(entry) ? [{\n\t\tpath: `storage.types.${typeName}`,\n\t\tcodecId: entry.codecId,\n\t\tdataType: entry.dataType\n\t}] : [])].flatMap(({ path, codecId, dataType }) => {\n\t\tconst represented = codecLookup.descriptorFor(codecId)?.dataType;\n\t\tif (represented === void 0 || represented === dataType) return [];\n\t\treturn [`${path}: codec ${codecId} represents ${represented}, not ${dataType}`];\n\t});\n}\nfunction valueObjectProblems(contract, authoring) {\n\tconst storageTypeName = authoring.valueObjectStorageType;\n\tconst expectedCodecId = storageTypeName === void 0 ? void 0 : collectScalarTypeConstructors(authoring.type).get(storageTypeName)?.codecId;\n\tconst tables = new Map(tablesOf(contract.storage).map((entry) => [`${entry.namespaceId}\\0${entry.tableName}`, entry]));\n\treturn Object.values(contract.domain.namespaces).flatMap((namespace) => Object.values(namespace.models).flatMap((model) => {\n\t\tconst storage = blindCast(model.storage);\n\t\tconst table = tables.get(`${storage.namespaceId}\\0${storage.table}`);\n\t\tif (table === void 0) return [];\n\t\treturn Object.entries(model.fields).flatMap(([fieldName, field]) => {\n\t\t\tif (field.type.kind !== \"valueObject\") return [];\n\t\t\tconst columnName = storage.fields[fieldName]?.column;\n\t\t\tconst column = columnName === void 0 ? void 0 : table.table.columns[columnName];\n\t\t\tif (columnName === void 0 || column === void 0) return [];\n\t\t\tconst path = `${table.path}.columns.${columnName}`;\n\t\t\tif (expectedCodecId === void 0) return [valueObjectStorageTypeMissingMessage(path)];\n\t\t\tif (column.codecId === expectedCodecId) return [];\n\t\t\treturn [`${path}: a value-object column uses codec ${expectedCodecId}, the codec of the stack's value-object storage type ${storageTypeName}, not ${column.codecId}`];\n\t\t});\n\t}));\n}\n/**\n* Checks a deserialized contract against the stack that loads it: each column's codec represents the data type the column names, and each value-object column uses the codec of the stack's value-object storage type.\n*/\nfunction assertContractMatchesStack(contract, stack) {\n\tconst problems = [...dataTypeProblems(contract.storage, stack.codecLookup), ...valueObjectProblems(contract, stack.authoringContributions)];\n\tif (problems.length > 0) throw new ContractValidationError(problems.join(\"; \"), \"storage\");\n}\n//#endregion\n//#region src/core/operation-preview.ts\nfunction isDdlStatement(sqlStatement) {\n\tconst trimmed = sqlStatement.trim().toLowerCase();\n\treturn trimmed.startsWith(\"create \") || trimmed.startsWith(\"alter \") || trimmed.startsWith(\"drop \");\n}\nfunction hasExecuteSteps(operation) {\n\tconst execute = Reflect.get(operation, \"execute\");\n\tif (!Array.isArray(execute)) return false;\n\treturn execute.every((step) => typeof step === \"object\" && step !== null && \"sql\" in step);\n}\n/**\n* Extracts a best-effort SQL DDL preview for CLI plan output.\n* Presentation-only: never used to decide migration correctness.\n*/\nfunction extractSqlDdl(operations) {\n\tconst statements = [];\n\tfor (const operation of operations) {\n\t\tif (!hasExecuteSteps(operation)) continue;\n\t\tfor (const step of operation.execute) if (typeof step.sql === \"string\" && isDdlStatement(step.sql)) statements.push(step.sql.trim());\n\t}\n\treturn statements;\n}\n/**\n* Wraps `extractSqlDdl` into the family-agnostic `OperationPreview` shape.\n* Each statement carries `language: 'sql'`.\n*/\nfunction sqlOperationsToPreview(operations) {\n\treturn { statements: extractSqlDdl(operations).map((text) => ({\n\t\ttext,\n\t\tlanguage: \"sql\"\n\t})) };\n}\n//#endregion\n//#region src/core/control-instance.ts\nfunction missingDescriptorOperationError(targetId, operation) {\n\treturn sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `SQL target \"${targetId}\" is missing the required ${operation} descriptor operation`, {\n\t\twhy: `The target descriptor does not contribute the ${operation} operation the SQL family requires for this call.`,\n\t\tfix: `Use a target package whose control descriptor implements ${operation}.`,\n\t\tmeta: {\n\t\t\ttargetId,\n\t\t\toperation\n\t\t}\n\t});\n}\nfunction extractCodecTypeIdsFromContract(contract) {\n\tconst typeIds = /* @__PURE__ */ new Set();\n\tif (typeof contract === \"object\" && contract !== null && \"storage\" in contract && typeof contract.storage === \"object\" && contract.storage !== null && \"namespaces\" in contract.storage && typeof contract.storage.namespaces === \"object\" && contract.storage.namespaces !== null) {\n\t\tconst namespaces = blindCast(contract.storage.namespaces);\n\t\tfor (const ns of Object.values(namespaces)) {\n\t\t\tconst tbls = ns.entries[\"table\"];\n\t\t\tif (typeof tbls !== \"object\" || tbls === null) continue;\n\t\t\tfor (const table of Object.values(tbls)) if (typeof table === \"object\" && table !== null && \"columns\" in table && typeof table.columns === \"object\" && table.columns !== null) {\n\t\t\t\tconst columns = blindCast(table.columns);\n\t\t\t\tfor (const column of Object.values(columns)) if (column && typeof column === \"object\" && \"codecId\" in column && typeof column.codecId === \"string\") typeIds.add(column.codecId);\n\t\t\t}\n\t\t}\n\t}\n\treturn Array.from(typeIds).sort();\n}\nfunction createVerifyResult(options) {\n\tconst contract = { storageHash: options.contractStorageHash };\n\tif (options.contractProfileHash) contract.profileHash = options.contractProfileHash;\n\tconst target = { expected: options.expectedTargetId };\n\tif (options.actualTargetId) target.actual = options.actualTargetId;\n\tconst meta = { contractPath: options.contractPath };\n\tif (options.configPath) meta.configPath = options.configPath;\n\treturn {\n\t\tok: options.ok,\n\t\tsummary: options.summary,\n\t\tcontract,\n\t\ttarget,\n\t\tmeta,\n\t\ttimings: { total: options.totalTime },\n\t\t...ifDefined(\"code\", options.code),\n\t\t...options.marker ? { marker: {\n\t\t\tstorageHash: options.marker.storageHash,\n\t\t\tprofileHash: options.marker.profileHash\n\t\t} } : {},\n\t\t...ifDefined(\"missingCodecs\", options.missingCodecs),\n\t\t...ifDefined(\"codecCoverageSkipped\", options.codecCoverageSkipped)\n\t};\n}\n/**\n* Builds a map from each extension id to the set of extension ids it\n* transitively depends on. Uses the same declared-dependency data that\n* `buildExtensionLoadOrder` in control-stack uses.\n*/\nfunction buildTransitiveDependsOnMap(extensions) {\n\tconst directDeps = /* @__PURE__ */ new Map();\n\tfor (const ext of extensions) {\n\t\tconst packs = ext.contractSpace?.contractJson?.extensions;\n\t\tconst deps = packs !== null && typeof packs === \"object\" ? Object.keys(packs) : [];\n\t\tdirectDeps.set(ext.id, deps);\n\t}\n\tconst result = /* @__PURE__ */ new Map();\n\tconst resolve = (id, visiting) => {\n\t\tconst cached = result.get(id);\n\t\tif (cached !== void 0) return cached;\n\t\tconst set = /* @__PURE__ */ new Set();\n\t\tresult.set(id, set);\n\t\tfor (const depId of directDeps.get(id) ?? []) {\n\t\t\tset.add(depId);\n\t\t\tif (!visiting.has(depId)) {\n\t\t\t\tvisiting.add(depId);\n\t\t\t\tfor (const transitive of resolve(depId, visiting)) set.add(transitive);\n\t\t\t\tvisiting.delete(depId);\n\t\t\t}\n\t\t}\n\t\treturn set;\n\t};\n\tfor (const ext of extensions) resolve(ext.id, /* @__PURE__ */ new Set([ext.id]));\n\treturn result;\n}\n/**\n* Asserts that no cross-space FK in any extension points against the\n* dependency direction.\n*\n* A cross-space FK (target.spaceId present) from extension A pointing at\n* space B is a violation when B depends on A (directly or transitively),\n* because that means A is pointing \"upward\" against the dependency arrows\n* established by the extension load order.\n*\n* Throws with a diagnostic naming the violating extension (source), the\n* target space, and the direction violation.\n*/\nfunction isObjectRecord(v) {\n\treturn typeof v === \"object\" && v !== null;\n}\nfunction assertNoCrossSpaceFkReverseReferences(extensions) {\n\tconst dependsOnMap = buildTransitiveDependsOnMap(extensions);\n\tfor (const ext of extensions) {\n\t\tconst namespaces = ext.contractSpace?.contractJson?.storage?.namespaces;\n\t\tif (!isObjectRecord(namespaces)) continue;\n\t\tfor (const ns of Object.values(namespaces)) {\n\t\t\tif (!isObjectRecord(ns)) continue;\n\t\t\tconst entries = ns[\"entries\"];\n\t\t\tif (!isObjectRecord(entries)) continue;\n\t\t\tfor (const slot of Object.values(entries)) {\n\t\t\t\tif (!isObjectRecord(slot)) continue;\n\t\t\t\tfor (const table of Object.values(slot)) {\n\t\t\t\t\tif (!isObjectRecord(table)) continue;\n\t\t\t\t\tconst foreignKeys = table[\"foreignKeys\"];\n\t\t\t\t\tif (!Array.isArray(foreignKeys)) continue;\n\t\t\t\t\tfor (const fk of foreignKeys) {\n\t\t\t\t\t\tif (!isObjectRecord(fk)) continue;\n\t\t\t\t\t\tconst target = fk[\"target\"];\n\t\t\t\t\t\tif (!isObjectRecord(target)) continue;\n\t\t\t\t\t\tif (target[\"spaceId\"] === void 0) continue;\n\t\t\t\t\t\tconst targetSpaceId = target[\"spaceId\"];\n\t\t\t\t\t\tif (typeof targetSpaceId !== \"string\") continue;\n\t\t\t\t\t\tif (dependsOnMap.get(targetSpaceId)?.has(ext.id)) throw sqlFamilyError(\"CONTRACT.FOREIGN_KEY_INVALID\", `Cross-space FK reverse-reference detected: extension \"${ext.id}\" has a cross-space FK targeting space \"${targetSpaceId}\", but \"${targetSpaceId}\" depends on \"${ext.id}\". Cross-space FKs must follow the dependency direction (a space can only reference spaces it depends on, not spaces that depend on it).`, {\n\t\t\t\t\t\t\twhy: \"The foreign key points against the contract-space dependency direction.\",\n\t\t\t\t\t\t\tfix: \"Move the foreign key to the depending space, or restructure the extension dependencies so the referencing space depends on the referenced one.\",\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\textensionId: ext.id,\n\t\t\t\t\t\t\t\ttargetSpaceId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\nfunction createSqlFamilyInstance(stack) {\n\tenforceSqlDataTypeInvariants(stack.declaredDataTypes, stack.codecDescriptors);\n\tif (!stack.adapter) throw new InternalError(\"SQL family requires an adapter descriptor in ControlStack\");\n\tconst target = blindCast(stack.target);\n\tconst adapter = blindCast(stack.adapter);\n\tconst extensions = blindCast(stack.extensions);\n\tfor (const extension of extensions) if (extension.contractSpace) {\n\t\tconst { contractJson, headRef } = extension.contractSpace;\n\t\tassertDescriptorSelfConsistency({\n\t\t\textensionId: extension.id,\n\t\t\ttarget: contractJson.target,\n\t\t\ttargetFamily: contractJson.targetFamily,\n\t\t\tstorage: contractJson.storage,\n\t\t\theadRefHash: headRef.hash,\n\t\t\t...sqlContractCanonicalizationHooks\n\t\t});\n\t}\n\tassertNoCrossSpaceFkReverseReferences(extensions);\n\tconst { codecTypeImports, extensionIds } = stack;\n\tlet controlAdapter;\n\tconst getControlAdapter = () => controlAdapter ??= adapter.create(stack);\n\tconst targetSerializer = blindCast(target).contractSerializer;\n\tconst targetInferPslContract = blindCast(target).inferPslContract;\n\tconst pslBuildContext = {\n\t\tauthoringContributions: stack.authoringContributions,\n\t\tcodecLookup: stack.codecLookup,\n\t\tdataTypeLookup: stack.dataTypeLookup\n\t};\n\tconst targetBuildPslContract = blindCast(target).buildPslContract;\n\tconst diffSchema = blindCast(target).diffSchema;\n\tconst targetGranularityOf = blindCast(target).classifySubjectGranularity;\n\tconst targetEntityKindOf = blindCast(target).classifyEntityKind;\n\tconst describedContracts = extensions.flatMap((extension) => extension.contractSpace ? [{\n\t\tspaceId: extension.id,\n\t\tcontract: extension.contractSpace.contractJson\n\t}] : []);\n\tconst loadContract = (contractOrJson) => {\n\t\tconst serializer = targetSerializer ?? new SqlContractSerializer();\n\t\tconst json = targetSerializer !== void 0 && !isPlainRecord(contractOrJson) ? targetSerializer.serializeContract(blindCast(contractOrJson)) : contractOrJson;\n\t\tconst contract = serializer.deserializeContract(json);\n\t\tassertContractMatchesStack(contract, stack);\n\t\treturn contract;\n\t};\n\tconst signSpaceMarker = async (controlAdapter, driver, { space, contract, expected }) => {\n\t\tconst storageHash = contract.storage.storageHash;\n\t\tconst profileHash = \"profileHash\" in contract && typeof contract.profileHash === \"string\" ? contract.profileHash : storageHash;\n\t\tconst signed = {\n\t\t\tspace,\n\t\t\tcontract: {\n\t\t\t\tstorageHash,\n\t\t\t\tprofileHash\n\t\t\t}\n\t\t};\n\t\tconst readHashes = async () => {\n\t\t\tconst marker = await controlAdapter.readMarker(driver, space);\n\t\t\treturn marker === null ? null : {\n\t\t\t\tstorageHash: marker.storageHash,\n\t\t\t\tprofileHash: marker.profileHash\n\t\t\t};\n\t\t};\n\t\tconst existing = await readHashes();\n\t\tif (!sameMarkerHashes(existing, expected)) return {\n\t\t\t...signed,\n\t\t\tstatus: \"conflict\",\n\t\t\texpected,\n\t\t\tfound: existing\n\t\t};\n\t\tif (existing === null) {\n\t\t\tawait controlAdapter.insertMarker(driver, space, {\n\t\t\t\tstorageHash,\n\t\t\t\tprofileHash\n\t\t\t});\n\t\t\treturn {\n\t\t\t\t...signed,\n\t\t\t\tstatus: \"created\"\n\t\t\t};\n\t\t}\n\t\tif (existing.storageHash === storageHash && existing.profileHash === profileHash) return {\n\t\t\t...signed,\n\t\t\tstatus: \"unchanged\"\n\t\t};\n\t\tif (!await controlAdapter.updateMarker(driver, space, existing.storageHash, {\n\t\t\tstorageHash,\n\t\t\tprofileHash\n\t\t})) return {\n\t\t\t...signed,\n\t\t\tstatus: \"conflict\",\n\t\t\texpected,\n\t\t\tfound: await readHashes()\n\t\t};\n\t\treturn {\n\t\t\t...signed,\n\t\t\tstatus: \"updated\",\n\t\t\tprevious: existing\n\t\t};\n\t};\n\tconst signSpaces = async (driver, spaces) => {\n\t\tconst [first] = spaces;\n\t\tif (first === void 0) return [];\n\t\tconst controlAdapter = getControlAdapter();\n\t\treturn controlAdapter.withTransaction(driver, async () => {\n\t\t\tawait controlAdapter.lockMarker(driver);\n\t\t\tfor (const query of controlAdapter.bootstrapSignMarkerQueries()) {\n\t\t\t\tconst lowered = await controlAdapter.lowerToExecuteRequest(query, { contract: first.contract });\n\t\t\t\tawait driver.query(lowered.sql, lowered.params);\n\t\t\t}\n\t\t\tconst signatures = [];\n\t\t\tfor (const space of spaces) signatures.push(await signSpaceMarker(controlAdapter, driver, space));\n\t\t\treturn signatures;\n\t\t});\n\t};\n\treturn {\n\t\tfamilyId: \"sql\",\n\t\tcodecTypeImports,\n\t\textensionIds,\n\t\tdeserializeContract(contractJson) {\n\t\t\treturn loadContract(contractJson);\n\t\t},\n\t\tasync verify(verifyOptions) {\n\t\t\tconst { driver, contract: rawContract, expectedTargetId, contractPath, configPath } = verifyOptions;\n\t\t\tconst startTime = Date.now();\n\t\t\tconst contract = loadContract(rawContract);\n\t\t\tconst contractStorageHash = contract.storage.storageHash;\n\t\t\tconst contractProfileHash = contract.profileHash;\n\t\t\tconst contractTarget = contract.target;\n\t\t\tconst marker = await getControlAdapter().readMarker(driver, APP_SPACE_ID);\n\t\t\tlet missingCodecs;\n\t\t\tlet codecCoverageSkipped = false;\n\t\t\tconst supportedTypeIds = collectSupportedCodecTypeIds([\n\t\t\t\tadapter,\n\t\t\t\ttarget,\n\t\t\t\t...extensions\n\t\t\t]);\n\t\t\tif (supportedTypeIds.length === 0) codecCoverageSkipped = true;\n\t\t\telse {\n\t\t\t\tconst supportedSet = new Set(supportedTypeIds);\n\t\t\t\tconst missing = extractCodecTypeIdsFromContract(contract).filter((id) => !supportedSet.has(id));\n\t\t\t\tif (missing.length > 0) missingCodecs = missing;\n\t\t\t}\n\t\t\tif (!marker) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_MARKER_MISSING,\n\t\t\t\tsummary: \"Marker missing\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (contractTarget !== expectedTargetId) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_TARGET_MISMATCH,\n\t\t\t\tsummary: \"Target mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tactualTargetId: contractTarget,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (marker.storageHash !== contractStorageHash) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_HASH_MISMATCH,\n\t\t\t\tsummary: \"Hash mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (contractProfileHash && marker.profileHash !== contractProfileHash) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_HASH_MISMATCH,\n\t\t\t\tsummary: \"Hash mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tcontractProfileHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\treturn createVerifyResult({\n\t\t\t\tok: true,\n\t\t\t\tsummary: \"Database matches contract\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t},\n\t\tverifySchema(options) {\n\t\t\tconst contract = loadContract(options.contract);\n\t\t\tif (!diffSchema) throw missingDescriptorOperationError(target.targetId, \"diffSchema\");\n\t\t\tif (!targetGranularityOf) throw missingDescriptorOperationError(target.targetId, \"classifySubjectGranularity\");\n\t\t\treturn verifySqlSchemaByDiff({\n\t\t\t\tcontract,\n\t\t\t\tschema: options.schema,\n\t\t\t\tstrict: options.strict,\n\t\t\t\tframeworkComponents: options.frameworkComponents,\n\t\t\t\tdiffSchema,\n\t\t\t\tgranularityOf: targetGranularityOf\n\t\t\t});\n\t\t},\n\t\t/**\n\t\t* Classifies a diff issue's subject granularity on demand, by resolving\n\t\t* its node's `nodeKind` through the target's classifier — the\n\t\t* {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}\n\t\t* capability. Framework consumers spanning contract spaces (the\n\t\t* migration aggregate's unclaimed-elements sweep) detect and call this\n\t\t* instead of reaching into the concrete schema-IR node, which they\n\t\t* cannot read; nothing is stamped on the issue or the node.\n\t\t*/\n\t\tclassifySubjectGranularity(issue) {\n\t\t\tif (!targetGranularityOf) throw missingDescriptorOperationError(target.targetId, \"classifySubjectGranularity\");\n\t\t\treturn classifyDiffSubjectGranularity(issue, targetGranularityOf);\n\t\t},\n\t\t/**\n\t\t* Classifies a diff issue's subject storage `entityKind` on demand, by\n\t\t* resolving its node's `nodeKind` through the target's classifier —\n\t\t* the sibling of `classifySubjectGranularity` above, and part of the\n\t\t* same {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}\n\t\t* capability.\n\t\t*/\n\t\tclassifyEntityKind(issue) {\n\t\t\tif (!targetEntityKindOf) throw missingDescriptorOperationError(target.targetId, \"classifyEntityKind\");\n\t\t\treturn classifyDiffEntityKind(issue, targetEntityKindOf);\n\t\t},\n\t\tasync signSpaces(options) {\n\t\t\treturn signSpaces(options.driver, options.spaces);\n\t\t},\n\t\tasync readMarker(options) {\n\t\t\treturn getControlAdapter().readMarker(options.driver, options.space);\n\t\t},\n\t\tasync readAllMarkers(options) {\n\t\t\treturn getControlAdapter().readAllMarkers(options.driver);\n\t\t},\n\t\tasync readLedger(options) {\n\t\t\treturn getControlAdapter().readLedger(options.driver, options.space);\n\t\t},\n\t\tasync initMarker(options) {\n\t\t\treturn getControlAdapter().initMarker(options.driver, options.space, options.destination);\n\t\t},\n\t\tasync updateMarker(options) {\n\t\t\treturn getControlAdapter().updateMarker(options.driver, options.space, options.expectedFrom, options.destination);\n\t\t},\n\t\tasync writeLedgerEntry(options) {\n\t\t\treturn getControlAdapter().writeLedgerEntry(options.driver, options.space, options.entry);\n\t\t},\n\t\tasync introspect(options) {\n\t\t\treturn getControlAdapter().introspect(options.driver, options.contract);\n\t\t},\n\t\tinferPslContract(schemaIR) {\n\t\t\tif (!targetInferPslContract) throw sqlFamilyError(\"CONTRACT.INFER_UNSUPPORTED\", `Target \"${target.targetId}\" does not support contract infer (no inferPslContract on its descriptor).`, {\n\t\t\t\twhy: \"The target descriptor does not provide the inferPslContract hook, so a PSL contract cannot be inferred from the database schema.\",\n\t\t\t\tfix: \"Use a target package that supports contract infer, or author the contract instead of inferring it.\",\n\t\t\t\tmeta: { targetId: target.targetId }\n\t\t\t});\n\t\t\treturn targetInferPslContract(schemaIR, pslBuildContext, describedContracts);\n\t\t},\n\t\tbuildPslContract(contract) {\n\t\t\tif (!targetBuildPslContract) throw sqlFamilyError(\"CONTRACT.PRINT_UNSUPPORTED\", `Target \"${target.targetId}\" does not support contract print (no buildPslContract on its descriptor).`, {\n\t\t\t\twhy: \"The target descriptor does not provide the buildPslContract hook, so the contract cannot be printed as a Prisma 8 PSL file.\",\n\t\t\t\tfix: \"Use a target whose descriptor provides buildPslContract, or write the Prisma 8 PSL file by hand.\",\n\t\t\t\tmeta: { targetId: target.targetId }\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdocument: targetBuildPslContract(contract, pslBuildContext),\n\t\t\t\tsourceSettings: ifDefined(\"defaultControlPolicy\", contract.defaultControlPolicy)\n\t\t\t};\n\t\t},\n\t\tlowerAst(ast, context) {\n\t\t\treturn getControlAdapter().lowerToExecuteRequest(ast, context);\n\t\t},\n\t\tbootstrapControlTableQueries() {\n\t\t\treturn getControlAdapter().bootstrapControlTableQueries();\n\t\t},\n\t\ttoOperationPreview(operations) {\n\t\t\treturn sqlOperationsToPreview(operations);\n\t\t},\n\t\ttoSchemaView(schema) {\n\t\t\tconst root = blindCast(schema);\n\t\t\tconst namespaceEntries = root.namespaces !== void 0 ? Object.entries(root.namespaces).map(([namespaceKey, namespace]) => [namespaceKey, namespace.tables]) : [[void 0, root.tables ?? {}]];\n\t\t\tconst qualify = namespaceEntries.length > 1;\n\t\t\tconst tableNodes = namespaceEntries.flatMap(([namespaceKey, tables]) => Object.entries(tables).map(([tableName, table]) => [\n\t\t\t\tqualify && namespaceKey !== void 0 ? `${namespaceKey}.${tableName}` : tableName,\n\t\t\t\ttableName,\n\t\t\t\ttable\n\t\t\t])).map(([displayName, tableName, table]) => {\n\t\t\t\tconst children = [];\n\t\t\t\tconst columnNodes = [];\n\t\t\t\tfor (const [columnName, column] of Object.entries(table.columns)) {\n\t\t\t\t\tconst label = `${columnName}: ${column.nativeType} (${column.nullable ? \"nullable\" : \"not nullable\"})`;\n\t\t\t\t\tcolumnNodes.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"field\",\n\t\t\t\t\t\tid: `column-${displayName}-${columnName}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tnativeType: column.nativeType,\n\t\t\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\t\t\t...ifDefined(\"default\", column.default)\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tif (columnNodes.length > 0) children.push(new SchemaTreeNode({\n\t\t\t\t\tkind: \"collection\",\n\t\t\t\t\tid: `columns-${displayName}`,\n\t\t\t\t\tlabel: \"columns\",\n\t\t\t\t\tchildren: columnNodes\n\t\t\t\t}));\n\t\t\t\tif (table.primaryKey) {\n\t\t\t\t\tconst pkColumns = table.primaryKey.columns.join(\", \");\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `primary-key-${displayName}`,\n\t\t\t\t\t\tlabel: `primary key: ${pkColumns}`,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: table.primaryKey.columns,\n\t\t\t\t\t\t\t...table.primaryKey.name ? { name: table.primaryKey.name } : {}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tfor (const unique of table.uniques) {\n\t\t\t\t\tconst name = unique.name ?? `${tableName}_${unique.columns.join(\"_\")}_unique`;\n\t\t\t\t\tconst label = `unique ${name}`;\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `unique-${displayName}-${name}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: unique.columns,\n\t\t\t\t\t\t\tunique: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tfor (const index of table.indexes) {\n\t\t\t\t\tconst name = index.name;\n\t\t\t\t\tconst label = index.unique ? `unique index ${name}` : `index ${name}`;\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `index-${displayName}-${name}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: index.columns,\n\t\t\t\t\t\t\tunique: index.unique\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tconst tableMeta = {};\n\t\t\t\tif (table.primaryKey) {\n\t\t\t\t\ttableMeta[\"primaryKey\"] = table.primaryKey.columns;\n\t\t\t\t\tif (table.primaryKey.name) tableMeta[\"primaryKeyName\"] = table.primaryKey.name;\n\t\t\t\t}\n\t\t\t\tif (table.foreignKeys.length > 0) tableMeta[\"foreignKeys\"] = table.foreignKeys.map((fk) => ({\n\t\t\t\t\tcolumns: fk.columns,\n\t\t\t\t\treferencedTable: fk.referencedTable,\n\t\t\t\t\treferencedColumns: fk.referencedColumns,\n\t\t\t\t\t...fk.name ? { name: fk.name } : {}\n\t\t\t\t}));\n\t\t\t\treturn new SchemaTreeNode({\n\t\t\t\t\tkind: \"entity\",\n\t\t\t\t\tid: `table-${displayName}`,\n\t\t\t\t\tlabel: `table ${displayName}`,\n\t\t\t\t\t...Object.keys(tableMeta).length > 0 ? { meta: tableMeta } : {},\n\t\t\t\t\t...children.length > 0 ? { children } : {}\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn { root: new SchemaTreeNode({\n\t\t\t\tkind: \"root\",\n\t\t\t\tid: \"sql-schema\",\n\t\t\t\tlabel: \"database\",\n\t\t\t\t...tableNodes.length > 0 ? { children: tableNodes } : {}\n\t\t\t}) };\n\t\t}\n\t};\n}\n//#endregion\n//#region src/core/control-descriptor.ts\nconst sqlFamilyDescribeUnsupportedAttribute = describeUnsupportedSqlAttribute;\nvar SqlFamilyDescriptor = class {\n\tkind = \"family\";\n\tid = \"sql\";\n\tfamilyId = \"sql\";\n\tversion = \"0.0.1\";\n\temission = sqlEmission;\n\tdataTypes = [sqlExpressionDataType];\n\tauthoring = {\n\t\tfield: sqlFamilyAuthoringFieldPresets,\n\t\ttype: sqlFamilyAuthoringTypes,\n\t\tentityTypes: sqlFamilyEntityTypes,\n\t\tpslBlockDescriptors: sqlFamilyPslBlockDescriptors,\n\t\tattributeSpecs: sqlAttributeSpecs,\n\t\tdataTypes: { [SQL_EXPRESSION_DATA_TYPE_ID]: sqlExpressionAuthoringEntry }\n\t};\n\tpslDiagnostics = { describeUnsupportedAttribute: sqlFamilyDescribeUnsupportedAttribute };\n\tcreate(stack) {\n\t\treturn createSqlFamilyInstance(stack);\n\t}\n};\n//#endregion\n//#region src/core/migrations/apply-table-rename.ts\nconst TABLE_RENAME_UNMATCHED_CODE = \"MIGRATION.TABLE_RENAME_UNMATCHED\";\nfunction tableLabel(namespaceId, tableName) {\n\treturn namespaceId === void 0 || namespaceId === UNBOUND_NAMESPACE_ID ? tableName : `${namespaceId}.${tableName}`;\n}\nfunction namespacesDeclaring(contract, tableName) {\n\treturn Object.values(contract.storage.namespaces).filter((namespace) => Object.hasOwn(namespace.entries.table ?? {}, tableName)).map((namespace) => namespace.id);\n}\nfunction declares(contract, namespaceId, tableName) {\n\treturn Object.hasOwn(contract.storage.namespaces[namespaceId]?.entries.table ?? {}, tableName);\n}\nfunction unmatched(rename, reason) {\n\treturn sqlFamilyError(TABLE_RENAME_UNMATCHED_CODE, `renameTable \"${tableLabel(rename.namespaceId, rename.from)}\" to \"${rename.to}\" does not match the migration's contracts: ${reason}.`, {\n\t\twhy: \"renameTable must name a table of the migration's start contract and a new name that the end contract has and the start contract does not. Make the rename its own schema change, so the migration's start contract is the schema before the rename and its end contract the schema after it, and check the spelling and the namespace.\",\n\t\tmeta: {\n\t\t\tfrom: rename.from,\n\t\t\tto: rename.to\n\t\t}\n\t});\n}\nfunction resolveTableRename(rename, startContract, endContract) {\n\tconst namespaceIds = rename.namespaceId === void 0 ? namespacesDeclaring(startContract, rename.from) : declares(startContract, rename.namespaceId, rename.from) ? [rename.namespaceId] : [];\n\tconst [namespaceId, ...others] = namespaceIds;\n\tif (namespaceId === void 0) return notOk(unmatched(rename, `table \"${tableLabel(rename.namespaceId, rename.from)}\" does not exist in the start contract`));\n\tif (others.length > 0) return notOk(unmatched(rename, `table \"${rename.from}\" is declared in more than one namespace (${namespaceIds.join(\", \")}); name its namespace`));\n\tif (declares(startContract, namespaceId, rename.to)) return notOk(unmatched(rename, `table \"${tableLabel(namespaceId, rename.to)}\" already exists in the start contract`));\n\tif (!declares(endContract, namespaceId, rename.to)) return notOk(unmatched(rename, `table \"${tableLabel(namespaceId, rename.to)}\" does not exist in the end contract`));\n\treturn ok({\n\t\tnamespaceId,\n\t\tfrom: rename.from,\n\t\tto: rename.to\n\t});\n}\nfunction renamedReference(reference, rename) {\n\tif (!(reference.spaceId === void 0) || reference.namespaceId !== rename.namespaceId || reference.tableName !== rename.from) return reference;\n\treturn {\n\t\t...reference,\n\t\ttableName: rename.to\n\t};\n}\nfunction renameForeignKeys(table, rename) {\n\tif (!table.foreignKeys.some((fk) => renamedReference(fk.source, rename) !== fk.source || renamedReference(fk.target, rename) !== fk.target)) return table;\n\treturn new StorageTable({\n\t\t...table,\n\t\tforeignKeys: table.foreignKeys.map((fk) => new ForeignKey({\n\t\t\t...fk,\n\t\t\tsource: renamedReference(fk.source, rename),\n\t\t\ttarget: renamedReference(fk.target, rename)\n\t\t}))\n\t});\n}\n/**\n* The same namespace instance with only `entries` replaced: every own\n* property, including the non-enumerable `kind`, is carried over onto the\n* same prototype, so the target's namespace class (its `qualifyTable`,\n* `ddlSchemaName`, entity getters) keeps working on the copy. This is the\n* one place a frozen contract node is rebuilt without its constructor: the\n* constructors re-hydrate `entries` from raw input, which the already\n* hydrated entities here do not need.\n*/\nfunction withEntries(namespace, entries) {\n\tconst copy = Object.create(Object.getPrototypeOf(namespace), {\n\t\t...Object.getOwnPropertyDescriptors(namespace),\n\t\tentries: {\n\t\t\tvalue: Object.freeze(entries),\n\t\t\tenumerable: true,\n\t\t\twritable: false,\n\t\t\tconfigurable: false\n\t\t}\n\t});\n\treturn Object.freeze(copy);\n}\nfunction renameTableInNamespace(namespace, rename, renameTableReferences) {\n\tconst ownsTable = rename.namespaceId === namespace.id;\n\tconst tables = Object.entries(namespace.entries.table ?? {}).map(([name, table]) => [ownsTable && name === rename.from ? rename.to : name, renameForeignKeys(table, rename)]);\n\tif (tables.every(([name, table]) => namespace.entries.table?.[name] === table)) return namespace;\n\tif (!isMaterializedSqlNamespace(namespace)) throw new InternalError(`applyTableRename: namespace \"${namespace.id}\" is not a materialized SQL namespace`);\n\tconst renamedTables = {\n\t\t...namespace.entries,\n\t\ttable: Object.fromEntries(tables)\n\t};\n\treturn withEntries(namespace, renameTableReferences === void 0 || !ownsTable ? renamedTables : renameTableReferences(renamedTables, rename));\n}\nfunction renameTableInContract(contract, rename, renameTableReferences) {\n\tconst namespaces = Object.fromEntries(Object.entries(contract.storage.namespaces).map(([id, namespace]) => [id, renameTableInNamespace(namespace, rename, renameTableReferences)]));\n\tconst materialized = {};\n\tfor (const [id, namespace] of Object.entries(namespaces)) {\n\t\tif (!isMaterializedSqlNamespace(namespace)) throw new InternalError(`applyTableRename: namespace \"${id}\" is not a materialized SQL namespace`);\n\t\tmaterialized[id] = namespace;\n\t}\n\treturn {\n\t\t...contract,\n\t\tstorage: new SqlStorage({\n\t\t\tstorageHash: contract.storage.storageHash,\n\t\t\t...contract.storage.types === void 0 ? {} : { types: contract.storage.types },\n\t\t\tnamespaces: materialized\n\t\t})\n\t};\n}\n/**\n* Resolves the table a migration renames against its start and end contracts and returns the start contract with that table under its new name, so a diff against the end contract sees the table under one name. The table must exist in the start contract (in exactly one namespace when the namespace is not given), and the new name must exist in the end contract and not in the start contract; otherwise the rename is refused with `MIGRATION.TABLE_RENAME_UNMATCHED`.\n*\n* Foreign keys that name the renamed table on either side are retargeted. Index, unique, check and primary-key names are carried unchanged. Target entity kinds that name the table are renamed by the target's `renameTableReferences`.\n*/\nfunction applyTableRename(input) {\n\tif (input.startContract === null) return notOk(unmatched(input.rename, \"the migration has no start contract\"));\n\tconst resolved = resolveTableRename(input.rename, input.startContract, input.endContract);\n\tif (!resolved.ok) return resolved;\n\treturn ok({\n\t\tcontract: renameTableInContract(input.startContract, resolved.value, input.renameTableReferences),\n\t\trename: resolved.value\n\t});\n}\n//#endregion\n//#region src/core/migrations/contract-to-schema-ir.ts\nfunction convertColumn(name, column, storageTypes, types, renderDefault, resolveDefault) {\n\tconst resolved = resolveColumnTypeMetadata(column, storageTypes);\n\tconst dataType = sqlDataTypeOfCodec(resolved.codecId, types);\n\tconst codec = types.codecLookup.descriptorFor(resolved.codecId);\n\tconst baseTypeName = unquotedSqlBaseName(dataType, dataTypeParams(dataType, resolved.typeParams));\n\tconst baseNativeType = schemaTypeText(dataType, resolved.typeParams);\n\tconst nativeType = baseNativeType;\n\tconst many = column.many !== void 0 && column.many !== false;\n\tconst resolvedNativeType = many ? `${baseNativeType}[]` : baseNativeType;\n\tconst rawColumnDefault = column.default ?? void 0;\n\tconst resolvedColumnDefault = rawColumnDefault !== void 0 && resolveDefault ? resolveDefault(rawColumnDefault, resolvedNativeType) : rawColumnDefault;\n\treturn {\n\t\tname,\n\t\tnativeType,\n\t\tnullable: column.nullable,\n\t\t...ifDefined(\"many\", many ? true : void 0),\n\t\t...ifDefined(\"default\", column.default != null && renderDefault ? renderDefault(column.default, column, {\n\t\t\tdataType: dataType.id,\n\t\t\tbaseTypeName\n\t\t}) : void 0),\n\t\tresolvedNativeType,\n\t\t...ifDefined(\"resolvedDefault\", resolvedColumnDefault),\n\t\t...ifDefined(\"authoredDefault\", rawColumnDefault),\n\t\tcodecRef: buildColumnCodecRef(resolved, many ? true : void 0),\n\t\tcodecBaseNativeType: baseTypeName,\n\t\tdataType,\n\t\t...ifDefined(\"toCanonicalForm\", codec && canonicalFormOf(codec, types.dataTypeLookup))\n\t};\n}\n/**\n* The column's type as the database reports it: the written name with its normal-form parameters (`character(1)` for a bare `character`), or for a\n* type that claims a kind (an enum), its type name as stored.\n*/\nfunction schemaTypeText(type, typeParams) {\n\tconst params = dataTypeParams(type, typeParams);\n\treturn type.sql.claimsKind === void 0 ? renderSqlTypeName(type, type.sql.normalize(params)) : unquotedSqlBaseName(type, params);\n}\n/**\n* Builds the column's `CodecRef` from its resolved (post-`typeRef`) codec\n* identity — the same construction the query AST and the migration DDL\n* renderer already use (TML-2456, TML-2918).\n*/\nfunction buildColumnCodecRef(resolved, many) {\n\treturn {\n\t\tcodecId: resolved.codecId,\n\t\t...ifDefined(\"typeParams\", resolved.typeParams !== void 0 ? blindCast(resolved.typeParams) : void 0),\n\t\t...ifDefined(\"many\", many)\n\t};\n}\nfunction resolveColumnTypeMetadata(column, storageTypes) {\n\tif (!column.typeRef) return column;\n\tconst referenced = storageTypes[column.typeRef];\n\tif (!referenced) throw sqlFamilyError(\"CONTRACT.TYPE_UNKNOWN\", `Column references storage type \"${column.typeRef}\" but it is not defined in storage.types.`, {\n\t\twhy: \"The column typeRef does not resolve to any entry in the contract storage.types map.\",\n\t\tfix: \"Regenerate the contract from its authoring source; do not hand-edit contract JSON.\",\n\t\tmeta: { typeRef: column.typeRef }\n\t});\n\tif (isStorageTypeInstance(referenced)) return {\n\t\tcodecId: referenced.codecId,\n\t\ttypeParams: referenced.typeParams\n\t};\n\tthrow new InternalError(`Storage type \"${column.typeRef}\" has an unknown polymorphic kind; expected a codec-typed StorageTypeInstance.`);\n}\nfunction convertCheck(check, tableName, tableColumns) {\n\treturn {\n\t\tnaming: namingOf(check.name, check.prefix),\n\t\texpression: check.expression,\n\t\tdependsOn: flatColumnDependsOn(tableName, tableColumns)\n\t};\n}\nfunction convertUnique(unique, tableName) {\n\treturn {\n\t\tcolumns: unique.columns,\n\t\t...ifDefined(\"name\", unique.name),\n\t\tdependsOn: flatColumnDependsOn(tableName, unique.columns)\n\t};\n}\nfunction convertIndex(index, tableName, tableColumns) {\n\tconst base = {\n\t\tnaming: namingOf(index.name, index.prefix),\n\t\twhere: index.where,\n\t\tunique: index.unique,\n\t\tpartial: index.where !== void 0,\n\t\ttype: index.type,\n\t\toptions: index.options,\n\t\tannotations: void 0,\n\t\tdependsOn: flatColumnDependsOn(tableName, index.columns ?? tableColumns)\n\t};\n\treturn index.expression !== void 0 ? {\n\t\t...base,\n\t\texpression: index.expression\n\t} : {\n\t\t...base,\n\t\tcolumns: index.columns ?? []\n\t};\n}\n/**\n* The referenced table's chain in the flat (single-schema) tree\n* `contractToSchemaIR`/`contractNamespaceToSchemaIR` build: the root\n* (`SqlSchemaIR`, fixed `'database'` id) followed by the table's own id.\n* Postgres discards this when it re-derives the FK against its own\n* multi-schema tree shape (`contractToPostgresDatabaseSchemaNode`); SQLite's\n* flat tree uses it as-is.\n*/\nfunction flatSchemaDependsOn(tableName) {\n\treturn [{\n\t\tnodeKind: RelationalSchemaNodeKind.schema,\n\t\tid: \"database\"\n\t}, {\n\t\tnodeKind: RelationalSchemaNodeKind.table,\n\t\tid: tableName\n\t}];\n}\n/**\n* The chains from a table-child object (foreign key, index, unique, primary\n* key) to each of the own columns it is built on, in the flat tree. Dropping\n* a covered column auto-drops the object, so the object's drop must precede\n* the column's; the graph derives that direction from these edges.\n*/\nfunction flatColumnDependsOn(tableName, columns) {\n\treturn columns.map((column) => [\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.schema,\n\t\t\tid: \"database\"\n\t\t},\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.table,\n\t\t\tid: tableName\n\t\t},\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.column,\n\t\t\tid: `column:${column}`\n\t\t}\n\t]);\n}\n/**\n* The FK's referenced-namespace identity comes from the target's namespace\n* node, not the raw namespace-id string. An unbound target namespace stamps\n* no `referencedSchema` at all — the FK node's id renders the absence as the\n* empty segment, which is what flat (single-schema) introspection produces,\n* so both diff sides' FK ids meet by construction. A bound namespace (or a\n* cross-space target whose namespace lives in another contract's storage)\n* stamps its coordinate verbatim; namespaced targets (Postgres) resolve the\n* real DDL schema downstream.\n*\n* `dependsOn` carries the referenced table (created before the FK, dropped\n* after it) plus the FK's own columns (dropped after the FK, since dropping a\n* column auto-drops the FK built on it).\n*/\nfunction convertForeignKey(fk, storage) {\n\tconst targetIsUnbound = storage.namespaces[fk.target.namespaceId]?.isUnbound === true;\n\treturn {\n\t\tcolumns: fk.source.columns,\n\t\treferencedTable: fk.target.tableName,\n\t\t...targetIsUnbound ? {} : { referencedSchema: fk.target.namespaceId },\n\t\treferencedColumns: fk.target.columns,\n\t\t...ifDefined(\"name\", fk.name),\n\t\t...ifDefined(\"onDelete\", fk.onDelete),\n\t\t...ifDefined(\"onUpdate\", fk.onUpdate),\n\t\tdependsOn: [flatSchemaDependsOn(fk.target.tableName), ...flatColumnDependsOn(fk.source.tableName, fk.source.columns)]\n\t};\n}\nconst COLUMN_TYPE_ERROR_CODES = /* @__PURE__ */ new Set([\"CONTRACT.CODEC_DESCRIPTOR_MISSING\", \"CONTRACT.DATA_TYPE_UNREGISTERED\"]);\nfunction withColumnInErrors(table, column, build) {\n\ttry {\n\t\treturn build();\n\t} catch (cause) {\n\t\tif (!isStructuredError(cause) || !COLUMN_TYPE_ERROR_CODES.has(cause.code)) throw cause;\n\t\tthrow structuredError(cause.code, cause.message, {\n\t\t\tcause,\n\t\t\t...ifDefined(\"why\", cause.why),\n\t\t\t...ifDefined(\"fix\", cause.fix),\n\t\t\tmeta: {\n\t\t\t\t...cause.meta,\n\t\t\t\ttable,\n\t\t\t\tcolumn\n\t\t\t}\n\t\t});\n\t}\n}\nfunction convertTable(name, table, storageTypes, types, renderDefault, resolveDefault, storage) {\n\tconst columns = {};\n\tfor (const [colName, colDef] of Object.entries(table.columns)) columns[colName] = withColumnInErrors(name, colName, () => convertColumn(colName, colDef, storageTypes, types, renderDefault, resolveDefault));\n\tconst checks = table.checks && table.checks.length > 0 ? table.checks.map((c) => convertCheck(c, name, Object.keys(table.columns))) : void 0;\n\treturn new SqlTableIR({\n\t\tname,\n\t\tcolumns,\n\t\t...ifDefined(\"primaryKey\", table.primaryKey !== void 0 ? {\n\t\t\tcolumns: table.primaryKey.columns,\n\t\t\t...ifDefined(\"name\", table.primaryKey.name),\n\t\t\tdependsOn: flatColumnDependsOn(name, table.primaryKey.columns)\n\t\t} : void 0),\n\t\tforeignKeys: table.foreignKeys.map((fk) => convertForeignKey(fk, storage)),\n\t\tuniques: table.uniques.map((u) => convertUnique(u, name)),\n\t\tindexes: table.indexes.map((i) => convertIndex(i, name, Object.keys(table.columns))),\n\t\t...ifDefined(\"checks\", checks)\n\t});\n}\n/**\n* Detects destructive changes between two contract storages.\n*\n* The additive-only planner silently ignores removals (tables, columns).\n* This function detects those removals so callers can report them as conflicts\n* rather than silently producing an empty plan.\n*\n* Returns an empty array if no destructive changes are found.\n*/\nfunction detectDestructiveChanges(from, to) {\n\tif (!from) return [];\n\tconst hasOwn = (value, key) => Object.hasOwn(value, key);\n\tconst conflicts = [];\n\tconst namespaceIds = [.../* @__PURE__ */ new Set([...Object.keys(from.namespaces), ...Object.keys(to.namespaces)])].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\tfor (const namespaceId of namespaceIds) {\n\t\tconst fromNs = from.namespaces[namespaceId];\n\t\tconst toNs = to.namespaces[namespaceId];\n\t\tconst fromTables = fromNs?.entries.table;\n\t\tif (!fromTables) continue;\n\t\tfor (const tableName of Object.keys(fromTables)) {\n\t\t\tconst toTableRaw = toNs?.entries.table?.[tableName];\n\t\t\tif (!StorageTable.is(toTableRaw)) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tkind: \"tableRemoved\",\n\t\t\t\t\tsummary: `Table \"${tableName}\" was removed`\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst toTable = toTableRaw;\n\t\t\tconst fromTableRaw = fromTables[tableName];\n\t\t\tif (!StorageTable.is(fromTableRaw)) continue;\n\t\t\tconst fromTable = fromTableRaw;\n\t\t\tfor (const columnName of Object.keys(fromTable.columns)) if (!hasOwn(toTable.columns, columnName)) conflicts.push({\n\t\t\t\tkind: \"columnRemoved\",\n\t\t\t\tsummary: `Column \"${tableName}\".\"${columnName}\" was removed`\n\t\t\t});\n\t\t}\n\t}\n\treturn conflicts;\n}\n/**\n* Converts the tables of a single namespace into a `SqlSchemaIR`, keyed by\n* table name within that namespace. Unlike {@link contractToSchemaIR}, which\n* flattens every namespace's tables into one bare-keyed record (and throws on a\n* cross-namespace name collision), this scopes the table iteration to one\n* namespace so the same table name can exist in two schemas.\n*\n* The full `storage` is still passed to `convertTable`, so value-set / enum /\n* type resolution that legitimately spans namespaces is unaffected. Foreign\n* keys are built purely from the FK descriptor (`fk.target`), so cross-namespace\n* FKs survive per-namespace conversion. The `annotations` block (storage-type\n* derived) is omitted here — the per-namespace tree consumer reads only the\n* per-table fields.\n*/\nfunction contractNamespaceToSchemaIR(storage, namespaceId, options) {\n\tif (options.annotationNamespace.length === 0) throw sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", \"annotationNamespace must be a non-empty string\", {\n\t\twhy: \"The calling target pack passed an empty annotationNamespace to the contract-to-schema-IR projection.\",\n\t\tfix: \"Fix the target pack to pass its non-empty annotation namespace (e.g. \\\"pg\\\").\",\n\t\tmeta: { option: \"annotationNamespace\" }\n\t});\n\tconst namespace = storage.namespaces[namespaceId];\n\tif (!namespace) return new SqlSchemaIR({ tables: {} });\n\tconst storageTypes = { ...storage.types ?? {} };\n\tconst tables = {};\n\tfor (const [tableName, tableDefRaw] of Object.entries(namespace.entries.table ?? {})) {\n\t\tStorageTable.assert(tableDefRaw, `namespaces.${namespaceId}.entries.table.${tableName}`);\n\t\ttables[tableName] = convertTable(tableName, tableDefRaw, storageTypes, options, options.renderDefault, options.resolveDefault, storage);\n\t}\n\treturn new SqlSchemaIR({ tables });\n}\n/**\n* Converts a `Contract` to `SqlSchemaIR`.\n*\n* Reads `contract.storage` for tables, and `contract.storage.types` for the\n* types `typeRef` columns name.\n*\n* Drops codec metadata (`codecId`, `typeRef`) since the schema IR only represents\n* structural information. Each column's type is written from the data type its codec\n* represents, with its parameters (e.g. `character` + `{ length: 36 }` → `character(36)`),\n* so the resulting IR compares correctly against the \"to\" contract during planning.\n*\n* Returns an empty schema IR when `contract` is `null` (new project).\n*/\nfunction contractToSchemaIR(contract, options) {\n\tif (options.annotationNamespace.length === 0) throw sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", \"annotationNamespace must be a non-empty string\", {\n\t\twhy: \"The calling target pack passed an empty annotationNamespace to the contract-to-schema-IR projection.\",\n\t\tfix: \"Fix the target pack to pass its non-empty annotation namespace (e.g. \\\"pg\\\").\",\n\t\tmeta: { option: \"annotationNamespace\" }\n\t});\n\tif (!contract) return new SqlSchemaIR({ tables: {} });\n\tconst storage = contract.storage;\n\tconst storageTypes = { ...storage.types ?? {} };\n\tconst tables = {};\n\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, tableDefRaw] of Object.entries(ns.entries.table ?? {})) {\n\t\tStorageTable.assert(tableDefRaw, `namespaces.${ns.id}.entries.table.${tableName}`);\n\t\tconst tableDef = tableDefRaw;\n\t\tif (tables[tableName] !== void 0) throw sqlFamilyError(\"CONTRACT.TABLE_AMBIGUOUS\", `contractToSchemaIR: duplicate SQL table name \"${tableName}\" across namespaces (ambiguous for flat SqlSchemaIR.tables).`, {\n\t\t\twhy: \"Two namespaces declare a table with the same name, which is ambiguous for the flat schema-IR table map.\",\n\t\t\tfix: \"Rename one of the tables so every table name is unique across namespaces.\",\n\t\t\tmeta: { table: tableName }\n\t\t});\n\t\ttables[tableName] = convertTable(tableName, tableDef, storageTypes, options, options.renderDefault, options.resolveDefault, storage);\n\t}\n\treturn new SqlSchemaIR({ tables });\n}\n//#endregion\n//#region src/core/migrations/control-policy.ts\n/**\n* The control policy that governs a single call. The `external` default is an\n* un-overridable namespace floor: when the contract default is `external`, no\n* per-object `managed` override can escalate DDL above the floor, so the\n* policy is forced to `external` regardless of the node's own declaration.\n* Every other default defers to the node's effective control policy.\n*/\nfunction controlPolicyForCall(subject, defaultControlPolicy) {\n\tif (defaultControlPolicy === \"external\") return \"external\";\n\treturn effectiveControlPolicy(subject?.explicitNodeControlPolicy, defaultControlPolicy);\n}\n/**\n* Whether a call is allowed to emit under a given control policy.\n*\n* - `managed` — full lifecycle, every op allowed.\n* - `tolerated` — create-if-absent only: allowed iff the call creates a whole\n* new top-level object (and its subject was positively resolved). Anything\n* that modifies an existing object, and anything whose subject could not be\n* resolved, is suppressed.\n* - `external` / `observed` — no DDL at all.\n*/\nfunction callAllowedUnderControlPolicy(policy, subject) {\n\tswitch (policy) {\n\t\tcase \"managed\": return true;\n\t\tcase \"tolerated\": return subject?.createsNewObject === true;\n\t\tcase \"external\":\n\t\tcase \"observed\": return false;\n\t}\n}\n/**\n* Partition the calls produced for a single set of subjects into those the\n* effective control policy permits (`kept`) and a list of\n* {@link SuppressionRecord}s describing the suppressed calls.\n*\n* **Prefer {@link partitionIssuesByControlPolicy}** for the schema-issue\n* pipeline: it filters subjects out of the planner's *input* so the planner\n* never has to reason about un-modeled state on `external`/`observed`\n* subjects. This call-level helper remains for paths that bypass the issue\n* pipeline — currently the codec-emitted field-event ops, which originate\n* from declared contract fields rather than from introspected schema state\n* and therefore cannot trip the diff engine.\n*/\nfunction partitionCallsByControlPolicy(options) {\n\tconst defaultControlPolicy = options.contract.defaultControlPolicy;\n\tconst kept = [];\n\tconst suppressions = [];\n\tfor (const call of options.calls) {\n\t\tconst subject = options.resolveControlPolicySubject(call);\n\t\tconst policy = controlPolicyForCall(subject, defaultControlPolicy);\n\t\tif (callAllowedUnderControlPolicy(policy, subject)) kept.push(call);\n\t\telse suppressions.push({\n\t\t\tsubject,\n\t\t\tpolicy,\n\t\t\tfactoryName: options.resolveFactoryName(call),\n\t\t\tcreatesNewObject: subject?.createsNewObject ?? false\n\t\t});\n\t}\n\treturn Object.freeze({\n\t\tkept: Object.freeze(kept),\n\t\tsuppressions: Object.freeze(suppressions)\n\t});\n}\n/**\n* Partition a list of schema-issue-shaped inputs by the effective control\n* policy of each issue's subject *before* the planner is invoked.\n*\n* `plannable` is the list of issues whose subject's effective policy permits\n* the planner to act on them (`managed`, or `tolerated` for whole-object\n* creation issues only). Issues for `external`/`observed` subjects, and\n* non-creation issues for `tolerated` subjects, are dropped from the planner's\n* input entirely — they never enter introspection-driven planning, never feed\n* the diff engine, and never produce DDL calls that would have to be\n* post-filtered. This sidesteps a class of failure where the diff engine\n* cannot reason about the live shape of a subject the user marked as\n* out-of-scope (`external`).\n*\n* `suppressions` is one {@link SuppressionRecord} per suppressed subject (not\n* per suppressed issue). Its `factoryName` is the creation factory name when any\n* of the subject's issues is whole-object creation (e.g. `createTable`), else\n* `undefined` — the family never invents a modification verb for an op that\n* produced no call; the target renders the message.\n*\n* Unresolved-subject issues (`resolveControlPolicySubject` returns\n* `undefined`) emit one record each; they cannot be deduplicated because they\n* carry no subject coordinate.\n*/\nfunction partitionIssuesByControlPolicy(options) {\n\tconst defaultControlPolicy = options.contract.defaultControlPolicy;\n\tconst plannable = [];\n\tconst suppressedSubjects = /* @__PURE__ */ new Map();\n\tconst unresolvedSuppressions = [];\n\tfor (const issue of options.issues) {\n\t\tconst subject = options.resolveControlPolicySubject(issue);\n\t\tconst policy = controlPolicyForCall(subject, defaultControlPolicy);\n\t\tconst creationFactoryName = options.resolveCreationFactoryName(issue);\n\t\tif (policy === \"managed\") {\n\t\t\tplannable.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy === \"tolerated\" && subject !== void 0 && creationFactoryName !== void 0 && subject.createsNewObject) {\n\t\t\tplannable.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tif (subject === void 0) {\n\t\t\tunresolvedSuppressions.push({\n\t\t\t\tsubject: void 0,\n\t\t\t\tpolicy,\n\t\t\t\tfactoryName: creationFactoryName,\n\t\t\t\tcreatesNewObject: false\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = subjectKey(subject);\n\t\tconst existing = suppressedSubjects.get(key);\n\t\tif (existing) {\n\t\t\tif (existing.creationFactoryName === void 0 && creationFactoryName !== void 0) existing.creationFactoryName = creationFactoryName;\n\t\t} else suppressedSubjects.set(key, {\n\t\t\tsubject,\n\t\t\tpolicy,\n\t\t\t...ifDefined(\"creationFactoryName\", creationFactoryName)\n\t\t});\n\t}\n\tconst suppressions = [...unresolvedSuppressions];\n\tfor (const entry of suppressedSubjects.values()) suppressions.push({\n\t\tsubject: entry.subject,\n\t\tpolicy: entry.policy,\n\t\tfactoryName: entry.creationFactoryName,\n\t\tcreatesNewObject: entry.subject.createsNewObject\n\t});\n\treturn Object.freeze({\n\t\tplannable: Object.freeze(plannable),\n\t\tsuppressions: Object.freeze(suppressions)\n\t});\n}\nfunction subjectKey(subject) {\n\treturn `${subject.namespaceId}\\u0000${subject.entityKind ?? \"\"}\\u0000${subject.entityName ?? \"\"}\\u0000${subject.rlsPolicy ?? \"\"}`;\n}\n//#endregion\n//#region src/core/migrations/field-event-planner.ts\nfunction planFieldEventOperations(options) {\n\tconst priorContract = options.priorContract;\n\tconst newContract = options.newContract;\n\tconst added = [];\n\tconst dropped = [];\n\tconst altered = [];\n\tconst namespaceIds = unionSorted(priorContract ? Object.keys(priorContract.storage.namespaces) : [], Object.keys(newContract.storage.namespaces));\n\tfor (const namespaceId of namespaceIds) {\n\t\tconst priorNs = priorContract?.storage.namespaces[namespaceId];\n\t\tconst newNs = newContract.storage.namespaces[namespaceId];\n\t\tconst priorTables = priorNs?.entries.table;\n\t\tconst newTables = newNs?.entries.table;\n\t\tconst tableNames = unionSorted(priorTables ? Object.keys(priorTables) : [], newTables ? Object.keys(newTables) : []);\n\t\tfor (const tableName of tableNames) {\n\t\t\tconst priorTableRaw = priorTables?.[tableName];\n\t\t\tconst newTableRaw = newTables?.[tableName];\n\t\t\tconst priorTable = StorageTable.is(priorTableRaw) ? priorTableRaw : void 0;\n\t\t\tconst newTable = StorageTable.is(newTableRaw) ? newTableRaw : void 0;\n\t\t\tconst fieldNames = unionSorted(priorTable ? Object.keys(priorTable.columns) : [], newTable ? Object.keys(newTable.columns) : []);\n\t\t\tfor (const fieldName of fieldNames) {\n\t\t\t\tconst priorField = priorTable?.columns[fieldName];\n\t\t\t\tconst newField = newTable?.columns[fieldName];\n\t\t\t\tconst entry = {\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\ttableName,\n\t\t\t\t\tfieldName,\n\t\t\t\t\tpriorTable,\n\t\t\t\t\tnewTable,\n\t\t\t\t\tpriorField,\n\t\t\t\t\tnewField\n\t\t\t\t};\n\t\t\t\tif (priorField === void 0 && newField !== void 0) added.push(entry);\n\t\t\t\telse if (priorField !== void 0 && newField === void 0) dropped.push(entry);\n\t\t\t\telse if (priorField !== void 0 && newField !== void 0) {\n\t\t\t\t\tif (isAlteration(priorField, newField)) altered.push(entry);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tconst calls = [];\n\tappendCalls(\"added\", added, options.codecHooks, calls, (e) => e.newField?.codecId);\n\tappendCalls(\"dropped\", dropped, options.codecHooks, calls, (e) => e.priorField?.codecId);\n\tappendCalls(\"altered\", altered, options.codecHooks, calls, (e) => e.newField?.codecId);\n\treturn calls;\n}\nfunction appendCalls(event, entries, codecHooks, calls, pickCodecId) {\n\tfor (const entry of entries) {\n\t\tconst codecId = pickCodecId(entry);\n\t\tif (codecId === void 0) continue;\n\t\tconst hook = codecHooks.get(codecId);\n\t\tif (!hook?.onFieldEvent) continue;\n\t\tconst ctx = buildContext(event, entry);\n\t\tconst emitted = hook.onFieldEvent(event, ctx);\n\t\tfor (const call of emitted) calls.push(call);\n\t}\n}\n/**\n* The context's prior/new sides are scoped to the event:\n*\n* - `'added'` — only `newTable` / `newField` populated.\n* - `'dropped'` — only `priorTable` / `priorField` populated.\n* - `'altered'` — both sides populated.\n*/\nfunction buildContext(event, entry) {\n\tconst base = {\n\t\tnamespaceId: entry.namespaceId,\n\t\ttableName: entry.tableName,\n\t\tfieldName: entry.fieldName\n\t};\n\tif (event === \"added\") return {\n\t\t...base,\n\t\t...entry.newTable !== void 0 ? { newTable: entry.newTable } : {},\n\t\t...entry.newField !== void 0 ? { newField: entry.newField } : {}\n\t};\n\tif (event === \"dropped\") return {\n\t\t...base,\n\t\t...entry.priorTable !== void 0 ? { priorTable: entry.priorTable } : {},\n\t\t...entry.priorField !== void 0 ? { priorField: entry.priorField } : {}\n\t};\n\treturn {\n\t\t...base,\n\t\t...entry.priorTable !== void 0 ? { priorTable: entry.priorTable } : {},\n\t\t...entry.newTable !== void 0 ? { newTable: entry.newTable } : {},\n\t\t...entry.priorField !== void 0 ? { priorField: entry.priorField } : {},\n\t\t...entry.newField !== void 0 ? { newField: entry.newField } : {}\n\t};\n}\n/**\n* `'altered'` predicate. Returns `false` whenever `codecId` differs —\n* any codec change suppresses the `altered` event entirely, including\n* cases where another property also differs in the same diff. Codec\n* rotation is a v1 non-goal; avoiding the mixed event keeps the\n* migration semantics for codec changes explicit rather than smuggling\n* them through as `altered`.\n*\n* For non-`codecId` diffs, returns `true` iff any other column property\n* differs.\n*/\nfunction isAlteration(prior, current) {\n\tif (prior.codecId !== current.codecId) return false;\n\treturn !sameStorageColumn(prior, current);\n}\nfunction sameStorageColumn(a, b) {\n\tif (a === b) return true;\n\tif (a.dataType !== b.dataType) return false;\n\tif (a.nullable !== b.nullable) return false;\n\tif (a.typeRef !== b.typeRef) return false;\n\tif (!sameJson(a.typeParams, b.typeParams)) return false;\n\tif (!sameJson(a.default, b.default)) return false;\n\treturn true;\n}\nfunction sameJson(a, b) {\n\tif (a === b) return true;\n\tif (a === void 0 || b === void 0) return false;\n\treturn JSON.stringify(a) === JSON.stringify(b);\n}\nfunction unionSorted(a, b) {\n\tconst set = /* @__PURE__ */ new Set();\n\tfor (const name of a) set.add(name);\n\tfor (const name of b) set.add(name);\n\treturn [...set].sort((x, y) => x < y ? -1 : x > y ? 1 : 0);\n}\n//#endregion\n//#region src/core/migrations/plan-helpers.ts\nconst readOnlyEmptyObject = Object.freeze({});\nfunction cloneRecord(value) {\n\tif (value === readOnlyEmptyObject) return value;\n\treturn blindCast(Object.freeze({ ...value }));\n}\nfunction freezeSteps(steps) {\n\tif (steps.length === 0) return Object.freeze([]);\n\treturn Object.freeze(steps.map((step) => Object.freeze({\n\t\tdescription: step.description,\n\t\tsql: step.sql,\n\t\t...step.params ? { params: Object.freeze([...step.params]) } : {},\n\t\t...step.meta ? { meta: cloneRecord(step.meta) } : {}\n\t})));\n}\nfunction freezeDetailsValue(value) {\n\tif (value === null || value === void 0) return value;\n\tif (typeof value !== \"object\") return value;\n\tif (Array.isArray(value)) return blindCast(Object.freeze([...value]));\n\treturn blindCast(Object.freeze({ ...value }));\n}\nfunction freezeTargetDetails(target) {\n\treturn Object.freeze({\n\t\tid: target.id,\n\t\t...target.details !== void 0 ? { details: freezeDetailsValue(target.details) } : {}\n\t});\n}\nfunction freezeOperation(operation) {\n\treturn Object.freeze({\n\t\tid: operation.id,\n\t\tlabel: operation.label,\n\t\t...operation.summary ? { summary: operation.summary } : {},\n\t\toperationClass: operation.operationClass,\n\t\t...operation.invariantId ? { invariantId: operation.invariantId } : {},\n\t\ttarget: freezeTargetDetails(operation.target),\n\t\tprecheck: freezeSteps(operation.precheck),\n\t\texecute: freezeSteps(operation.execute),\n\t\tpostcheck: freezeSteps(operation.postcheck),\n\t\t...operation.meta ? { meta: cloneRecord(operation.meta) } : {}\n\t});\n}\nfunction freezeOperations(operations) {\n\tif (operations.length === 0) return Object.freeze([]);\n\treturn Object.freeze(operations.map((operation) => freezeOperation(operation)));\n}\nfunction createMigrationPlan(options) {\n\treturn Object.freeze({\n\t\ttargetId: options.targetId,\n\t\tspaceId: options.spaceId,\n\t\t...options.origin !== void 0 ? { origin: options.origin ? Object.freeze({ ...options.origin }) : null } : {},\n\t\tdestination: Object.freeze({ ...options.destination }),\n\t\toperations: freezeOperations(options.operations),\n\t\tprovidedInvariants: Object.freeze([...options.providedInvariants]),\n\t\t...options.meta ? { meta: cloneRecord(options.meta) } : {}\n\t});\n}\nfunction plannerSuccess(plan, warnings) {\n\treturn Object.freeze({\n\t\tkind: \"success\",\n\t\tplan,\n\t\t...warnings && warnings.length > 0 ? { warnings: Object.freeze(warnings.map((conflict) => Object.freeze({\n\t\t\tkind: conflict.kind,\n\t\t\tsummary: conflict.summary,\n\t\t\t...conflict.why ? { why: conflict.why } : {},\n\t\t\t...conflict.location ? { location: Object.freeze({ ...conflict.location }) } : {},\n\t\t\t...conflict.meta ? { meta: cloneRecord(conflict.meta) } : {}\n\t\t}))) } : {}\n\t});\n}\nfunction plannerFailure(conflicts) {\n\treturn Object.freeze({\n\t\tkind: \"failure\",\n\t\tconflicts: Object.freeze(conflicts.map((conflict) => Object.freeze({\n\t\t\tkind: conflict.kind,\n\t\t\tsummary: conflict.summary,\n\t\t\t...conflict.why ? { why: conflict.why } : {},\n\t\t\t...conflict.location ? { location: Object.freeze({ ...conflict.location }) } : {},\n\t\t\t...conflict.meta ? { meta: cloneRecord(conflict.meta) } : {}\n\t\t})))\n\t});\n}\n/**\n* Creates a successful migration runner result.\n*/\nfunction runnerSuccess(value) {\n\treturn ok(Object.freeze({\n\t\toperationsPlanned: value.operationsPlanned,\n\t\toperationsExecuted: value.operationsExecuted\n\t}));\n}\n/**\n* Creates a failed migration runner result.\n*/\nfunction runnerFailure(code, summary, options) {\n\treturn notOk(Object.freeze({\n\t\tcode,\n\t\tsummary,\n\t\t...options?.why ? { why: options.why } : {},\n\t\t...options?.meta ? { meta: cloneRecord(options.meta) } : {}\n\t}));\n}\n//#endregion\n//#region src/core/migrations/policies.ts\n/**\n* Policy used by `db init`: additive-only operations, no widening/destructive steps.\n*/\nconst INIT_ADDITIVE_POLICY = Object.freeze({ allowedOperationClasses: Object.freeze([\"additive\"]) });\n//#endregion\n//#region src/core/migrations/sql-type-lookups.ts\n/** The codecs and data types a set of composed components registers. */\nfunction sqlTypeLookupsOf(frameworkComponents) {\n\treturn {\n\t\tcodecLookup: extractCodecLookup(frameworkComponents),\n\t\tdataTypeLookup: assembleDataTypes(frameworkComponents).lookup\n\t};\n}\n//#endregion\n//#region src/core/migrations/table-name-case-guard.ts\nconst TABLE_NAME_CASE_CHANGED_CODE = \"MIGRATION.TABLE_NAME_CASE_CHANGED\";\nfunction lowerFirst(value) {\n\treturn value.charAt(0).toLowerCase() + value.slice(1);\n}\nfunction plannedTable(node, namespaceId) {\n\treturn {\n\t\tnamespaceId,\n\t\ttableName: node.name\n\t};\n}\nfunction renameNeedsNamespace(drop, dropped, contract, defaultNamespaceId) {\n\tif (drop.namespaceId !== UNBOUND_NAMESPACE_ID && drop.namespaceId !== defaultNamespaceId) return true;\n\tconst declaredElsewhere = (namespaceId, tableName) => namespaceId !== drop.namespaceId && tableName === drop.tableName;\n\treturn dropped.some((other) => declaredElsewhere(other.namespaceId, other.tableName)) || Object.values(contract.storage.namespaces).some((namespace) => Object.keys(namespace.entries.table ?? {}).some((tableName) => declaredElsewhere(namespace.id, tableName)));\n}\n/**\n* Finds every (drop `X`, create `Y`) pair in the same namespace where `X` is\n* `Y` with its first letter lowered. That shape is the signature of a schema\n* upgraded across the release in which a model with no `@@map` stopped\n* lowering the first letter of its table name: planning it would drop the\n* user's table and recreate it empty. Columns are deliberately not compared,\n* so a user who also changed a field in the same upgrade is still protected.\n*\n* Returns one conflict per pair, carrying `MIGRATION.TABLE_NAME_CASE_CHANGED`\n* in `meta.code`, or an empty array when the plan has no such pair.\n*/\nfunction detectTableNameCaseChanges(input) {\n\tconst dropped = [];\n\tconst created = [];\n\tfor (const issue of input.issues) {\n\t\tconst outcome = issueOutcome(issue);\n\t\tif (outcome === \"not-equal\") continue;\n\t\tconst table = input.tableOf(issue);\n\t\tif (table === void 0) continue;\n\t\t(outcome === \"not-expected\" ? dropped : created).push(plannedTable(table, input.namespaceIdOf(issue)));\n\t}\n\tconst conflicts = [];\n\tfor (const create of created) {\n\t\tconst drop = dropped.find((candidate) => candidate.namespaceId === create.namespaceId && candidate.tableName === lowerFirst(create.tableName));\n\t\tif (drop === void 0) continue;\n\t\tconst renameCall = input.renameTableCall({\n\t\t\tnamespaceId: renameNeedsNamespace(drop, dropped, input.contract, input.defaultNamespaceId) ? drop.namespaceId : void 0,\n\t\t\tfrom: drop.tableName,\n\t\t\tto: create.tableName\n\t\t});\n\t\tconflicts.push({\n\t\t\tkind: \"tableNameCaseChanged\",\n\t\t\tsummary: `${TABLE_NAME_CASE_CHANGED_CODE}: table \"${create.tableName}\" would be created and table \"${drop.tableName}\" dropped. Prisma 8 changed the default table name: a model with no @@map now names its table verbatim, so model ${create.tableName} points at \"${create.tableName}\" instead of \"${drop.tableName}\".`,\n\t\t\twhy: `To keep table \"${drop.tableName}\" and its rows, add @@map(\"${drop.tableName}\") to model ${create.tableName} (or run the add-model-map codemod over the schema) and plan again. To rename the table and keep its rows instead: in a project with migration history, make the rename its own schema change, create its migration with prisma migration new --from <hash of the migration the database is at>, and add ${renameCall} to the migration's operations, which renames the table and the objects named after it; in a project that uses db update, rename it by hand with ${input.renameByHandStatements({\n\t\t\t\tnamespaceId: create.namespaceId,\n\t\t\t\tfrom: drop.tableName,\n\t\t\t\tto: create.tableName\n\t\t\t}).join(\"; \")}, then run db update again.`,\n\t\t\tlocation: {\n\t\t\t\tnamespaceId: create.namespaceId,\n\t\t\t\tentityKind: \"table\",\n\t\t\t\tentityName: create.tableName\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tcode: TABLE_NAME_CASE_CHANGED_CODE,\n\t\t\t\tdroppedTable: drop.tableName,\n\t\t\t\tcreatedTable: create.tableName\n\t\t\t}\n\t\t});\n\t}\n\treturn conflicts;\n}\n//#endregion\n//#region src/core/timestamp-now-generator.ts\nfunction temporalStringAuthoringPresets(input) {\n\tconst presets = temporalAuthoringPresets(input);\n\treturn {\n\t\tcreatedAtString: presets.createdAt,\n\t\tupdatedAtString: presets.updatedAt\n\t};\n}\nconst TEMPORAL_PRECISION_ARG = {\n\tname: \"precision\",\n\tkind: \"number\",\n\toptional: true,\n\tinteger: true\n};\n/**\n* Builds a `temporal.<codec>` field preset for a codec that takes a precision\n* parameter (`pg/timestamp-temporal@1`, `pg/timestamptz-temporal@1`). Arguments change field\n* properties only — never the codec, which the caller fixes here.\n*\n* All three arguments are optional: omitting `precision` omits `typeParams`\n* entirely, and omitting a phase omits that phase (both omitted omits\n* `executionDefaults`).\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction temporalCodecPresetWithPrecision(input) {\n\tconst generatorId = input.generatorId ?? TIMESTAMP_NOW_GENERATOR_ID;\n\treturn {\n\t\tkind: \"fieldPreset\",\n\t\targs: [\n\t\t\tTEMPORAL_PRECISION_ARG,\n\t\t\tTEMPORAL_ON_CREATE_ARG,\n\t\t\tTEMPORAL_ON_UPDATE_ARG\n\t\t],\n\t\toutput: {\n\t\t\tcodecId: input.codecId,\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} },\n\t\t\texecutionDefaults: {\n\t\t\t\tonCreate: temporalPhaseTemplate(1, generatorId),\n\t\t\t\tonUpdate: temporalPhaseTemplate(2, generatorId)\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/exports/control.ts\nvar control_default = new SqlFamilyDescriptor();\n//#endregion\nexport { INIT_ADDITIVE_POLICY, TABLE_NAME_CASE_CHANGED_CODE, applyTableRename, assembleAuthoringContributions, checkSqlDefaultBody, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, control_default as default, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, sqlTypeLookupsOf, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-D18L8cFa.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/control.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqBU;WACC,kBAAkB,cAAc;WAChC,cAAc;;UAEf,iCAAiC,6BAA6B,kBAAkB,kBAAkB,kBAAkB,wBAAwB,kBAAkB,wBAAwB,SAAS,cAAc,yBAAyB;;;;;;;;;EAS9O,oBAAoB,wBAAwB;EAC5C,OAAO;aACI,QAAQ;aACR;aACA;aACA;aACA;MACP,QAAQ;;;;;;;;;;EAUZ,aAAa;aACF;aACA,QAAQ;aACR;aACA,qBAAqB,cAAc;MAC1C;;;;;;;;;;EAUJ,2BAA2B,OAAO,kBAAkB;;;;;;;;EAQpD,mBAAmB,OAAO;EAC1B,WAAW;aACA,QAAQ;aACR;MACP,QAAQ;EACZ,iBAAiB,UAAU,kBAAkB;EAC7C,SAAS,KAAK,cAAc,SAAS,SAAS,0BAA0B,QAAQ;;;;;;EAMhF,WAAW;aACA,QAAQ;aACR;aACA;eACE;eACA;eACA;;MAET;;;;;EAKJ,aAAa;aACF,QAAQ;aACR;aACA;aACA;eACE;eACA;eACA;;MAET;;;;;EAKJ,iBAAiB;aACN,QAAQ;aACR;aACA;eACE;eACA;eACA;eACA;eACA;eACA;eACA;;MAET;EACJ,yCAAyC;EACzC,mBAAmB,qBAAqB,2BAA6B;;;;cAIzD,+BAA+B,+BAA+B;WACjE;WACA;WACA;WACA;WACA,UAAU;WACV,oBAAoB;WACpB;aACE;eACE;iBACE;iBACA;mBACE;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;uBACE;uBACA;uBACA;uBACA;uBACA;;;;iBAIN;mBACE;mBACA;qBACE;uBACE;uBACA;uBACA;uBACA;;;;;eAKR;iBACE;iBACA;mBACE;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;qBACE;;;;eAIN;iBACE;mBACE;mBACA;qBACE;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;yBACA;yBACA;yBACA;;;;mBAIN;qBACE;qBACA;uBACE;yBACE;yBACA;yBACA;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;6BACA;;;;;qBAKR;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;;;aAKR;eACE;iBACE;mBACE;mBACA;mBACA;qBACE;qBACA;qBACA;;mBAEF;qBACE;qBACA;uBACE;yBACE;yBACA;;;;;;;aAOZ,gEAAgE;aAChE;eACE;QACP;QACA;QACA;QACA;QACA;UACE;;QAEF,aAAa;QACb;UACE,2CAA2C;YACzC;4CACgC;;;;aAI/B;eACE;iBACE,0CAA0C;UACjD;0CACgC;iBACzB,yCAAyC;UAChD;mBACS;0CACuB;iBACzB,6CAA6C;UACpD;mBACS;0CACuB;iBACzB,4CAA4C;UACnD;mBACS;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA,UAAU;0CACa;iBACzB,4CAA4C;mBAC1C;mBACA;mBACA;0CACuB;iBACzB,8CAA8C;UACrD;0CACgC;iBACzB,oDAAoD;UAC3D;0CACgC;iBACzB,2CAA2C;UAClD,qCAAqC,uDAAuD;UAC5F;0CACgC;;eAE3B;iBACE,0CAA0C;UACjD;0CACgC;iBACzB,yCAAyC;mBACvC;0CACuB;iBACzB,6CAA6C;mBAC3C;0CACuB;iBACzB,8CAA8C;UACrD;UACA;0CACgC;iBACzB,+CAA+C;UACtD;mBACS;mBACA;mBACA;mBACA;mBACA;mBACA;0CACuB;iBACzB,UAAU,oCAAoC,6DAA6D;UAClH,sCAAsC,mEAAmE,4CAA4C,iFAAiF,4CAA4C;0CAClP;;;aAG7B;gBACG,iFAAiF;;;WAGtF;aACE;;EAEX,OAAO,0BA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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-type-support-DeL6iJt8.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/data-type-support.mjs"],"sourcesContent":["import { t as numeralText } from \"./numeral-text-Cqu87pVe.mjs\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { isNonFiniteText } from \"@internal/framework-components/codec\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/data-type-support.ts\nconst INTEGER_TEXT = /^-?\\d+$/;\nconst DECIMAL_TEXT = /^-?\\d+\\.\\d+$/;\nconst DECIMAL_NUMERAL = /^(-?)0*(\\d+)(\\.\\d+)?$/;\n/** Whether `text` is a whole number or a decimal as a contract source writes one. */\nfunction isNumeralText(text) {\n\treturn INTEGER_TEXT.test(text) || DECIMAL_TEXT.test(text);\n}\n/**\n* A written numeral as the contract stores it. Leading zeros and the sign of zero never change a\n* number, so they go; trailing zeros stay, because a type without a scale keeps them.\n*/\nfunction canonicalNumeralText(text) {\n\tconst numeral = DECIMAL_NUMERAL.exec(text);\n\tif (numeral === null) return text;\n\tconst [, sign = \"\", whole = \"\", fraction = \"\"] = numeral;\n\tconst digits = `${whole}${fraction}`;\n\treturn /^[0.]+$/.test(digits) ? digits : `${sign}${digits}`;\n}\n/**\n* The canonical form of a 64-bit integer type: digit text. A database reads an integer default back as a number when it is a safe integer, so a safe integer reads as its digit text too; any other number may already have lost digits and is refused.\n*/\nconst integerTextCanonicalForm = (value) => {\n\tif (typeof value === \"number\" && Number.isSafeInteger(value)) return numeralText(value);\n\tif (typeof value === \"string\" && INTEGER_TEXT.test(value)) return BigInt(value).toString();\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", `Expected digit text or a safe integer, got ${JSON.stringify(value)}.`, {\n\t\twhy: \"A 64-bit integer type stores its value as digit text, and a number past the safe integer range may already have lost digits.\",\n\t\tfix: \"Write the value as digit text.\"\n\t});\n};\n/** A string as a contract source writes it, with the escapes its string reader resolves. */\nfunction escapePslString(value) {\n\treturn value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\");\n}\n/** The range of a signed integer of `bits` bits. */\nfunction signedRange(bits) {\n\tconst half = 2n ** (BigInt(bits) - 1n);\n\treturn {\n\t\tmin: -half,\n\t\tmax: half - 1n\n\t};\n}\n/**\n* The classifier one target's plain-number authoring entry carries: it reads the digits and says\n* which of the target's types the value is, in that type's canonical form. `undefined` means no\n* type of this target holds the number.\n*/\nfunction createNumberClassifier(spec) {\n\tconst as = (classification, value) => classification === void 0 ? void 0 : {\n\t\ttype: classification.type,\n\t\tvalue\n\t};\n\treturn (text) => {\n\t\tif (isNonFiniteText(text)) return as(spec.words, spec.words?.form === \"number\" ? Number(text) : text);\n\t\tif (DECIMAL_TEXT.test(text)) {\n\t\t\tconst canonical = canonicalNumeralText(text);\n\t\t\treturn as(spec.fraction, spec.fraction?.form === \"number\" ? Number(canonical) : canonical);\n\t\t}\n\t\tif (!INTEGER_TEXT.test(text)) return void 0;\n\t\tconst digits = BigInt(text);\n\t\tconst classification = spec.integers.find(({ min, max }) => digits >= min && digits <= max) ?? spec.largerWhole;\n\t\treturn as(classification, classification?.form === \"number\" ? Number(digits) : digits.toString());\n\t};\n}\n/**\n* Read a JSON body into the document it holds.\n*\n* `JSON.parse` reads a numeral too large for a double as `Infinity`, and `JSON.stringify` writes\n* that back as `null`, so a document holding one would not be the document stored; it is refused\n* here instead, naming where the number is.\n*/\nfunction parseJsonBody(text) {\n\tlet value;\n\ttry {\n\t\tvalue = JSON.parse(text);\n\t} catch (error) {\n\t\tthrow structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", error instanceof Error ? error.message : String(error), {\n\t\t\twhy: \"The body is not a JSON document.\",\n\t\t\tfix: \"Write a JSON document.\"\n\t\t});\n\t}\n\tconst overflowed = nonFiniteNumberIn(value, \"\");\n\tif (overflowed !== void 0) throw structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", `${overflowed.path} is ${overflowed.value}, which JSON cannot write back: the number in the text is outside the range a JSON number holds.`, {\n\t\twhy: \"JSON.parse reads a numeral too large for a double as Infinity, which JSON.stringify writes back as null.\",\n\t\tfix: \"Write a number JSON can hold, or write it as text.\"\n\t});\n\treturn value;\n}\n/** Write a document as the body of a JSON literal. */\nfunction printJsonBody(value) {\n\treturn JSON.stringify(value);\n}\nfunction nonFiniteNumberIn(value, path) {\n\tif (typeof value === \"number\") return Number.isFinite(value) ? void 0 : {\n\t\tpath: path === \"\" ? \"The value\" : path,\n\t\tvalue\n\t};\n\tif (Array.isArray(value)) {\n\t\tfor (const [index, element] of value.entries()) {\n\t\t\tconst found = nonFiniteNumberIn(element, `${path}[${index}]`);\n\t\t\tif (found !== void 0) return found;\n\t\t}\n\t\treturn;\n\t}\n\tif (typeof value === \"object\" && value !== null) for (const [key, member] of Object.entries(value)) {\n\t\tconst found = nonFiniteNumberIn(member, path === \"\" ? key : `${path}.${key}`);\n\t\tif (found !== void 0) return found;\n\t}\n}\n//#endregion\n//#region src/date-time-canonical-form.ts\n/**\n* The reader the SQL targets build the canonical form of each date and time type with; ADR 254\n* states the forms and the text it reads.\n*/\nconst SHAPES = {\n\tdate: {\n\t\tdescription: \"a date\",\n\t\tplural: \"dates\",\n\t\texample: \"2024-01-01\",\n\t\tdate: true,\n\t\ttime: false,\n\t\toffset: false\n\t},\n\ttime: {\n\t\tdescription: \"a time of day\",\n\t\tplural: \"times of day\",\n\t\texample: \"12:34:56\",\n\t\tdate: false,\n\t\ttime: true,\n\t\toffset: false\n\t},\n\ttimeWithOffset: {\n\t\tdescription: \"a time of day with a UTC offset\",\n\t\tplural: \"times of day with a UTC offset\",\n\t\texample: \"12:34:56+02:00\",\n\t\tdate: false,\n\t\ttime: true,\n\t\toffset: true\n\t},\n\tdateTime: {\n\t\tdescription: \"a date and time\",\n\t\tplural: \"dates and times\",\n\t\texample: \"2024-01-01T12:34:56\",\n\t\tdate: true,\n\t\ttime: true,\n\t\toffset: false\n\t},\n\tinstant: {\n\t\tdescription: \"a date and time with a UTC offset\",\n\t\tplural: \"instants\",\n\t\texample: \"2024-01-01T12:34:56Z\",\n\t\tdate: true,\n\t\ttime: true,\n\t\toffset: true\n\t}\n};\nconst DATE_PREFIX = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})/;\nconst TIME_PREFIX = /^(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d+))?)?/;\nconst OFFSET = /^([+-])(\\d{2})(?::(\\d{2})(?::(\\d{2}))?)?$/;\nconst MAX_FRACTION_DIGITS = 6;\nconst FRACTION_UNITS = {\n\t3: \"milliseconds\",\n\t6: \"microseconds\"\n};\nconst SECONDS_PER_DAY = 86400;\nconst MIDNIGHT = {\n\thour: 0,\n\tminute: 0,\n\tsecond: 0,\n\tfraction: \"\"\n};\nfunction refused(message) {\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", message, {\n\t\twhy: \"A date or time type stores one canonical form for each value (ADR 254).\",\n\t\tfix: \"Write text the type holds, as the message shows.\"\n\t});\n}\nfunction isLeapYear(year) {\n\treturn year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nfunction daysInMonth(year, month) {\n\tif (month === 2) return isLeapYear(year) ? 29 : 28;\n\treturn [\n\t\t4,\n\t\t6,\n\t\t9,\n\t\t11\n\t].includes(month) ? 30 : 31;\n}\n/** Days from 1970-01-01 to a date of the proleptic Gregorian calendar, with year 0 as 1 BC. */\nfunction daysFromCivil({ year, month, day }) {\n\tconst shifted = month <= 2 ? year - 1 : year;\n\tconst era = Math.floor(shifted / 400);\n\tconst yearOfEra = shifted - era * 400;\n\tconst dayOfYear = Math.floor((153 * (month + (month > 2 ? -3 : 9)) + 2) / 5) + day - 1;\n\tconst dayOfEra = yearOfEra * 365 + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100) + dayOfYear;\n\treturn era * 146097 + dayOfEra - 719468;\n}\nfunction civilFromDays(days) {\n\tconst shifted = days + 719468;\n\tconst era = Math.floor(shifted / 146097);\n\tconst dayOfEra = shifted - era * 146097;\n\tconst yearOfEra = Math.floor((dayOfEra - Math.floor(dayOfEra / 1460) + Math.floor(dayOfEra / 36524) - Math.floor(dayOfEra / 146096)) / 365);\n\tconst dayOfYear = dayOfEra - (365 * yearOfEra + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100));\n\tconst monthIndex = Math.floor((5 * dayOfYear + 2) / 153);\n\tconst day = dayOfYear - Math.floor((153 * monthIndex + 2) / 5) + 1;\n\tconst month = monthIndex < 10 ? monthIndex + 3 : monthIndex - 9;\n\treturn {\n\t\tyear: yearOfEra + era * 400 + (month <= 2 ? 1 : 0),\n\t\tmonth,\n\t\tday\n\t};\n}\nfunction pad(value, width = 2) {\n\treturn String(value).padStart(width, \"0\");\n}\nfunction yearText(year) {\n\tif (year >= 0 && year <= 9999) return pad(year, 4);\n\treturn `${year < 0 ? \"-\" : \"+\"}${pad(Math.abs(year), 6)}`;\n}\nfunction dateText(date) {\n\treturn `${yearText(date.year)}-${pad(date.month)}-${pad(date.day)}`;\n}\nfunction timeText(time) {\n\tconst fraction = time.fraction.replace(/0+$/, \"\");\n\treturn `${pad(time.hour)}:${pad(time.minute)}:${pad(time.second)}${fraction === \"\" ? \"\" : `.${fraction}`}`;\n}\nfunction offsetText(seconds) {\n\tif (seconds === 0) return \"Z\";\n\tconst magnitude = Math.abs(seconds);\n\tconst rest = magnitude % 60;\n\treturn `${seconds < 0 ? \"-\" : \"+\"}${pad(Math.floor(magnitude / 3600))}:${pad(Math.floor(magnitude / 60) % 60)}${rest === 0 ? \"\" : `:${pad(rest)}`}`;\n}\n/**\n* The fields of an ISO 8601 date, time, or date and time, or `undefined` when the text is not one.\n* Ranges are checked by the caller, which words the refusal.\n*/\nfunction readWritten(text) {\n\tlet rest = text;\n\tlet date;\n\tlet timeFollows = true;\n\tconst dateMatch = DATE_PREFIX.exec(rest);\n\tif (dateMatch !== null) {\n\t\tconst [whole, yearDigits = \"\", month = \"\", day = \"\"] = dateMatch;\n\t\tif (yearDigits === \"-000000\") return void 0;\n\t\tdate = {\n\t\t\tyear: Number(yearDigits),\n\t\t\tmonth: Number(month),\n\t\t\tday: Number(day)\n\t\t};\n\t\trest = rest.slice(whole.length);\n\t\ttimeFollows = /^[Tt ]/.test(rest);\n\t\tif (timeFollows) rest = rest.slice(1);\n\t}\n\tlet time;\n\tlet fractionDigits = 0;\n\tif (timeFollows) {\n\t\tconst timeMatch = TIME_PREFIX.exec(rest);\n\t\tif (timeMatch === null) return void 0;\n\t\tconst [whole, hour = \"\", minute = \"\", second = \"00\", fraction = \"\"] = timeMatch;\n\t\ttime = {\n\t\t\thour: Number(hour),\n\t\t\tminute: Number(minute),\n\t\t\tsecond: Number(second),\n\t\t\tfraction\n\t\t};\n\t\tfractionDigits = fraction.length;\n\t\trest = rest.slice(whole.length);\n\t}\n\tlet offsetSeconds;\n\tif (rest === \"Z\" || rest === \"z\") offsetSeconds = 0;\n\telse if (rest !== \"\") {\n\t\tconst offset = OFFSET.exec(rest);\n\t\tif (offset === null) return void 0;\n\t\tconst [, sign, hours = \"\", minutes = \"00\", seconds = \"00\"] = offset;\n\t\tif (Number(minutes) > 59 || Number(seconds) > 59) return void 0;\n\t\tconst magnitude = Number(hours) * 3600 + Number(minutes) * 60 + Number(seconds);\n\t\toffsetSeconds = sign === \"-\" ? -magnitude : magnitude;\n\t}\n\treturn {\n\t\tdate,\n\t\ttime,\n\t\toffsetSeconds,\n\t\tfractionDigits\n\t};\n}\nfunction withFraction(example, digits) {\n\treturn example.replace(/(\\d{2}:\\d{2}:\\d{2})/, `$1.${\"123456\".slice(0, digits)}`);\n}\n/** The value with an instant moved to UTC. */\nfunction normalized(written, shape) {\n\tconst clock = written.time ?? MIDNIGHT;\n\tconst offsetSeconds = written.offsetSeconds ?? 0;\n\tif (written.date === void 0 || shape !== \"instant\") return {\n\t\tdate: written.date,\n\t\ttime: clock,\n\t\toffsetSeconds\n\t};\n\tconst utc = daysFromCivil(written.date) * SECONDS_PER_DAY + clock.hour * 3600 + clock.minute * 60 + clock.second - offsetSeconds;\n\tconst days = Math.floor(utc / SECONDS_PER_DAY);\n\tconst secondOfDay = utc - days * SECONDS_PER_DAY;\n\treturn {\n\t\tdate: civilFromDays(days),\n\t\ttime: {\n\t\t\thour: Math.floor(secondOfDay / 3600),\n\t\t\tminute: Math.floor(secondOfDay / 60) % 60,\n\t\t\tsecond: secondOfDay % 60,\n\t\t\tfraction: clock.fraction\n\t\t},\n\t\toffsetSeconds: 0\n\t};\n}\nfunction position(value) {\n\tconst { time } = value;\n\treturn [\n\t\tvalue.date === void 0 ? 0 : daysFromCivil(value.date),\n\t\ttime.hour * 3600 + time.minute * 60 + time.second,\n\t\ttime.fraction.padEnd(MAX_FRACTION_DIGITS, \"0\")\n\t];\n}\nfunction isBefore(left, right) {\n\tif (left[0] !== right[0]) return left[0] < right[0];\n\tif (left[1] !== right[1]) return left[1] < right[1];\n\treturn left[2] < right[2];\n}\nfunction printed(value, shape) {\n\tconst { date, time, offsetSeconds } = value;\n\tif (date === void 0) return shape === \"timeWithOffset\" ? `${timeText(time)}${offsetText(offsetSeconds)}` : timeText(time);\n\tif (shape === \"date\") return dateText(date);\n\tif (shape === \"dateTime\") return `${dateText(date)}T${timeText(time)}`;\n\treturn `${dateText(date)}T${timeText(time)}Z`;\n}\n/** The position of a range bound, which the data type declares in canonical form. */\nfunction boundPosition(text, shape) {\n\tconst written = readWritten(text);\n\tif (written === void 0) throw new InternalError(`The range bound \"${text}\" is not in canonical form.`);\n\treturn position(normalized(written, shape));\n}\n/**\n* The canonical form of written date or time text, or a refusal with a message that says what is\n* wrong and shows text the type holds. `written` is the text as its author wrote it, which the\n* message shows, when a target rewrote it into ISO 8601 before calling this.\n*/\nfunction canonicalDateTime(text, options, written = text) {\n\tconst shape = SHAPES[options.shape];\n\tconst { ownerId: id } = options;\n\tconst parts = readWritten(text);\n\tif (parts === void 0) refused(`${id} cannot read \"${written}\". Write ${shape.description}, as in \"${shape.example}\".`);\n\tif (parts.date !== void 0 && !shape.date) refused(`${id} holds a time of day without a date, but \"${written}\" has a date. Write the time alone, as in \"${shape.example}\".`);\n\tif (parts.date === void 0 && shape.date) refused(shape.time ? `${id} holds ${shape.description}, but \"${written}\" has no date. Write the date too, as in \"${shape.example}\".` : `${id} holds a date, and \"${written}\" is a time of day. Write a date, as in \"${shape.example}\".`);\n\tif (parts.time !== void 0 && !shape.time) refused(`${id} holds a date without a time of day, but \"${written}\" has a time. Write the date alone, as in \"${shape.example}\".`);\n\tif (parts.time === void 0 && shape.offset) refused(`${id} holds ${shape.description}, but \"${written}\" has no time of day. Write the time too, as in \"${shape.example}\".`);\n\tif (parts.offsetSeconds !== void 0 && !shape.offset) refused(`${id} holds no UTC offset, but \"${written}\" has one. Leave it out, as in \"${shape.example}\".`);\n\tif (parts.offsetSeconds === void 0 && shape.offset) refused(`${id} needs a UTC offset, but \"${written}\" has none. Add Z for UTC or an offset such as +02:00, as in \"${shape.example}\".`);\n\tconst maxFractionDigits = options.maxFractionDigits ?? MAX_FRACTION_DIGITS;\n\tif (parts.fractionDigits > maxFractionDigits) refused(`\"${written}\" has ${parts.fractionDigits} digits after the decimal point, but ${id} holds ${FRACTION_UNITS[maxFractionDigits]}, so at most ${maxFractionDigits}. Round it, as in \"${withFraction(shape.example, maxFractionDigits)}\".`);\n\tconst { date, time } = parts;\n\tif (date !== void 0 && (date.month < 1 || date.month > 12 || date.day < 1 || date.day > daysInMonth(date.year, date.month))) refused(`\"${written}\" is not a date that exists. Write a real date, as in \"${shape.example}\".`);\n\tif (time !== void 0 && (time.hour > 23 || time.minute > 59 || time.second > 59)) refused(`\"${written}\" is not a time of day that exists: hours run from 00 to 23, and minutes and seconds from 00 to 59. Write one, as in \"${shape.example}\".`);\n\tconst offsetLimit = options.maxOffsetHours ?? 23;\n\tif (parts.offsetSeconds !== void 0 && Math.abs(parts.offsetSeconds) >= (offsetLimit + 1) * 3600) refused(`\"${written}\" has a UTC offset outside -${pad(offsetLimit)}:59 to +${pad(offsetLimit)}:59, which ${id} does not hold. Write a smaller offset, as in \"${shape.example}\".`);\n\tconst value = normalized(parts, options.shape);\n\tconst { range } = options;\n\tif (range !== void 0) {\n\t\tconst at = position(value);\n\t\tif (isBefore(at, boundPosition(range.earliest, options.shape)) || isBefore(boundPosition(range.latest, options.shape), at)) refused(`${id} holds ${shape.plural} from ${range.earliest} to ${range.latest}, and \"${written}\" is outside them.`);\n\t}\n\treturn printed(value, options.shape);\n}\n//#endregion\nexport { canonicalDateTime, canonicalNumeralText, createNumberClassifier, escapePslString, integerTextCanonicalForm, isNumeralText, parseJsonBody, printJsonBody, signedRange };\n\n//# sourceMappingURL=data-type-support.mjs.map"],"mappings":"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"}