@prisma/orm-family-sql 8.0.0-rc.18-dev.3 → 8.0.0-rc.18-dev.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/orm-client.d.mts +8 -7
- package/dist/orm-client.d.mts.map +1 -1
- package/dist/orm-client.mjs +237 -347
- package/dist/orm-client.mjs.map +1 -1
- package/package.json +18 -18
package/dist/orm-client.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orm-client.mjs","names":["#aliases","#clone","#describeAggregate","executeStatement","#result","#nodes","#ids","#inputs","#readers","#installAggregateReducers","#includeScalarReducer","#assertIncludeRefinementMode","#callbackTools","#cloneSelf","#cloneWithRow","#createCollection","#lock","#withAnnotationsFromMeta","#dispatch","#descriptionOptions","#forFirst","#collectAnnotationsFromMeta","#reloadMutationRowByIdentity","#createAllWithAnnotations","#resolveConflictSkip","#resolveMtiCreateContext","#executeMtiCreate","#mapCreateRows","#augmentMutationSelection","#assertConflictSkipNotOnMtiVariant","#assertNotMtiVariant","#refuseOnMtiVariant","#variantModelName","#buildUpsertConflictCriterion","#reloadMutationRowByCriterion","#updateValues","#descriptionWithoutIncludes","#createSelf"],"sources":["../../../../3-extensions/sql-orm-client/dist/index.mjs"],"sourcesContent":["import { AsyncIterableResult, createMetaBuilder, isRuntimeError, runtimeError } from \"@internal/framework-components/runtime\";\nimport { AggregateExpr, AndExpr, BinaryExpr, CodecJsonValueProjection, ColumnRef, DefaultValueExpr, DeleteAst, DerivedTableSource, EqColJoinOn, ExistsExpr, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectExpr, ListExpression, LiteralExpr, LockingClause, NativeJsonValueProjection, NotExpr, NullCheckExpr, OrExpr, OrderByItem, ParamRef, ProjectionItem, SelectAst, SubqueryExpr, TableSource, UpdateAst, WindowFuncExpr, checkLimitOffset, collectOrderedParamRefs, isAggregateFn, isOrderByDirection, isOrderByNulls, isWhereExpr, lockIncompatible, lockOptionCapabilities, lockStrengthCapabilities, lockWaitPolicyOf, missingCapability } from \"@internal/sql-relational-core/ast\";\nimport { ExpressionImpl, isExpression, toExpr } from \"@internal/sql-relational-core/expression\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError, isInternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { resolveStorageTable } from \"@internal/sql-contract/resolve-storage-table\";\nimport { codecRefForStorageColumn } from \"@internal/sql-relational-core/codec-descriptor-registry\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { createIndexReferences } from \"@internal/sql-relational-core/index-reference\";\nimport { createFunctions } from \"@internal/sql-relational-core/functions\";\nimport { isUniqueConstraintViolation } from \"@internal/sql-errors\";\nimport { settlementOf } from \"@internal/sql-runtime/internal/prepared-query\";\nimport { domainModelsAtDefaultNamespace } from \"@internal/contract/types\";\n//#region src/aggregate-operations.ts\nconst operationNamesByRegistry = /* @__PURE__ */ new WeakMap();\n/**\n* The operation vocabulary the composed registry contributes, in contribution\n* order — the runtime mirror of the contract's emitted aggregate map, both\n* settled from the same contributed descriptors. Cached per registry: the set\n* is fixed at composition time, and every collection construction reads it.\n*/\nfunction aggregateOperationNames(registry) {\n\tconst cached = operationNamesByRegistry.get(registry);\n\tif (cached !== void 0) return cached;\n\tconst names = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const { operation } of registry.values()) {\n\t\tif (seen.has(operation)) continue;\n\t\tseen.add(operation);\n\t\tnames.push(operation);\n\t}\n\toperationNamesByRegistry.set(registry, names);\n\treturn names;\n}\n//#endregion\n//#region src/contract-cache.ts\nconst contractCache = /* @__PURE__ */ new WeakMap();\n/** Builds a value derived from `contract` once per contract and key. Every key starts with a name that only one function uses, and that function stores its own result type under it. */\nfunction cachedFor(contract, key, build) {\n\tlet perContract = contractCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tcontractCache.set(contract, perContract);\n\t}\n\tconst cacheKey = JSON.stringify(key);\n\tif (perContract.has(cacheKey)) return blindCast(perContract.get(cacheKey));\n\tconst built = build();\n\tperContract.set(cacheKey, built);\n\treturn built;\n}\n//#endregion\n//#region src/orm-errors.ts\nfunction ormError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/storage-resolution.ts\nfunction resolveTableForContract(contract, namespaceId, tableName) {\n\treturn resolveStorageTable(contract.storage, tableName, namespaceId);\n}\nfunction requireStorageTableForContract(contract, namespaceId, tableName) {\n\tconst resolved = resolveTableForContract(contract, namespaceId, tableName);\n\tif (resolved === void 0) throw ormError(\"ORM.TABLE_UNKNOWN\", `Unknown table \"${tableName}\"`, { meta: {\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\treturn resolved;\n}\nfunction storageTableForContract(contract, namespaceId, tableName) {\n\treturn requireStorageTableForContract(contract, namespaceId, tableName).table;\n}\nfunction domainModelNamesInNamespace(contract, namespaceId) {\n\tconst namespace = contract.domain.namespaces[namespaceId];\n\treturn namespace ? Object.keys(namespace.models) : [];\n}\nfunction domainModelTableInNamespace(contract, namespaceId, modelName) {\n\tconst table = (contract.domain.namespaces[namespaceId]?.models[modelName])?.storage[\"table\"];\n\treturn typeof table === \"string\" ? table : void 0;\n}\nfunction tableSourceForContract(contract, namespaceId, tableName, alias) {\n\tconst resolved = requireStorageTableForContract(contract, namespaceId, tableName);\n\tconst effectiveAlias = alias !== void 0 && alias !== tableName ? alias : void 0;\n\treturn TableSource.named(tableName, effectiveAlias, resolved.namespaceId);\n}\n//#endregion\n//#region src/collection-contract.ts\nconst POLYMORPHIC_DISCRIMINATOR_ALIAS = \"__prisma_polymorphic_discriminator\";\nfunction modelsOf(contract, namespaceId) {\n\tconst namespace = contract.domain.namespaces[namespaceId];\n\tif (namespace === void 0) throw new InternalError(`domain namespace \"${namespaceId}\" is not present on the contract`);\n\treturn blindCast(namespace.models);\n}\nfunction metadataCacheKey(namespaceId, modelName) {\n\treturn JSON.stringify([namespaceId, modelName]);\n}\nfunction modelOf(contract, namespaceId, name) {\n\tconst model = contract.domain.namespaces[namespaceId]?.models[name];\n\treturn model === void 0 ? void 0 : blindCast(model);\n}\nconst polymorphismCache = /* @__PURE__ */ new WeakMap();\nfunction resolvePolymorphismInfo(contract, namespaceId, modelName) {\n\tlet perContract = polymorphismCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tpolymorphismCache.set(contract, perContract);\n\t}\n\tconst cacheKey = metadataCacheKey(namespaceId, modelName);\n\tif (perContract.has(cacheKey)) return perContract.get(cacheKey);\n\tconst model = modelsOf(contract, namespaceId)[modelName];\n\tif (!model?.discriminator || !model.variants) {\n\t\tperContract.set(cacheKey, void 0);\n\t\treturn;\n\t}\n\tconst baseTable = model.storage?.table;\n\tif (!baseTable) {\n\t\tperContract.set(cacheKey, void 0);\n\t\treturn;\n\t}\n\tconst discriminatorField = model.discriminator.field;\n\tconst discriminatorColumn = columnOfContractField(contract, namespaceId, modelName, discriminatorField);\n\tconst variants = /* @__PURE__ */ new Map();\n\tconst mtiVariants = [];\n\tfor (const [value, variantRef] of Object.entries(model.variants)) {\n\t\tconst variantModelName = variantRef.model;\n\t\tconst variantModel = modelOf(contract, variantRef.namespace, variantModelName);\n\t\tif (!variantModel) throw new InternalError(`Model \"${modelName}\" declares variant \"${variantModelName}\", but that model is missing from the contract`);\n\t\tconst variantTable = variantModel.storage?.table ?? baseTable;\n\t\tconst strategy = variantRef.namespace === namespaceId && variantTable === baseTable ? \"sti\" : \"mti\";\n\t\tconst info = {\n\t\t\tmodelName: variantModelName,\n\t\t\tnamespaceId: variantRef.namespace,\n\t\t\tvalue,\n\t\t\ttable: variantTable,\n\t\t\tstrategy\n\t\t};\n\t\tvariants.set(value, info);\n\t\tif (strategy === \"mti\") mtiVariants.push(info);\n\t}\n\tconst result = {\n\t\tdiscriminatorField,\n\t\tdiscriminatorColumn,\n\t\tbaseTable,\n\t\tvariants,\n\t\tmtiVariants\n\t};\n\tperContract.set(cacheKey, result);\n\treturn result;\n}\n/** The column each of the model's own fields maps, keyed by field name. */\nfunction getOwnFieldColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"ownFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst storageFields = modelsOf(contract, namespaceId)[modelName]?.storage?.fields ?? {};\n\t\tconst columns = {};\n\t\tfor (const [field, storage] of Object.entries(storageFields)) if (storage?.column) columns[field] = storage.column;\n\t\treturn columns;\n\t});\n}\n/**\n* A model's fields, keyed by field name, with the table and column each maps: its own fields on its own table, and the fields it inherits from its base model on the base model's table. This is the one list of a model's fields; a column no field maps has no entry.\n*/\nfunction getModelFields(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelFields\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst model = modelOf(contract, namespaceId, modelName);\n\t\tconst table = model?.storage?.table;\n\t\tconst own = table === void 0 ? {} : Object.fromEntries(Object.entries(getOwnFieldColumns(contract, namespaceId, modelName)).map(([field, column]) => [field, {\n\t\t\tnamespaceId,\n\t\t\ttable,\n\t\t\tcolumn\n\t\t}]));\n\t\tconst base = model?.base;\n\t\treturn {\n\t\t\t...base === void 0 ? {} : getModelFields(contract, base.namespace, base.model),\n\t\t\t...own\n\t\t};\n\t});\n}\n/** The column each of a model's own and inherited fields maps, keyed by field name. */\nfunction getModelFieldColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => Object.fromEntries(Object.entries(getModelFields(contract, namespaceId, modelName)).map(([field, { column }]) => [field, column])));\n}\n/**\n* The column each field of the model and of the variant `variantValue` maps, keyed by field name. Without a variant, the model's fields alone.\n*\n* A surface accepts a variant's field only when it can place that field's column on the variant's table. A collection narrowed to a variant reads that variant's table, so `select`, the `where` and `orderBy` accessor and a variant create accept the narrowed variant's fields. A collection that is not narrowed reads the base table only, so only `select`, whose polymorphic projection joins each variant's table, accepts variant fields there (`getModelAndEveryVariantFieldColumns`).\n*/\nfunction getModelAndVariantFieldColumns(contract, namespaceId, modelName, variantValue) {\n\treturn cachedFor(contract, [\n\t\t\"modelAndVariantFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName,\n\t\tvariantValue ?? null\n\t], () => ({\n\t\t...variantValue === void 0 ? {} : getOwnFieldColumns(contract, ...addressedModel(contract, namespaceId, modelName, variantValue)),\n\t\t...getModelFieldColumns(contract, namespaceId, modelName)\n\t}));\n}\n/**\n* Every column each field of the model and of every one of its variants maps, keyed by field name. Two variants may map one field name to different columns, so a name can map several columns.\n*/\nfunction getModelAndEveryVariantFieldColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelAndEveryVariantFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst columns = {};\n\t\tconst add = (fieldColumns) => {\n\t\t\tfor (const [field, column] of Object.entries(fieldColumns)) {\n\t\t\t\tconst existing = columns[field] ?? [];\n\t\t\t\tif (!existing.includes(column)) existing.push(column);\n\t\t\t\tcolumns[field] = existing;\n\t\t\t}\n\t\t};\n\t\tadd(getModelFieldColumns(contract, namespaceId, modelName));\n\t\tconst modelFields = new Set(Object.keys(columns));\n\t\tfor (const variant of resolvePolymorphismInfo(contract, namespaceId, modelName)?.variants.values() ?? []) add(Object.fromEntries(Object.entries(getOwnFieldColumns(contract, variant.namespaceId, variant.modelName)).filter(([field]) => !modelFields.has(field))));\n\t\treturn columns;\n\t});\n}\n/** The field each column of the model's own fields maps, keyed by column. */\nfunction getOwnColumnFields(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"ownColumnFields\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => invert(getOwnFieldColumns(contract, namespaceId, modelName)));\n}\n/** The field each column of the model's own and inherited fields maps, keyed by column. */\nfunction getModelColumnFields(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelColumnFields\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => invert(getModelFieldColumns(contract, namespaceId, modelName)));\n}\nfunction invert(map) {\n\treturn Object.fromEntries(Object.entries(map).map(([key, value]) => [value, key]));\n}\n/**\n* The column a name a caller passed maps in `fieldColumns`. A name that is not a field is refused with `ORM.FIELD_UNKNOWN`, so no caller reaches a column by its column name, including a column no field maps.\n*/\nfunction columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName) {\n\tconst column = Object.hasOwn(fieldColumns, fieldName) ? fieldColumns[fieldName] : void 0;\n\tif (column === void 0) throw callerFieldUnknown(contract, namespaceId, fieldColumns, modelName, fieldName);\n\treturn column;\n}\n/**\n* The refusal of a name a caller passed that is not a field of the model it addressed. When the name is the column of one of the fields in `fieldColumns`, or a column that no field maps on a table of the model's hierarchy, the message says so and names the table.\n*/\nfunction callerFieldUnknown(contract, namespaceId, fieldColumns, modelName, fieldName) {\n\tconst unknown = `Model \"${modelName}\" has no field \"${fieldName}\"`;\n\tconst fieldForColumn = Object.entries(fieldColumns).find(([, columns]) => typeof columns === \"string\" ? columns === fieldName : columns.includes(fieldName))?.[0];\n\tif (fieldForColumn !== void 0) return ormError(\"ORM.FIELD_UNKNOWN\", `${unknown}. \"${fieldName}\" is the column of field \"${fieldForColumn}\"; pass the field name.`, { meta: {\n\t\tmodel: modelName,\n\t\tfield: fieldName,\n\t\tfieldForColumn\n\t} });\n\tconst unmapped = getUnmappedColumns(contract, namespaceId, modelName).find(({ column }) => column === fieldName);\n\treturn ormError(\"ORM.FIELD_UNKNOWN\", `${unknown}${unmapped === void 0 ? \"\" : `. Table \"${unmapped.table}\" has a column \"${fieldName}\" that no field maps, so the ORM cannot read or write it.`}`, { meta: {\n\t\tmodel: modelName,\n\t\tfield: fieldName\n\t} });\n}\n/** The columns of the tables of a model's hierarchy that no field of the hierarchy maps. */\nfunction getUnmappedColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"unmappedColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst root = hierarchyRoot(contract, namespaceId, modelName);\n\t\tconst rootTable = domainModelTableInNamespace(contract, root.namespaceId, root.modelName);\n\t\tif (rootTable === void 0) return [];\n\t\tconst polymorphism = resolvePolymorphismInfo(contract, root.namespaceId, root.modelName);\n\t\treturn [{\n\t\t\t...root,\n\t\t\ttable: rootTable\n\t\t}, ...polymorphism?.mtiVariants ?? []].flatMap((model) => {\n\t\t\tconst read = new Set(getColumnsReadOnTable(contract, model.namespaceId, model.modelName, model.table));\n\t\t\treturn getAllTableColumns(contract, model.namespaceId, model.table).filter((column) => !read.has(column)).map((column) => ({\n\t\t\t\ttable: model.table,\n\t\t\t\tcolumn\n\t\t\t}));\n\t\t});\n\t});\n}\nfunction hierarchyRoot(contract, namespaceId, modelName) {\n\tconst base = modelOf(contract, namespaceId, modelName)?.base;\n\treturn base === void 0 ? {\n\t\tnamespaceId,\n\t\tmodelName\n\t} : hierarchyRoot(contract, base.namespace, base.model);\n}\n/**\n* The column a field name the contract itself gives maps among the model's own and inherited fields, such as a relation's join field or a discriminator. The contract was validated, so a name that is not a field is an internal error.\n*/\nfunction columnOfContractField(contract, namespaceId, modelName, fieldName) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst column = Object.hasOwn(fieldColumns, fieldName) ? fieldColumns[fieldName] : void 0;\n\tif (column === void 0) throw new InternalError(`Model \"${modelName}\" has no field \"${fieldName}\" the contract names`);\n\treturn column;\n}\n/**\n* The field that maps `column` in `columnFields`. The ORM only asks this for a column it chose itself, such as a key column or a column it projected, so a column no field maps is an internal error.\n*/\nfunction fieldOfColumn(columnFields, modelName, column) {\n\tconst field = Object.hasOwn(columnFields, column) ? columnFields[column] : void 0;\n\tif (field === void 0) throw new InternalError(`Column \"${column}\" of model \"${modelName}\" is mapped by no field`);\n\treturn field;\n}\n/**\n* The columns a relation's target fields name. A relation through a junction table names the junction's columns there, not fields of the target model.\n*/\nfunction resolveRelationTargetColumns(contract, relation) {\n\tif (relation.through !== void 0) return [...relation.on.targetFields];\n\treturn relation.on.targetFields.map((field) => columnOfContractField(contract, relation.toNamespace, relation.to, field));\n}\n/**\n* The fields a multi-table variant declares, with the table and column each maps, which is the variant's own table the read path joins. A single-table variant's columns are on the base table, and inherited fields are on the base model's table, so neither appears here.\n*/\nfunction resolveVariantFieldColumns(contract, namespaceId, baseModelName, variantValue) {\n\tconst variant = resolvePolymorphismInfo(contract, namespaceId, baseModelName)?.variants.get(variantValue);\n\tif (variant?.strategy !== \"mti\") return {};\n\treturn Object.fromEntries(Object.entries(getModelFields(contract, variant.namespaceId, variant.modelName)).filter(([, field]) => field.namespaceId === variant.namespaceId && field.table === variant.table));\n}\n/** Every column of a table, in table order. */\nfunction getAllTableColumns(contract, namespaceId, tableName) {\n\ttry {\n\t\treturn Object.keys(storageTableForContract(contract, namespaceId, tableName).columns);\n\t} catch (error) {\n\t\tif (error instanceof Error && error.message.includes(\"ambiguous\")) throw error;\n\t\tthrow ormError(\"ORM.TABLE_UNKNOWN\", `Unknown table \"${tableName}\" in SQL ORM query planner`, { meta: {\n\t\t\tnamespaceId,\n\t\t\ttableName\n\t\t} });\n\t}\n}\nfunction isMultiTableVariantTable(contract, namespaceId, modelName, tableNamespaceId, tableName) {\n\tconst base = modelOf(contract, namespaceId, modelName)?.base;\n\treturn base !== void 0 && namespaceId === tableNamespaceId && domainModelTableInNamespace(contract, namespaceId, modelName) === tableName && (base.namespace !== tableNamespaceId || domainModelTableInNamespace(contract, base.namespace, base.model) !== tableName);\n}\n/**\n* The columns of `tableName` a query on `modelName` reads, in table order: the columns on that table of the model's own and inherited fields and of its variants' fields, and, on a multi-table variant's table, the key the variant inherits. Any other column of the table is storage the model does not map, and the ORM never reads it into a row.\n*/\nfunction getColumnsReadOnTable(contract, namespaceId, modelName, tableName, tableNamespaceId = namespaceId) {\n\treturn cachedFor(contract, [\n\t\t\"columnsReadOnTable\",\n\t\tnamespaceId,\n\t\tmodelName,\n\t\ttableNamespaceId,\n\t\ttableName\n\t], () => {\n\t\tconst read = /* @__PURE__ */ new Set();\n\t\tconst addFieldsOnTable = (modelNamespaceId, name) => {\n\t\t\tfor (const field of Object.values(getModelFields(contract, modelNamespaceId, name))) if (field.namespaceId === tableNamespaceId && field.table === tableName) read.add(field.column);\n\t\t};\n\t\tconst addInheritedKey = () => {\n\t\t\tfor (const column of resolvePrimaryKeyColumns(contract, tableNamespaceId, tableName)) read.add(column);\n\t\t};\n\t\taddFieldsOnTable(namespaceId, modelName);\n\t\tif (isMultiTableVariantTable(contract, namespaceId, modelName, tableNamespaceId, tableName)) addInheritedKey();\n\t\tconst variants = resolvePolymorphismInfo(contract, namespaceId, modelName)?.variants.values();\n\t\tfor (const variant of variants ?? []) {\n\t\t\tif (variant.namespaceId !== tableNamespaceId || variant.table !== tableName) continue;\n\t\t\taddFieldsOnTable(variant.namespaceId, variant.modelName);\n\t\t\tif (variant.strategy === \"mti\") addInheritedKey();\n\t\t}\n\t\treturn getAllTableColumns(contract, tableNamespaceId, tableName).filter((column) => read.has(column));\n\t});\n}\n/** The namespace and name of the model a query or write addresses: the variant it is narrowed to, otherwise the collection's model. */\nfunction addressedModel(contract, namespaceId, modelName, variantValue) {\n\tconst variant = variantValue === void 0 ? void 0 : resolvePolymorphismInfo(contract, namespaceId, modelName)?.variants.get(variantValue);\n\treturn variant === void 0 ? [namespaceId, modelName] : [variant.namespaceId, variant.modelName];\n}\nfunction resolveIncludeRelation(contract, namespaceId, baseModelName, relationName, variantValue) {\n\tconst polymorphism = resolvePolymorphismInfo(contract, namespaceId, baseModelName);\n\tconst variant = variantValue === void 0 ? void 0 : polymorphism?.variants.get(variantValue);\n\tlet declaringNamespaceId = namespaceId;\n\tlet declaringModelName = baseModelName;\n\tlet localVariantValue;\n\tlet relation;\n\tif (variant !== void 0) {\n\t\tconst variantRelations = resolveModelRelations(contract, variant.namespaceId, variant.modelName);\n\t\tconst candidate = Object.hasOwn(variantRelations, relationName) ? variantRelations[relationName] : void 0;\n\t\tif (candidate !== void 0) {\n\t\t\trelation = candidate;\n\t\t\tdeclaringNamespaceId = variant.namespaceId;\n\t\t\tdeclaringModelName = variant.modelName;\n\t\t\tlocalVariantValue = variant.strategy === \"mti\" ? variant.value : void 0;\n\t\t}\n\t}\n\tconst baseRelations = resolveModelRelations(contract, namespaceId, baseModelName);\n\trelation ??= Object.hasOwn(baseRelations, relationName) ? baseRelations[relationName] : void 0;\n\tif (!relation) throw ormError(\"ORM.RELATION_UNKNOWN\", `Relation '${relationName}' not found on model '${baseModelName}'`, { meta: {\n\t\tmodel: baseModelName,\n\t\trelation: relationName\n\t} });\n\tconst { localFields, targetFields } = relation.on;\n\tif (localFields.length === 0 || localFields.length !== targetFields.length) throw new InternalError(`Relation '${relationName}' on model '${declaringModelName}' has incomplete join metadata: ${localFields.length} local field(s), ${targetFields.length} target field(s)`);\n\tconst localColumns = localFields.map((field) => columnOfContractField(contract, declaringNamespaceId, declaringModelName, field));\n\tconst targetColumns = resolveRelationTargetColumns(contract, relation);\n\tconst relatedTableName = resolveModelTableName(contract, relation.toNamespace, relation.to);\n\tlet through;\n\tif (relation.through !== void 0) through = {\n\t\ttable: relation.through.table,\n\t\tnamespaceId: relation.through.namespaceId,\n\t\tparentColumns: relation.through.parentColumns,\n\t\tchildColumns: relation.through.childColumns,\n\t\ttargetColumns: relation.through.targetColumns,\n\t\tparentLocalColumns: localColumns\n\t};\n\treturn {\n\t\trelatedModelName: relation.to,\n\t\trelatedNamespaceId: relation.toNamespace,\n\t\trelatedTableName,\n\t\t...ifDefined(\"localVariantValue\", localVariantValue),\n\t\ttargetColumns,\n\t\tlocalColumns,\n\t\tcardinality: relation.cardinality,\n\t\t...ifDefined(\"through\", through)\n\t};\n}\nfunction resolveThrough(contract, through) {\n\tif (!through) return void 0;\n\tconst { table, namespaceId, parentColumns, childColumns, targetColumns } = through;\n\tconst junctionTable = contract.storage.namespaces[namespaceId]?.entries.table?.[table];\n\tif (!junctionTable) return void 0;\n\tconst fkColumnSet = /* @__PURE__ */ new Set([...parentColumns, ...childColumns]);\n\tconst requiredPayloadColumns = [];\n\tfor (const [colName, col] of Object.entries(junctionTable.columns)) if (!fkColumnSet.has(colName) && !col.nullable && col.default === void 0 && !hasExecutionCreateDefault(contract, namespaceId, table, colName)) requiredPayloadColumns.push(colName);\n\treturn {\n\t\ttable,\n\t\tnamespaceId,\n\t\tparentColumns,\n\t\tchildColumns,\n\t\ttargetColumns,\n\t\trequiredPayloadColumns\n\t};\n}\nfunction hasExecutionCreateDefault(contract, namespace, table, column) {\n\treturn contract.execution?.mutations.defaults.some((mutationDefault) => mutationDefault.ref.namespace === namespace && mutationDefault.ref.entry === table && mutationDefault.ref.field === column && mutationDefault.onCreate !== void 0) ?? false;\n}\nconst modelRelationsCache = /* @__PURE__ */ new WeakMap();\nfunction resolveModelRelations(contract, namespaceId, modelName) {\n\tlet perContract = modelRelationsCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tmodelRelationsCache.set(contract, perContract);\n\t}\n\tconst cacheKey = metadataCacheKey(namespaceId, modelName);\n\tconst cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst relationMap = modelsOf(contract, namespaceId)[modelName]?.relations ?? {};\n\tconst resolved = {};\n\tfor (const [name, value] of Object.entries(relationMap)) {\n\t\tif (!value || typeof value !== \"object\") continue;\n\t\tconst rel = blindCast(value);\n\t\tconst localFields = rel.on?.localFields;\n\t\tconst targetFields = rel.on?.targetFields;\n\t\tif (!rel.to || typeof rel.to !== \"object\" || typeof rel.to.model !== \"string\" || !Array.isArray(localFields) || !Array.isArray(targetFields)) continue;\n\t\tconst through = resolveThrough(contract, rel.through);\n\t\tresolved[name] = {\n\t\t\tto: rel.to.model,\n\t\t\ttoNamespace: rel.to.namespace,\n\t\t\tcardinality: parseRelationCardinality(rel.cardinality),\n\t\t\ton: {\n\t\t\t\tlocalFields: blindCast(localFields),\n\t\t\t\ttargetFields: blindCast(targetFields)\n\t\t\t},\n\t\t\t...through !== void 0 ? { through } : {}\n\t\t};\n\t}\n\tperContract.set(cacheKey, resolved);\n\treturn resolved;\n}\nfunction parseRelationCardinality(value) {\n\tif (value === \"1:1\" || value === \"N:1\" || value === \"1:N\" || value === \"N:M\") return value;\n}\nfunction resolveUpsertConflictColumns(contract, namespaceId, modelName, conflictOn) {\n\tif (conflictOn && typeof conflictOn === \"object\") {\n\t\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\t\tconst columns = Object.keys(conflictOn).map((fieldName) => columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName));\n\t\tif (columns.length > 0) return columns;\n\t}\n\treturn [...storageTableForContract(contract, namespaceId, resolveModelTableName(contract, namespaceId, modelName)).primaryKey?.columns ?? []];\n}\nfunction resolveModelTableName(contract, namespaceId, modelName) {\n\tconst table = domainModelTableInNamespace(contract, namespaceId, modelName);\n\tif (table === void 0) throw new InternalError(`Model \"${modelName}\" has invalid or missing storage.table in namespace \"${namespaceId}\"`);\n\treturn table;\n}\nfunction resolvePrimaryKeyColumns(contract, namespaceId, tableName) {\n\tconst columns = resolveTableForContract(contract, namespaceId, tableName)?.table.primaryKey?.columns ?? [];\n\tif (columns.length === 0) throw new InternalError(`Table \"${tableName}\" in namespace \"${namespaceId}\" has no primary key to join its multi-table variants on`);\n\treturn columns;\n}\nfunction resolveRowIdentityColumns(contract, namespaceId, tableName) {\n\tlet table;\n\ttry {\n\t\ttable = storageTableForContract(contract, namespaceId, tableName);\n\t} catch (error) {\n\t\tif (error instanceof Error && error.message.includes(\"ambiguous\")) throw error;\n\t\treturn [];\n\t}\n\tif (table.primaryKey && table.primaryKey.columns.length > 0) return table.primaryKey.columns;\n\tfor (const unique of table.uniques) if (unique.columns.length > 0) return unique.columns;\n\treturn [];\n}\nfunction resolveUniqueKeyColumnSets(contract, namespaceId, tableName) {\n\tconst table = storageTableForContract(contract, namespaceId, tableName);\n\treturn [table.primaryKey?.columns ?? [], ...table.uniques.map((unique) => unique.columns)].filter((columns) => columns.length > 0);\n}\nfunction hasCompleteUniqueKey(contract, namespaceId, modelName, criterion) {\n\tif (typeof criterion !== \"object\" || criterion === null || Array.isArray(criterion)) return false;\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst fields = getModelFields(contract, namespaceId, modelName);\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst columnsWithValue = /* @__PURE__ */ new Set();\n\tfor (const [fieldName, value] of Object.entries(criterion)) {\n\t\tif (value === void 0) continue;\n\t\tconst column = columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName);\n\t\tconst field = fields[fieldName];\n\t\tif (value !== null && !isExpression(value) && field?.namespaceId === namespaceId && field.table === tableName) columnsWithValue.add(column);\n\t}\n\treturn resolveUniqueKeyColumnSets(contract, namespaceId, tableName).some((columns) => columns.every((column) => columnsWithValue.has(column)));\n}\nfunction assertReturningCapability(contract, action) {\n\tif (hasContractCapability(contract, \"returning\")) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${action} requires contract capability \"returning\"`, { meta: {\n\t\tcapability: \"returning\",\n\t\taction\n\t} });\n}\nfunction assertInsertConflictSkipCapability(contract, action, targeted) {\n\trequireCapability(contract, action, \"insertOnConflictSkip\");\n\tif (!targeted) requireCapability(contract, action, \"insertOnConflictWithoutTarget\");\n}\nfunction requireCapability(contract, action, capability) {\n\tif (hasContractCapability(contract, capability)) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${action} requires contract capability \"${capability}\". Re-emit the contract against an adapter that reports it.`, { meta: {\n\t\tcapability,\n\t\taction\n\t} });\n}\nfunction resolveInsertConflictColumns(contract, namespaceId, modelName, conflictOn) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\treturn conflictOn.map((fieldName) => columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName));\n}\nfunction assertDistinctOnCapability(contract, methodName) {\n\tif (contract.capabilities[\"postgres\"]?.[\"distinctOn\"] === true) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${methodName}() requires capability postgres.distinctOn`, { meta: {\n\t\tcapability: \"postgres.distinctOn\",\n\t\tmethod: methodName\n\t} });\n}\nfunction assertLockCapability(contract, requirement, methodName) {\n\tconst capability = missingCapability(contract.capabilities, requirement);\n\tif (capability === void 0) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${methodName}() requires capability ${capability}`, { meta: {\n\t\tcapability,\n\t\tmethod: methodName\n\t} });\n}\nfunction hasContractCapability(contract, capability) {\n\tconst capabilities = contract.capabilities;\n\tconst value = capabilities[capability];\n\tif (capabilityEnabled(value)) return true;\n\treturn Object.values(capabilities).some((targetCapabilities) => {\n\t\tif (typeof targetCapabilities !== \"object\" || targetCapabilities === null) return false;\n\t\treturn capabilityEnabled(targetCapabilities[capability]);\n\t});\n}\nfunction capabilityEnabled(value) {\n\tif (value === true) return true;\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn Object.values(blindCast(value)).some((flag) => flag === true);\n}\nfunction isToOneCardinality(cardinality) {\n\treturn cardinality === \"1:1\" || cardinality === \"N:1\";\n}\n//#endregion\n//#region src/aggregate-builder.ts\n/**\n* The aggregate selector methods, one per operation the registry contributes —\n* the runtime mirror of the contract's emitted aggregate map, which is what\n* types the surface as {@link AggregateBuilder}. Each method builds a selector\n* carrying the operation's name and, for a field-taking call, the field's\n* storage column; what a selector resolves to is the plan compiler's question\n* to the same registry.\n*/\nfunction createAggregateBuilder(contract, aggregates, namespaceId, modelName) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst builder = {};\n\tfor (const operation of aggregateOperationNames(aggregates)) builder[operation] = (field) => {\n\t\tconst column = field === void 0 ? void 0 : columnOfCallerField(contract, namespaceId, fieldColumns, modelName, field);\n\t\treturn {\n\t\t\tkind: \"aggregate\",\n\t\t\tfn: operation,\n\t\t\t...ifDefined(\"column\", column)\n\t\t};\n\t};\n\treturn blindCast(builder);\n}\nfunction isAggregateSelector(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst candidate = value;\n\treturn candidate.kind === \"aggregate\" && typeof candidate.fn === \"string\";\n}\n//#endregion\n//#region src/aggregate-codecs.ts\n/**\n* What an aggregate resolves to: the codec its result carries, and the expression the target wants built for it.\n*\n* An aggregate over a column resolves against that column's own codec, so a target that widens `sum` over small integers and preserves it over decimals answers differently per column without the caller knowing either rule. Where a target also needs the result rendered a particular way — a value its driver cannot otherwise carry — the descriptor's lowering says so, and the codec it declared stays the codec regardless.\n*\n* A pair the composed stack declares no overload for is rejected before any SQL is built: an undeclared aggregate has no result identity to project or decode, and executing it anyway would hand back the driver-native value the declared-codec path exists to replace.\n*/\nfunction resolveAggregate(query) {\n\tconst input = inputCodecRef(query);\n\tconst resolved = query.aggregates.resolve(query.fn, input);\n\tif (resolved === void 0) throw unsupportedAggregate(query, input);\n\tconst nullability = resolved.nullable ? { nullable: true } : {\n\t\tnullable: false,\n\t\temptyResultJson: resolved.emptyResultJson\n\t};\n\treturn {\n\t\tcodec: resolved.output,\n\t\t...nullability,\n\t\tinput,\n\t\tlower: resolved.lower\n\t};\n}\n/**\n* The plain SQL form of an operation in the closed aggregate alphabet.\n* Registry composition guarantees every operation outside the alphabet\n* carries a lowering hook, so a resolution without one for any other name is\n* a composition bug, not a user error.\n*/\nfunction plainAggregateExpr(fn, expr) {\n\tif (!isAggregateFn(fn)) throw new InternalError(`aggregate operation '${fn}' is outside the SQL aggregate alphabet and resolved without a lowering hook`);\n\treturn new AggregateExpr(fn, expr);\n}\nfunction unsupportedAggregate(query, input) {\n\treturn ormError(\"ORM.AGGREGATE_UNSUPPORTED\", input === void 0 ? `The composed target declares no '${query.fn}' aggregate for a call without an input.` : `The composed target declares no '${query.fn}' aggregate over codec '${input.codecId}' (column '${query.column}' of table '${query.tableName}').`, {\n\t\twhy: \"An aggregate result decodes through the codec its target declares; an undeclared pair has no declared result to type or decode.\",\n\t\tfix: `Aggregate a column the target declares '${query.fn}' for, or contribute an aggregate descriptor for this pair.`,\n\t\tmeta: {\n\t\t\toperation: query.fn,\n\t\t\ttable: query.tableName,\n\t\t\t...ifDefined(\"column\", query.column),\n\t\t\t...ifDefined(\"inputCodecId\", input?.codecId)\n\t\t}\n\t});\n}\n/** The codec of the value being aggregated — the column's own, or none where the aggregate is over rows. */\nfunction inputCodecRef(query) {\n\treturn query.column === void 0 ? void 0 : codecRefForStorageColumn(query.contract.storage, query.namespaceId, query.tableName, query.column);\n}\n//#endregion\n//#region src/aggregate-empty-result.ts\n/**\n* What an aggregate reads as when there is no row to read at all.\n*\n* SQL answers an empty input set itself — a nullable-declared aggregate\n* collapses to NULL, a non-nullable one to a value SQL still produces, a\n* count's zero cardinality — so this covers only the degenerate case of a\n* result set with no row: an absent aggregate alias, or an include whose\n* envelope never arrived. The answer reads off the operation's declared row:\n* NULL where the row is nullable, else the value the row declares, decoded\n* through the codec it declared beside it — so the application sees the same\n* value shape a real row would produce, in whichever form that codec's\n* canonical JSON takes.\n*/\nfunction emptyAggregateResult(result, codec) {\n\treturn result.nullable ? null : codec.decodeJson(result.emptyResultJson);\n}\n//#endregion\n//#region src/collection-column-mapping.ts\n/** The columns of a model's own and inherited fields, for operations that apply each column to the model's table: `groupBy`, `distinct` and `distinctOn`. */\nfunction mapFieldsToColumns(contract, namespaceId, modelName, fieldNames) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\treturn fieldNames.map((fieldName) => columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName));\n}\n/** The columns a `select` names: the narrowed variant's fields too, or, when the collection is not narrowed, every variant's fields, each name reading every column a variant maps it to. See `getModelAndVariantFieldColumns` for why `select` accepts more than other surfaces. */\nfunction mapSelectedFieldsToColumns(contract, namespaceId, modelName, variantValue, fieldNames) {\n\tconst [addressedNamespaceId, addressed] = addressedModel(contract, namespaceId, modelName, variantValue);\n\tif (variantValue !== void 0) {\n\t\tconst fieldColumns = getModelAndVariantFieldColumns(contract, namespaceId, modelName, variantValue);\n\t\treturn fieldNames.map((fieldName) => columnOfCallerField(contract, addressedNamespaceId, fieldColumns, addressed, fieldName));\n\t}\n\tconst fieldColumns = getModelAndEveryVariantFieldColumns(contract, namespaceId, modelName);\n\treturn fieldNames.flatMap((fieldName) => {\n\t\tconst columns = Object.hasOwn(fieldColumns, fieldName) ? fieldColumns[fieldName] : void 0;\n\t\tif (columns === void 0) throw callerFieldUnknown(contract, namespaceId, fieldColumns, addressed, fieldName);\n\t\treturn [...columns];\n\t});\n}\nfunction mapCursorValuesToColumns(contract, namespaceId, modelName, cursorValues) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst mappedCursor = {};\n\tfor (const [fieldName, value] of Object.entries(cursorValues)) {\n\t\tif (value === void 0) continue;\n\t\tmappedCursor[columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName)] = value;\n\t}\n\treturn mappedCursor;\n}\n//#endregion\n//#region src/table-scope.ts\nconst MAX_ALIAS_BYTES = 63;\nconst encoder = new TextEncoder();\nfunction shortenToBytes(value, maxBytes) {\n\tlet shortened = \"\";\n\tlet bytes = 0;\n\tfor (const character of value) {\n\t\tbytes += encoder.encode(character).length;\n\t\tif (bytes > maxBytes) break;\n\t\tshortened += character;\n\t}\n\treturn shortened;\n}\nvar TableScopeImpl = class TableScopeImpl {\n\t#aliases;\n\tconstructor(aliases = []) {\n\t\tthis.#aliases = new Set(aliases);\n\t}\n\talias(preferred) {\n\t\tfor (let n = 1;; n += 1) {\n\t\t\tconst suffix = n === 1 ? \"\" : `_${n}`;\n\t\t\tconst candidate = `${shortenToBytes(preferred, MAX_ALIAS_BYTES - suffix.length)}${suffix}`;\n\t\t\tif (!this.#aliases.has(candidate)) {\n\t\t\t\tthis.#aliases.add(candidate);\n\t\t\t\treturn candidate;\n\t\t\t}\n\t\t}\n\t}\n\taliasTable(storage) {\n\t\tconst alias = this.alias(storage.tableName);\n\t\tconst coordinate = Object.freeze({ ...storage });\n\t\treturn Object.freeze({\n\t\t\talias,\n\t\t\tstorage: coordinate,\n\t\t\tcolumn: (name) => ColumnRef.of(alias, name),\n\t\t\ttableSource: (contract) => tableSourceForContract(contract, coordinate.namespaceId, coordinate.tableName, alias)\n\t\t});\n\t}\n\tcopy() {\n\t\treturn new TableScopeImpl(this.#aliases);\n\t}\n};\nfunction createTableScope() {\n\treturn new TableScopeImpl();\n}\n//#endregion\n//#region src/collection-tables.ts\nfunction createModelTables(contract, scope, namespaceId, modelName, tableName) {\n\tconst root = scope.aliasTable({\n\t\tnamespaceId,\n\t\ttableName\n\t});\n\tconst variants = /* @__PURE__ */ new Map();\n\tconst mtiVariants = resolvePolymorphismInfo(contract, namespaceId, modelName)?.mtiVariants ?? [];\n\tfor (const variant of mtiVariants) variants.set(variant.value, scope.aliasTable({\n\t\tnamespaceId: variant.namespaceId,\n\t\ttableName: variant.table\n\t}));\n\treturn {\n\t\tscope,\n\t\troot,\n\t\tvariants\n\t};\n}\nfunction createCollectionTables(contract, namespaceId, modelName, tableName = resolveModelTableName(contract, namespaceId, modelName)) {\n\treturn createModelTables(contract, createTableScope(), namespaceId, modelName, tableName);\n}\nfunction createIncludeTables(contract, parent, relation) {\n\tconst scope = parent.scope.copy();\n\treturn {\n\t\ttables: createModelTables(contract, scope, relation.relatedNamespaceId, relation.relatedModelName, relation.relatedTableName),\n\t\tjunction: relation.through === void 0 ? void 0 : scope.aliasTable({\n\t\t\tnamespaceId: relation.through.namespaceId,\n\t\t\ttableName: relation.through.table\n\t\t})\n\t};\n}\nfunction createStatementTables(storage) {\n\tconst scope = createTableScope();\n\treturn {\n\t\tscope,\n\t\troot: scope.aliasTable(storage),\n\t\tvariants: /* @__PURE__ */ new Map()\n\t};\n}\nfunction withScopeCopy(tables) {\n\treturn {\n\t\t...tables,\n\t\tscope: tables.scope.copy()\n\t};\n}\nfunction requireVariantTable(tables, variantValue) {\n\tconst variantTable = tables.variants.get(variantValue);\n\tif (variantTable === void 0) throw new InternalError(`Collection state has no aliased table for variant \"${variantValue}\"`);\n\treturn variantTable;\n}\nfunction tableAliases(tables) {\n\treturn new Map([tables.root, ...tables.variants.values()].map((table) => [table.alias, table.storage]));\n}\nfunction variantColumnLabelPrefix(variantTable) {\n\treturn `${variantTable.alias}__`;\n}\nfunction variantColumnLabel(variantTable, column) {\n\treturn `${variantColumnLabelPrefix(variantTable)}${column}`;\n}\n//#endregion\n//#region src/collection-runtime.ts\nfunction stripHiddenMappedFields(contract, namespaceId, modelName, mapped, hiddenColumns) {\n\tif (hiddenColumns.length === 0) return;\n\tconst columnToField = getModelColumnFields(contract, namespaceId, modelName);\n\tfor (const hiddenColumn of hiddenColumns) {\n\t\tconst fieldName = Object.hasOwn(columnToField, hiddenColumn) ? columnToField[hiddenColumn] : void 0;\n\t\tif (fieldName !== void 0) delete mapped[fieldName];\n\t}\n}\nfunction mapStorageRowToModelFields(contract, namespaceId, modelName, row) {\n\treturn mapKnownColumnNames(row, getModelColumnFields(contract, namespaceId, modelName));\n}\nfunction createStorageRowMapper(contract, namespaceId, modelName) {\n\tconst columnToField = getModelColumnFields(contract, namespaceId, modelName);\n\treturn (row) => mapKnownColumnNames(row, columnToField);\n}\nconst mergedColumnToFieldCache = /* @__PURE__ */ new WeakMap();\nfunction getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variant, variantTable) {\n\tconst cacheKey = `${namespaceId}:${baseModelName}:${variant.value}:${variantTable?.alias ?? \"\"}`;\n\tlet perContract = mergedColumnToFieldCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tmergedColumnToFieldCache.set(contract, perContract);\n\t}\n\tconst cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst baseMap = getModelColumnFields(contract, namespaceId, baseModelName);\n\tconst variantMap = getOwnColumnFields(contract, variant.namespaceId, variant.modelName);\n\tconst merged = { ...baseMap };\n\tfor (const [col, field] of Object.entries(variantMap)) if (variantTable) merged[variantColumnLabel(variantTable, col)] = field;\n\telse merged[col] = field;\n\tperContract.set(cacheKey, merged);\n\treturn merged;\n}\nfunction variantTableOf(tables, variant) {\n\treturn variant.strategy === \"mti\" ? requireVariantTable(tables, variant.value) : void 0;\n}\nfunction mapPolymorphicRow(contract, namespaceId, baseModelName, polyInfo, tables, row, variantValue) {\n\tconst discriminatorValue = row[polyInfo.discriminatorColumn] ?? row[\"__prisma_polymorphic_discriminator\"];\n\tconst selectedValue = variantValue ?? discriminatorValue;\n\tconst variant = typeof selectedValue === \"string\" ? polyInfo.variants.get(selectedValue) : void 0;\n\tif (!variant) return mapKnownColumnNames(row, getModelColumnFields(contract, namespaceId, baseModelName));\n\treturn mapKnownColumnNames(row, getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variant, variantTableOf(tables, variant)));\n}\nfunction createPolymorphicRowMapper(contract, namespaceId, baseModelName, polyInfo, tables, variantValue) {\n\tconst baseMapper = captureColumnMapper(() => getModelColumnFields(contract, namespaceId, baseModelName));\n\tconst mappersByValue = /* @__PURE__ */ new Map();\n\tlet pinnedMapper = baseMapper;\n\tfor (const [value, variant] of polyInfo.variants) {\n\t\tif (variantValue && value !== variantValue) continue;\n\t\tconst mapper = captureColumnMapper(() => getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variant, variantTableOf(tables, variant)));\n\t\tif (variantValue) pinnedMapper = mapper;\n\t\tmappersByValue.set(value, mapper);\n\t}\n\tconst discriminatorColumn = polyInfo.discriminatorColumn;\n\treturn (row) => {\n\t\tconst value = row[discriminatorColumn] ?? row[\"__prisma_polymorphic_discriminator\"];\n\t\treturn (variantValue ? pinnedMapper : typeof value === \"string\" ? mappersByValue.get(value) ?? baseMapper : baseMapper)(row);\n\t};\n}\nfunction captureColumnMapper(resolve) {\n\ttry {\n\t\tconst columns = resolve();\n\t\treturn (row) => mapKnownColumnNames(row, columns);\n\t} catch (error) {\n\t\treturn () => {\n\t\t\tthrow error;\n\t\t};\n\t}\n}\n/** Maps a row from columns to fields. A column no field maps is dropped. */\nfunction mapKnownColumnNames(row, columns) {\n\tconst mapped = {};\n\tfor (const [col, val] of Object.entries(row)) {\n\t\tconst field = Object.hasOwn(columns, col) ? columns[col] : void 0;\n\t\tif (field !== void 0) mapped[field] = val;\n\t}\n\treturn mapped;\n}\n/** Refuses any name in `data` with a value that is not a field of the model, as `mapModelDataToStorageRow` would, before anything reads or writes a row. */\nfunction assertModelFieldNames(contract, namespaceId, modelName, data) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tfor (const [fieldName, value] of Object.entries(data)) if (value !== void 0) columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName);\n}\nfunction mapModelDataToStorageRow(contract, namespaceId, modelName, row) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst mapped = {};\n\tfor (const [fieldName, value] of Object.entries(row)) {\n\t\tif (value === void 0) continue;\n\t\tmapped[columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName)] = value;\n\t}\n\treturn mapped;\n}\nfunction mapResultRows(result, mapper) {\n\tconst generator = async function* () {\n\t\tfor await (const value of result) yield mapper(value);\n\t};\n\treturn new AsyncIterableResult(generator());\n}\n//#endregion\n//#region src/column-codec.ts\nfunction resolveColumn(contract, namespaceId, tableName, columnName) {\n\treturn resolveTableForContract(contract, namespaceId, tableName)?.table.columns[columnName];\n}\nfunction codecTraits(context, codecId) {\n\treturn context.codecDescriptors.descriptorFor(codecId)?.traits ?? [];\n}\nfunction hasTrait(context, codecId, trait) {\n\treturn codecTraits(context, codecId).includes(trait);\n}\n//#endregion\n//#region src/order-by-guards.ts\n/**\n* A keyset needs a cursor value for every order axis, so each active order must be a plain column without null placement.\n*/\nfunction assertCursorCompatibleOrder(orderBy) {\n\t(orderBy ?? []).forEach((item, index) => {\n\t\tconst position = index + 1;\n\t\tif (item.expr.kind !== \"column-ref\") throw ormError(\"ORM.ARGUMENT_INVALID\", `cursor() cannot key on orderBy item ${position}: it orders by an expression rather than a column, and relation orders, relation counts and operation results are not cursorable. Order by the model's own columns to paginate with a cursor.`, { meta: {\n\t\t\tmethod: \"cursor\",\n\t\t\tposition\n\t\t} });\n\t\tif (item.nulls !== void 0) throw ormError(\"ORM.ARGUMENT_INVALID\", `cursor() cannot key on orderBy item ${position}: an order with nulls placement is not cursorable. Remove the nulls option to paginate with a cursor.`, { meta: {\n\t\t\tmethod: \"cursor\",\n\t\t\tposition,\n\t\t\tnulls: item.nulls\n\t\t} });\n\t});\n}\n/**\n* Postgres requires the leading `ORDER BY` items to match the `DISTINCT ON` expressions, so the first `distinctOnCount` items must be plain columns; later items only choose which row represents each group and may be any expression.\n*/\nfunction assertDistinctOnCompatibleOrder(orderBy, distinctOnCount) {\n\t(orderBy ?? []).slice(0, distinctOnCount).forEach((item, index) => {\n\t\tconst position = index + 1;\n\t\tif (item.expr.kind !== \"column-ref\") throw ormError(\"ORM.ARGUMENT_INVALID\", `distinctOn() needs its ${distinctOnCount} column(s) as the first orderBy items, but orderBy item ${position} orders by an expression rather than a column. Put the distinctOn columns first; relation orders, relation counts and operation results may follow them.`, { meta: {\n\t\t\tmethod: \"distinctOn\",\n\t\t\tposition,\n\t\t\tdistinctOnCount\n\t\t} });\n\t});\n}\nfunction checkedOrderByItem(dir, expr, options) {\n\tconst nulls = options?.nulls;\n\tif (nulls !== void 0 && !isOrderByNulls(nulls)) throw ormError(\"ORM.ARGUMENT_INVALID\", `${dir}() nulls must be \"first\" or \"last\"`, { meta: {\n\t\tmethod: dir,\n\t\tnulls: String(nulls)\n\t} });\n\treturn new OrderByItem(expr, dir, nulls);\n}\n//#endregion\n//#region src/query-plan-meta.ts\nfunction deriveParamsFromAst(ast) {\n\treturn { params: collectOrderedParamRefs(ast).map((p) => p.kind === \"param-ref\" ? p.value : void 0) };\n}\nfunction buildOrmPlanMeta(contract, annotations) {\n\tconst annotationRecord = annotations !== void 0 && annotations.size > 0 ? Object.freeze(Object.fromEntries(annotations)) : void 0;\n\treturn {\n\t\ttarget: contract.target,\n\t\ttargetFamily: contract.targetFamily,\n\t\tstorageHash: contract.storage.storageHash,\n\t\t...ifDefined(\"profileHash\", contract.profileHash),\n\t\t...ifDefined(\"annotations\", annotationRecord),\n\t\tlane: \"orm-client\"\n\t};\n}\nfunction buildOrmQueryPlan(contract, ast, params, annotations) {\n\treturn Object.freeze({\n\t\tast,\n\t\tparams: [...params],\n\t\tmeta: buildOrmPlanMeta(contract, annotations)\n\t});\n}\n/**\n* Merges annotations into an existing `SqlQueryPlan`'s\n* `meta.annotations` and returns a new frozen plan.\n*\n* Used by the ORM dispatch path to attach terminal-call annotations to\n* plans produced by mutation compile functions (which don't take\n* annotations as parameters). Reads compile through `compileSelect`-\n* family functions that pass `state.annotations` directly to\n* `buildOrmQueryPlan`; this helper is the alternate path for write\n* terminals where annotations arrive at the call site, not via state.\n*\n* Returns the input plan unchanged when `annotations` is undefined\n* or empty. Reserved namespaces already on the input plan (`codecs`, target keys such as `pg`)\n* win over caller-supplied entries under the same key —\n* see the reserved-namespace policy on `defineAnnotation`.\n*/\nfunction mergeAnnotations(plan, annotations) {\n\tif (annotations === void 0 || annotations.size === 0) return plan;\n\tconst callerEntries = {};\n\tfor (const [namespace, value] of annotations) callerEntries[namespace] = value;\n\tconst mergedAnnotations = Object.freeze({\n\t\t...callerEntries,\n\t\t...plan.meta.annotations ?? {}\n\t});\n\treturn Object.freeze({\n\t\t...plan,\n\t\tmeta: Object.freeze({\n\t\t\t...plan.meta,\n\t\t\tannotations: mergedAnnotations\n\t\t})\n\t});\n}\n//#endregion\n//#region src/where-binding.ts\nfunction bindWhereExpr(contract, expr, aliases) {\n\treturn bindWhereExprInScope(contract, expr, aliases);\n}\nfunction bindWhereExprInScope(contract, expr, aliases) {\n\treturn expr.accept({\n\t\tcolumnRef(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tidentifierRef(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tsubquery(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\toperation(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\taggregate(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\twindowFunc(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tfunctionCall(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tcast(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tcase(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tjsonObject(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tjsonArrayAgg(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tliteral(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tparam(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tpreparedParam(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tlist(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tbinary(expr) {\n\t\t\tconst left = bindExpression(contract, expr.left, aliases);\n\t\t\tconst bindingColumn = left.kind === \"column-ref\" ? left : void 0;\n\t\t\treturn new BinaryExpr(expr.op, left, bindComparable(contract, expr.right, bindingColumn, aliases));\n\t\t},\n\t\tand(expr) {\n\t\t\treturn AndExpr.of(expr.exprs.map((part) => bindWhereExprInScope(contract, part, aliases)));\n\t\t},\n\t\tor(expr) {\n\t\t\treturn OrExpr.of(expr.exprs.map((part) => bindWhereExprInScope(contract, part, aliases)));\n\t\t},\n\t\texists(expr) {\n\t\t\treturn expr.notExists ? ExistsExpr.notExists(bindSelectAst(contract, expr.subquery, aliases)) : ExistsExpr.exists(bindSelectAst(contract, expr.subquery, aliases));\n\t\t},\n\t\tnullCheck(expr) {\n\t\t\treturn expr.isNull ? NullCheckExpr.isNull(bindExpression(contract, expr.expr, aliases)) : NullCheckExpr.isNotNull(bindExpression(contract, expr.expr, aliases));\n\t\t},\n\t\tnot(expr) {\n\t\t\treturn new NotExpr(bindWhereExprInScope(contract, expr.expr, aliases));\n\t\t},\n\t\trawExpr(expr) {\n\t\t\treturn expr;\n\t\t}\n\t});\n}\nfunction bindComparable(contract, comparable, bindingColumn, aliases) {\n\tif (comparable.kind === \"param-ref\" || bindingColumn === void 0) return comparable.kind === \"param-ref\" ? comparable : comparable.kind === \"literal\" || comparable.kind === \"list\" ? comparable : bindExpression(contract, comparable, aliases);\n\tif (comparable.kind === \"literal\") return paramRefForAlias(contract, bindingColumn, comparable.value, aliases);\n\tif (comparable.kind === \"list\") return ListExpression.of(comparable.values.map((value) => value.kind === \"literal\" ? paramRefForAlias(contract, bindingColumn, value.value, aliases) : value));\n\treturn bindExpression(contract, comparable, aliases);\n}\nfunction unknownColumn(alias, column) {\n\treturn ormError(\"ORM.COLUMN_UNKNOWN\", `Unknown column \"${column}\" in table \"${alias}\"`, { meta: {\n\t\ttableName: alias,\n\t\tcolumn\n\t} });\n}\nfunction paramRefForAlias(contract, columnRef, value, aliases) {\n\tconst coordinate = aliases.get(columnRef.table);\n\tif (coordinate === void 0) throw unknownColumn(columnRef.table, columnRef.column);\n\treturn paramRefForTable(contract, coordinate, columnRef.table, columnRef.column, value);\n}\nfunction paramRefForTable(contract, coordinate, alias, column, value) {\n\tconst resolved = resolveStorageTable(contract.storage, coordinate.tableName, coordinate.namespaceId);\n\tif (resolved === void 0 || !resolved.table.columns[column]) throw unknownColumn(alias, column);\n\tconst codec = codecRefForStorageColumn(contract.storage, resolved.namespaceId, coordinate.tableName, column);\n\treturn ParamRef.of(value, codec ? { codec } : void 0);\n}\nfunction paramRefForStorageColumn(contract, storage, column, value) {\n\treturn paramRefForTable(contract, storage, storage.tableName, column, value);\n}\nfunction bindExpression(contract, expr, aliases) {\n\treturn expr.rewrite({ select: (ast) => bindSelectAst(contract, ast, aliases) });\n}\nfunction bindProjectionExpr(contract, expr, aliases) {\n\treturn expr.kind === \"literal\" ? expr : bindExpression(contract, expr, aliases);\n}\nfunction bindJoin(contract, join, aliases) {\n\treturn new JoinAst(join.joinType, bindFromSource(contract, join.source, aliases), join.on.kind === \"eq-col-join-on\" ? join.on : bindWhereExprInScope(contract, join.on, aliases), join.lateral);\n}\nfunction bindFromSource(contract, source, aliases) {\n\tif (source.kind === \"derived-table-source\") return DerivedTableSource.as(source.alias, bindSelectAst(contract, source.query, aliases));\n\treturn source;\n}\nfunction aliasesWithSources(outer, sources) {\n\tconst aliases = new Map(outer);\n\tfor (const source of sources) if (source.kind === \"table-source\") aliases.set(source.alias ?? source.name, {\n\t\tnamespaceId: source.namespaceId,\n\t\ttableName: source.name\n\t});\n\treturn aliases;\n}\nfunction bindSelectAst(contract, ast, outer) {\n\tconst aliases = aliasesWithSources(outer, [...ast.from !== void 0 ? [ast.from] : [], ...(ast.joins ?? []).map((join) => join.source)]);\n\treturn new SelectAst({\n\t\t...ast.from !== void 0 ? { from: bindFromSource(contract, ast.from, outer) } : {},\n\t\tjoins: ast.joins?.map((join) => bindJoin(contract, join, aliases)),\n\t\tprojection: ast.projection.map((projection) => new ProjectionItem(projection.alias, bindProjectionExpr(contract, projection.expr, aliases), projection.codec)),\n\t\twhere: ast.where ? bindWhereExprInScope(contract, ast.where, aliases) : void 0,\n\t\torderBy: ast.orderBy?.map((orderItem) => orderItem.withExpr(bindExpression(contract, orderItem.expr, aliases))),\n\t\tdistinct: ast.distinct,\n\t\tdistinctOn: ast.distinctOn?.map((expr) => bindExpression(contract, expr, aliases)),\n\t\tgroupBy: ast.groupBy?.map((expr) => bindExpression(contract, expr, aliases)),\n\t\thaving: ast.having ? bindWhereExprInScope(contract, ast.having, aliases) : void 0,\n\t\tlimit: ast.limit,\n\t\toffset: ast.offset,\n\t\tlocking: ast.locking,\n\t\tselectAllIntent: ast.selectAllIntent\n\t});\n}\n//#endregion\n//#region src/where-utils.ts\nfunction combineWhereExprs(filters) {\n\tif (filters.length === 0) return;\n\tif (filters.length === 1) return filters[0];\n\treturn AndExpr.of(filters);\n}\n//#endregion\n//#region src/query-plan-source.ts\nfunction createBoundaryExpr(contract, table, entry) {\n\treturn new BinaryExpr(entry.direction === \"asc\" ? \"gt\" : \"lt\", table.column(entry.column), paramRefForStorageColumn(contract, table.storage, entry.column, entry.value));\n}\nfunction buildLexicographicCursorWhere(contract, table, entries) {\n\tconst branches = entries.map((entry, index) => {\n\t\tconst branchExprs = [];\n\t\tfor (const prefixEntry of entries.slice(0, index)) branchExprs.push(BinaryExpr.eq(table.column(prefixEntry.column), paramRefForStorageColumn(contract, table.storage, prefixEntry.column, prefixEntry.value)));\n\t\tbranchExprs.push(createBoundaryExpr(contract, table, entry));\n\t\tif (branchExprs.length === 1) {\n\t\t\tconst branch = branchExprs[0];\n\t\t\tassertDefined(branch, \"cursor branch contains its boundary expression\");\n\t\t\treturn branch;\n\t\t}\n\t\treturn AndExpr.of(branchExprs);\n\t});\n\tif (branches.length === 1) {\n\t\tconst branch = branches[0];\n\t\tassertDefined(branch, \"cursor expression contains its single branch\");\n\t\treturn branch;\n\t}\n\treturn OrExpr.of(branches);\n}\nfunction buildCursorWhere(contract, table, orderBy, cursor) {\n\tif (!cursor || !orderBy || orderBy.length === 0) return;\n\tassertCursorCompatibleOrder(orderBy);\n\tconst entries = [];\n\tfor (const order of orderBy) {\n\t\tif (order.expr.kind !== \"column-ref\") throw new InternalError(\"assertCursorCompatibleOrder admits only column orders\");\n\t\tconst column = order.expr.column;\n\t\tconst value = cursor[column];\n\t\tif (value === void 0) throw ormError(\"ORM.CURSOR_VALUE_MISSING\", `Missing cursor value for orderBy column \"${column}\"`, { meta: { column } });\n\t\tentries.push({\n\t\t\tcolumn,\n\t\t\tdirection: order.dir,\n\t\t\tvalue\n\t\t});\n\t}\n\tconst firstEntry = entries[0];\n\tif (entries.length === 1 && firstEntry !== void 0) return createBoundaryExpr(contract, table, firstEntry);\n\treturn buildLexicographicCursorWhere(contract, table, entries);\n}\nfunction buildStateWhere(contract, state) {\n\tconst cursorWhere = buildCursorWhere(contract, state.tables.root, state.orderBy, state.cursor);\n\treturn combineWhereExprs(cursorWhere ? [...state.filters, cursorWhere] : state.filters);\n}\n/**\n* Wrap a base SELECT in a `ROW_NUMBER() OVER (PARTITION BY … ORDER BY …) = 1`\n* filter, implementing Prisma-style `.distinct(cols)` semantics: one\n* representative row per `(distinctColumnRefs)` group is kept; the rest\n* are dropped.\n*\n* Picking which row survives in each partition is governed by\n* `rankingOrderBy`. When the caller's `orderBy` doesn't fully order rows\n* within a partition (e.g. user wrote `.distinct('title')` with no\n* `orderBy`, or ties in their ordering), the choice is\n* implementation-defined — matching Prisma's documented nested-distinct\n* behaviour. Callers that want determinism should pass an `orderBy` that\n* is total within each partition.\n*\n* The wrapper forwards every column of `base.projection` through the\n* derived alias, so the wrapper's projection is byte-identical in alias\n* names — making this transparent to any outer query (`json_agg`,\n* correlated subquery, top-level SELECT) that consumes the SELECT.\n*/\nfunction wrapWithRowNumberDedup(options) {\n\tconst { base, distinctColumnRefs, rankingOrderBy, rankedAlias } = options;\n\tconst rnAlias = \"__prisma_distinct_rn\";\n\tconst effectiveOrderBy = rankingOrderBy.length > 0 ? rankingOrderBy : distinctColumnRefs.map((expr) => OrderByItem.asc(expr));\n\tconst inner = base.withProjection([...base.projection, ProjectionItem.of(rnAlias, WindowFuncExpr.rowNumber({\n\t\tpartitionBy: distinctColumnRefs,\n\t\torderBy: effectiveOrderBy\n\t}))]);\n\treturn SelectAst.from(DerivedTableSource.as(rankedAlias, inner)).withProjection(base.projection.map((item) => ProjectionItem.of(item.alias, ColumnRef.of(rankedAlias, item.alias), item.codec))).withWhere(BinaryExpr.eq(ColumnRef.of(rankedAlias, rnAlias), LiteralExpr.of(1)));\n}\n/**\n* FROM source + WHERE for `state.distinct`: wraps in a `ROW_NUMBER`-ranked\n* derived table aliased back to the root alias, so callers need no rewriting.\n*/\nfunction buildDedupedTableSource(contract, state, where, wrapProjection, joins) {\n\tconst { root } = state.tables;\n\tif (!hasEntries(state.distinct)) return {\n\t\tsource: root.tableSource(contract),\n\t\twhere\n\t};\n\tconst distinctColumnRefs = state.distinct.map((column) => root.column(column));\n\tconst rankingOrderBy = hasEntries(state.orderBy) ? state.orderBy : distinctColumnRefs.map((expr) => OrderByItem.asc(expr));\n\tlet inner = SelectAst.from(root.tableSource(contract)).withProjection([...wrapProjection, ProjectionItem.of(\"__prisma_distinct_rn\", WindowFuncExpr.rowNumber({\n\t\tpartitionBy: distinctColumnRefs,\n\t\torderBy: rankingOrderBy\n\t}))]);\n\tif (joins && joins.length > 0) inner = inner.withJoins(joins);\n\tif (where) inner = inner.withWhere(where);\n\treturn {\n\t\tsource: DerivedTableSource.as(root.alias, inner),\n\t\twhere: BinaryExpr.eq(root.column(\"__prisma_distinct_rn\"), LiteralExpr.of(1))\n\t};\n}\nfunction buildPrimaryKeyJoinOn(left, right, primaryKeyColumns) {\n\tconst [firstColumn] = primaryKeyColumns;\n\tif (primaryKeyColumns.length === 1 && firstColumn !== void 0) return EqColJoinOn.of(left.column(firstColumn), right.column(firstColumn));\n\treturn AndExpr.of(primaryKeyColumns.map((column) => BinaryExpr.eq(left.column(column), right.column(column))));\n}\nfunction buildMtiJoins(contract, tables, polyInfo, variantValue, selectedColumnsByVariant) {\n\tconst joins = [];\n\tconst projection = [];\n\tconst variantsToJoin = variantValue ? polyInfo.mtiVariants.filter((v) => v.value === variantValue) : polyInfo.mtiVariants;\n\tif (variantsToJoin.length === 0) return {\n\t\tjoins,\n\t\tprojection\n\t};\n\tconst { root } = tables;\n\tconst pkColumns = resolvePrimaryKeyColumns(contract, root.storage.namespaceId, root.storage.tableName);\n\tfor (const variant of variantsToJoin) {\n\t\tconst variantTable = requireVariantTable(tables, variant.value);\n\t\tconst joinOn = buildPrimaryKeyJoinOn(root, variantTable, pkColumns);\n\t\tjoins.push(variantValue ? JoinAst.inner(variantTable.tableSource(contract), joinOn) : JoinAst.left(variantTable.tableSource(contract), joinOn));\n\t\tconst { namespaceId, tableName } = variantTable.storage;\n\t\tconst variantColumns = getColumnsReadOnTable(contract, namespaceId, variant.modelName, tableName);\n\t\tconst selectedVariantColumns = selectedColumnsByVariant?.get(variant.value);\n\t\tfor (const col of variantColumns) {\n\t\t\tif (pkColumns.includes(col)) continue;\n\t\t\tif (selectedColumnsByVariant !== void 0 && selectedVariantColumns?.has(col) !== true) continue;\n\t\t\tprojection.push(ProjectionItem.of(variantColumnLabel(variantTable, col), variantTable.column(col), codecRefForStorageColumn(contract.storage, namespaceId, tableName, col)));\n\t\t}\n\t}\n\treturn {\n\t\tjoins,\n\t\tprojection\n\t};\n}\nfunction hasEntries(value) {\n\treturn value !== void 0 && value.length > 0;\n}\n/**\n* The rows an aggregate reduces over, one SELECT aliased to the root alias — an\n* aggregate has no outer level of its own, so where/joins/distinct/orderBy/\n* limit/offset all have to live in this one wrap.\n*/\nfunction buildAggregateInput(contract, state, modelName, projection) {\n\tconst { root } = state.tables;\n\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, root.storage.namespaceId, modelName) : void 0;\n\tconst variantJoins = polyInfo && polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, state.tables, polyInfo, state.variantValue, void 0).joins : [];\n\tconst where = buildStateWhere(contract, state);\n\tconst hiddenOrders = hasEntries(state.distinct) ? projectExpressionOrders(root, state.orderBy) : void 0;\n\tconst { source, where: effectiveWhere } = buildDedupedTableSource(contract, state, where, [...projection, ...hiddenOrders?.projection ?? []], variantJoins);\n\tlet inner = SelectAst.from(source).withProjection(projection);\n\tif (!hasEntries(state.distinct) && variantJoins.length > 0) inner = inner.withJoins(variantJoins);\n\tif (effectiveWhere) inner = inner.withWhere(effectiveWhere);\n\tif (hasEntries(state.distinctOn)) inner = inner.withDistinctOn(state.distinctOn.map((column) => root.column(column)));\n\tconst orderBy = hiddenOrders?.orderBy ?? state.orderBy;\n\tif (hasEntries(orderBy)) inner = inner.withOrderBy(orderBy);\n\tif (state.limit !== void 0) inner = inner.withLimit(state.limit);\n\tif (state.offset !== void 0) inner = inner.withOffset(state.offset);\n\treturn { source: DerivedTableSource.as(root.alias, inner) };\n}\n/**\n* The dedup wrap exposes only its projection, so an order over an expression (a relation order, a count, an operation result) cannot be evaluated above it. Each such order is projected inside the wrap as a hidden `__order_N` column and the outer order reads that column.\n*/\nfunction projectExpressionOrders(root, orderBy) {\n\tconst projection = [];\n\treturn {\n\t\tprojection,\n\t\torderBy: (orderBy ?? []).map((item, index) => {\n\t\t\tif (item.expr.kind === \"column-ref\") return item;\n\t\t\tconst alias = `__order_${index}`;\n\t\t\tprojection.push(ProjectionItem.of(alias, item.expr));\n\t\t\treturn item.withExpr(root.column(alias));\n\t\t})\n\t};\n}\n//#endregion\n//#region src/predicate-comparison.ts\nfunction predicateComparison(op, left, right) {\n\tconst nullable = (right.kind === \"list\" ? [left, ...right.values] : [left, right]).find((operand) => operand.kind === \"prepared-param-ref\" && operand.nullable);\n\tif (nullable?.kind !== \"prepared-param-ref\") return new BinaryExpr(op, left, right);\n\tif (op === \"eq\" || op === \"neq\") return new BinaryExpr(op === \"eq\" ? \"isNotDistinctFrom\" : \"isDistinctFrom\", left, right);\n\tthrow ormError(\"ORM.FILTER_UNSUPPORTED\", `Structured ORM ${op} comparisons do not support nullable prepared parameter \"${nullable.name}\"`, { meta: { parameter: nullable.name } });\n}\n//#endregion\n//#region src/predicate-expression.ts\nfunction predicateExpression(value) {\n\tif (isExpression(value)) return value.buildAst();\n}\n//#endregion\n//#region src/types.ts\nfunction emptyState(tables) {\n\treturn {\n\t\ttables,\n\t\tfilters: [],\n\t\tincludes: [],\n\t\torderBy: void 0,\n\t\tcursor: void 0,\n\t\tdistinct: void 0,\n\t\tdistinctOn: void 0,\n\t\tselectedFields: void 0,\n\t\tlimit: void 0,\n\t\toffset: void 0,\n\t\tvariantValue: void 0,\n\t\tlocking: void 0,\n\t\tannotations: /* @__PURE__ */ new Map()\n\t};\n}\nfunction emptyGroupPagingState() {\n\treturn {\n\t\torderBy: [],\n\t\tlimit: void 0,\n\t\toffset: void 0\n\t};\n}\nfunction param(codec, value) {\n\tconst expression = predicateExpression(value);\n\tif (expression !== void 0) return expression;\n\tif (codec === void 0) return ParamRef.of(value);\n\treturn ParamRef.of(value, { codec });\n}\nfunction paramList(codec, values) {\n\treturn ListExpression.of(values.map((value) => param(codec, value)));\n}\nfunction scalarComparisonMethod(op) {\n\treturn ((left, codec) => (value) => {\n\t\tif (value === null && (op === \"eq\" || op === \"neq\")) return op === \"eq\" ? NullCheckExpr.isNull(left) : NullCheckExpr.isNotNull(left);\n\t\treturn predicateComparison(op, left, param(codec, value));\n\t});\n}\nfunction listComparisonMethod(op) {\n\treturn ((left, codec) => (values) => predicateComparison(op, left, paramList(codec, values)));\n}\n/**\n* Declares trait requirements and runtime factory for each comparison method.\n*\n* - `traits: []` means \"no trait required\" — always available\n* - Multi-trait: `traits: ['equality', 'order']` means BOTH traits are required\n*/\nconst COMPARISON_METHODS_META = {\n\teq: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: scalarComparisonMethod(\"eq\")\n\t},\n\tneq: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: scalarComparisonMethod(\"neq\")\n\t},\n\tin: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: listComparisonMethod(\"in\")\n\t},\n\tnotIn: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: listComparisonMethod(\"notIn\")\n\t},\n\tgt: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"gt\")\n\t},\n\tlt: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"lt\")\n\t},\n\tgte: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"gte\")\n\t},\n\tlte: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"lte\")\n\t},\n\tlike: {\n\t\ttraits: [\"textual\"],\n\t\tcreate: scalarComparisonMethod(\"like\")\n\t},\n\tasc: {\n\t\ttraits: [\"order\"],\n\t\tcreate: (left) => (options) => checkedOrderByItem(\"asc\", left, options)\n\t},\n\tdesc: {\n\t\ttraits: [\"order\"],\n\t\tcreate: (left) => (options) => checkedOrderByItem(\"desc\", left, options)\n\t},\n\tisNull: {\n\t\ttraits: [],\n\t\tcreate: (left) => () => NullCheckExpr.isNull(left)\n\t},\n\tisNotNull: {\n\t\ttraits: [],\n\t\tcreate: (left) => () => NullCheckExpr.isNotNull(left)\n\t}\n};\n//#endregion\n//#region src/query-plan-aggregate.ts\nfunction toAggregateProjection(contract, aggregates, root, selector) {\n\tconst { namespaceId, tableName } = root.storage;\n\tconst { codec, input: inputCodec, lower } = resolveAggregate({\n\t\taggregates,\n\t\tcontract,\n\t\tnamespaceId,\n\t\ttableName,\n\t\tfn: selector.fn,\n\t\tcolumn: selector.column\n\t});\n\tconst inputExpr = selector.column === void 0 ? void 0 : root.column(selector.column);\n\treturn {\n\t\texpr: lower !== void 0 ? lower({\n\t\t\texpr: inputExpr,\n\t\t\tinputCodec\n\t\t}) : plainAggregateExpr(selector.fn, inputExpr),\n\t\tcodec\n\t};\n}\nfunction validateGroupedComparable(value) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"ParamRef is not supported in grouped having expressions\", { meta: { kind: value.kind } });\n\t\tcase \"prepared-param-ref\":\n\t\tcase \"literal\":\n\t\tcase \"column-ref\":\n\t\tcase \"identifier-ref\":\n\t\tcase \"aggregate\":\n\t\tcase \"operation\": return value;\n\t\tcase \"function-call\":\n\t\tcase \"cast\":\n\t\tcase \"case\": throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", `Unsupported comparable kind in grouped having: \"${value.kind}\"`, { meta: { kind: value.kind } });\n\t\tcase \"list\":\n\t\t\tif (value.values.some((entry) => entry.kind === \"param-ref\")) throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"ParamRef is not supported in grouped having expressions\", { meta: { kind: \"list\" } });\n\t\t\treturn value;\n\t\tdefault: throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", `Unsupported comparable kind in grouped having: \"${value.kind}\"`, { meta: { kind: value.kind } });\n\t}\n}\nfunction validateGroupedMetricExpr(expr) {\n\tif (expr.kind !== \"aggregate\") throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"groupBy().having() only supports aggregate metric expressions\", { meta: { kind: expr.kind } });\n\treturn expr;\n}\nfunction rejectHavingExpr(expr) {\n\tthrow ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", `Unsupported grouped having expression kind \"${expr.kind}\"`, { meta: { kind: expr.kind } });\n}\nfunction validateGroupedHavingExpr(expr) {\n\treturn expr.accept({\n\t\tcolumnRef: rejectHavingExpr,\n\t\tidentifierRef: rejectHavingExpr,\n\t\tsubquery: rejectHavingExpr,\n\t\toperation: rejectHavingExpr,\n\t\taggregate: rejectHavingExpr,\n\t\twindowFunc: rejectHavingExpr,\n\t\tfunctionCall: rejectHavingExpr,\n\t\tcast: rejectHavingExpr,\n\t\tcase: rejectHavingExpr,\n\t\tjsonObject: rejectHavingExpr,\n\t\tjsonArrayAgg: rejectHavingExpr,\n\t\tliteral: rejectHavingExpr,\n\t\tparam() {\n\t\t\tthrow ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"ParamRef is not supported in grouped having expressions\", { meta: { kind: \"param-ref\" } });\n\t\t},\n\t\tpreparedParam() {\n\t\t\tthrow ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"PreparedParamRef is not supported in grouped having expressions\", { meta: { kind: \"prepared-param-ref\" } });\n\t\t},\n\t\tlist: rejectHavingExpr,\n\t\tand(expr) {\n\t\t\treturn AndExpr.of(expr.exprs.map((child) => validateGroupedHavingExpr(child)));\n\t\t},\n\t\tor(expr) {\n\t\t\treturn OrExpr.of(expr.exprs.map((child) => validateGroupedHavingExpr(child)));\n\t\t},\n\t\texists: rejectHavingExpr,\n\t\tnullCheck(expr) {\n\t\t\treturn new NullCheckExpr(validateGroupedMetricExpr(expr.expr), expr.isNull);\n\t\t},\n\t\tnot(expr) {\n\t\t\treturn new NotExpr(validateGroupedHavingExpr(expr.expr));\n\t\t},\n\t\tbinary(expr) {\n\t\t\treturn new BinaryExpr(expr.op, validateGroupedMetricExpr(expr.left), validateGroupedComparable(expr.right));\n\t\t},\n\t\trawExpr: rejectHavingExpr\n\t});\n}\nfunction aggregateInputColumns(root, entries, orderBy, groupByColumns = []) {\n\tconst columns = new Set(groupByColumns);\n\tfor (const [, selector] of entries) if (selector.column !== void 0) columns.add(selector.column);\n\tfor (const item of orderBy ?? []) if (item.expr.kind === \"column-ref\") columns.add(item.expr.column);\n\tif (columns.size === 0) return [ProjectionItem.of(\"__row\", LiteralExpr.of(1))];\n\treturn Array.from(columns, (column) => ProjectionItem.of(column, root.column(column)));\n}\nfunction compileAggregate(contract, aggregates, state, aggregateSpec, modelName) {\n\tconst { root } = state.tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tconst entries = Object.entries(aggregateSpec);\n\tif (entries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"aggregate() requires at least one aggregation selector\", { meta: {\n\t\tmethod: \"aggregate\",\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(state.orderBy, state.distinctOn.length);\n\t}\n\tconst hasPagination = state.limit !== void 0 || state.offset !== void 0;\n\tconst hasDistinct = state.distinct !== void 0 && state.distinct.length > 0 || state.distinctOn !== void 0 && state.distinctOn.length > 0;\n\tif (hasPagination || hasDistinct) {\n\t\tconst { source } = buildAggregateInput(contract, state, modelName, aggregateInputColumns(root, entries, state.orderBy));\n\t\tconst projection = entries.map(([alias, selector]) => {\n\t\t\tconst { expr, codec } = toAggregateProjection(contract, aggregates, root, selector);\n\t\t\treturn ProjectionItem.of(alias, expr, codec);\n\t\t});\n\t\tconst ast = SelectAst.from(source).withProjection(projection);\n\t\tconst { params } = deriveParamsFromAst(ast);\n\t\treturn buildOrmQueryPlan(contract, ast, params);\n\t}\n\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, namespaceId, modelName) : void 0;\n\tconst variantJoins = polyInfo && polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, state.tables, polyInfo, state.variantValue, void 0).joins : [];\n\tconst where = buildStateWhere(contract, state);\n\tconst projection = entries.map(([alias, selector]) => {\n\t\tconst { expr, codec } = toAggregateProjection(contract, aggregates, root, selector);\n\t\treturn ProjectionItem.of(alias, expr, codec);\n\t});\n\tlet ast = SelectAst.from(root.tableSource(contract)).withProjection(projection);\n\tif (variantJoins.length > 0) ast = ast.withJoins(variantJoins);\n\tif (where) ast = ast.withWhere(where);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileGroupedAggregate(contract, aggregates, preGroupState, groupByColumns, aggregateSpec, havingExpr, modelName, postGroup = emptyGroupPagingState()) {\n\tconst { root } = preGroupState.tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tif (groupByColumns.length === 0) throw ormError(\"ORM.GROUP_BY_FIELD_MISSING\", \"groupBy() requires at least one field\", { meta: {\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\tconst entries = Object.entries(aggregateSpec);\n\tif (entries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"groupBy().aggregate() requires at least one aggregation selector\", { meta: {\n\t\tmethod: \"groupBy.aggregate\",\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\tif (preGroupState.distinctOn !== void 0 && preGroupState.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(preGroupState.orderBy, preGroupState.distinctOn.length);\n\t}\n\tconst projection = [...groupByColumns.map((column) => ProjectionItem.of(column, root.column(column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column))), ...entries.map(([alias, selector]) => {\n\t\tconst { expr, codec } = toAggregateProjection(contract, aggregates, root, selector);\n\t\treturn ProjectionItem.of(alias, expr, codec);\n\t})];\n\tconst hasPagination = preGroupState.limit !== void 0 || preGroupState.offset !== void 0;\n\tconst hasDistinct = preGroupState.distinct !== void 0 && preGroupState.distinct.length > 0 || preGroupState.distinctOn !== void 0 && preGroupState.distinctOn.length > 0;\n\tconst needsInputSelect = hasPagination || hasDistinct;\n\tlet ast;\n\tif (needsInputSelect) {\n\t\tconst { source } = buildAggregateInput(contract, preGroupState, modelName, aggregateInputColumns(root, entries, preGroupState.orderBy, groupByColumns));\n\t\tast = SelectAst.from(source).withProjection(projection).withGroupBy(groupByColumns.map((column) => root.column(column)));\n\t} else {\n\t\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, namespaceId, modelName) : void 0;\n\t\tconst { tables, variantValue } = preGroupState;\n\t\tconst variantJoins = polyInfo && polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, tables, polyInfo, variantValue, void 0).joins : [];\n\t\tast = SelectAst.from(root.tableSource(contract)).withProjection(projection).withGroupBy(groupByColumns.map((column) => root.column(column)));\n\t\tif (variantJoins.length > 0) ast = ast.withJoins(variantJoins);\n\t\tconst where = buildStateWhere(contract, preGroupState);\n\t\tif (where) ast = ast.withWhere(where);\n\t}\n\tif (havingExpr) ast = ast.withHaving(validateGroupedHavingExpr(havingExpr));\n\tif (postGroup.orderBy.length > 0) ast = ast.withOrderBy(postGroup.orderBy);\n\tif (postGroup.limit !== void 0) ast = ast.withLimit(postGroup.limit);\n\tif (postGroup.offset !== void 0) ast = ast.withOffset(postGroup.offset);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\n//#endregion\n//#region src/query-plan-mutations.ts\nfunction aliasTarget(namespaceId, tableName) {\n\treturn createTableScope().aliasTable({\n\t\tnamespaceId,\n\t\ttableName\n\t});\n}\nfunction projectTableColumns(contract, target, columns) {\n\tconst { namespaceId, tableName } = target.storage;\n\treturn columns.map((column) => ProjectionItem.of(column, target.column(column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column)));\n}\nfunction returningProjection(contract, modelName, target, returningColumns) {\n\tconst { namespaceId, tableName } = target.storage;\n\treturn projectTableColumns(contract, target, returningColumns && returningColumns.length > 0 ? [...returningColumns] : getColumnsReadOnTable(contract, namespaceId, modelName, tableName));\n}\nfunction toParamAssignments(contract, namespaceId, tableName, values) {\n\tconst assignments = {};\n\tconst table = storageTableForContract(contract, namespaceId, tableName);\n\tfor (const [column, value] of Object.entries(values)) {\n\t\tif (!table.columns[column]) throw ormError(\"ORM.COLUMN_UNKNOWN\", `Unknown column \"${column}\" in table \"${tableName}\"`, { meta: {\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\tcolumn\n\t\t} });\n\t\tconst codec = codecRefForStorageColumn(contract.storage, namespaceId, tableName, column);\n\t\tassignments[column] = ParamRef.of(value, {\n\t\t\tname: column,\n\t\t\t...ifDefined(\"codec\", codec)\n\t\t});\n\t}\n\treturn { assignments };\n}\nfunction normalizeInsertRows(contract, namespaceId, tableName, rows) {\n\tif (rows.length === 0) throw new InternalError(\"normalizeInsertRows requires at least one row\");\n\tconst orderedColumns = [];\n\tconst seenColumns = /* @__PURE__ */ new Set();\n\tfor (const row of rows) for (const column of Object.keys(row)) {\n\t\tif (seenColumns.has(column)) continue;\n\t\tseenColumns.add(column);\n\t\torderedColumns.push(column);\n\t}\n\tconst table = storageTableForContract(contract, namespaceId, tableName);\n\treturn { rows: rows.map((row) => {\n\t\tif (orderedColumns.length === 0) return {};\n\t\tconst normalizedRow = {};\n\t\tfor (const column of orderedColumns) {\n\t\t\tif (Object.hasOwn(row, column)) {\n\t\t\t\tif (!table.columns[column]) throw ormError(\"ORM.COLUMN_UNKNOWN\", `Unknown column \"${column}\" in table \"${tableName}\"`, { meta: {\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\ttableName,\n\t\t\t\t\tcolumn\n\t\t\t\t} });\n\t\t\t\tconst codec = codecRefForStorageColumn(contract.storage, namespaceId, tableName, column);\n\t\t\t\tnormalizedRow[column] = ParamRef.of(row[column], {\n\t\t\t\t\tname: column,\n\t\t\t\t\t...ifDefined(\"codec\", codec)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnormalizedRow[column] = new DefaultValueExpr();\n\t\t}\n\t\treturn normalizedRow;\n\t}) };\n}\nfunction conflictSkipClause(target, conflictSkip) {\n\tif (!conflictSkip) return void 0;\n\tif (conflictSkip.columns.length === 0) return InsertOnConflict.doNothing();\n\treturn InsertOnConflict.on(conflictSkip.columns.map((column) => target.column(column))).doNothing();\n}\nfunction compileInsertReturning(contract, namespaceId, modelName, tableName, rows, returningColumns, conflictSkip) {\n\tconst target = aliasTarget(namespaceId, tableName);\n\tconst { rows: normalizedRows } = normalizeInsertRows(contract, namespaceId, tableName, rows);\n\tconst ast = InsertAst.into(target.tableSource(contract)).withRows(normalizedRows).withOnConflict(conflictSkipClause(target, conflictSkip)).withReturning(returningProjection(contract, modelName, target, returningColumns));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileInsertCount(contract, namespaceId, tableName, rows, conflictSkip) {\n\tconst target = aliasTarget(namespaceId, tableName);\n\tconst { rows: normalizedRows } = normalizeInsertRows(contract, namespaceId, tableName, rows);\n\tconst ast = InsertAst.into(target.tableSource(contract)).withRows(normalizedRows).withOnConflict(conflictSkipClause(target, conflictSkip));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction stripUndefinedValues(row) {\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(row)) if (value !== void 0) result[key] = value;\n\treturn result;\n}\nfunction countMutationWhere(contract, tables, filters, variantValue) {\n\tconst variantTable = variantValue === void 0 ? void 0 : tables.variants.get(variantValue);\n\tif (variantTable === void 0) return combineWhereExprs(filters);\n\tconst { root } = tables;\n\tconst pkColumns = resolvePrimaryKeyColumns(contract, root.storage.namespaceId, root.storage.tableName);\n\tconst rootCopy = tables.scope.copy().aliasTable(root.storage);\n\tconst where = combineWhereExprs([...pkColumns.map((column) => BinaryExpr.eq(rootCopy.column(column), root.column(column))), ...filters]);\n\tlet subquery = SelectAst.from(rootCopy.tableSource(contract)).withProjection(pkColumns.map((column) => ProjectionItem.of(column, rootCopy.column(column)))).withJoins([JoinAst.inner(variantTable.tableSource(contract), buildPrimaryKeyJoinOn(rootCopy, variantTable, pkColumns))]);\n\tif (where) subquery = subquery.withWhere(where);\n\treturn ExistsExpr.exists(subquery);\n}\nfunction groupRowsByColumnSignature(rows) {\n\tconst groups = [];\n\tlet currentKey = \"\";\n\tlet currentGroup = [];\n\tfor (const rawRow of rows) {\n\t\tconst row = stripUndefinedValues(rawRow);\n\t\tconst key = Object.keys(row).sort().join(\",\");\n\t\tif (key !== currentKey || currentGroup.length === 0) {\n\t\t\tif (currentGroup.length > 0) groups.push(currentGroup);\n\t\t\tcurrentKey = key;\n\t\t\tcurrentGroup = [row];\n\t\t} else currentGroup.push(row);\n\t}\n\tif (currentGroup.length > 0) groups.push(currentGroup);\n\treturn groups;\n}\nfunction compileInsertReturningSplit(contract, namespaceId, modelName, tableName, rows, returningColumns, conflictSkip) {\n\tif (rows.length === 0) throw ormError(\"ORM.MUTATION_DATA_MISSING\", \"create() requires at least one row\", { meta: {\n\t\tmethod: \"create\",\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\treturn groupRowsByColumnSignature(rows).map((group) => compileInsertReturning(contract, namespaceId, modelName, tableName, group, returningColumns, conflictSkip));\n}\nfunction compileInsertCountSplit(contract, namespaceId, tableName, rows, conflictSkip) {\n\tif (rows.length === 0) throw ormError(\"ORM.MUTATION_DATA_MISSING\", \"createAndCount() requires at least one row\", { meta: {\n\t\tmethod: \"createAndCount\",\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\treturn groupRowsByColumnSignature(rows).map((group) => compileInsertCount(contract, namespaceId, tableName, group, conflictSkip));\n}\nfunction compileUpsertReturning(contract, namespaceId, modelName, tableName, createValues, updateValues, conflictColumns, returningColumns) {\n\tconst createAssignments = toParamAssignments(contract, namespaceId, tableName, createValues);\n\tconst updateAssignments = Object.keys(updateValues).length > 0 ? toParamAssignments(contract, namespaceId, tableName, updateValues) : void 0;\n\tconst target = aliasTarget(namespaceId, tableName);\n\tconst conflictTarget = InsertOnConflict.on(conflictColumns.map((column) => target.column(column)));\n\tconst onConflict = updateAssignments ? conflictTarget.doUpdateSet(updateAssignments.assignments) : conflictTarget.doNothing();\n\tconst ast = InsertAst.into(target.tableSource(contract)).withRows([createAssignments.assignments]).withOnConflict(onConflict).withReturning(returningProjection(contract, modelName, target, returningColumns));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction updateAst(contract, tables, setValues, where) {\n\tconst { root } = tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tconst { assignments } = toParamAssignments(contract, namespaceId, tableName, setValues);\n\treturn UpdateAst.table(root.tableSource(contract)).withSet(assignments).withWhere(where);\n}\nfunction deleteAst(contract, tables, where) {\n\treturn DeleteAst.from(tables.root.tableSource(contract)).withWhere(where);\n}\nfunction compileUpdateReturning(contract, modelName, tables, setValues, filters, returningColumns) {\n\tconst ast = updateAst(contract, tables, setValues, combineWhereExprs(filters)).withReturning(returningProjection(contract, modelName, tables.root, returningColumns));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileUpdateCount(contract, tables, setValues, filters, variantValue) {\n\tconst ast = updateAst(contract, tables, setValues, countMutationWhere(contract, tables, filters, variantValue));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileDeleteCount(contract, tables, filters, variantValue) {\n\tconst ast = deleteAst(contract, tables, countMutationWhere(contract, tables, filters, variantValue));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\n//#endregion\n//#region src/lock-guards.ts\nfunction includeCarriesLock(include) {\n\treturn [\n\t\tinclude.nested,\n\t\t...include.scalar === void 0 ? [] : [include.scalar.state],\n\t\t...Object.values(include.combine ?? {}).map((branch) => branch.kind === \"rows\" ? branch.state : branch.selector.state)\n\t].some(stateCarriesLock);\n}\nfunction stateCarriesLock(state) {\n\treturn state.locking !== void 0 || state.includes.some(includeCarriesLock);\n}\nfunction conflictOf(state, call) {\n\tif (state.includes.some(includeCarriesLock)) return \"includeRefinement\";\n\tif (state.locking === void 0) return void 0;\n\tif (call !== void 0) return call;\n\tif (state.includes.length > 0) return \"include\";\n\tif (state.distinct !== void 0 && state.distinct.length > 0) return \"distinct\";\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) return \"distinctOn\";\n}\n/** Refuses a row lock the ORM cannot render: inside an include, with include, distinct or distinctOn in the state, or before a call that drops it. */\nfunction assertLockCompatible(state, call) {\n\tconst conflict = conflictOf(state, call);\n\tif (conflict !== void 0) throw lockIncompatible(conflict, `A locking clause cannot be combined with ${conflict}`);\n}\n//#endregion\n//#region src/selection-shaping.ts\nfunction augmentSelectionForJoinColumns(selectedFields, requiredColumns) {\n\tif (!selectedFields) return {\n\t\tselectedForQuery: selectedFields,\n\t\thiddenColumns: []\n\t};\n\tconst hiddenColumns = requiredColumns.filter((column) => !selectedFields.includes(column));\n\tif (hiddenColumns.length === 0) return {\n\t\tselectedForQuery: selectedFields,\n\t\thiddenColumns: []\n\t};\n\treturn {\n\t\tselectedForQuery: [...selectedFields, ...hiddenColumns],\n\t\thiddenColumns\n\t};\n}\n//#endregion\n//#region src/query-plan-select.ts\n/**\n* The rule for which JSON projection variant an include entry carries. Every\n* site that puts a value into a `json_build_object` or a `json_agg` goes\n* through here, and the renderers read the variant to decide how the value\n* reaches JSON.\n*\n* - `codec`: the value is a column whose storage codec is known, so the\n* renderer can ask that codec's descriptor for the projection producing its\n* canonical JSON. The `CodecRef` is resolved at planning time by\n* `codecRefForStorageColumn` and carried on the `ProjectionItem` through\n* every wrap between the column and here.\n* - `document`: the value is already a JSON document — a nested include's\n* correlated subquery, a combine branch, or the object a child row set is\n* aggregated from. Its parts were made canonical at the level that produced\n* them; this level only nests it.\n* - `native`: the value has no codec identity. The case that reaches it is an\n* aggregate the target declares no overload for — SQLite computes `sum` over\n* a text column from whatever leading numbers the rows held, and declines to\n* type the result. Native is what a value with no codec identity means, which\n* is a different thing from defaulting a codec to identity — that, the\n* project forbids. An aggregate the target does declare carries the codec the\n* registry resolved for it, like any other value.\n*\n* A document never carries a codec and a codec-bearing column is never a\n* document, so the first two cases cannot both apply.\n*/\nfunction jsonEntryProjection(value, identity) {\n\tif (identity.codec !== void 0) return new CodecJsonValueProjection(value, identity.codec);\n\tif (identity.document === true) return new JsonDocumentProjection(value);\n\treturn new NativeJsonValueProjection(value);\n}\nfunction buildProjection(contract, model, table, selectedFields, projectedThrough) {\n\tconst { namespaceId, tableName } = table.storage;\n\treturn (selectedFields !== void 0 ? [...selectedFields] : getColumnsReadOnTable(contract, ...model, tableName, namespaceId)).map((column) => ProjectionItem.of(column, projectedThrough === void 0 ? table.column(column) : ColumnRef.of(projectedThrough, column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column)));\n}\nfunction appendUnique(values, value) {\n\tif (!values.includes(value)) values.push(value);\n}\nfunction resolvePolymorphicProjectionSelection(contract, namespaceId, modelName, polyInfo, state) {\n\tif (state.selectedFields === void 0) return {\n\t\tbaseSelectedFields: void 0,\n\t\tselectedMtiColumnsByVariant: void 0,\n\t\tneedsHiddenDiscriminator: false\n\t};\n\tconst baseColumnToField = getModelColumnFields(contract, namespaceId, modelName);\n\tconst variantColumnMaps = Array.from(polyInfo.variants.values(), (variant) => ({\n\t\tvariant,\n\t\tcolumnToField: getOwnColumnFields(contract, variant.namespaceId, variant.modelName)\n\t}));\n\tconst baseSelectedFields = [];\n\tconst selectedMtiColumnsByVariant = /* @__PURE__ */ new Map();\n\tlet hasVariantOwnedSelection = false;\n\tfor (const column of state.selectedFields) {\n\t\tconst isBaseColumn = Object.hasOwn(baseColumnToField, column);\n\t\tif (isBaseColumn) appendUnique(baseSelectedFields, column);\n\t\tlet isVariantColumn = false;\n\t\tfor (const { variant, columnToField } of variantColumnMaps) {\n\t\t\tif (!Object.hasOwn(columnToField, column)) continue;\n\t\t\tisVariantColumn = true;\n\t\t\thasVariantOwnedSelection = true;\n\t\t\tif (variant.strategy === \"sti\") {\n\t\t\t\tappendUnique(baseSelectedFields, column);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet selectedColumns = selectedMtiColumnsByVariant.get(variant.value);\n\t\t\tif (selectedColumns === void 0) {\n\t\t\t\tselectedColumns = /* @__PURE__ */ new Set();\n\t\t\t\tselectedMtiColumnsByVariant.set(variant.value, selectedColumns);\n\t\t\t}\n\t\t\tselectedColumns.add(column);\n\t\t}\n\t\tif (!isBaseColumn && !isVariantColumn) throw new InternalError(`Selected column \"${column}\" is mapped by no field of model \"${modelName}\" or its variants; select() resolves field names before they reach the projection`);\n\t}\n\treturn {\n\t\tbaseSelectedFields,\n\t\tselectedMtiColumnsByVariant,\n\t\tneedsHiddenDiscriminator: state.variantValue === void 0 && hasVariantOwnedSelection && !baseSelectedFields.includes(polyInfo.discriminatorColumn)\n\t};\n}\nfunction buildHiddenDiscriminatorProjection(contract, table, polyInfo, needed) {\n\tif (!needed) return [];\n\treturn [ProjectionItem.of(POLYMORPHIC_DISCRIMINATOR_ALIAS, table.column(polyInfo.discriminatorColumn), codecRefForStorageColumn(contract.storage, table.storage.namespaceId, table.storage.tableName, polyInfo.discriminatorColumn))];\n}\nfunction buildIncludeOrderArtifacts(relationName, rowAlias, childOrderBy) {\n\tif (!childOrderBy || childOrderBy.length === 0) return {\n\t\tchildOrderBy: void 0,\n\t\thiddenOrderProjection: [],\n\t\taggregateOrderBy: void 0\n\t};\n\tconst hiddenOrderProjection = childOrderBy.map((orderItem, index) => ProjectionItem.of(`${relationName}__order_${index}`, orderItem.expr));\n\treturn {\n\t\tchildOrderBy,\n\t\thiddenOrderProjection,\n\t\taggregateOrderBy: hiddenOrderProjection.map((projection, index) => {\n\t\t\tconst orderItem = childOrderBy[index];\n\t\t\tif (!orderItem) throw new InternalError(`Missing include order metadata at index ${index}`);\n\t\t\treturn orderItem.withExpr(ColumnRef.of(rowAlias, projection.alias));\n\t\t})\n\t};\n}\nfunction localColumnsForRowInclude(include) {\n\treturn include.through?.parentLocalColumns ?? include.localColumns;\n}\nfunction buildIncludeJoinExpr(include, child, parentLocalRefs) {\n\tinvariant(parentLocalRefs.length === include.targetColumns.length, `Include '${include.relationName}' has mismatched join column counts: ${parentLocalRefs.length} local, ${include.targetColumns.length} target`);\n\tconst joinExprs = include.targetColumns.map((targetColumn, i) => {\n\t\tconst parentLocalRef = parentLocalRefs[i];\n\t\tassertDefined(parentLocalRef, `Include '${include.relationName}': no local column at ${i}`);\n\t\treturn BinaryExpr.eq(child.column(targetColumn), parentLocalRef);\n\t});\n\tconst [firstExpr] = joinExprs;\n\tassertDefined(firstExpr, `Include '${include.relationName}' has no join columns`);\n\treturn joinExprs.length === 1 ? firstExpr : AndExpr.of(joinExprs);\n}\nfunction localTable(tables, include) {\n\treturn include.localVariantValue === void 0 ? tables.root : requireVariantTable(tables, include.localVariantValue);\n}\nfunction resolveParentLocalRefs(parent, include, localColumns) {\n\tconst local = localTable(parent.tables, include);\n\tconst { projectedThrough } = parent;\n\treturn localColumns.map((column) => {\n\t\tif (projectedThrough === void 0) return local.column(column);\n\t\treturn ColumnRef.of(projectedThrough, local === parent.tables.root ? column : variantColumnLabel(local, column));\n\t});\n}\nfunction requireJunction(include) {\n\tif (include.junction === void 0) throw new InternalError(`Include '${include.relationName}' goes through a junction table but carries no aliased table for it`);\n\treturn include.junction;\n}\nfunction buildNestedIncludeProjections(contract, aggregates, scope, parent, includes) {\n\treturn includes.map((nested) => buildCorrelatedIncludeProjection(contract, aggregates, scope, parent, nested).projection);\n}\n/**\n* The aliases a level's nested includes contribute. Each such subquery\n* projects a JSON document — an object for a scalar include, an array of\n* objects for a row include — which is what tells the enclosing level to nest\n* the value rather than convert it.\n*/\nfunction documentAliasesOf(nestedProjections) {\n\treturn new Set(nestedProjections.map((item) => item.alias));\n}\n/**\n* Resolve the MTI variant joins + `variant_table__column` projection for an\n* include whose target model is polymorphic, mirroring the parent path in\n* `compileSelectWithIncludes`. The discriminator column and any STI\n* variant-specific columns live on the base table and reach the row through\n* the ordinary base-column projection (`buildProjection`); only the MTI\n* variant tables need a join.\n*/\nfunction buildChildPolymorphismJoinsAndProjection(contract, include) {\n\tconst polyInfo = resolvePolymorphismInfo(contract, include.relatedNamespaceId, include.relatedModelName);\n\tif (!polyInfo) return {\n\t\tjoins: [],\n\t\tprojection: [],\n\t\thiddenProjection: [],\n\t\tbaseSelectedFields: include.nested.selectedFields\n\t};\n\tconst selection = resolvePolymorphicProjectionSelection(contract, include.relatedNamespaceId, include.relatedModelName, polyInfo, include.nested);\n\tconst { joins, projection } = buildMtiJoins(contract, include.nested.tables, polyInfo, include.nested.variantValue, selection.selectedMtiColumnsByVariant);\n\treturn {\n\t\tjoins,\n\t\tprojection,\n\t\thiddenProjection: buildHiddenDiscriminatorProjection(contract, include.nested.tables.root, polyInfo, selection.needsHiddenDiscriminator),\n\t\tbaseSelectedFields: selection.baseSelectedFields\n\t};\n}\nfunction buildRequiredMtiJoinKeyProjection(contract, include) {\n\tconst aliases = /* @__PURE__ */ new Set();\n\tconst projection = [];\n\tfor (const nested of include.nested.includes) {\n\t\tif (nested.localVariantValue === void 0) continue;\n\t\tconst variantTable = requireVariantTable(include.nested.tables, nested.localVariantValue);\n\t\tfor (const column of localColumnsForRowInclude(nested)) {\n\t\t\tconst alias = variantColumnLabel(variantTable, column);\n\t\t\tif (aliases.has(alias)) continue;\n\t\t\taliases.add(alias);\n\t\t\tprojection.push(ProjectionItem.of(alias, variantTable.column(column), codecRefForStorageColumn(contract.storage, variantTable.storage.namespaceId, variantTable.storage.tableName, column)));\n\t\t}\n\t}\n\treturn projection;\n}\nfunction mergeProjectionByAlias(projection, additional) {\n\tconst aliases = new Set(projection.map((item) => item.alias));\n\tconst merged = [...projection];\n\tfor (const item of additional) if (!aliases.has(item.alias)) {\n\t\taliases.add(item.alias);\n\t\tmerged.push(item);\n\t}\n\treturn merged;\n}\n/**\n* Build the correlated WHERE and junction JOIN artifacts for a many-to-many\n* include. The resulting WHERE correlates the junction to the parent rows\n* (AND-ed across all column pairs for composite keys). The junction JOIN\n* connects child rows to the junction via the child columns.\n*/\nfunction buildManyToManyJunctionArtifacts(contract, parentLocalRefs, child, junction, through) {\n\tconst { table: junctionTable, parentColumns, childColumns, targetColumns } = through;\n\tinvariant(childColumns.length === targetColumns.length, `M:N junction '${junctionTable}': childColumns (${childColumns.length}) and targetColumns (${targetColumns.length}) must have equal length`);\n\tinvariant(parentColumns.length === parentLocalRefs.length, `M:N junction '${junctionTable}': parentColumns (${parentColumns.length}) and parentLocalColumns (${parentLocalRefs.length}) must have equal length`);\n\tconst joinOnPairs = childColumns.map((junctionCol, i) => {\n\t\tconst targetCol = targetColumns[i];\n\t\tassertDefined(targetCol, `M:N junction '${junctionTable}': missing target column at index ${i}`);\n\t\treturn BinaryExpr.eq(junction.column(junctionCol), child.column(targetCol));\n\t});\n\tconst firstJoinPair = joinOnPairs[0];\n\tconst joinOn = joinOnPairs.length === 1 && firstJoinPair ? firstJoinPair : AndExpr.of(joinOnPairs);\n\tconst correlationPairs = parentColumns.map((junctionCol, i) => {\n\t\tconst parentLocalRef = parentLocalRefs[i];\n\t\tassertDefined(parentLocalRef, `M:N junction '${junctionTable}': missing parent-local column ref at index ${i}`);\n\t\treturn BinaryExpr.eq(junction.column(junctionCol), parentLocalRef);\n\t});\n\tconst firstCorrelationPair = correlationPairs[0];\n\treturn {\n\t\twhereExpr: correlationPairs.length === 1 && firstCorrelationPair ? firstCorrelationPair : AndExpr.of(correlationPairs),\n\t\tjunctionJoin: JoinAst.inner(junction.tableSource(contract), joinOn, false)\n\t};\n}\nfunction buildIncludeChildRowsSelect(contract, aggregates, scope, parent, include) {\n\tconst childState = include.nested;\n\tif (childState.distinctOn !== void 0 && childState.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(childState.orderBy, childState.distinctOn.length);\n\t}\n\tconst child = childState.tables.root;\n\tconst parentLocalRefs = resolveParentLocalRefs(parent, include, localColumnsForRowInclude(include));\n\tconst rowsAlias = scope.alias(`${include.relationName}__rows`);\n\tconst { childOrderBy, hiddenOrderProjection, aggregateOrderBy } = buildIncludeOrderArtifacts(include.relationName, rowsAlias, childState.orderBy);\n\tconst childWhere = buildStateWhere(contract, childState);\n\tlet whereExpr;\n\tlet junctionJoins = [];\n\tif (include.through !== void 0) {\n\t\tconst artifacts = buildManyToManyJunctionArtifacts(contract, parentLocalRefs, child, requireJunction(include), include.through);\n\t\twhereExpr = childWhere ? AndExpr.of([artifacts.whereExpr, childWhere]) : artifacts.whereExpr;\n\t\tjunctionJoins = [artifacts.junctionJoin];\n\t} else {\n\t\tconst joinExpr = buildIncludeJoinExpr(include, child, parentLocalRefs);\n\t\twhereExpr = childWhere ? AndExpr.of([joinExpr, childWhere]) : joinExpr;\n\t}\n\tif (childState.distinct !== void 0 && childState.distinct.length > 0 && childState.includes.length > 0) return buildDistinctNonLeafChildRowsSelect({\n\t\tcontract,\n\t\taggregates,\n\t\tscope,\n\t\tinclude,\n\t\trowsAlias,\n\t\tchildOrderBy,\n\t\thiddenOrderProjection,\n\t\taggregateOrderBy,\n\t\twhereExpr,\n\t\tjunctionJoins\n\t});\n\tconst polyJoinsAndProjection = buildChildPolymorphismJoinsAndProjection(contract, include);\n\tconst scalarProjection = buildProjection(contract, addressedModel(contract, include.relatedNamespaceId, include.relatedModelName, include.nested.variantValue), child, polyJoinsAndProjection.baseSelectedFields);\n\tconst nestedProjections = buildNestedIncludeProjections(contract, aggregates, scope, { tables: childState.tables }, childState.includes);\n\tconst childProjection = [\n\t\t...scalarProjection,\n\t\t...polyJoinsAndProjection.projection,\n\t\t...polyJoinsAndProjection.hiddenProjection,\n\t\t...nestedProjections\n\t];\n\tlet childRows = SelectAst.from(child.tableSource(contract)).withProjection([...childProjection, ...hiddenOrderProjection]).withWhere(whereExpr);\n\tif (polyJoinsAndProjection.joins.length > 0) childRows = childRows.withJoins([...polyJoinsAndProjection.joins]);\n\tif (junctionJoins.length > 0) childRows = childRows.withJoins(junctionJoins);\n\tif (childState.distinctOn && childState.distinctOn.length > 0) {\n\t\tchildRows = childRows.withDistinctOn(childState.distinctOn.map((column) => child.column(column)));\n\t\tif (childOrderBy) childRows = childRows.withOrderBy(childOrderBy);\n\t} else if (childState.distinct && childState.distinct.length > 0) {\n\t\tconst rankedAlias = scope.alias(`${include.relationName}__distinct`);\n\t\tchildRows = wrapWithRowNumberDedup({\n\t\t\tbase: childRows,\n\t\t\tdistinctColumnRefs: childState.distinct.map((column) => child.column(column)),\n\t\t\trankingOrderBy: childOrderBy ?? [],\n\t\t\trankedAlias\n\t\t});\n\t\tif (childOrderBy) childRows = childRows.withOrderBy(childOrderBy.map((item, index) => item.withExpr(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`))));\n\t} else if (childOrderBy) childRows = childRows.withOrderBy(childOrderBy);\n\tif (childState.limit !== void 0) childRows = childRows.withLimit(childState.limit);\n\tif (childState.offset !== void 0) childRows = childRows.withOffset(childState.offset);\n\treturn {\n\t\tchildRows,\n\t\tchildProjection,\n\t\tdocumentAliases: documentAliasesOf(nestedProjections),\n\t\trowsAlias,\n\t\taggregateOrderBy\n\t};\n}\nfunction buildDistinctNonLeafChildRowsSelect(options) {\n\tconst { contract, aggregates, scope, include, rowsAlias, childOrderBy, hiddenOrderProjection, aggregateOrderBy, whereExpr, junctionJoins } = options;\n\tconst childState = include.nested;\n\tconst child = childState.tables.root;\n\tconst grandchildJoinColumns = Array.from(new Set(childState.includes.flatMap((nested) => nested.localVariantValue === void 0 ? localColumnsForRowInclude(nested) : [])));\n\tconst { selectedForQuery } = augmentSelectionForJoinColumns(childState.selectedFields, grandchildJoinColumns);\n\tconst visiblePolyProjection = buildChildPolymorphismJoinsAndProjection(contract, include);\n\tconst queryPolyProjection = buildChildPolymorphismJoinsAndProjection(contract, {\n\t\t...include,\n\t\tnested: {\n\t\t\t...childState,\n\t\t\tselectedFields: selectedForQuery\n\t\t}\n\t});\n\tconst innerScalarProjection = buildProjection(contract, addressedModel(contract, include.relatedNamespaceId, include.relatedModelName, include.nested.variantValue), child, queryPolyProjection.baseSelectedFields);\n\tconst innerMtiProjection = mergeProjectionByAlias(queryPolyProjection.projection, buildRequiredMtiJoinKeyProjection(contract, include));\n\tlet baseInner = SelectAst.from(child.tableSource(contract)).withProjection([\n\t\t...innerScalarProjection,\n\t\t...innerMtiProjection,\n\t\t...queryPolyProjection.hiddenProjection,\n\t\t...hiddenOrderProjection\n\t]).withWhere(whereExpr);\n\tconst distinctExtraJoins = [...queryPolyProjection.joins, ...junctionJoins];\n\tif (distinctExtraJoins.length > 0) baseInner = baseInner.withJoins(distinctExtraJoins);\n\tconst distinctColumns = childState.distinct;\n\tif (distinctColumns === void 0 || distinctColumns.length === 0) throw new InternalError(\"buildDistinctNonLeafChildRowsSelect requires a non-empty `distinct` selection\");\n\tconst rankedAlias = scope.alias(`${include.relationName}__ranked`);\n\tlet innerSelect = wrapWithRowNumberDedup({\n\t\tbase: baseInner,\n\t\tdistinctColumnRefs: distinctColumns.map((column) => child.column(column)),\n\t\trankingOrderBy: childOrderBy ?? [],\n\t\trankedAlias\n\t});\n\tif (childOrderBy) innerSelect = innerSelect.withOrderBy(childOrderBy.map((item, index) => item.withExpr(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`))));\n\tif (childState.limit !== void 0) innerSelect = innerSelect.withLimit(childState.limit);\n\tif (childState.offset !== void 0) innerSelect = innerSelect.withOffset(childState.offset);\n\tconst distinctAlias = scope.alias(`${include.relationName}__distinct`);\n\tconst outerScalarProjection = buildProjection(contract, addressedModel(contract, include.relatedNamespaceId, include.relatedModelName, include.nested.variantValue), child, visiblePolyProjection.baseSelectedFields, distinctAlias);\n\tconst outerNestedProjections = buildNestedIncludeProjections(contract, aggregates, scope, {\n\t\ttables: childState.tables,\n\t\tprojectedThrough: distinctAlias\n\t}, childState.includes);\n\tconst outerPolyProjection = visiblePolyProjection.projection.map((proj) => ProjectionItem.of(proj.alias, ColumnRef.of(distinctAlias, proj.alias), proj.codec));\n\tconst outerHiddenProjection = visiblePolyProjection.hiddenProjection.map((proj) => ProjectionItem.of(proj.alias, ColumnRef.of(distinctAlias, proj.alias), proj.codec));\n\tconst outerHiddenOrderProjection = hiddenOrderProjection.map((proj) => ProjectionItem.of(proj.alias, ColumnRef.of(distinctAlias, proj.alias), proj.codec));\n\tconst childProjection = [\n\t\t...outerScalarProjection,\n\t\t...outerPolyProjection,\n\t\t...outerHiddenProjection,\n\t\t...outerNestedProjections\n\t];\n\treturn {\n\t\tchildRows: SelectAst.from(DerivedTableSource.as(distinctAlias, innerSelect)).withProjection([...childProjection, ...outerHiddenOrderProjection]),\n\t\tchildProjection,\n\t\tdocumentAliases: documentAliasesOf(outerNestedProjections),\n\t\trowsAlias,\n\t\taggregateOrderBy\n\t};\n}\n/**\n* Build the inner SELECT for a scalar include reducer (any operation the aggregate registry\n* contributes).\n*\n* Emits one row containing `json_build_object('value', AGG(...))`\n* over the child relation correlated to the parent via the FK. The\n* JSON wrap lets the value flow through the existing include-payload\n* decoder unchanged (it JSON.parses the column and the scalar branch\n* pulls `.value` out).\n*\n* The refine state's pipeline composes through to the aggregate's\n* input set: `where` / `orderBy` / `limit` / `offset` / `distinct` shape\n* the rows the aggregate sees, matching the natural compositional\n* semantic of\n*\n* `db.User.include('posts', p => p.where(W).limit(N).count()) // ≤ N`\n*\n* When `limit` / `offset` / `distinct` is set, the aggregate's input\n* cannot just be the bare correlated table — a top-level `LIMIT` on\n* the aggregating SELECT only trims the (already one-row) output, not\n* the rows being aggregated. We therefore wrap the source in a\n* derived SELECT that materialises the shaped row set, then\n* aggregate over that. `orderBy` alone (no `limit` / `offset` /\n* `distinct`) is dropped at the SQL level since reordering does not\n* change which rows are aggregated.\n*/\nfunction buildIncludeChildScalarSelect(contract, aggregates, scope, parent, include, scalar) {\n\tconst { codec: resultCodec, input: inputCodec, lower: resultLowering } = resolveAggregate({\n\t\taggregates,\n\t\tcontract,\n\t\tnamespaceId: include.relatedNamespaceId,\n\t\ttableName: include.relatedTableName,\n\t\tfn: scalar.fn,\n\t\tcolumn: scalar.column\n\t});\n\tconst parentLocalRefs = resolveParentLocalRefs(parent, include, localColumnsForRowInclude(include));\n\tconst state = scalar.state;\n\tconst child = state.tables.root;\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(state.orderBy, state.distinctOn.length);\n\t}\n\tconst childWhere = buildStateWhere(contract, state);\n\tlet whereExpr;\n\tlet junctionJoins = [];\n\tif (include.through !== void 0) {\n\t\tconst artifacts = buildManyToManyJunctionArtifacts(contract, parentLocalRefs, child, requireJunction(include), include.through);\n\t\twhereExpr = childWhere ? AndExpr.of([artifacts.whereExpr, childWhere]) : artifacts.whereExpr;\n\t\tjunctionJoins = [artifacts.junctionJoin];\n\t} else {\n\t\tconst joinExpr = buildIncludeJoinExpr(include, child, parentLocalRefs);\n\t\twhereExpr = childWhere ? AndExpr.of([joinExpr, childWhere]) : joinExpr;\n\t}\n\tconst hasPagination = state.limit !== void 0 || state.offset !== void 0;\n\tconst hasDistinct = state.distinct !== void 0 && state.distinct.length > 0 || state.distinctOn !== void 0 && state.distinctOn.length > 0;\n\tif (!(hasPagination || hasDistinct)) {\n\t\tconst aggregateExpr = buildIncludeAggregateExpr(scalar, scalar.column === void 0 ? void 0 : child.column(scalar.column), resultLowering, inputCodec);\n\t\tconst jsonObjectExpr = JsonObjectExpr.fromEntries([JsonObjectExpr.entry(\"value\", jsonEntryProjection(aggregateExpr, { codec: resultCodec }))]);\n\t\tlet select = SelectAst.from(child.tableSource(contract)).withProjection([ProjectionItem.of(include.relationName, jsonObjectExpr)]).withWhere(whereExpr);\n\t\tif (junctionJoins.length > 0) select = select.withJoins(junctionJoins);\n\t\treturn select;\n\t}\n\tconst innerAlias = scope.alias(`${include.relationName}__scalar`);\n\tconst hiddenOrderProjection = state.distinct !== void 0 && state.distinct.length > 0 && state.orderBy !== void 0 && state.orderBy.length > 0 ? state.orderBy.map((item, index) => ProjectionItem.of(`${include.relationName}__order_${index}`, item.expr)) : [];\n\tconst innerProjection = [...scalar.column !== void 0 ? [ProjectionItem.of(scalar.column, child.column(scalar.column))] : [ProjectionItem.of(\"__row\", LiteralExpr.of(1))], ...hiddenOrderProjection];\n\tlet inner = SelectAst.from(child.tableSource(contract)).withProjection(innerProjection).withWhere(whereExpr);\n\tif (junctionJoins.length > 0) inner = inner.withJoins(junctionJoins);\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tinner = inner.withDistinctOn(state.distinctOn.map((column) => child.column(column)));\n\t\tif (state.orderBy !== void 0 && state.orderBy.length > 0) inner = inner.withOrderBy(state.orderBy);\n\t} else if (state.distinct !== void 0 && state.distinct.length > 0) {\n\t\tconst rankedAlias = scope.alias(`${include.relationName}__scalar_distinct`);\n\t\tinner = wrapWithRowNumberDedup({\n\t\t\tbase: inner,\n\t\t\tdistinctColumnRefs: state.distinct.map((column) => child.column(column)),\n\t\t\trankingOrderBy: state.orderBy ?? [],\n\t\t\trankedAlias\n\t\t});\n\t\tif (state.orderBy !== void 0 && state.orderBy.length > 0) inner = inner.withOrderBy(state.orderBy.map((item, index) => item.withExpr(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`))));\n\t} else if (state.orderBy !== void 0 && state.orderBy.length > 0) inner = inner.withOrderBy(state.orderBy);\n\tif (state.limit !== void 0) inner = inner.withLimit(state.limit);\n\tif (state.offset !== void 0) inner = inner.withOffset(state.offset);\n\tconst outerAggregateExpr = buildIncludeAggregateExpr(scalar, scalar.column === void 0 ? void 0 : ColumnRef.of(innerAlias, scalar.column), resultLowering, inputCodec);\n\tconst outerJsonObjectExpr = JsonObjectExpr.fromEntries([JsonObjectExpr.entry(\"value\", jsonEntryProjection(outerAggregateExpr, { codec: resultCodec }))]);\n\treturn SelectAst.from(DerivedTableSource.as(innerAlias, inner)).withProjection([ProjectionItem.of(include.relationName, outerJsonObjectExpr)]);\n}\nfunction buildIncludeAggregateExpr(scalar, expr, lower, inputCodec) {\n\tif (lower !== void 0) return lower({\n\t\texpr,\n\t\tinputCodec\n\t});\n\treturn plainAggregateExpr(scalar.fn, expr);\n}\n/**\n* Build the inner SELECT for a `combine({ a, b, ... })` include.\n*\n* Each branch produces a self-contained SELECT projecting one row\n* with one column aliased to the relation name. The branches are\n* stitched together as cross-joined derived tables (FROM <first>\n* INNER JOIN <second> ON TRUE ...), and the outer projection packs\n* them into a single `json_build_object` keyed by branch name. The\n* resulting subquery emits exactly one row per parent row containing\n* the combined JSON — embedded as a correlated subquery in the outer\n* projection.\n*\n* Row branches reuse the standalone row-include builder; scalar\n* branches reuse `buildIncludeChildScalarSelect` — the `{value: ...}`\n* envelope survives into the combined JSON and the decoder unwraps\n* it per scalar branch. Distinct/limit/offset semantics inside a row\n* branch fan out naturally because the row builder is invoked with\n* a synthetic IncludeExpr whose `nested` is the branch's state.\n*/\nfunction buildIncludeChildCombineSelect(contract, aggregates, scope, parent, include, branches) {\n\tconst branchEntries = Object.entries(branches);\n\tif (branchEntries.length === 0) throw ormError(\"ORM.INCLUDE_INVALID\", `combine() include \"${include.relationName}\" has no branches`, { meta: { relation: include.relationName } });\n\tconst compiledBranches = branchEntries.map(([name, branch]) => ({\n\t\tname,\n\t\talias: scope.alias(`${include.relationName}__combine__${name}`),\n\t\tselect: buildIncludeChildCombineBranchSelect(contract, aggregates, scope, parent, include, branch)\n\t}));\n\tconst jsonObjectExpr = JsonObjectExpr.fromEntries(compiledBranches.map((branch) => JsonObjectExpr.entry(branch.name, jsonEntryProjection(ColumnRef.of(branch.alias, include.relationName), { document: true }))));\n\tconst [firstBranch, ...restBranches] = compiledBranches;\n\tif (!firstBranch) throw new InternalError(`combine() include \"${include.relationName}\" has no branches`);\n\tconst joins = restBranches.map((branch) => JoinAst.inner(DerivedTableSource.as(branch.alias, branch.select), AndExpr.true(), false));\n\treturn SelectAst.from(DerivedTableSource.as(firstBranch.alias, firstBranch.select)).withProjection([ProjectionItem.of(include.relationName, jsonObjectExpr)]).withJoins(joins);\n}\n/**\n* Compile one branch of a `combine({ ... })` into a SelectAst that\n* projects exactly one row with one column aliased to the parent\n* relation name. Dispatches to the standalone scalar / row builders\n* with the branch's state spliced into a synthetic IncludeExpr.\n*/\nfunction buildIncludeChildCombineBranchSelect(contract, aggregates, scope, parent, include, branch) {\n\tif (branch.kind === \"scalar\") return buildIncludeChildScalarSelect(contract, aggregates, scope, parent, include, branch.selector);\n\treturn buildIncludeChildRowsAggregateSelect(contract, aggregates, scope, parent, {\n\t\t...include,\n\t\tnested: branch.state,\n\t\tscalar: void 0,\n\t\tcombine: void 0\n\t});\n}\n/**\n* Internal helper: build the inner aggregate SELECT that `json_agg`s\n* child rows into a single JSON-array column aliased to the relation\n* name. Used by both the standalone row correlated-subquery path and\n* by combine's row branches.\n*/\nfunction buildIncludeChildRowsAggregateSelect(contract, aggregates, scope, parent, include) {\n\tconst { childRows, childProjection, documentAliases, rowsAlias, aggregateOrderBy } = buildIncludeChildRowsSelect(contract, aggregates, scope, parent, include);\n\tconst jsonObjectExpr = JsonObjectExpr.fromEntries(childProjection.map((item) => JsonObjectExpr.entry(item.alias, jsonEntryProjection(ColumnRef.of(rowsAlias, item.alias), {\n\t\tcodec: item.codec,\n\t\tdocument: documentAliases.has(item.alias)\n\t}))));\n\treturn SelectAst.from(DerivedTableSource.as(rowsAlias, childRows)).withProjection([ProjectionItem.of(include.relationName, JsonArrayAggExpr.of(jsonEntryProjection(jsonObjectExpr, { document: true }), \"emptyArray\", aggregateOrderBy))]);\n}\nfunction buildCorrelatedIncludeProjection(contract, aggregates, scope, parent, include) {\n\tif (include.scalar) {\n\t\tconst scalarSelect = buildIncludeChildScalarSelect(contract, aggregates, scope, parent, include, include.scalar);\n\t\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(scalarSelect)) };\n\t}\n\tif (include.combine) {\n\t\tconst combineSelect = buildIncludeChildCombineSelect(contract, aggregates, scope, parent, include, include.combine);\n\t\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(combineSelect)) };\n\t}\n\tconst aggregateQuery = buildIncludeChildRowsAggregateSelect(contract, aggregates, scope, parent, include);\n\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(aggregateQuery)) };\n}\nfunction buildSelectAst(contract, modelName, state, options) {\n\tconst { root } = state.tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(state.orderBy, state.distinctOn.length);\n\t}\n\tconst addressed = addressedModel(contract, namespaceId, modelName, state.variantValue);\n\tconst projection = [...buildProjection(contract, addressed, root, state.selectedFields), ...options.includeProjection ?? []];\n\tconst { source: fromSource, where: effectiveWhere } = buildDedupedTableSource(contract, state, options.where ?? buildStateWhere(contract, state), getColumnsReadOnTable(contract, ...addressed, tableName, namespaceId).map((column) => ProjectionItem.of(column, root.column(column))));\n\tlet ast = SelectAst.from(fromSource).withProjection(projection);\n\tif (effectiveWhere) ast = ast.withWhere(effectiveWhere);\n\tif (state.orderBy) ast = ast.withOrderBy(state.orderBy);\n\tif (state.selectedFields === void 0) ast = ast.withSelectAllIntent({ table: tableName });\n\tif (state.distinctOn && state.distinctOn.length > 0) ast = ast.withDistinctOn(state.distinctOn.map((column) => root.column(column)));\n\tif (state.limit !== void 0) ast = ast.withLimit(state.limit);\n\tif (state.offset !== void 0) ast = ast.withOffset(state.offset);\n\tif (options.joins && options.joins.length > 0) ast = ast.withJoins(options.joins);\n\tif (state.locking !== void 0) ast = ast.withLocking(state.locking);\n\treturn ast;\n}\nfunction buildRootPolymorphism(contract, state, modelName) {\n\tconst { root } = state.tables;\n\tconst { namespaceId } = root.storage;\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\tif (!polyInfo) return {\n\t\tprojectionState: state,\n\t\tjoins: [],\n\t\tprojection: []\n\t};\n\tconst selection = resolvePolymorphicProjectionSelection(contract, namespaceId, modelName, polyInfo, state);\n\tconst mtiArtifacts = polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, state.tables, polyInfo, state.variantValue, selection.selectedMtiColumnsByVariant) : void 0;\n\treturn {\n\t\tprojectionState: {\n\t\t\t...state,\n\t\t\tselectedFields: selection.baseSelectedFields\n\t\t},\n\t\tjoins: mtiArtifacts?.joins ?? [],\n\t\tprojection: [...mtiArtifacts?.projection ?? [], ...buildHiddenDiscriminatorProjection(contract, root, polyInfo, selection.needsHiddenDiscriminator)]\n\t};\n}\nfunction collectionSelectAst(contract, modelName, state) {\n\tassertLockCompatible(state);\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) assertDistinctOnCapability(contract, \"distinctOn\");\n\tconst polymorphism = buildRootPolymorphism(contract, state, modelName);\n\treturn buildSelectAst(contract, modelName, {\n\t\t...polymorphism.projectionState,\n\t\tincludes: []\n\t}, {\n\t\tjoins: polymorphism.joins,\n\t\tincludeProjection: polymorphism.projection\n\t});\n}\nfunction compileSelect(contract, modelName, state) {\n\tconst ast = collectionSelectAst(contract, modelName, state);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params, state.annotations);\n}\nfunction collectionSelectWithIncludesAst(contract, aggregates, modelName, state) {\n\tassertLockCompatible(state);\n\tconst topLevelWhere = buildStateWhere(contract, state);\n\tconst polymorphism = buildRootPolymorphism(contract, state, modelName);\n\tconst includeProjection = [...polymorphism.projection];\n\tconst scope = state.tables.scope.copy();\n\tconst parent = { tables: state.tables };\n\tfor (const include of state.includes) {\n\t\tconst artifact = buildCorrelatedIncludeProjection(contract, aggregates, scope, parent, include);\n\t\tincludeProjection.push(artifact.projection);\n\t}\n\treturn buildSelectAst(contract, modelName, {\n\t\t...polymorphism.projectionState,\n\t\tincludes: []\n\t}, {\n\t\tjoins: polymorphism.joins,\n\t\tincludeProjection,\n\t\t...ifDefined(\"where\", topLevelWhere)\n\t});\n}\nfunction compileSelectWithIncludes(contract, aggregates, modelName, state) {\n\tconst ast = collectionSelectWithIncludesAst(contract, aggregates, modelName, state);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params, state.annotations);\n}\n//#endregion\n//#region src/query-plan-rows.ts\nfunction queryPlanRows(scope, plan) {\n\treturn scope.query(plan);\n}\n//#endregion\n//#region src/collection-dispatch.ts\nfunction describeCollectionRows(options) {\n\treturn {\n\t\t...describeExecutionRows(options),\n\t\tconsume: createPreparedRowsConsumer(options)\n\t};\n}\nfunction describeExecutionRows(options) {\n\tconst { context, state, modelName } = options;\n\tconst { contract } = context;\n\treturn {\n\t\tplan: state.includes.length === 0 ? compileSelect(contract, modelName, state) : compileSelectWithIncludes(contract, context.aggregateDescriptors, modelName, state),\n\t\tconsume: (rows) => consumeCollectionRows(options, rows)\n\t};\n}\nfunction consumeCollectionRows(options, rows) {\n\tconst { context, state, modelName, namespaceId } = options;\n\tconst { contract } = context;\n\tif (state.includes.length > 0) return consumeIncludeRows(context, state, namespaceId, modelName, rows);\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\treturn mapResultRows(rows, polyInfo ? (rawRow) => blindCast(mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, state.tables, rawRow, state.variantValue)) : (rawRow) => blindCast(mapStorageRowToModelFields(contract, namespaceId, modelName, rawRow)));\n}\nfunction deferResolution(resolve) {\n\ttry {\n\t\tconst value = resolve();\n\t\treturn () => value;\n\t} catch (error) {\n\t\treturn () => {\n\t\t\tthrow error;\n\t\t};\n\t}\n}\nfunction createPreparedMapper(contract, namespaceId, modelName, state) {\n\tconst resolved = deferResolution(() => {\n\t\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\t\treturn polyInfo ? createPolymorphicRowMapper(contract, namespaceId, modelName, polyInfo, state.tables, state.variantValue) : createStorageRowMapper(contract, namespaceId, modelName);\n\t});\n\treturn (row) => resolved()(row);\n}\nfunction createPreparedRowsConsumer(options) {\n\tconst { context, state, namespaceId, modelName } = options;\n\tconst mapRow = createPreparedMapper(context.contract, namespaceId, modelName, state);\n\tconst includes = state.includes.map((include) => createPreparedIncludeConsumer(context, include));\n\tconst castRow = (row) => blindCast(row);\n\tif (includes.length === 0) return (rows) => mapResultRows(rows, (row) => castRow(mapRow(row)));\n\treturn (rows) => new AsyncIterableResult((async function* () {\n\t\tconst parents = (await rows.toArray()).map((raw) => ({\n\t\t\traw,\n\t\t\tmapped: mapRow(raw)\n\t\t}));\n\t\tfor (const parent of parents) for (const include of includes) parent.mapped[include.alias] = include.consume(parent.raw[include.alias]);\n\t\tfor (const parent of parents) yield castRow(parent.mapped);\n\t})());\n}\nfunction createPreparedIncludeConsumer(context, include) {\n\tconst { contract } = context;\n\tconst alias = include.relationName;\n\tif (include.scalar) return {\n\t\talias,\n\t\tconsume: createPreparedScalarConsumer(context, include, include.scalar)\n\t};\n\tif (include.combine) {\n\t\tconst branches = Object.entries(include.combine).map(([name, branch]) => ({\n\t\t\tname,\n\t\t\tconsume: branch.kind === \"rows\" ? createPreparedIncludeConsumer(context, {\n\t\t\t\t...include,\n\t\t\t\tnested: branch.state,\n\t\t\t\tscalar: void 0,\n\t\t\t\tcombine: void 0\n\t\t\t}).consume : createPreparedScalarConsumer(context, include, branch.selector)\n\t\t}));\n\t\treturn {\n\t\t\talias,\n\t\t\tconsume: (raw) => {\n\t\t\t\tconst parsed = parseCombineEnvelope(include, raw);\n\t\t\t\tconst result = {};\n\t\t\t\tfor (const branch of branches) result[branch.name] = branch.consume(parsed[branch.name]);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t};\n\t}\n\tconst mapRow = createPreparedMapper(contract, include.relatedNamespaceId, include.relatedModelName, include.nested);\n\tconst bindings = deferResolution(() => {\n\t\tconst namespace = include.relatedNamespaceId;\n\t\tconst keys = new Set(getColumnsReadOnTable(contract, ...addressedModel(contract, namespace, include.relatedModelName, include.nested.variantValue), include.relatedTableName, namespace));\n\t\tconst polyInfo = resolvePolymorphismInfo(contract, namespace, include.relatedModelName);\n\t\tfor (const variant of polyInfo?.mtiVariants ?? []) {\n\t\t\tconst variantTable = requireVariantTable(include.nested.tables, variant.value);\n\t\t\tfor (const column of getColumnsReadOnTable(contract, variantTable.storage.namespaceId, variant.modelName, variantTable.storage.tableName)) keys.add(variantColumnLabel(variantTable, column));\n\t\t}\n\t\treturn new Map([...keys].map((key) => [key, deferResolution(() => resolveIncludedColumnBinding(contract, context, include, key))]));\n\t});\n\tconst bindingFor = (key) => bindings().get(key)?.() ?? null;\n\tconst nested = include.nested.includes.map((child) => createPreparedIncludeConsumer(context, child));\n\tconst toOne = isToOneCardinality(include.cardinality);\n\tconst fused = deferResolution(() => createPreparedIncludedRowDecoder(contract, include, bindingFor));\n\treturn {\n\t\talias,\n\t\tconsume: (raw) => {\n\t\t\tconst rows = parseIncludedRows(include, raw);\n\t\t\tif (rows.length === 0) return toOne ? null : [];\n\t\t\tconst decoder = fused();\n\t\t\tif (!decoder || !rows.every(decoder.matches)) return consumeRowInclude(rows, mapRow, bindingFor, nested, toOne);\n\t\t\tconst mapped = rows.map((row) => {\n\t\t\t\tconst result = decoder.decode(row);\n\t\t\t\tfor (const child of nested) result[child.alias] = child.consume(row[child.alias]);\n\t\t\t\treturn result;\n\t\t\t});\n\t\t\treturn toOne ? mapped[0] ?? null : mapped;\n\t\t}\n\t};\n}\nfunction createPreparedIncludedRowDecoder(contract, include, bindingFor) {\n\tconst namespace = include.relatedNamespaceId;\n\tconst model = include.relatedModelName;\n\tif (resolvePolymorphismInfo(contract, namespace, model)) return void 0;\n\tconst columnToField = getModelColumnFields(contract, namespace, model);\n\tconst columns = include.nested.selectedFields ?? getColumnsReadOnTable(contract, namespace, model, include.relatedTableName);\n\tconst aliases = include.nested.includes.map((child) => child.relationName);\n\tconst table = contract.storage.namespaces[namespace]?.entries.table?.[include.relatedTableName];\n\tif (aliases.some((alias) => table?.columns[alias] !== void 0)) return void 0;\n\tconst keys = [...columns, ...aliases];\n\tif (keys.includes(\"__proto__\") || new Set(keys).size !== keys.length) return void 0;\n\tconst fieldOf = (key) => aliases.includes(key) ? key : fieldOfColumn(columnToField, model, key);\n\tconst operations = keys.map((key) => {\n\t\tconst binding = deferResolution(() => bindingFor(key));\n\t\treturn {\n\t\t\tkey,\n\t\t\tfield: fieldOf(key),\n\t\t\tdecode(value) {\n\t\t\t\tif (value === null || value === void 0) return value;\n\t\t\t\tconst resolved = binding();\n\t\t\t\treturn resolved ? decodeIncludedColumnValue(resolved.ref, resolved.codecId, resolved.codec, value) : value;\n\t\t\t}\n\t\t};\n\t});\n\treturn {\n\t\tmatches(row) {\n\t\t\tconst actual = Object.keys(row);\n\t\t\treturn actual.length === keys.length && actual.every((key, index) => key === keys[index]);\n\t\t},\n\t\tdecode(row) {\n\t\t\tconst result = {};\n\t\t\tfor (const operation of operations) result[operation.field] = operation.decode(row[operation.key]);\n\t\t\treturn result;\n\t\t}\n\t};\n}\nfunction createPreparedScalarConsumer(context, include, scalar) {\n\tconst metadata = deferResolution(() => resolveScalarIncludeMetadata(context.contract, context, include, scalar));\n\treturn (raw) => {\n\t\tconst { resolved, codec } = metadata();\n\t\treturn consumeScalarInclude(include, resolved, codec, raw);\n\t};\n}\nasync function consumeFirstRow(rows) {\n\treturn (await rows.toArray())[0] ?? null;\n}\nfunction describeCollectionFirst(options) {\n\tconst rows = describeCollectionRows(options);\n\treturn {\n\t\t...rows,\n\t\tconsume: (source) => consumeFirstRow(rows.consume(source))\n\t};\n}\nfunction describeCollectionFirstOrThrow(options) {\n\tconst rows = describeCollectionRows(options);\n\treturn {\n\t\t...rows,\n\t\tconsume: (source) => rows.consume(source).firstOrThrow()\n\t};\n}\nfunction dispatchCollectionRows(options) {\n\tconst { context, runtime, state, modelName, namespaceId } = options;\n\tconst descriptionOptions = {\n\t\tcontext,\n\t\tstate,\n\t\tmodelName,\n\t\tnamespaceId\n\t};\n\tif (state.includes.length === 0) {\n\t\tconst query = describeExecutionRows(descriptionOptions);\n\t\treturn query.consume(queryPlanRows(runtime, query.plan));\n\t}\n\tresolvePolymorphismInfo(context.contract, namespaceId, modelName);\n\tconst generator = async function* () {\n\t\tconst query = describeExecutionRows(descriptionOptions);\n\t\tyield* query.consume(queryPlanRows(runtime, query.plan));\n\t};\n\treturn new AsyncIterableResult(generator());\n}\nfunction consumeIncludeRows(context, state, namespaceId, modelName, rows) {\n\tconst { contract } = context;\n\tconst generator = async function* () {\n\t\tconst parentRowsRaw = await rows.toArray();\n\t\tif (parentRowsRaw.length === 0) return;\n\t\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\t\tconst parentRows = parentRowsRaw.map((row) => {\n\t\t\treturn {\n\t\t\t\traw: row,\n\t\t\t\tmapped: polyInfo ? mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, state.tables, row, state.variantValue) : mapStorageRowToModelFields(contract, namespaceId, modelName, row)\n\t\t\t};\n\t\t});\n\t\tconst bindings = /* @__PURE__ */ new WeakMap();\n\t\tfor (const parent of parentRows) for (const include of state.includes) parent.mapped[include.relationName] = decodeIncludePayload(contract, context, include, parent.raw[include.relationName], bindings);\n\t\tfor (const row of parentRows) yield blindCast(row.mapped);\n\t};\n\treturn new AsyncIterableResult(generator());\n}\n/**\n* Reload the rows a mutation just wrote (create / createAll / update /\n* updateAll / upsert) through the read-path dispatch, so `.include()`\n* relations resolve via the exact same correlated-subquery builder,\n* decoding, and polymorphism mapping a read query uses — there is no\n* parallel mutation read-back implementation.\n*\n* The mutation returns only its identity columns (PK / unique); this\n* re-selects those rows with the caller's projection + includes, keyed\n* by `identity IN (...)`. One round-trip regardless of row count or\n* include depth. The read-back observes the just-written rows because\n* it runs on the same runtime — and therefore the same transaction —\n* the mutation ran on.\n*\n* Delete read-back does NOT come through here: a parent-anchored\n* include query can't observe an already-deleted row, so delete reads\n* its snapshot before issuing the DELETE (see `collection.ts`).\n*/\nfunction reloadMutationRowsByIdentities(options) {\n\tconst { context, runtime, tables, modelName, namespaceId, identityRows, selectedFields, includes } = options;\n\tconst { contract } = context;\n\tconst { tableName } = tables.root.storage;\n\tif (identityRows.length === 0) return emptyResult();\n\tconst identityColumns = resolveRowIdentityColumns(contract, namespaceId, tableName);\n\tif (identityColumns.length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `Cannot load includes for the mutation result on model \"${modelName}\": table \"${tableName}\" has no primary key or unique constraint to key the include read-back on.`, { meta: {\n\t\tmodel: modelName,\n\t\ttable: tableName\n\t} });\n\tconst identityFilter = buildIdentityInFilter(contract, tables.root, identityColumns, identityRows);\n\tif (!identityFilter) return emptyResult();\n\treturn dispatchCollectionRows({\n\t\tcontext,\n\t\truntime,\n\t\tstate: {\n\t\t\t...emptyState(tables),\n\t\t\tfilters: [identityFilter],\n\t\t\tselectedFields,\n\t\t\tincludes\n\t\t},\n\t\tmodelName,\n\t\tnamespaceId\n\t});\n}\nfunction emptyResult() {\n\treturn new AsyncIterableResult((async function* () {})());\n}\nfunction buildIdentityInFilter(contract, table, identityColumns, identityRows) {\n\tconst { storage } = table;\n\tconst [singleColumn, ...rest] = identityColumns;\n\tif (singleColumn !== void 0 && rest.length === 0) {\n\t\tconst values = identityRows.map((row) => row[singleColumn]).filter((value) => value !== void 0);\n\t\tif (values.length === 0) return;\n\t\treturn BinaryExpr.in(table.column(singleColumn), ListExpression.of(values.map((value) => paramRefForStorageColumn(contract, storage, singleColumn, value))));\n\t}\n\tif (identityRows.length === 0) return;\n\tconst tuples = identityRows.map((row) => AndExpr.of(identityColumns.map((column) => BinaryExpr.eq(table.column(column), paramRefForStorageColumn(contract, storage, column, row[column])))));\n\treturn OrExpr.of(tuples);\n}\n/**\n* Decode a single-query include payload from a parent row's raw cell\n* into the model-shaped value that downstream consumers see. Recurses\n* through `include.nested.includes` so depth-2+ trees — emitted by the\n* recursive correlated-subquery builder — are decoded symmetrically.\n*\n* The shape produced by the SQL side is one JSON column per top-level\n* include; values nested inside that JSON are already-parsed JS values\n* after the outer `JSON.parse`, so `parseIncludedRows` recognises both\n* the string (top-level) and array (nested) forms.\n*\n* Scalar leaves arrive wrapped in a `{ value: <primitive> }` JSON\n* envelope (see `buildIncludeChildScalarSelect`); the branch below\n* unwraps that envelope and passes the value straight through. The empty-relation value reads off\n* the operation's declared row via `emptyAggregateResult`: `null` where the row is nullable,\n* otherwise the row's declared empty value (so `count()` is `0`).\n*\n* Combine descriptors arrive as a JSON object keyed by branch name;\n* each branch is dispatched to the row or scalar decoder per its\n* declared shape (see `decodeCombineIncludePayload`).\n*/\nfunction decodeIncludePayload(contract, context, include, raw, bindings) {\n\tif (include.scalar) return decodeScalarIncludePayload(contract, context, include, include.scalar, raw);\n\tif (include.combine) return decodeCombineIncludePayload(contract, context, include, include.combine, raw, bindings);\n\tconst rawChildren = parseIncludedRows(include, raw);\n\tconst polyInfo = resolvePolymorphismInfo(contract, include.relatedNamespaceId, include.relatedModelName);\n\tconst mapChildRow = polyInfo ? (childRow) => mapPolymorphicRow(contract, include.relatedNamespaceId, include.relatedModelName, polyInfo, include.nested.tables, childRow, include.nested.variantValue) : createStorageRowMapper(contract, include.relatedNamespaceId, include.relatedModelName);\n\tlet columns = bindings.get(include);\n\tif (!columns) {\n\t\tcolumns = /* @__PURE__ */ new Map();\n\t\tbindings.set(include, columns);\n\t}\n\tconst columnBindings = columns;\n\treturn consumeRowInclude(rawChildren, mapChildRow, (key) => {\n\t\tlet binding = columnBindings.get(key);\n\t\tif (binding === void 0) {\n\t\t\tbinding = resolveIncludedColumnBinding(contract, context, include, key);\n\t\t\tcolumnBindings.set(key, binding);\n\t\t}\n\t\treturn binding;\n\t}, include.nested.includes.map((nested) => ({\n\t\talias: nested.relationName,\n\t\tconsume: (value) => decodeIncludePayload(contract, context, nested, value, bindings)\n\t})), isToOneCardinality(include.cardinality));\n}\nfunction consumeRowInclude(rawChildren, mapChildRow, bindingFor, nested, toOne) {\n\tconst mappedChildren = [];\n\tfor (const childRow of rawChildren) {\n\t\tconst decodedChildRow = decodeIncludedStorageRow(childRow, bindingFor);\n\t\tconst mapped = mapChildRow(decodedChildRow);\n\t\tfor (const child of nested) mapped[child.alias] = child.consume(decodedChildRow[child.alias]);\n\t\tmappedChildren.push(mapped);\n\t}\n\treturn toOne ? mappedChildren[0] ?? null : mappedChildren;\n}\nfunction decodeIncludedStorageRow(row, bindingFor) {\n\tconst decoded = {};\n\tfor (const [key, value] of Object.entries(row)) {\n\t\tif (value === null || value === void 0) {\n\t\t\tdecoded[key] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tconst binding = bindingFor(key);\n\t\tdecoded[key] = binding ? decodeIncludedColumnValue(binding.ref, binding.codecId, binding.codec, value) : value;\n\t}\n\treturn decoded;\n}\nfunction resolveIncludedColumnBinding(contract, context, include, key) {\n\tconst ref = resolveIncludedColumnRef(contract, include, key);\n\tif (!ref) return null;\n\tconst codec = context.contractCodecs.forColumn(ref.namespaceId, ref.table, ref.column);\n\tif (!codec) return null;\n\treturn {\n\t\tref,\n\t\tcodec,\n\t\tcodecId: context.codecDescriptors.codecRefForColumn(ref.namespaceId, ref.table, ref.column)?.codecId ?? ref.storageColumn.codecId\n\t};\n}\nfunction resolveIncludedColumnRef(contract, include, key) {\n\tconst baseColumn = resolveColumn(contract, include.relatedNamespaceId, include.relatedTableName, key);\n\tif (baseColumn) return {\n\t\tnamespaceId: include.relatedNamespaceId,\n\t\ttable: include.relatedTableName,\n\t\tcolumn: key,\n\t\tstorageColumn: baseColumn\n\t};\n\tconst polyInfo = resolvePolymorphismInfo(contract, include.relatedNamespaceId, include.relatedModelName);\n\tif (!polyInfo) return;\n\tfor (const variant of polyInfo.mtiVariants) {\n\t\tconst variantTable = requireVariantTable(include.nested.tables, variant.value);\n\t\tconst prefix = variantColumnLabelPrefix(variantTable);\n\t\tif (!key.startsWith(prefix)) continue;\n\t\tconst column = key.slice(prefix.length);\n\t\tconst { namespaceId, tableName } = variantTable.storage;\n\t\tconst variantColumn = resolveColumn(contract, namespaceId, tableName, column);\n\t\tif (variantColumn) return {\n\t\t\tnamespaceId,\n\t\t\ttable: tableName,\n\t\t\tcolumn,\n\t\t\tstorageColumn: variantColumn\n\t\t};\n\t}\n}\nfunction decodeIncludedColumnValue(ref, codecId, codec, value) {\n\tif (ref.storageColumn.many !== false) {\n\t\tif (!Array.isArray(value)) wrapIncludedDecodeFailure(/* @__PURE__ */ new TypeError(`expected an array from the driver for many-typed column, got ${typeof value}`), ref, codecId);\n\t\tconst decoded = [];\n\t\tfor (const element of value) {\n\t\t\tif (element === null || element === void 0) {\n\t\t\t\tdecoded.push(null);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdecoded.push(decodeIncludedJsonValue(ref, codecId, codec, element));\n\t\t}\n\t\treturn decoded;\n\t}\n\treturn decodeIncludedJsonValue(ref, codecId, codec, value);\n}\n/** `ref` names the value for a decode failure; an aggregate names its relation where a column would name itself. */\nfunction decodeIncludedJsonValue(ref, codecId, codec, value) {\n\ttry {\n\t\treturn codec.decodeJson(blindCast(value));\n\t} catch (error) {\n\t\tif (isRuntimeError(error)) throw error;\n\t\twrapIncludedDecodeFailure(error, ref, codecId);\n\t}\n}\nfunction wrapIncludedDecodeFailure(error, ref, codecId) {\n\tif (isInternalError(error)) throw error;\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to decode column ${ref.table}.${ref.column} with codec '${codecId}': ${message}`, {\n\t\ttable: ref.table,\n\t\tcolumn: ref.column,\n\t\tcodec: codecId\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\n/**\n* Decode the combine payload produced by `buildIncludeChildCombineSelect`.\n*\n* The raw value is a JSON object (already parsed by the SQL layer when\n* top-level, or already a JS object when nested) whose keys are branch\n* names. Each branch value is decoded per its declared kind:\n* - row branch -> recurse via `decodeIncludePayload` with a synthetic\n* IncludeExpr carrying the branch's state in `nested`. This walks\n* nested row-level includes the same way a plain row include would.\n* - scalar branch -> unwrap the `{value: ...}` envelope via the\n* standalone scalar decoder.\n*\n* On a parent with zero matching child rows the correlated subquery\n* still produces one row (aggregates collapse the empty input to a\n* single row), so the combine envelope here is always present in the\n* read path. Mutation read-back goes through the same read dispatch,\n* so a missing or non-object envelope here is always a planner/decoder\n* bug — `parseCombineEnvelope` throws loudly rather than papering over\n* it with an empty shape.\n*/\nfunction decodeCombineIncludePayload(contract, context, include, branches, raw, bindings) {\n\tconst parsed = parseCombineEnvelope(include, raw);\n\tconst result = {};\n\tfor (const [branchName, branch] of Object.entries(branches)) {\n\t\tconst branchRaw = parsed[branchName];\n\t\tif (branch.kind === \"rows\") result[branchName] = decodeIncludePayload(contract, context, {\n\t\t\t...include,\n\t\t\tnested: branch.state,\n\t\t\tscalar: void 0,\n\t\t\tcombine: void 0\n\t\t}, branchRaw, bindings);\n\t\telse result[branchName] = decodeScalarIncludePayload(contract, context, include, branch.selector, branchRaw);\n\t}\n\treturn result;\n}\nfunction parseCombineEnvelope(include, raw) {\n\tif (raw === null || raw === void 0) throw new InternalError(`combine() envelope for include \"${include.relationName}\" is missing (got ${raw === null ? \"null\" : \"undefined\"}); the correlated subquery should always produce a JSON object — this indicates a planner or decoder bug.`);\n\tconst parsed = parseIncludePayload(raw);\n\tif (!isPlainObjectEnvelope(parsed)) throw new InternalError(`combine() envelope for include \"${include.relationName}\" has unexpected shape (expected object, got ${describeEnvelopeShape(parsed)}); this indicates a planner or decoder bug.`);\n\treturn parsed;\n}\nfunction isPlainObjectEnvelope(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction describeEnvelopeShape(value) {\n\tif (value === null) return \"null\";\n\tif (Array.isArray(value)) return \"array\";\n\treturn typeof value;\n}\n/**\n* Pull the primitive scalar value out of the JSON envelope emitted by\n* the correlated scalar builder.\n*\n* Contract: the envelope is always either\n* - a `{ value: <primitive> }` JSON object (the SQL path), or\n* - `null` / `undefined` (no row reached the decoder), answered with `emptyAggregateResult`.\n*\n* Any other shape — array, primitive, string that JSON-parses to\n* non-object — indicates a planner / decoder bug, so we throw\n* loudly naming the include relation rather than soft-handling.\n* Mirrors `parseCombineEnvelope`'s strict shape gate.\n*\n* The value passes through its own codec — the one the planner projected it\n* under — because it arrived inside a JSON document, where a count past 2^53\n* would otherwise have been read as a rounded number. Resolution mirrors\n* planning — the same registry, operation, and column — so the empty-relation\n* answer derives from the operation's declared row: NULL where the row is\n* nullable, else the value that row declares. The outer `raw === null` fallback is\n* defensive cover for an empty parent set; in single-query dispatch the\n* correlated subquery always produces a row, so the inner envelope's `value`\n* is always set by SQL.\n*/\nfunction decodeScalarIncludePayload(contract, context, include, scalar, raw) {\n\tconst { resolved, codec } = resolveScalarIncludeMetadata(contract, context, include, scalar);\n\treturn consumeScalarInclude(include, resolved, codec, raw);\n}\nfunction resolveScalarIncludeMetadata(contract, context, include, scalar) {\n\tconst resolved = resolveAggregate({\n\t\taggregates: context.aggregateDescriptors,\n\t\tcontract,\n\t\tnamespaceId: include.relatedNamespaceId,\n\t\ttableName: include.relatedTableName,\n\t\tfn: scalar.fn,\n\t\tcolumn: scalar.column\n\t});\n\treturn {\n\t\tresolved,\n\t\tcodec: context.contractCodecs.forCodecRef(resolved.codec)\n\t};\n}\nfunction consumeScalarInclude(include, resolved, codec, raw) {\n\tif (raw === null || raw === void 0) return emptyAggregateResult(resolved, codec);\n\tconst parsed = parseIncludePayload(raw);\n\tif (!isPlainObjectEnvelope(parsed)) throw new InternalError(`scalar() envelope for include \"${include.relationName}\" has unexpected shape (expected object, got ${describeEnvelopeShape(parsed)}); this indicates a planner or decoder bug.`);\n\tconst value = parsed[\"value\"];\n\tif (value === null || value === void 0) return emptyAggregateResult(resolved, codec);\n\treturn decodeIncludedJsonValue({\n\t\ttable: include.relatedTableName,\n\t\tcolumn: include.relationName\n\t}, resolved.codec.codecId, codec, value);\n}\nfunction parseIncludedRows(include, value) {\n\tif (value === null || value === void 0) return [];\n\tconst parsed = parseIncludePayload(value);\n\tif (!Array.isArray(parsed)) return [];\n\tconst rows = [];\n\tfor (const item of parsed) {\n\t\tif (!isPlainObjectEnvelope(item)) throw new InternalError(`Include row envelope for relation \"${include.relationName}\" has unexpected shape (expected object, got ${describeEnvelopeShape(item)}); this indicates a planner or decoder bug.`);\n\t\trows.push({ ...item });\n\t}\n\treturn rows;\n}\nfunction parseIncludePayload(value) {\n\tif (typeof value !== \"string\") return value;\n\ttry {\n\t\treturn JSON.parse(value);\n\t} catch {\n\t\treturn [];\n\t}\n}\n//#endregion\n//#region src/collection-mutation-dispatch.ts\nfunction createMutationRowMapper(contract, namespaceId, modelName, tables, variantValue) {\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\treturn polyInfo ? (row) => mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, tables, row, variantValue) : (row) => mapStorageRowToModelFields(contract, namespaceId, modelName, row);\n}\nfunction dispatchMutationRows(options) {\n\tconst { context, runtime, compiled, tables, modelName, namespaceId, variantValue, includes, selectedFields, hiddenColumns, mapRow } = options;\n\tconst { contract } = context;\n\tconst mapStorageRow = createMutationRowMapper(contract, namespaceId, modelName, tables, variantValue);\n\tif (includes.length === 0) return mapResultRows(queryPlanRows(runtime, compiled), (rawRow) => {\n\t\tconst mapped = mapStorageRow(rawRow);\n\t\tif (hiddenColumns.length > 0) stripHiddenMappedFields(contract, namespaceId, modelName, mapped, hiddenColumns);\n\t\treturn mapRow(mapped);\n\t});\n\tconst generator = async function* () {\n\t\tconst identityRows = await queryPlanRows(runtime, compiled).toArray();\n\t\tyield* reloadMutationRowsByIdentities({\n\t\t\tcontext,\n\t\t\truntime,\n\t\t\ttables,\n\t\t\tmodelName,\n\t\t\tnamespaceId,\n\t\t\tidentityRows,\n\t\t\tselectedFields,\n\t\t\tincludes\n\t\t});\n\t};\n\treturn new AsyncIterableResult(generator());\n}\nfunction dispatchSplitMutationRows(options) {\n\tconst { context, runtime, plans, tables, modelName, namespaceId, variantValue, includes, selectedFields, hiddenColumns, mapRow } = options;\n\tconst { contract } = context;\n\tconst mapStorageRow = createMutationRowMapper(contract, namespaceId, modelName, tables, variantValue);\n\tconst generator = async function* () {\n\t\tif (includes.length > 0) {\n\t\t\tconst identityRows = [];\n\t\t\tfor (const plan of plans) identityRows.push(...await queryPlanRows(runtime, plan).toArray());\n\t\t\tyield* reloadMutationRowsByIdentities({\n\t\t\t\tcontext,\n\t\t\t\truntime,\n\t\t\t\ttables,\n\t\t\t\tmodelName,\n\t\t\t\tnamespaceId,\n\t\t\t\tidentityRows,\n\t\t\t\tselectedFields,\n\t\t\t\tincludes\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tfor (const plan of plans) for await (const rawRow of queryPlanRows(runtime, plan)) {\n\t\t\tconst mapped = mapStorageRow(rawRow);\n\t\t\tif (hiddenColumns.length > 0) stripHiddenMappedFields(contract, namespaceId, modelName, mapped, hiddenColumns);\n\t\t\tyield mapRow(mapped);\n\t\t}\n\t};\n\treturn new AsyncIterableResult(generator());\n}\nasync function executeMutationReturningSingleRow(options) {\n\tconst { context, runtime, compiled, tables, modelName, namespaceId, variantValue, includes, selectedFields, hiddenColumns, mapRow, operation, onMissingRowMessage } = options;\n\tconst { contract } = context;\n\tconst mapStorageRow = createMutationRowMapper(contract, namespaceId, modelName, tables, variantValue);\n\tif (includes.length === 0) {\n\t\tconst first = (await queryPlanRows(runtime, compiled).toArray())[0];\n\t\tif (!first) return null;\n\t\tconst mapped = mapStorageRow(first);\n\t\tif (hiddenColumns.length > 0) stripHiddenMappedFields(contract, namespaceId, modelName, mapped, hiddenColumns);\n\t\treturn mapRow(mapped);\n\t}\n\tconst identityRows = await queryPlanRows(runtime, compiled).toArray();\n\tif (identityRows.length === 0) return null;\n\tfor await (const row of reloadMutationRowsByIdentities({\n\t\tcontext,\n\t\truntime,\n\t\ttables,\n\t\tmodelName,\n\t\tnamespaceId,\n\t\tidentityRows,\n\t\tselectedFields,\n\t\tincludes\n\t})) return row;\n\tthrow ormError(\"ORM.MUTATION_ROW_MISSING\", onMissingRowMessage, { meta: {\n\t\toperation,\n\t\tmodel: modelName,\n\t\ttableName: tables.root.storage.tableName\n\t} });\n}\n//#endregion\n//#region src/filters.ts\n/** The filter expression of a condition: a condition from `fns` becomes its AST. */\nfunction conditionExpr(condition) {\n\treturn isFunctionCondition(condition) ? condition.buildAst() : condition;\n}\n/** A `where` callback's result as a filter: a condition from `fns` becomes its AST. */\nfunction whereArgOf(result) {\n\treturn isFunctionCondition(result) ? result.buildAst() : result;\n}\nfunction isFunctionCondition(value) {\n\treturn isExpression(value);\n}\nfunction and(...exprs) {\n\treturn AndExpr.of(exprs.map(conditionExpr));\n}\nfunction or(...exprs) {\n\treturn OrExpr.of(exprs.map(conditionExpr));\n}\nfunction not(expr) {\n\treturn conditionExpr(expr).not();\n}\nfunction all() {\n\treturn AndExpr.true();\n}\nfunction shorthandToWhereExpr(context, namespaceId, modelName, filters, table) {\n\tconst contract = context.contract;\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst exprs = [];\n\tfor (const [fieldName, value] of Object.entries(filters)) {\n\t\tif (value === void 0) continue;\n\t\tconst columnName = columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName);\n\t\tconst left = table.column(columnName);\n\t\tif (value === null) {\n\t\t\texprs.push(NullCheckExpr.isNull(left));\n\t\t\tcontinue;\n\t\t}\n\t\tassertFieldHasEqualityTrait(context, namespaceId, modelName, fieldName);\n\t\texprs.push(predicateComparison(\"eq\", left, predicateExpression(value) ?? paramRefForStorageColumn(contract, table.storage, columnName, value)));\n\t}\n\tif (exprs.length === 0) return;\n\treturn exprs.length === 1 ? exprs[0] : and(...exprs);\n}\nfunction assertFieldHasEqualityTrait(context, namespaceId, modelName, fieldName) {\n\tconst fieldType = modelOf(context.contract, namespaceId, modelName)?.fields?.[fieldName]?.type;\n\tconst codecId = fieldType?.kind === \"scalar\" ? fieldType.codecId : void 0;\n\tif (codecId === void 0 || !hasTrait(context, codecId, \"equality\")) throw ormError(\"ORM.FILTER_UNSUPPORTED\", `Shorthand filter on \"${modelName}.${fieldName}\": field does not support equality comparisons`, { meta: {\n\t\tmodel: modelName,\n\t\tfield: fieldName,\n\t\ttrait: \"equality\"\n\t} });\n}\n//#endregion\n//#region src/fragments.ts\nfunction nullability(nullable) {\n\treturn nullable ? \"may be null\" : \"is never null\";\n}\nfunction isFieldBuilder(value) {\n\treturn \"build\" in value && typeof value.build === \"function\";\n}\nfunction isListMultiplicity(value) {\n\treturn typeof value === \"object\" && value !== null && \"elementNullable\" in value && typeof value.elementNullable === \"boolean\";\n}\nfunction isMultiplicity(value) {\n\treturn value === void 0 || value === false || isListMultiplicity(value);\n}\nfunction isFieldSpec(value) {\n\treturn \"codecId\" in value && typeof value.codecId === \"string\" && \"nullable\" in value && typeof value.nullable === \"boolean\" && (!(\"many\" in value) || isMultiplicity(value.many));\n}\nfunction multiplicity(many) {\n\treturn isListMultiplicity(many) ? { elementNullable: many.elementNullable } : false;\n}\nconst FIELD_DECLARATION_FIX = \"Declare each field with a field builder, such as field.temporal.timestamptz().optional(), or with { codecId, nullable }. Declare a list with .many() or many: { elementNullable: false }, or, when its elements may be null, with .many({ elementsNullable: true }) or many: { elementNullable: true }.\";\nfunction declaredFieldSpec(name, declaration) {\n\tif (typeof declaration === \"object\" && declaration !== null && isFieldBuilder(declaration)) {\n\t\tconst built = declaration.build();\n\t\tconst descriptor = typeof built === \"object\" && built !== null && \"descriptor\" in built ? built.descriptor : void 0;\n\t\tconst nullable = typeof built === \"object\" && built !== null && \"nullable\" in built ? built.nullable : void 0;\n\t\tif (typeof descriptor !== \"object\" || descriptor === null || !(\"codecId\" in descriptor) || typeof descriptor.codecId !== \"string\" || typeof nullable !== \"boolean\") throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define the fragment: the field builder for ${name} names no column type`, {\n\t\t\twhy: \"A fragment for any model matches each declared field by its codec and nullability, and this builder refers to a named type instead of a column type.\",\n\t\t\tfix: \"Declare the field with a builder that has a column type, such as field.text() or field.column(textColumn), or with { codecId, nullable }.\",\n\t\t\tmeta: { field: name }\n\t\t});\n\t\tconst many = typeof built === \"object\" && built !== null && \"many\" in built && built.many;\n\t\tif (!isMultiplicity(many)) throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define the fragment: the field builder for ${name} builds a many that is not false or { elementNullable }`, {\n\t\t\twhy: `A field builder's build() returns many as false or undefined for one value, or as { elementNullable } with a boolean elementNullable for a list; received ${describeReceived(many)} for ${name}.`,\n\t\t\tfix: FIELD_DECLARATION_FIX,\n\t\t\tmeta: { field: name }\n\t\t});\n\t\treturn {\n\t\t\tcodecId: descriptor.codecId,\n\t\t\tnullable,\n\t\t\tmany: multiplicity(many)\n\t\t};\n\t}\n\tif (typeof declaration === \"object\" && declaration !== null && isFieldSpec(declaration)) return {\n\t\tcodecId: declaration.codecId,\n\t\tnullable: declaration.nullable,\n\t\tmany: multiplicity(declaration.many)\n\t};\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define the fragment: the declaration of field ${name} is not a field builder or { codecId, nullable }`, {\n\t\twhy: `Each field of a fragment is declared with a field builder or with an object that has a string codecId, a boolean nullable and, for a list, many: { elementNullable } with a boolean elementNullable; received ${describeReceived(declaration)} for ${name}.`,\n\t\tfix: FIELD_DECLARATION_FIX,\n\t\tmeta: { field: name }\n\t});\n}\nfunction declaredFieldSpecs(declarations) {\n\tif (typeof declarations !== \"object\" || declarations === null || Array.isArray(declarations)) throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot define the fragment: the fields are not an object\", {\n\t\twhy: `The first argument of fragment maps the name of each field the fragment needs to its declaration; received ${describeReceived(declarations)}.`,\n\t\tfix: FIELD_DECLARATION_FIX,\n\t\tmeta: { argument: \"fields\" }\n\t});\n\treturn Object.entries(declarations).map(([name, declaration]) => [name, declaredFieldSpec(name, declaration)]);\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `body`, the body of a fragment, is a function. */\nfunction assertFragmentBody(body) {\n\tif (typeof body !== \"function\") throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot define the fragment: the body is not a function\", {\n\t\twhy: `The body of a fragment is a function that receives a collection and returns one; received ${describeReceived(body)}.`,\n\t\tfix: \"Pass a function, such as (rows) => rows.where(...).\",\n\t\tmeta: { argument: \"body\" }\n\t});\n}\nfunction hasContract(ctx) {\n\treturn \"context\" in ctx && typeof ctx.context === \"object\" && ctx.context !== null && \"contract\" in ctx.context && typeof ctx.context.contract === \"object\" && ctx.context.contract !== null;\n}\nfunction isModelCollection(value) {\n\treturn typeof value === \"object\" && value !== null && \"ctx\" in value && typeof value.ctx === \"object\" && value.ctx !== null && hasContract(value.ctx) && \"modelName\" in value && typeof value.modelName === \"string\" && \"namespaceId\" in value && typeof value.namespaceId === \"string\";\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `value`, what a fragment is applied to, is a collection. */\nfunction assertFragmentReceiver(value) {\n\tif (!isModelCollection(value)) throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot apply the fragment: it was not given a collection\", {\n\t\twhy: `A fragment is applied to a collection, such as db.orm.public.Post; received ${describeReceived(value)}.`,\n\t\tfix: \"Pass the fragment to with on a collection: collection.with(fragment).\",\n\t\tmeta: { argument: \"collection\" }\n\t});\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `value` is a collection of the model and namespace a fragment for one model was made from. */\nfunction assertModelFragmentReceiver(source, value) {\n\tassertFragmentReceiver(value);\n\tif (value.modelName !== source.modelName || value.namespaceId !== source.namespaceId) {\n\t\tconst made = `${source.namespaceId}.${source.modelName}`;\n\t\tconst given = `${value.namespaceId}.${value.modelName}`;\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot apply a fragment for ${made} to a collection of ${given}`, {\n\t\t\twhy: `The fragment was made with ${made}.fragment(...), and its body was written for that model.`,\n\t\t\tfix: `Apply the fragment to a collection of ${made}, or make a fragment from ${given}.`,\n\t\t\tmeta: {\n\t\t\t\tmodel: source.modelName,\n\t\t\t\tnamespace: source.namespaceId,\n\t\t\t\treceivedModel: value.modelName,\n\t\t\t\treceivedNamespace: value.namespaceId\n\t\t\t}\n\t\t});\n\t}\n}\nfunction firstQueryState(state) {\n\treturn [\n\t\t[\"a variant\", state.variantValue !== void 0],\n\t\t[\"a cursor\", state.cursor !== void 0],\n\t\t[\"distinctOn\", state.distinctOn !== void 0],\n\t\t[\"distinct\", state.distinct !== void 0],\n\t\t[\"a filter\", state.filters.length > 0],\n\t\t[\"an order\", state.orderBy !== void 0],\n\t\t[\"a limit\", state.limit !== void 0],\n\t\t[\"an offset\", state.offset !== void 0],\n\t\t[\"an include\", state.includes.length > 0],\n\t\t[\"selected fields\", state.selectedFields !== void 0],\n\t\t[\"a row lock\", state.locking !== void 0]\n\t].find(([, isPresent]) => isPresent)?.[0];\n}\n/** Throws `ORM.ARGUMENT_INVALID` when the collection a fragment for one model is made from carries query state, which the fragment would ignore. */\nfunction assertModelFragmentSource(source) {\n\tconst state = firstQueryState(source.state);\n\tif (state === void 0) return;\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define a fragment from a collection of ${source.modelName} that has ${state}`, {\n\t\twhy: \"A fragment for one model is built from the model alone, so the calls before .fragment(...) would be ignored.\",\n\t\tfix: `Call fragment on the model's root collection, such as db.orm.${source.namespaceId}.${source.modelName}.fragment(...), and apply the other calls where the fragment is used.`,\n\t\tmeta: {\n\t\t\tmethod: \"fragment\",\n\t\t\tmodel: source.modelName,\n\t\t\tstate\n\t\t}\n\t});\n}\n/** The model as error messages name it: with its namespace when the contract has more than one. */\nfunction modelLabel(collection) {\n\treturn Object.keys(collection.ctx.context.contract.domain.namespaces).length > 1 ? `${collection.namespaceId}.${collection.modelName}` : collection.modelName;\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `result`, what a fragment's body returned, is a collection of the receiver's model, namespace and class. */\nfunction assertDeclaredFieldsFragmentResult(receiver, result) {\n\tif (!(isModelCollection(result) && result.modelName === receiver.modelName && result.namespaceId === receiver.namespaceId && result instanceof receiver.constructor)) {\n\t\tconst label = modelLabel(receiver);\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot apply the fragment to ${label}: its body did not return a collection of ${label}`, {\n\t\t\twhy: `The body of a fragment for any model returns the collection it received, after where, orderBy, limit or offset; it returned ${isModelCollection(result) ? `a collection of ${modelLabel(result)}` : describeReceived(result)}.`,\n\t\t\tfix: \"Return the collection the body receives, or one made from it by calling its methods.\",\n\t\t\tmeta: {\n\t\t\t\tmodel: receiver.modelName,\n\t\t\t\tnamespace: receiver.namespaceId,\n\t\t\t\treturned: isModelCollection(result) ? result.modelName : describeReceived(result)\n\t\t\t}\n\t\t});\n\t}\n}\nfunction elementNullability(elementNullable) {\n\treturn elementNullable ? \"may be null\" : \"are never null\";\n}\nfunction sameMultiplicity(a, b) {\n\treturn a === false || b === false ? a === b : a.elementNullable === b.elementNullable;\n}\nfunction fieldShape(many) {\n\treturn many === false ? \"holds one value\" : `is a list whose elements ${elementNullability(many.elementNullable)}`;\n}\nfunction declarationFor(many) {\n\tif (many === false) return \"as one value, without .many() or many\";\n\treturn many.elementNullable ? \"as a list whose elements may be null, with .many({ elementsNullable: true }) or many: { elementNullable: true }\" : \"as a list whose elements are never null, with .many() or many: { elementNullable: false }\";\n}\nfunction describeField(field) {\n\tconst value = `with codec ${field.codecId} that ${nullability(field.nullable)}`;\n\treturn field.many === false ? value : `${value} and whose elements ${elementNullability(field.many.elementNullable)}`;\n}\nfunction assertDeclaredFieldsFragmentFields(collection, fields) {\n\tconst { contract } = collection.ctx.context;\n\tconst { modelName, namespaceId } = collection;\n\tconst label = modelLabel(collection);\n\tconst modelFields = getModelFields(contract, namespaceId, modelName);\n\tfor (const [name, spec] of fields) {\n\t\tconst declared = `The fragment was declared for models that have a ${spec.many === false ? \"field\" : \"list field\"} ${name} ${describeField(spec)}.`;\n\t\tconst meta = {\n\t\t\tmodel: modelName,\n\t\t\tnamespace: namespaceId,\n\t\t\tfield: name,\n\t\t\tcodecId: spec.codecId,\n\t\t\tnullable: spec.nullable,\n\t\t\tmany: spec.many\n\t\t};\n\t\tconst fieldColumn = Object.hasOwn(modelFields, name) ? modelFields[name] : void 0;\n\t\tif (fieldColumn === void 0) throw ormError(\"ORM.FIELD_UNKNOWN\", `Cannot apply a fragment to ${label}: it has no field ${name}`, {\n\t\t\twhy: declared,\n\t\t\tfix: `Apply the fragment to a model that has a field ${name}, or remove ${name} from the declaration in the fragment.`,\n\t\t\tmeta\n\t\t});\n\t\tconst fieldMany = multiplicity(domainFieldOf(contract, namespaceId, modelName, name)?.many);\n\t\tconst column = resolveColumn(contract, fieldColumn.namespaceId, fieldColumn.table, fieldColumn.column);\n\t\tconst actual = column === void 0 ? `${label}.${name} has no column.` : fieldMany === false ? `${label}.${name} has codec ${column.codecId} and ${nullability(column.nullable)}.` : `${label}.${name} is a list ${describeField({\n\t\t\tcodecId: column.codecId,\n\t\t\tnullable: column.nullable,\n\t\t\tmany: fieldMany\n\t\t})}.`;\n\t\tconst sameCodecAndNullability = column?.codecId === spec.codecId && column.nullable === spec.nullable;\n\t\tif (!sameCodecAndNullability || !sameMultiplicity(fieldMany, spec.many)) throw ormError(\"ORM.FIELD_UNKNOWN\", `Cannot apply a fragment to ${label}: its field ${name} does not match the declaration`, {\n\t\t\twhy: `${declared} ${actual}`,\n\t\t\tfix: sameCodecAndNullability ? `Apply the fragment to a model whose ${name} field ${fieldShape(spec.many)}, or declare ${name} ${declarationFor(fieldMany)}.` : `Apply the fragment to a model whose ${name} field has that codec and nullability, or change the declaration in the fragment.`,\n\t\t\tmeta\n\t\t});\n\t}\n}\n/**\n* Define a fragment for any model that has the declared fields. Reached as the `fragment` method of the client `orm()` returns.\n*/\nfunction defineDeclaredFieldsFragment(declarations, body) {\n\tconst fields = declaredFieldSpecs(declarations);\n\tassertFragmentBody(body);\n\treturn blindCast((collection) => {\n\t\tconst receiver = collection;\n\t\tassertFragmentReceiver(receiver);\n\t\tassertDeclaredFieldsFragmentFields(receiver, fields);\n\t\tconst result = collectionBehind(body(blindCast(withoutIndexes(receiver))));\n\t\tassertDeclaredFieldsFragmentResult(receiver, result);\n\t\treturn result;\n\t});\n}\nconst NO_INDEXES = Object.freeze({});\nconst collectionsBehindViews = /* @__PURE__ */ new WeakMap();\nconst BODY_CHAIN_METHODS = {\n\twhere: true,\n\torderBy: true,\n\tlimit: true,\n\toffset: true\n};\n/**\n* The collection as the body of a fragment for any model sees it: a `where` or `orderBy` callback receives `fns` and an `indexes` with no members, as the body does not know its model.\n*/\nfunction withoutIndexes(collection) {\n\tconst view = new Proxy(collection, { get(target, prop) {\n\t\tconst member = Reflect.get(target, prop, target);\n\t\tif (typeof member !== \"function\") return member;\n\t\tif (!Object.hasOwn(BODY_CHAIN_METHODS, prop)) return member.bind(target);\n\t\treturn (...args) => {\n\t\t\tconst result = Reflect.apply(member, target, args.map(withoutIndexesInCallbacks));\n\t\t\treturn typeof result === \"object\" && result !== null ? withoutIndexes(result) : result;\n\t\t};\n\t} });\n\tcollectionsBehindViews.set(view, collection);\n\treturn view;\n}\nfunction withoutIndexesInCallbacks(argument) {\n\tif (Array.isArray(argument)) return argument.map(withoutIndexesInCallbacks);\n\tif (typeof argument !== \"function\") return argument;\n\treturn (row, tools) => Reflect.apply(argument, void 0, [row, {\n\t\tfns: Reflect.get(Object(tools), \"fns\"),\n\t\tindexes: NO_INDEXES\n\t}]);\n}\nfunction collectionBehind(value) {\n\treturn typeof value === \"object\" && value !== null ? collectionsBehindViews.get(value) ?? value : value;\n}\nconst SHOWN_LENGTH = 64;\nfunction shown(value) {\n\tconst characters = Array.from(value);\n\tconst cut = characters.length > SHOWN_LENGTH;\n\treturn {\n\t\ttext: JSON.stringify(cut ? `${characters.slice(0, SHOWN_LENGTH).join(\"\")}…` : value),\n\t\tcut\n\t};\n}\nfunction describeReceived(value) {\n\tif (value === void 0 || value === null) return String(value);\n\tif (Array.isArray(value)) return \"an array\";\n\tconst kind = typeof value;\n\treturn kind === \"object\" ? \"an object\" : `a ${kind}`;\n}\nfunction cutNote(subject, value) {\n\treturn value.cut ? ` The ${subject} above is cut to its first ${SHOWN_LENGTH} characters.` : \"\";\n}\nfunction fieldCodecId(collection, field) {\n\tconst { contract } = collection.ctx.context;\n\tconst modelFields = getModelFields(contract, collection.namespaceId, collection.modelName);\n\tconst fieldColumn = Object.hasOwn(modelFields, field) ? modelFields[field] : void 0;\n\tif (fieldColumn === void 0) return void 0;\n\treturn resolveColumn(contract, fieldColumn.namespaceId, fieldColumn.table, fieldColumn.column)?.codecId;\n}\n/** The domain declaration of a model's own or inherited field. */\nfunction domainFieldOf(contract, namespaceId, modelName, name) {\n\tlet model = modelOf(contract, namespaceId, modelName);\n\twhile (model !== void 0) {\n\t\tconst fields = model.fields ?? {};\n\t\tif (Object.hasOwn(fields, name)) return fields[name];\n\t\tconst base = model.base;\n\t\tmodel = base === void 0 ? void 0 : modelOf(contract, base.namespace, base.model);\n\t}\n}\nfunction canOrder(collection, field) {\n\tconst codecId = fieldCodecId(collection, field);\n\treturn codecId !== void 0 && hasTrait(collection.ctx.context, codecId, \"order\");\n}\nfunction orderableFieldNames(collection) {\n\tconst modelFields = getModelFields(collection.ctx.context.contract, collection.namespaceId, collection.modelName);\n\treturn Object.keys(modelFields).filter((field) => canOrder(collection, field));\n}\nfunction whyNotOrderable(collection, name) {\n\tconst { modelName } = collection;\n\tconst model = modelOf(collection.ctx.context.contract, collection.namespaceId, modelName);\n\tconst quoted = shown(name).text;\n\tif (Object.hasOwn(model?.relations ?? {}, name)) return `${quoted} is a relation of ${modelName}, not a field.`;\n\tif (!Object.hasOwn(getModelFields(collection.ctx.context.contract, collection.namespaceId, modelName), name)) return `${modelName} has no field ${quoted}.`;\n\treturn canOrder(collection, name) ? `${quoted} is not one of the fields allowed for ordering.` : `The codec ${fieldCodecId(collection, name)} of ${modelName}.${name} cannot be ordered.`;\n}\n/**\n* An `orderBy` selector for a field named by a string, such as an order parameter of a request. `allowed` lists the fields a request may order by. A name that is not in `allowed` or not an orderable field of the collection's model, and a direction other than `asc` or `desc`, throw `ORM.ARGUMENT_INVALID`. An undefined direction is `asc`.\n*\n* ```ts\n* db.Post.orderBy(orderByField(db.Post, input.orderBy, input.direction, ['title', 'createdAt']));\n* ```\n*/\nfunction orderByField(collection, name, direction, allowed) {\n\tconst receiver = collection;\n\tif (!isModelCollection(receiver)) throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot order: orderByField was not given a collection\", {\n\t\twhy: `orderByField takes the collection it orders, such as db.orm.public.Post; received ${describeReceived(receiver)}.`,\n\t\tfix: \"Pass the collection the selector is for as the first argument.\",\n\t\tmeta: { argument: \"collection\" }\n\t});\n\tconst { modelName } = collection;\n\tconst requestedName = name;\n\tconst requestedDirection = direction === void 0 ? \"asc\" : direction;\n\tconst allowedList = allowed;\n\tif (!Array.isArray(allowedList) || allowedList.some((field) => typeof field !== \"string\")) throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName}: the allowed fields are not a list of names`, {\n\t\twhy: `orderByField takes the list of fields a request may order by; received ${describeReceived(allowedList)}.`,\n\t\tfix: `Pass an array of field names of ${modelName}, such as ['title', 'createdAt'].`,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\targument: \"allowed\"\n\t\t}\n\t});\n\tif (typeof requestedDirection !== \"string\") throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName}: the direction is not a string`, {\n\t\twhy: `An order direction is \"asc\" or \"desc\"; received ${describeReceived(requestedDirection)}.`,\n\t\tfix: \"Pass \\\"asc\\\" or \\\"desc\\\".\",\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tdirection: requestedDirection\n\t\t}\n\t});\n\tif (!isOrderByDirection(requestedDirection)) {\n\t\tconst shownDirection = shown(requestedDirection);\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName} in direction ${shownDirection.text}`, {\n\t\t\twhy: \"An order direction is \\\"asc\\\" or \\\"desc\\\".\",\n\t\t\tfix: `Pass \"asc\" or \"desc\".${cutNote(\"direction\", shownDirection)}`,\n\t\t\tmeta: {\n\t\t\t\tmodel: modelName,\n\t\t\t\tdirection: requestedDirection\n\t\t\t}\n\t\t});\n\t}\n\tconst orderable = orderableFieldNames(collection);\n\tconst names = allowedList.filter((field) => orderable.includes(field));\n\tconst orderByOneOf = names.length === 0 ? `Pass an allowed list that names at least one field of ${modelName} that can be ordered.` : `Order by one of: ${names.join(\", \")}.`;\n\tif (typeof requestedName !== \"string\") throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName}: the field name is not a string`, {\n\t\twhy: `An order field name is a string; received ${describeReceived(requestedName)}.`,\n\t\tfix: orderByOneOf,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tfield: requestedName\n\t\t}\n\t});\n\tif (!names.includes(requestedName)) {\n\t\tconst shownName = shown(requestedName);\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName} by ${shownName.text}`, {\n\t\t\twhy: whyNotOrderable(collection, requestedName),\n\t\t\tfix: `${orderByOneOf}${cutNote(\"name\", shownName)}`,\n\t\t\tmeta: {\n\t\t\t\tmodel: modelName,\n\t\t\t\tfield: requestedName\n\t\t\t}\n\t\t});\n\t}\n\tconst field = blindCast(requestedName);\n\tconst order = requestedDirection;\n\treturn (row) => row[field][order]();\n}\n//#endregion\n//#region src/callback-tools.ts\n/**\n* Refuses a bare value in `fns.raw` when the execution context has no raw codec inferer, as a hand-built context may not.\n*/\nconst rawCodecInfererUnavailable = { inferCodec(value) {\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", \"fns.raw cannot infer the codec of an interpolated value: the execution context has no raw codec inferer.\", {\n\t\twhy: \"A value interpolated into fns.raw is bound as a parameter, and its codec comes from the adapter.\",\n\t\tfix: \"Wrap the value with param(value, { codecId }), or pass orm() an execution context built from an execution stack, such as the client's db.context.\",\n\t\tmeta: { argument: typeof value }\n\t});\n} };\n/**\n* The expression with `asc()` and `desc()` added. Its own properties read as they are, which a frozen expression requires; an inherited method is bound to the expression, so it keeps working.\n*/\nfunction orderable(expression) {\n\tconst order = {\n\t\tasc: (options) => checkedOrderByItem(\"asc\", expression.buildAst(), options),\n\t\tdesc: (options) => checkedOrderByItem(\"desc\", expression.buildAst(), options)\n\t};\n\treturn new Proxy(expression, {\n\t\thas: (target, prop) => prop === \"asc\" || prop === \"desc\" || Reflect.has(target, prop),\n\t\tget(target, prop) {\n\t\t\tif (prop === \"asc\" || prop === \"desc\") return order[prop];\n\t\t\tconst member = Reflect.get(target, prop, target);\n\t\t\treturn typeof member === \"function\" && !Object.hasOwn(target, prop) ? member.bind(target) : member;\n\t\t}\n\t});\n}\nfunction orderableValue(context, result) {\n\tif (!isExpression(result)) return result;\n\tif (codecTraits(context, result.returnType.codecId).includes(\"boolean\")) return result;\n\treturn orderable(result);\n}\nfunction orderableRaw(raw) {\n\treturn (strings, ...values) => {\n\t\tconst builder = raw(strings, ...values);\n\t\treturn { returns: (spec) => orderable(builder.returns(spec)) };\n\t};\n}\nconst CONDITION_FIELD = Object.freeze({\n\tcodecId: \"pg/bool@1\",\n\tnullable: false\n});\n/** An ORM condition as an argument of `fns.and` or `fns.or`, which read an expression. */\nfunction asFunctionArgument(argument) {\n\treturn isOrmCondition(argument) ? new ExpressionImpl(argument, CONDITION_FIELD) : argument;\n}\nfunction isOrmCondition(value) {\n\treturn typeof value === \"object\" && value !== null && !isExpression(value) && \"accept\" in value && typeof value.accept === \"function\";\n}\nfunction logical(fn) {\n\treturn (...conditions) => fn(...conditions.map(asFunctionArgument));\n}\nfunction createOrmFunctions(context) {\n\tconst operations = context.queryOperations.entries();\n\tconst fns = createFunctions(operations, context.rawCodecInferer ?? rawCodecInfererUnavailable);\n\tconst raw = orderableRaw(fns.raw);\n\treturn new Proxy(blindCast({}), { get(_target, prop) {\n\t\tif (typeof prop !== \"string\") return void 0;\n\t\tif (prop === \"raw\") return raw;\n\t\tif (prop === \"and\" || prop === \"or\") return logical(Reflect.get(fns, prop));\n\t\tconst fn = Reflect.get(fns, prop);\n\t\tif (typeof fn !== \"function\" || !Object.hasOwn(operations, prop)) return fn;\n\t\treturn (...args) => orderableValue(context, Reflect.apply(fn, void 0, args));\n\t} });\n}\n/**\n* The second argument of a `where` or `orderBy` callback. `indexes` is read lazily, once.\n*/\nfunction createCallbackTools(context, indexes) {\n\tlet resolved;\n\treturn Object.freeze({\n\t\tfns: createOrmFunctions(context),\n\t\tget indexes() {\n\t\t\tresolved ??= indexes();\n\t\t\treturn blindCast(resolved);\n\t\t}\n\t});\n}\n//#endregion\n//#region src/model-accessor.ts\nfunction hasThrough$1(relation) {\n\treturn relation.through !== void 0;\n}\nfunction createModelAccessor(context, namespaceId, modelName, tables, variantValue) {\n\treturn createModelAccessorInScope(context, namespaceId, modelName, variantValue, tables.scope, tables.root, variantValue === void 0 ? void 0 : tables.variants.get(variantValue));\n}\n/**\n* The second argument of a `where` or `orderBy` callback on a collection of the model: the SQL query builder's functions, and the indexes of the model's table.\n*/\nfunction createModelCallbackTools(context, modelName, tables) {\n\treturn callbackToolsFor(context, modelName, tables.root);\n}\nfunction callbackToolsFor(context, modelName, aliasedTable) {\n\treturn createCallbackTools(context, () => indexReferencesOf(context, modelName, aliasedTable));\n}\nfunction indexReferencesOf(context, modelName, aliasedTable) {\n\tconst { contract } = context;\n\tconst { namespaceId, tableName } = aliasedTable.storage;\n\tconst resolved = resolveTableForContract(contract, namespaceId, tableName);\n\tif (!resolved) throw new InternalError(`Model \"${modelName}\" is stored in table \"${tableName}\", which the contract does not have`);\n\tconst { table } = resolved;\n\treturn createIndexReferences({\n\t\tnamespaceId,\n\t\ttableName,\n\t\ttable,\n\t\tcolumn: (columnName) => {\n\t\t\tconst column = table.columns[columnName];\n\t\t\tif (!column) throw new InternalError(`An index of table \"${tableName}\" covers column \"${columnName}\", which the table does not have`);\n\t\t\treturn {\n\t\t\t\treturnType: {\n\t\t\t\t\tcodecId: column.codecId,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\t...ifDefined(\"codec\", codecRefForStorageColumn(contract.storage, namespaceId, tableName, columnName))\n\t\t\t\t},\n\t\t\t\tbuildAst: () => aliasedTable.column(columnName)\n\t\t\t};\n\t\t}\n\t});\n}\nfunction createModelAccessorInScope(context, namespaceId, modelName, variantValue, scope, table, variantTable) {\n\tconst contract = context.contract;\n\tconst fieldColumns = getModelAndVariantFieldColumns(contract, namespaceId, modelName, variantValue);\n\tconst modelRelations = resolveModelRelations(contract, namespaceId, modelName);\n\tconst variantFieldColumns = variantValue ? resolveVariantFieldColumns(contract, namespaceId, modelName, variantValue) : {};\n\tconst [addressedNamespaceId, addressed] = addressedModel(contract, namespaceId, modelName, variantValue);\n\tconst variantCoordinates = variantValue ? {\n\t\tnamespaceId: addressedNamespaceId,\n\t\tname: addressed,\n\t\trelations: resolveModelRelations(contract, addressedNamespaceId, addressed)\n\t} : void 0;\n\tconst variantFieldTable = variantTable ?? table;\n\tconst opsByCodecId = /* @__PURE__ */ new Map();\n\tfunction registerOp(codecId, op) {\n\t\tlet existing = opsByCodecId.get(codecId);\n\t\tif (!existing) {\n\t\t\texisting = [];\n\t\t\topsByCodecId.set(codecId, existing);\n\t\t}\n\t\texisting.push(op);\n\t}\n\tfor (const [name, entry] of Object.entries(context.queryOperations.entries())) {\n\t\tconst op = [name, entry];\n\t\tconst self = entry.self;\n\t\tif (!self) continue;\n\t\tif (self.codecId !== void 0) registerOp(self.codecId, op);\n\t\telse if (self.traits !== void 0) for (const descriptor of context.codecDescriptors.values()) {\n\t\t\tconst descriptorTraits = descriptor.traits;\n\t\t\tif (self.traits.every((t) => descriptorTraits.includes(t))) registerOp(descriptor.codecId, op);\n\t\t}\n\t}\n\treturn blindCast(new Proxy({}, { get(target, prop) {\n\t\tif (typeof prop !== \"string\") return;\n\t\tif (variantCoordinates && Object.hasOwn(variantCoordinates.relations, prop)) {\n\t\t\tconst variantRelation = variantCoordinates.relations[prop];\n\t\t\tif (variantRelation) return createRelationFilterAccessor(context, variantCoordinates.namespaceId, variantCoordinates.name, scope, variantFieldTable, variantRelation);\n\t\t}\n\t\tconst relation = Object.hasOwn(modelRelations, prop) ? modelRelations[prop] : void 0;\n\t\tif (relation) return createRelationFilterAccessor(context, namespaceId, modelName, scope, table, relation);\n\t\tconst variantField = Object.hasOwn(variantFieldColumns, prop) ? variantFieldColumns[prop] : void 0;\n\t\tif (variantField === void 0 && !Object.hasOwn(fieldColumns, prop)) {\n\t\t\tif (isProbedByRuntime(prop)) return probedValue(target, prop);\n\t\t}\n\t\tconst fieldTable = variantField ? variantFieldTable : table;\n\t\tconst fieldStorage = fieldTable.storage;\n\t\tconst columnName = variantField?.column ?? columnOfCallerField(contract, addressedNamespaceId, fieldColumns, addressed, prop);\n\t\tconst column = resolveColumn(contract, fieldStorage.namespaceId, fieldStorage.tableName, columnName);\n\t\tif (!column) throw new InternalError(`Field \"${modelName}.${prop}\" maps column \"${columnName}\", which table \"${fieldStorage.tableName}\" does not have`);\n\t\tconst traits = codecTraits(context, column.codecId);\n\t\tconst operations = opsByCodecId.get(column.codecId) ?? [];\n\t\tconst codec = codecRefForStorageColumn(contract.storage, fieldStorage.namespaceId, fieldStorage.tableName, columnName);\n\t\treturn createScalarFieldAccessor(fieldTable, columnName, column.codecId, column.nullable, codec, traits, operations, context);\n\t} }));\n}\nfunction createScalarFieldAccessor(table, columnName, codecId, nullable, codec, traits, operations, context) {\n\tconst column = table.column(columnName);\n\tconst comparisonEntries = [];\n\tfor (const [name, meta] of Object.entries(COMPARISON_METHODS_META)) {\n\t\tif (meta.traits.some((t) => !traits.includes(t))) continue;\n\t\tcomparisonEntries.push([name, meta.create(column, codec)]);\n\t}\n\tconst accessor = blindCast({\n\t\treturnType: {\n\t\t\tcodecId,\n\t\t\tnullable,\n\t\t\tcodec\n\t\t},\n\t\tbuildAst: () => column,\n\t\t...Object.fromEntries(comparisonEntries)\n\t});\n\tfor (const [name, entry] of operations) accessor[name] = createExtensionMethodFactory(accessor, entry, context);\n\treturn blindCast(accessor);\n}\nfunction createExtensionMethodFactory(selfExpr, entry, context) {\n\treturn (...args) => {\n\t\tconst result = blindCast(entry.impl)(selfExpr, ...args);\n\t\tconst returnCodecId = result.returnType.codecId;\n\t\tconst returnTraits = codecTraits(context, returnCodecId);\n\t\tif (returnTraits.includes(\"boolean\")) return result.buildAst();\n\t\tconst resultAst = result.buildAst();\n\t\tconst returnCodec = { codecId: returnCodecId };\n\t\tconst methods = {};\n\t\tfor (const [resultMethodName, meta] of Object.entries(COMPARISON_METHODS_META)) {\n\t\t\tif (meta.traits.some((t) => !returnTraits.includes(t))) continue;\n\t\t\tmethods[resultMethodName] = meta.create(resultAst, returnCodec);\n\t\t}\n\t\treturn methods;\n\t};\n}\nconst RELATION_ACCESSOR_METHOD_NAMES = /* @__PURE__ */ new Set([\n\t\"some\",\n\t\"every\",\n\t\"none\",\n\t\"count\"\n]);\nfunction createRelationFilterAccessor(context, parentNamespaceId, parentModelName, scope, parentTable, relation) {\n\tconst relatedTableName = resolveModelTableName(context.contract, relation.toNamespace, relation.to);\n\tconst correlate = () => correlateRelatedRows(context, parentNamespaceId, parentModelName, scope, parentTable, relatedTableName, relation);\n\tconst filters = {\n\t\tsome: (predicate) => buildExistsExpr(context, relation, scope, correlate(), \"some\", predicate),\n\t\tevery: (predicate) => buildExistsExpr(context, relation, scope, correlate(), \"every\", predicate),\n\t\tnone: (predicate) => buildExistsExpr(context, relation, scope, correlate(), \"none\", predicate)\n\t};\n\tif (isToOneCardinality(relation.cardinality)) return new Proxy(filters, { get(target, prop) {\n\t\tif (typeof prop !== \"string\") return void 0;\n\t\tif (Object.hasOwn(target, prop)) return Reflect.get(target, prop);\n\t\tif (RELATION_ACCESSOR_METHOD_NAMES.has(prop)) return void 0;\n\t\tif (isProbedByRuntime(prop) && !Object.hasOwn(getModelFieldColumns(context.contract, relation.toNamespace, relation.to), prop)) return probedValue(target, prop);\n\t\treturn relatedOrderableField(context, relation, relatedTableName, correlate, prop);\n\t} });\n\treturn {\n\t\t...filters,\n\t\tcount: (predicate) => createOrderable(() => buildRelationCountExpr(context, relation, scope, correlate(), predicate))\n\t};\n}\n/**\n* Whether the JavaScript runtime or a common library reads `prop` from an object it is handed: `then` when a value is awaited or resolved as a promise, `toJSON` when it is stringified, and the `Object.prototype` members such as `toString`. An accessor answers these like a plain object, so a name that is not a field is refused only when the caller asks for it.\n*/\nfunction isProbedByRuntime(prop) {\n\treturn prop === \"then\" || prop === \"toJSON\" || prop in Object.prototype;\n}\nfunction probedValue(target, prop) {\n\treturn prop === \"then\" || prop === \"toJSON\" ? void 0 : Reflect.get(target, prop);\n}\nfunction createOrderable(buildExpr) {\n\treturn {\n\t\tasc: (options) => checkedOrderByItem(\"asc\", buildExpr(), options),\n\t\tdesc: (options) => checkedOrderByItem(\"desc\", buildExpr(), options)\n\t};\n}\nfunction relatedOrderableField(context, relation, relatedTableName, correlate, fieldName) {\n\tconst columnName = columnOfCallerField(context.contract, relation.toNamespace, getModelFieldColumns(context.contract, relation.toNamespace, relation.to), relation.to, fieldName);\n\tconst column = resolveColumn(context.contract, relation.toNamespace, relatedTableName, columnName);\n\tif (!column || !hasTrait(context, column.codecId, \"order\")) return void 0;\n\treturn createOrderable(() => {\n\t\tconst rows = correlate();\n\t\treturn SubqueryExpr.of(rows.source.withProjection([ProjectionItem.of(columnName, rows.child.column(columnName))]).withWhere(rows.correlation));\n\t});\n}\nfunction buildRelationCountExpr(context, relation, scope, rows, predicate) {\n\tconst childWhere = toRelationWhereExpr(context, relation.toNamespace, relation.to, predicate, scope, rows.child);\n\treturn SubqueryExpr.of(rows.source.withProjection([ProjectionItem.of(\"count\", plainAggregateExpr(\"count\", void 0))]).withWhere(childWhere ? and(rows.correlation, childWhere) : rows.correlation));\n}\nfunction correlateRelatedRows(context, parentNamespaceId, parentModelName, scope, parentTable, relatedTableName, relation) {\n\tconst child = scope.aliasTable({\n\t\tnamespaceId: relation.toNamespace,\n\t\ttableName: relatedTableName\n\t});\n\tif (hasThrough$1(relation)) {\n\t\tconst { through } = relation;\n\t\tconst junction = scope.aliasTable({\n\t\t\tnamespaceId: through.namespaceId,\n\t\t\ttableName: through.table\n\t\t});\n\t\tconst junctionJoinOn = buildPairedColumnExprs(junction, through.childColumns, child, through.targetColumns);\n\t\tconst parentLocalColumns = relation.on.localFields.map((field) => columnOfContractField(context.contract, parentNamespaceId, parentModelName, field));\n\t\treturn {\n\t\t\tchild,\n\t\t\tsource: SelectAst.from(child.tableSource(context.contract)).withJoins([JoinAst.inner(junction.tableSource(context.contract), junctionJoinOn)]),\n\t\t\tcorrelation: buildPairedColumnExprs(junction, through.parentColumns, parentTable, parentLocalColumns),\n\t\t\tkeyColumn: firstJoinColumn(through.targetColumns, \"targetColumns\")\n\t\t};\n\t}\n\treturn {\n\t\tchild,\n\t\tsource: SelectAst.from(child.tableSource(context.contract)),\n\t\tcorrelation: buildJoinWhere(context.contract, parentNamespaceId, parentModelName, parentTable, child, relation),\n\t\tkeyColumn: firstJoinColumn(resolveRelationTargetColumns(context.contract, relation), \"targetFields\")\n\t};\n}\nfunction buildExistsExpr(context, relation, scope, rows, mode, predicate) {\n\tconst childWhere = toRelationWhereExpr(context, relation.toNamespace, relation.to, predicate, scope, rows.child);\n\tconst filterPlan = planRelationFilterMode(rows.correlation, childWhere, mode);\n\tif (filterPlan.kind === \"constantTrue\") return AndExpr.true();\n\tconst subquery = rows.source.withProjection([ProjectionItem.of(\"_exists\", rows.child.column(rows.keyColumn))]).withWhere(filterPlan.where);\n\treturn filterPlan.notExists ? ExistsExpr.notExists(subquery) : ExistsExpr.exists(subquery);\n}\nfunction planRelationFilterMode(joinWhere, childWhere, mode) {\n\tif (mode === \"every\") {\n\t\tif (!childWhere) return { kind: \"constantTrue\" };\n\t\treturn {\n\t\t\tkind: \"exists\",\n\t\t\tnotExists: true,\n\t\t\twhere: and(joinWhere, not(childWhere))\n\t\t};\n\t}\n\tif (mode === \"none\") return {\n\t\tkind: \"exists\",\n\t\tnotExists: true,\n\t\twhere: childWhere ? and(joinWhere, childWhere) : joinWhere\n\t};\n\treturn {\n\t\tkind: \"exists\",\n\t\tnotExists: false,\n\t\twhere: childWhere ? and(joinWhere, childWhere) : joinWhere\n\t};\n}\nfunction firstJoinColumn(columns, label) {\n\tconst first = columns[0];\n\tif (!first) throw new InternalError(`Relation metadata is missing ${label}`);\n\treturn first;\n}\nfunction buildPairedColumnExprs(leftTable, leftColumns, rightTable, rightColumns) {\n\tif (leftColumns.length !== rightColumns.length) throw new InternalError(`Relation metadata has mismatched join column counts: ${leftColumns.length} left column(s), ${rightColumns.length} right column(s)`);\n\tif (leftColumns.length === 0) throw new InternalError(\"Relation metadata is missing join columns\");\n\tconst exprs = [];\n\tfor (let i = 0; i < leftColumns.length; i++) {\n\t\tconst left = leftColumns[i];\n\t\tconst right = rightColumns[i];\n\t\tif (!left || !right) throw new InternalError(`Relation metadata is missing a join column pair at index ${i}`);\n\t\texprs.push(BinaryExpr.eq(leftTable.column(left), rightTable.column(right)));\n\t}\n\tif (exprs.length === 1 && exprs[0]) return exprs[0];\n\treturn and(...exprs);\n}\nfunction toRelationWhereExpr(context, relatedNamespaceId, relatedModelName, predicate, scope, table) {\n\tif (!predicate) return;\n\tconst accessor = createModelAccessorInScope(context, relatedNamespaceId, relatedModelName, void 0, scope, table, void 0);\n\tif (typeof predicate === \"function\") return conditionExpr(predicate(accessor, callbackToolsFor(context, relatedModelName, table)));\n\tassertModelFieldNames(context.contract, relatedNamespaceId, relatedModelName, predicate);\n\tconst exprs = [];\n\tfor (const [fieldName, value] of Object.entries(predicate)) {\n\t\tif (value === void 0) continue;\n\t\tconst fieldAccessor = blindCast(accessor)[fieldName];\n\t\tif (!fieldAccessor) throw new InternalError(`Shorthand filter on \"${relatedModelName}.${fieldName}\": the field's column is missing from its table`);\n\t\tif (value === null) {\n\t\t\tif (!fieldAccessor.isNull) throw new InternalError(`Shorthand filter on \"${relatedModelName}.${fieldName}\": isNull is unexpectedly missing — this is a bug in trait gating`);\n\t\t\texprs.push(fieldAccessor.isNull());\n\t\t\tcontinue;\n\t\t}\n\t\tif (!fieldAccessor.eq) throw ormError(\"ORM.FILTER_UNSUPPORTED\", `Shorthand filter on \"${relatedModelName}.${fieldName}\": field does not support equality comparisons`, { meta: {\n\t\t\tmodel: relatedModelName,\n\t\t\tfield: fieldName,\n\t\t\ttrait: \"equality\"\n\t\t} });\n\t\texprs.push(fieldAccessor.eq(value));\n\t}\n\tif (exprs.length === 0) return;\n\treturn exprs.length === 1 ? exprs[0] : and(...exprs);\n}\nfunction buildJoinWhere(contract, parentNamespaceId, parentModelName, parentTable, relatedTable, relation) {\n\tconst localFields = relation.on?.localFields ?? [];\n\tconst targetFields = relation.on?.targetFields ?? [];\n\tconst joinExprs = [];\n\tconst count = Math.min(localFields.length, targetFields.length);\n\tfor (let i = 0; i < count; i++) {\n\t\tconst localField = localFields[i];\n\t\tconst targetField = targetFields[i];\n\t\tif (!localField || !targetField) continue;\n\t\tconst localColumn = columnOfContractField(contract, parentNamespaceId, parentModelName, localField);\n\t\tconst targetColumn = columnOfContractField(contract, relation.toNamespace, relation.to, targetField);\n\t\tjoinExprs.push(BinaryExpr.eq(relatedTable.column(targetColumn), parentTable.column(localColumn)));\n\t}\n\tif (joinExprs.length === 0) throw new InternalError(\"Relation metadata is missing join columns\");\n\tconst firstExpr = joinExprs[0];\n\tif (joinExprs.length === 1 && firstExpr !== void 0) return firstExpr;\n\treturn and(...joinExprs);\n}\n//#endregion\n//#region src/grouped-collection.ts\nvar GroupedCollection = class GroupedCollection {\n\tctx;\n\tcontract;\n\tmodelName;\n\ttableName;\n\tnamespaceId;\n\tpreGroupState;\n\tgroupByFields;\n\tgroupByColumns;\n\thavingFilters;\n\tpostGroup;\n\tconstructor(ctx, modelName, options) {\n\t\tthis.ctx = ctx;\n\t\tthis.contract = ctx.context.contract;\n\t\tthis.modelName = modelName;\n\t\tthis.tableName = options.tableName;\n\t\tthis.namespaceId = blindCast(options.namespaceId);\n\t\tthis.preGroupState = options.preGroupState;\n\t\tthis.groupByFields = options.groupByFields;\n\t\tthis.groupByColumns = options.groupByColumns;\n\t\tthis.havingFilters = options.havingFilters;\n\t\tthis.postGroup = options.postGroup;\n\t}\n\t#clone(overrides) {\n\t\treturn blindCast(new GroupedCollection(this.ctx, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tpreGroupState: this.preGroupState,\n\t\t\tgroupByFields: this.groupByFields,\n\t\t\tgroupByColumns: this.groupByColumns,\n\t\t\thavingFilters: this.havingFilters,\n\t\t\tpostGroup: this.postGroup,\n\t\t\t...overrides\n\t\t}));\n\t}\n\thaving(predicate) {\n\t\tconst havingExpr = predicate(createHavingBuilder(this.contract, this.ctx.context.aggregateDescriptors, this.namespaceId, this.modelName, this.preGroupState.tables.root));\n\t\treturn this.#clone({ havingFilters: [...this.havingFilters, havingExpr] });\n\t}\n\t/**\n\t* Append an `ORDER BY` clause on the grouped rows themselves — orders by\n\t* group key. Ordering by an aggregate alias needs a builder surface over\n\t* the aliases and isn't supported here. Unlocks post-group `limit(...)` /\n\t* `offset(...)`, which page a group order that would otherwise be undefined.\n\t*/\n\torderBy(selection) {\n\t\tconst selectors = Array.isArray(selection) ? selection : [selection];\n\t\tif (selectors.length === 0) throw ormError(\"ORM.ARGUMENT_INVALID\", `orderBy() for model \"${this.modelName}\" requires at least one selector`, { meta: {\n\t\t\tmethod: \"orderBy\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tconst tables = withScopeCopy(this.preGroupState.tables);\n\t\tconst accessor = createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, tables);\n\t\tconst nextOrders = selectors.map((selector) => selector(accessor));\n\t\treturn this.#clone({\n\t\t\tpreGroupState: {\n\t\t\t\t...this.preGroupState,\n\t\t\t\ttables\n\t\t\t},\n\t\t\tpostGroup: {\n\t\t\t\t...this.postGroup,\n\t\t\t\torderBy: [...this.postGroup.orderBy, ...nextOrders]\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* Apply `LIMIT n` to the grouped rows. Replaces any previous post-group\n\t* limit. Requires a prior `orderBy(...)` — a database may return groups in\n\t* any order, so \"the first n groups\" is undefined without one.\n\t*/\n\tlimit(n) {\n\t\treturn this.#clone({ postGroup: {\n\t\t\t...this.postGroup,\n\t\t\tlimit: typeof n === \"number\" ? n : toExpr(n)\n\t\t} });\n\t}\n\t/**\n\t* Apply `OFFSET n` to the grouped rows. Replaces any previous post-group\n\t* offset. Requires a prior `orderBy(...)`, same as `limit(...)` — both\n\t* pagination methods need a deterministic group order.\n\t*/\n\toffset(n) {\n\t\treturn this.#clone({ postGroup: {\n\t\t\t...this.postGroup,\n\t\t\toffset: typeof n === \"number\" ? n : toExpr(n)\n\t\t} });\n\t}\n\t/**\n\t* Read terminal: run a grouped aggregate query.\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'read'>` for attaching typed annotations.\n\t* Annotations are merged into the compiled plan's `meta.annotations`.\n\t*/\n\tget prepared() {\n\t\treturn { aggregate: (fn, configure) => this.#describeAggregate(fn, configure) };\n\t}\n\tasync aggregate(fn, configure) {\n\t\tconst description = this.#describeAggregate(fn, configure);\n\t\treturn description.consume(queryPlanRows(this.ctx.runtime, description.plan));\n\t}\n\t#describeAggregate(fn, configure) {\n\t\tconst aggregateSpec = fn(createAggregateBuilder(this.contract, this.ctx.context.aggregateDescriptors, this.namespaceId, this.modelName));\n\t\tconst aggregateEntries = Object.entries(aggregateSpec);\n\t\tif (aggregateEntries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"groupBy().aggregate() requires at least one aggregation selector\", { meta: {\n\t\t\tmethod: \"groupBy.aggregate\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tfor (const [alias, selector] of aggregateEntries) if (!isAggregateSelector(selector)) throw ormError(\"ORM.AGGREGATE_SELECTOR_INVALID\", `groupBy().aggregate() selector \"${alias}\" is invalid`, { meta: {\n\t\t\tmethod: \"groupBy.aggregate\",\n\t\t\tmodel: this.modelName,\n\t\t\talias\n\t\t} });\n\t\tlet annotationsMap;\n\t\tif (configure !== void 0) {\n\t\t\tconst meta = createMetaBuilder(\"read\", \"groupBy.aggregate\");\n\t\t\tconfigure(meta);\n\t\t\tif (meta.annotations.size > 0) annotationsMap = meta.annotations;\n\t\t}\n\t\tconst compiled = mergeAnnotations(compileGroupedAggregate(this.contract, this.ctx.context.aggregateDescriptors, this.preGroupState, this.groupByColumns, aggregateSpec, combineWhereExprs(this.havingFilters), this.modelName, this.postGroup), annotationsMap);\n\t\tconst mapRow = createStorageRowMapper(this.contract, this.namespaceId, this.modelName);\n\t\treturn {\n\t\t\tplan: compiled,\n\t\t\tasync consume(source) {\n\t\t\t\treturn (await source.toArray()).map((row) => {\n\t\t\t\t\tconst mapped = mapRow(row);\n\t\t\t\t\tfor (const [alias] of aggregateEntries) mapped[alias] = row[alias];\n\t\t\t\t\treturn blindCast(mapped);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n};\n/**\n* The having metric methods, one per operation the registry contributes —\n* the runtime mirror of the contract's emitted aggregate map, which is what\n* types the surface as {@link HavingBuilder}. HAVING compares the value\n* inside the database, so only an operation's plain `AggregateExpr` form is\n* sound here: an operation outside the SQL aggregate alphabet exists only in\n* its descriptor-lowered form — a rendering for the driver boundary — and is\n* refused. The typed surface already excludes it; the runtime refusal covers\n* dynamic invocation.\n*/\nfunction createHavingBuilder(contract, aggregates, namespaceId, modelName, root) {\n\tconst { tableName } = root.storage;\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst builder = {};\n\tfor (const operation of aggregateOperationNames(aggregates)) builder[operation] = (field) => {\n\t\tif (!isAggregateFn(operation)) throw ormError(\"ORM.AGGREGATE_PROJECTION_ONLY\", `Aggregate operation '${operation}' is projection-only: it has no plain SQL form for HAVING, ORDER BY, or comparison positions.`, {\n\t\t\twhy: \"An operation outside the SQL aggregate alphabet reaches SQL only through its descriptor's lowering hook — a rendering for the driver boundary. HAVING and ORDER BY compare the value inside the database, where that rendering would change SQL semantics.\",\n\t\t\tfix: `Project '${operation}' in a select and filter or order on the projected value, or use an operation from the SQL aggregate alphabet.`,\n\t\t\tmeta: { operation }\n\t\t});\n\t\tconst column = field === void 0 ? void 0 : columnOfCallerField(contract, namespaceId, fieldColumns, modelName, field);\n\t\treturn createHavingComparisonMethods(new AggregateExpr(operation, column === void 0 ? void 0 : root.column(column)), () => resolveAggregate({\n\t\t\taggregates,\n\t\t\tcontract,\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\tfn: operation,\n\t\t\tcolumn\n\t\t}).codec.codecId);\n\t};\n\treturn blindCast(builder);\n}\nfunction createHavingComparisonMethods(metric, outputCodecId) {\n\tconst buildBinaryExpr = (op, value) => {\n\t\tconst expression = predicateExpression(value);\n\t\tif (expression !== void 0 && (expression.kind !== \"prepared-param-ref\" || expression.codec.codecId !== outputCodecId())) throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"HAVING comparands require a prepared parameter with the aggregate output codec\", { meta: { kind: expression.kind } });\n\t\treturn predicateComparison(op, metric, expression ?? LiteralExpr.of(value));\n\t};\n\treturn {\n\t\teq(value) {\n\t\t\treturn buildBinaryExpr(\"eq\", value);\n\t\t},\n\t\tneq(value) {\n\t\t\treturn buildBinaryExpr(\"neq\", value);\n\t\t},\n\t\tgt(value) {\n\t\t\treturn buildBinaryExpr(\"gt\", value);\n\t\t},\n\t\tlt(value) {\n\t\t\treturn buildBinaryExpr(\"lt\", value);\n\t\t},\n\t\tgte(value) {\n\t\t\treturn buildBinaryExpr(\"gte\", value);\n\t\t},\n\t\tlte(value) {\n\t\t\treturn buildBinaryExpr(\"lte\", value);\n\t\t}\n\t};\n}\n//#endregion\n//#region src/include-descriptors.ts\nfunction createIncludeScalar(fn, state, column) {\n\treturn {\n\t\tkind: \"includeScalar\",\n\t\tfn,\n\t\tstate,\n\t\t...column !== void 0 ? { column } : {}\n\t};\n}\nfunction createIncludeCombine(branches) {\n\treturn {\n\t\tkind: \"includeCombine\",\n\t\tbranches\n\t};\n}\nfunction isIncludeScalar(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value;\n\treturn candidate.kind === \"includeScalar\" && typeof candidate.fn === \"string\" && isCollectionState(candidate.state);\n}\nfunction isIncludeCombine(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value;\n\tif (candidate.kind !== \"includeCombine\") return false;\n\tif (typeof candidate.branches !== \"object\" || candidate.branches === null) return false;\n\treturn true;\n}\nfunction isCollectionStateCarrier(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn isCollectionState(value.state);\n}\nfunction isCollectionState(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value;\n\treturn Array.isArray(candidate.filters) && Array.isArray(candidate.includes);\n}\n//#endregion\n//#region src/relation-mutator.ts\nfunction createRelationMutator() {\n\treturn {\n\t\tcreate(data) {\n\t\t\treturn {\n\t\t\t\tkind: \"create\",\n\t\t\t\tdata: Array.isArray(data) ? [...data] : [data]\n\t\t\t};\n\t\t},\n\t\tconnect(criteria) {\n\t\t\treturn {\n\t\t\t\tkind: \"connect\",\n\t\t\t\tcriteria: Array.isArray(criteria) ? [...criteria] : [criteria]\n\t\t\t};\n\t\t},\n\t\tdisconnect(criteria) {\n\t\t\tif (!criteria) return { kind: \"disconnect\" };\n\t\t\treturn {\n\t\t\t\tkind: \"disconnect\",\n\t\t\t\tcriteria: [...criteria]\n\t\t\t};\n\t\t}\n\t};\n}\nfunction isRelationMutationDescriptor(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst candidate = value;\n\tif (candidate.kind !== \"create\" && candidate.kind !== \"connect\" && candidate.kind !== \"disconnect\") return false;\n\treturn true;\n}\nfunction isRelationMutationCallback(value) {\n\treturn typeof value === \"function\";\n}\n//#endregion\n//#region src/mutation-executor.ts\nfunction hasThrough(relation) {\n\treturn relation.through !== void 0;\n}\nfunction hasNestedMutationCallbacks(contract, namespaceId, modelName, data) {\n\tconst relationNames = new Set(Object.keys(resolveModelRelations(contract, namespaceId, modelName)));\n\tfor (const [fieldName, value] of Object.entries(data)) {\n\t\tif (!relationNames.has(fieldName)) continue;\n\t\tif (isRelationMutationCallback(value)) return true;\n\t}\n\treturn false;\n}\nasync function executeNestedCreateMutation(options) {\n\treturn withMutationScope(options.runtime, async (scope) => createGraph(scope, options.context, options.namespaceId, options.modelName, options.data));\n}\nasync function executeNestedUpdateMutation(options) {\n\treturn withMutationScope(options.runtime, async (scope) => updateFirstGraph$1(scope, options.context, options.namespaceId, options.modelName, options.tables, options.filters, options.data));\n}\nfunction buildRowIdentityFilterFromRow(contract, namespaceId, modelName, row) {\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst identityColumns = resolveRowIdentityColumns(contract, namespaceId, tableName);\n\tif (identityColumns.length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `Nested mutations on model \"${modelName}\" require table \"${tableName}\" to have a primary key or unique constraint`, { meta: {\n\t\tmodel: modelName,\n\t\ttable: tableName\n\t} });\n\tconst filter = {};\n\tfor (const column of identityColumns) {\n\t\tconst fieldName = toFieldName(contract, namespaceId, modelName, column);\n\t\tconst value = row[fieldName];\n\t\tif (value === void 0) throw new InternalError(`Missing identity field \"${fieldName}\" while reloading model \"${modelName}\"`);\n\t\tfilter[fieldName] = value;\n\t}\n\treturn filter;\n}\nasync function withMutationScope(runtime, run) {\n\tif (typeof runtime.transaction === \"function\") return runInTransaction(await runtime.transaction(), run);\n\tif (typeof runtime.connection === \"function\") {\n\t\tconst connection = await runtime.connection();\n\t\ttry {\n\t\t\tif (typeof connection.transaction === \"function\") return await runInTransaction(await connection.transaction(), run);\n\t\t\treturn await run(connection);\n\t\t} finally {\n\t\t\tawait connection.release?.();\n\t\t}\n\t}\n\treturn run(runtime);\n}\nasync function runInTransaction(transaction, run) {\n\ttry {\n\t\tconst result = await run(transaction);\n\t\tif (typeof transaction.commit === \"function\") await transaction.commit();\n\t\treturn result;\n\t} catch (error) {\n\t\tif (typeof transaction.rollback === \"function\") try {\n\t\t\tawait transaction.rollback();\n\t\t} catch (rollbackError) {\n\t\t\tconst settlement = settlementOf(transaction);\n\t\t\tif (settlement?.rolledBack !== true) throw rollbackError;\n\t\t\tsettlement.logDroppedError(rollbackError);\n\t\t}\n\t\tthrow error;\n\t}\n}\nasync function createGraph(scope, context, namespaceId, modelName, input) {\n\tconst contract = context.contract;\n\tconst parsed = parseMutationInput(contract, namespaceId, modelName, input);\n\tconst { parentOwned, childOwned, junctionOwned } = partitionByOwnership(parsed.relationMutations);\n\tconst scalarData = { ...parsed.scalarData };\n\tfor (const relationMutation of parentOwned) {\n\t\tif (relationMutation.mutation.kind === \"disconnect\") throw ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", \"disconnect() is only supported in update() nested mutations\", { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relationMutation.relation.relationName\n\t\t} });\n\t\tawait applyParentOwnedMutation(scope, context, namespaceId, modelName, scalarData, relationMutation.relation, relationMutation.mutation);\n\t}\n\tfor (const relationMutation of junctionOwned) {\n\t\tif (relationMutation.mutation.kind === \"disconnect\") throw ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", \"disconnect() is only supported in update() nested mutations\", { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relationMutation.relation.relationName\n\t\t} });\n\t\tawait preflightJunctionOwnedCreateMutation(scope, context, relationMutation);\n\t}\n\tconst parentRow = await insertSingleRow(scope, context, namespaceId, modelName, scalarData);\n\tfor (const relationMutation of childOwned) {\n\t\tif (relationMutation.mutation.kind === \"disconnect\") throw ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", \"disconnect() is only supported in update() nested mutations\", { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relationMutation.relation.relationName\n\t\t} });\n\t\tawait applyChildOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\t}\n\tfor (const relationMutation of junctionOwned) await applyJunctionOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\treturn parentRow;\n}\nasync function updateFirstGraph$1(scope, context, namespaceId, modelName, tables, filters, input) {\n\tconst contract = context.contract;\n\tconst existingRow = await findFirstByFilters(scope, contract, namespaceId, modelName, tables, filters);\n\tif (!existingRow) return null;\n\tconst parsed = parseMutationInput(contract, namespaceId, modelName, input);\n\tconst { parentOwned, childOwned, junctionOwned } = partitionByOwnership(parsed.relationMutations);\n\tconst scalarData = { ...parsed.scalarData };\n\tfor (const relationMutation of parentOwned) await applyParentOwnedMutation(scope, context, namespaceId, modelName, scalarData, relationMutation.relation, relationMutation.mutation);\n\tfor (const relationMutation of junctionOwned) await preflightJunctionOwnedCreateMutation(scope, context, relationMutation);\n\tlet parentRow = existingRow;\n\tconst mappedUpdateData = mapModelDataToStorageRow(contract, namespaceId, modelName, scalarData);\n\tif (Object.keys(mappedUpdateData).length > 0) {\n\t\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\t\tconst appliedUpdateDefaults = context.applyMutationDefaults({\n\t\t\top: \"update\",\n\t\t\tentry: tableName,\n\t\t\tnamespace: namespaceId,\n\t\t\tvalues: mappedUpdateData\n\t\t});\n\t\tfor (const def of appliedUpdateDefaults) mappedUpdateData[def.field] = def.value;\n\t\tconst identityWhere = shorthandToWhereExpr(context, namespaceId, modelName, castAs(buildRowIdentityFilterFromRow(contract, namespaceId, modelName, existingRow)), tables.root);\n\t\tif (!identityWhere) throw new InternalError(`Failed to build row identity filter for model \"${modelName}\"`);\n\t\tconst updatedRaw = (await queryPlanRows(scope, compileUpdateReturning(contract, modelName, tables, mappedUpdateData, [identityWhere], void 0)).toArray())[0];\n\t\tif (updatedRaw) parentRow = mapStorageRowToModelFields(contract, namespaceId, modelName, updatedRaw);\n\t}\n\tfor (const relationMutation of childOwned) await applyChildOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\tfor (const relationMutation of junctionOwned) await applyJunctionOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\treturn parentRow;\n}\nfunction parseMutationInput(contract, namespaceId, modelName, input) {\n\tconst scalarData = {};\n\tconst relationDefinitions = new Map(getRelationDefinitions(contract, namespaceId, modelName).map((relation) => [relation.relationName, relation]));\n\tconst relationMutations = [];\n\tfor (const [fieldName, value] of Object.entries(input)) {\n\t\tconst relation = relationDefinitions.get(fieldName);\n\t\tif (!relation) {\n\t\t\tscalarData[fieldName] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!isRelationMutationCallback(value)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Relation field \"${fieldName}\" on model \"${modelName}\" expects a mutator callback`, { meta: {\n\t\t\trelation: fieldName,\n\t\t\tmodel: modelName,\n\t\t\tproblem: \"missing-callback\"\n\t\t} });\n\t\tconst mutation = value(createRelationMutator());\n\t\tif (!isRelationMutationDescriptor(mutation)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Relation field \"${fieldName}\" on model \"${modelName}\" returned an invalid mutation descriptor`, { meta: {\n\t\t\trelation: fieldName,\n\t\t\tmodel: modelName,\n\t\t\tproblem: \"invalid-descriptor\"\n\t\t} });\n\t\trelationMutations.push({\n\t\t\trelation,\n\t\t\tmutation\n\t\t});\n\t}\n\treturn {\n\t\tscalarData,\n\t\trelationMutations\n\t};\n}\nfunction partitionByOwnership(relationMutations) {\n\tconst parentOwned = [];\n\tconst childOwned = [];\n\tconst junctionOwned = [];\n\tfor (const relationMutation of relationMutations) {\n\t\tif (hasThrough(relationMutation.relation)) {\n\t\t\tjunctionOwned.push({\n\t\t\t\trelation: relationMutation.relation,\n\t\t\t\tmutation: relationMutation.mutation\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (relationMutation.relation.cardinality === \"N:1\") {\n\t\t\tparentOwned.push(relationMutation);\n\t\t\tcontinue;\n\t\t}\n\t\tchildOwned.push(relationMutation);\n\t}\n\treturn {\n\t\tparentOwned,\n\t\tchildOwned,\n\t\tjunctionOwned\n\t};\n}\nasync function applyParentOwnedMutation(scope, context, parentNamespaceId, parentModelName, scalarData, relation, mutation) {\n\tconst contract = context.contract;\n\tif (mutation.kind === \"disconnect\") {\n\t\tfor (const localColumn of relation.localColumns) {\n\t\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, localColumn);\n\t\t\tscalarData[parentFieldName] = null;\n\t\t}\n\t\treturn;\n\t}\n\tif (mutation.kind === \"create\") {\n\t\tconst row = mutation.data[0];\n\t\tif (!row) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `create() nested mutation for relation \"${relation.relationName}\" requires data`, { meta: {\n\t\t\tkind: \"create\",\n\t\t\trelation: relation.relationName,\n\t\t\tproblem: \"missing-data\"\n\t\t} });\n\t\tcopyRelatedValuesToParent(contract, parentNamespaceId, parentModelName, relation, scalarData, await createGraph(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(row)));\n\t\treturn;\n\t}\n\tconst criterion = mutation.criteria[0];\n\tif (!criterion) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `connect() nested mutation for relation \"${relation.relationName}\" requires criterion`, { meta: {\n\t\tkind: \"connect\",\n\t\trelation: relation.relationName,\n\t\tproblem: \"missing-criterion\"\n\t} });\n\tconst relatedRow = await findRowByCriterion(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion));\n\tif (!relatedRow) throw ormError(\"ORM.RELATION_ROW_MISSING\", `connect() nested mutation for relation \"${relation.relationName}\" did not find a matching row`, { meta: {\n\t\tkind: \"connect\",\n\t\trelation: relation.relationName\n\t} });\n\tcopyRelatedValuesToParent(contract, parentNamespaceId, parentModelName, relation, scalarData, relatedRow);\n}\nfunction copyRelatedValuesToParent(contract, parentNamespaceId, parentModelName, relation, scalarData, relatedRow) {\n\tfor (let i = 0; i < relation.localColumns.length; i++) {\n\t\tconst localColumn = relation.localColumns[i];\n\t\tconst targetColumn = relation.targetColumns[i];\n\t\tif (!localColumn || !targetColumn) continue;\n\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, localColumn);\n\t\tscalarData[parentFieldName] = relatedRow[toFieldName(contract, relation.relatedNamespaceId, relation.relatedModelName, targetColumn)];\n\t}\n}\nasync function applyChildOwnedMutation(scope, context, parentNamespaceId, parentModelName, parentRow, relation, mutation) {\n\tconst contract = context.contract;\n\tconst parentValues = readParentColumnValues(contract, parentNamespaceId, parentModelName, relation, parentRow);\n\tif (mutation.kind === \"create\") {\n\t\tfor (const childInput of mutation.data) {\n\t\t\tconst payload = { ...castAs(childInput) };\n\t\t\tfor (const [childColumn, parentValue] of parentValues.entries()) {\n\t\t\t\tconst childFieldName = toFieldName(contract, relation.relatedNamespaceId, relation.relatedModelName, childColumn);\n\t\t\t\tpayload[childFieldName] = parentValue;\n\t\t\t}\n\t\t\tawait createGraph(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(payload));\n\t\t}\n\t\treturn;\n\t}\n\tif (mutation.kind === \"connect\") {\n\t\tfor (const criterion of mutation.criteria) {\n\t\t\tconst related = createRelatedTables(relation);\n\t\t\tconst criterionWhere = shorthandToWhereExpr(context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion), related.root);\n\t\t\tif (!criterionWhere) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `connect() nested mutation for relation \"${relation.relationName}\" requires non-empty criterion`, { meta: {\n\t\t\t\tkind: \"connect\",\n\t\t\t\trelation: relation.relationName,\n\t\t\t\tproblem: \"empty-criterion\"\n\t\t\t} });\n\t\t\tconst setValues = {};\n\t\t\tfor (const [childColumn, parentValue] of parentValues.entries()) setValues[childColumn] = parentValue;\n\t\t\tawait executeUpdateCount(scope, contract, related, setValues, [criterionWhere]);\n\t\t}\n\t\treturn;\n\t}\n\tconst setValues = {};\n\tfor (const childColumn of parentValues.keys()) setValues[childColumn] = null;\n\tif (!mutation.criteria || mutation.criteria.length === 0) {\n\t\tconst related = createRelatedTables(relation);\n\t\tawait executeUpdateCount(scope, contract, related, setValues, [buildChildJoinWhere(contract, related.root, parentValues)]);\n\t\treturn;\n\t}\n\tfor (const criterion of mutation.criteria) {\n\t\tconst related = createRelatedTables(relation);\n\t\tconst criterionWhere = shorthandToWhereExpr(context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion), related.root);\n\t\tif (!criterionWhere) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `disconnect() nested mutation for relation \"${relation.relationName}\" requires non-empty criterion`, { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relation.relationName,\n\t\t\tproblem: \"empty-criterion\"\n\t\t} });\n\t\tawait executeUpdateCount(scope, contract, related, setValues, [and(buildChildJoinWhere(contract, related.root, parentValues), criterionWhere)]);\n\t}\n}\nasync function applyJunctionOwnedMutation(scope, context, parentNamespaceId, parentModelName, parentRow, relation, mutation) {\n\tconst contract = context.contract;\n\tconst parentPkValues = readJunctionParentValues(contract, parentNamespaceId, parentModelName, relation, parentRow);\n\tassertJunctionPayloadWritable(relation, mutation.kind);\n\tif (mutation.kind === \"create\") {\n\t\tfor (const childInput of mutation.data) await insertJunctionLink(scope, context, relation, parentPkValues, readJunctionTargetValues(contract, relation, await createGraph(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(childInput))), \"create\");\n\t\treturn;\n\t}\n\tif (mutation.kind === \"connect\") {\n\t\tfor (const criterion of mutation.criteria) await insertJunctionLink(scope, context, relation, parentPkValues, await resolveJunctionTargetValues(scope, context, relation, \"connect\", criterion), \"connect\");\n\t\treturn;\n\t}\n\tif (!mutation.criteria || mutation.criteria.length === 0) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `disconnect() nested mutation for relation \"${relation.relationName}\" requires criterion`, { meta: {\n\t\tkind: \"disconnect\",\n\t\trelation: relation.relationName,\n\t\tproblem: \"missing-criterion\"\n\t} });\n\tfor (const criterion of mutation.criteria) await deleteJunctionLink(scope, context, relation, parentPkValues, await resolveJunctionTargetValues(scope, context, relation, \"disconnect\", criterion));\n}\nasync function preflightJunctionOwnedCreateMutation(scope, context, relationMutation) {\n\tconst { relation, mutation } = relationMutation;\n\tassertJunctionMetadataShape(relation);\n\tassertJunctionPayloadWritable(relation, mutation.kind);\n\tif (mutation.kind !== \"connect\") return;\n\tconst seenTargetKeys = /* @__PURE__ */ new Set();\n\tfor (const criterion of mutation.criteria) {\n\t\tconst targetValues = await resolveJunctionTargetValues(scope, context, relation, \"connect\", criterion);\n\t\tconst targetKey = JSON.stringify([...targetValues.entries()]);\n\t\tif (seenTargetKeys.has(targetKey)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `connect() nested mutation for relation \"${relation.relationName}\" resolved duplicate junction link targets; remove the duplicate criteria`, { meta: {\n\t\t\tkind: \"connect\",\n\t\t\trelation: relation.relationName,\n\t\t\tproblem: \"duplicate-criteria\"\n\t\t} });\n\t\tseenTargetKeys.add(targetKey);\n\t}\n}\nfunction assertJunctionPayloadWritable(relation, mutationKind) {\n\tconst through = relation.through;\n\tif (mutationKind !== \"create\" && mutationKind !== \"connect\" || through.requiredPayloadColumns.length === 0) return;\n\tconst cols = through.requiredPayloadColumns.map((c) => `\\`${c}\\``).join(\", \");\n\tthrow ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", `Cannot \\`${mutationKind}\\` on relation \\`${relation.relationName}\\`: its junction \\`${through.table}\\` has required column(s) ${cols} the relation API can't populate. Write the \\`${through.table}\\` junction directly or use the SQL builder.`, { meta: {\n\t\tkind: mutationKind,\n\t\trelation: relation.relationName,\n\t\treason: \"junction-required-columns\",\n\t\tjunction: through.table\n\t} });\n}\nasync function resolveJunctionTargetValues(scope, context, relation, kind, criterion) {\n\tconst relatedRow = await findRowByCriterion(scope, context, relation.relatedNamespaceId, relation.relatedModelName, criterion);\n\tif (!relatedRow) throw ormError(\"ORM.RELATION_ROW_MISSING\", `${kind}() nested mutation for relation \"${relation.relationName}\" did not find a matching row`, { meta: {\n\t\tkind,\n\t\trelation: relation.relationName\n\t} });\n\treturn readJunctionTargetValues(context.contract, relation, relatedRow);\n}\nfunction readJunctionParentValues(contract, parentNamespaceId, parentModelName, relation, parentRow) {\n\tconst values = /* @__PURE__ */ new Map();\n\tassertJunctionParentMetadataLength(relation);\n\tfor (let i = 0; i < relation.through.parentColumns.length; i++) {\n\t\tconst junctionColumn = relation.through.parentColumns[i];\n\t\tconst parentColumn = relation.localColumns[i];\n\t\tif (junctionColumn === void 0 || parentColumn === void 0) throw new InternalError(`Relation \"${relation.relationName}\" has incomplete junction metadata for parent columns`);\n\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, parentColumn);\n\t\tconst parentValue = parentRow[parentFieldName];\n\t\tif (parentValue === void 0) throw new InternalError(`Nested mutation requires parent field \"${parentFieldName}\" to be present in returned row`);\n\t\tvalues.set(junctionColumn, parentValue);\n\t}\n\treturn values;\n}\nfunction readJunctionTargetValues(contract, relation, relatedRow) {\n\tconst values = /* @__PURE__ */ new Map();\n\tassertJunctionTargetMetadataLength(relation);\n\tfor (let i = 0; i < relation.through.childColumns.length; i++) {\n\t\tconst junctionColumn = relation.through.childColumns[i];\n\t\tconst targetColumn = relation.through.targetColumns[i];\n\t\tif (junctionColumn === void 0 || targetColumn === void 0) throw new InternalError(`Relation \"${relation.relationName}\" has incomplete junction metadata for target columns`);\n\t\tconst targetFieldName = toFieldName(contract, relation.relatedNamespaceId, relation.relatedModelName, targetColumn);\n\t\tconst targetValue = relatedRow[targetFieldName];\n\t\tif (targetValue === void 0) throw new InternalError(`Nested mutation requires target field \"${targetFieldName}\" to be present in returned row`);\n\t\tvalues.set(junctionColumn, targetValue);\n\t}\n\treturn values;\n}\nfunction assertJunctionMetadataLength(relation, throughColumnName, throughColumns, pairedColumnName, pairedColumns) {\n\tif (throughColumns.length === pairedColumns.length) return;\n\tthrow new InternalError(`Relation \"${relation.relationName}\" has invalid junction metadata: ${throughColumnName} has ${throughColumns.length} column(s), but ${pairedColumnName} has ${pairedColumns.length}`);\n}\nfunction assertJunctionParentMetadataLength(relation) {\n\tassertJunctionMetadataLength(relation, \"parentColumns\", relation.through.parentColumns, \"localColumns\", relation.localColumns);\n}\nfunction assertJunctionTargetMetadataLength(relation) {\n\tassertJunctionMetadataLength(relation, \"childColumns\", relation.through.childColumns, \"targetColumns\", relation.through.targetColumns);\n}\nfunction assertJunctionMetadataShape(relation) {\n\tassertJunctionParentMetadataLength(relation);\n\tassertJunctionTargetMetadataLength(relation);\n}\nfunction writeJunctionColumn(junctionRow, through, column, value, relationName) {\n\tif (Object.hasOwn(junctionRow, column) && !Object.is(junctionRow[column], value)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Cannot write junction \"${through.table}\": conflicting values for junction column \"${column}\"`, { meta: {\n\t\trelation: relationName,\n\t\tjunction: through.table,\n\t\tcolumn\n\t} });\n\tjunctionRow[column] = value;\n}\nasync function insertJunctionLink(scope, context, relation, parentPkValues, targetPkValues, mutationKind) {\n\tconst through = relation.through;\n\tconst junctionRow = {};\n\tfor (const [column, value] of parentPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tfor (const [column, value] of targetPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tconst applied = context.applyMutationDefaults({\n\t\top: \"create\",\n\t\tentry: through.table,\n\t\tnamespace: through.namespaceId,\n\t\tvalues: junctionRow\n\t});\n\tfor (const def of applied) junctionRow[def.field] = def.value;\n\tconst compiled = compileInsertCount(context.contract, through.namespaceId, through.table, [junctionRow]);\n\ttry {\n\t\tawait scope.execute(compiled);\n\t} catch (error) {\n\t\tif (mutationKind === \"connect\" && isUniqueConstraintViolation(error)) throw ormError(\"ORM.RELATION_LINK_DUPLICATE\", `connect() nested mutation for relation \"${relation.relationName}\" violated a unique constraint on junction \"${through.table}\"; the junction link may already be present`, {\n\t\t\tmeta: {\n\t\t\t\trelation: relation.relationName,\n\t\t\t\tjunction: through.table\n\t\t\t},\n\t\t\tcause: error\n\t\t});\n\t\tthrow error;\n\t}\n}\nasync function deleteJunctionLink(scope, context, relation, parentPkValues, targetPkValues) {\n\tconst through = relation.through;\n\tconst junctionRow = {};\n\tfor (const [column, value] of parentPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tfor (const [column, value] of targetPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tconst junction = createStatementTables({\n\t\tnamespaceId: through.namespaceId,\n\t\ttableName: through.table\n\t});\n\tconst exprs = [];\n\tfor (const [column, value] of Object.entries(junctionRow)) exprs.push(BinaryExpr.eq(junction.root.column(column), paramRefForStorageColumn(context.contract, junction.root.storage, column, value)));\n\tconst first = exprs[0];\n\tconst where = exprs.length === 1 && first !== void 0 ? first : and(...exprs);\n\tconst compiled = compileDeleteCount(context.contract, junction, [where]);\n\tawait scope.execute(compiled);\n}\nfunction readParentColumnValues(contract, parentNamespaceId, parentModelName, relation, parentRow) {\n\tconst values = /* @__PURE__ */ new Map();\n\tfor (let i = 0; i < relation.localColumns.length; i++) {\n\t\tconst localColumn = relation.localColumns[i];\n\t\tconst targetColumn = relation.targetColumns[i];\n\t\tif (!localColumn || !targetColumn) continue;\n\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, localColumn);\n\t\tconst parentValue = parentRow[parentFieldName];\n\t\tif (parentValue === void 0) throw new InternalError(`Nested mutation requires parent field \"${parentFieldName}\" to be present in returned row`);\n\t\tvalues.set(targetColumn, parentValue);\n\t}\n\treturn values;\n}\nfunction createRelatedTables(relation) {\n\treturn createStatementTables({\n\t\tnamespaceId: relation.relatedNamespaceId,\n\t\ttableName: relation.relatedTableName\n\t});\n}\nfunction buildChildJoinWhere(contract, related, childValues) {\n\tconst exprs = [];\n\tfor (const [childColumn, parentValue] of childValues.entries()) exprs.push(BinaryExpr.eq(related.column(childColumn), paramRefForStorageColumn(contract, related.storage, childColumn, parentValue)));\n\tconst first = exprs[0];\n\tif (exprs.length === 1 && first !== void 0) return first;\n\treturn and(...exprs);\n}\nasync function insertSingleRow(scope, context, namespaceId, modelName, data) {\n\tconst contract = context.contract;\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst mappedData = mapModelDataToStorageRow(contract, namespaceId, modelName, data);\n\tconst applied = context.applyMutationDefaults({\n\t\top: \"create\",\n\t\tentry: tableName,\n\t\tnamespace: namespaceId,\n\t\tvalues: mappedData\n\t});\n\tfor (const def of applied) mappedData[def.field] = def.value;\n\tconst firstRow = (await queryPlanRows(scope, compileInsertReturning(contract, namespaceId, modelName, tableName, [mappedData], void 0)).toArray())[0];\n\tif (!firstRow) throw ormError(\"ORM.MUTATION_ROW_MISSING\", `Nested create for model \"${modelName}\" did not return a row`, { meta: {\n\t\toperation: \"create\",\n\t\tmodel: modelName,\n\t\tphase: \"nested\"\n\t} });\n\treturn mapStorageRowToModelFields(contract, namespaceId, modelName, firstRow);\n}\nasync function findRowByCriterion(scope, context, namespaceId, modelName, criterion) {\n\tconst contract = context.contract;\n\tconst tables = createStatementTables({\n\t\tnamespaceId,\n\t\ttableName: resolveModelTableName(contract, namespaceId, modelName)\n\t});\n\tconst whereExpr = shorthandToWhereExpr(context, namespaceId, modelName, castAs(criterion), tables.root);\n\tif (!whereExpr) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Nested connect for model \"${modelName}\" requires non-empty criterion`, { meta: {\n\t\tkind: \"connect\",\n\t\tmodel: modelName,\n\t\tproblem: \"empty-criterion\"\n\t} });\n\tconst firstRow = (await queryPlanRows(scope, compileSelect(contract, modelName, {\n\t\t...emptyState(tables),\n\t\tfilters: [whereExpr],\n\t\tlimit: 1\n\t})).toArray())[0];\n\tif (!firstRow) return null;\n\treturn mapStorageRowToModelFields(contract, namespaceId, modelName, firstRow);\n}\nasync function findFirstByFilters(scope, contract, namespaceId, modelName, tables, filters) {\n\tconst firstRow = (await queryPlanRows(scope, compileSelect(contract, modelName, {\n\t\t...emptyState(tables),\n\t\tfilters,\n\t\tlimit: 1\n\t})).toArray())[0];\n\tif (!firstRow) return null;\n\treturn mapStorageRowToModelFields(contract, namespaceId, modelName, firstRow);\n}\nasync function executeUpdateCount(scope, contract, tables, setValues, filters) {\n\tconst compiled = compileUpdateCount(contract, tables, setValues, filters);\n\tawait scope.execute(compiled);\n}\nconst relationDefsCache = /* @__PURE__ */ new WeakMap();\nfunction getRelationDefinitions(contract, namespaceId, modelName) {\n\tlet perContract = relationDefsCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\trelationDefsCache.set(contract, perContract);\n\t}\n\tconst cacheKey = JSON.stringify([namespaceId, modelName]);\n\tconst cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst relations = resolveModelRelations(contract, namespaceId, modelName);\n\tconst definitions = Object.entries(relations).map(([relationName, relation]) => ({\n\t\trelationName,\n\t\trelatedModelName: relation.to,\n\t\trelatedNamespaceId: relation.toNamespace,\n\t\trelatedTableName: resolveModelTableName(contract, relation.toNamespace, relation.to),\n\t\tcardinality: relation.cardinality,\n\t\tlocalColumns: relation.on.localFields.map((f) => columnOfContractField(contract, namespaceId, modelName, f)),\n\t\ttargetColumns: resolveRelationTargetColumns(contract, relation),\n\t\tthrough: relation.through ? {\n\t\t\ttable: relation.through.table,\n\t\t\tnamespaceId: relation.through.namespaceId,\n\t\t\tparentColumns: relation.through.parentColumns,\n\t\t\tchildColumns: relation.through.childColumns,\n\t\t\ttargetColumns: relation.through.targetColumns,\n\t\t\trequiredPayloadColumns: relation.through.requiredPayloadColumns\n\t\t} : void 0\n\t}));\n\tperContract.set(cacheKey, definitions);\n\treturn definitions;\n}\nfunction toFieldName(contract, namespaceId, modelName, columnName) {\n\treturn fieldOfColumn(getModelColumnFields(contract, namespaceId, modelName), modelName, columnName);\n}\n//#endregion\n//#region src/mutation-graph/filtered-statement.ts\nfunction executeFiltered(ast, filter, run) {\n\tif (filter === null) return executeStatement(ast, run);\n\tif (filter.some((conditions) => conditions.length === 0)) return noRows();\n\tconst where = combineWhereExprs([...ast.where === void 0 ? [] : [ast.where], ...filter.map(anyOf)]);\n\treturn executeStatement(ast.withWhere(where), run);\n}\nfunction executeStatement(ast, run) {\n\treturn ast.kind === \"select\" || ast.returning !== void 0 ? run.query(ast) : run.execute(ast);\n}\nfunction anyOf(conditions) {\n\tconst [first, ...others] = conditions;\n\treturn first !== void 0 && others.length === 0 ? first : OrExpr.of(conditions);\n}\nfunction withColumns(returned, columns) {\n\tconst present = new Set(returned.map((item) => item.alias));\n\treturn [...returned, ...columns.filter((column) => !present.has(column.alias))];\n}\nfunction noRows() {\n\tconst generator = async function* () {};\n\treturn new AsyncIterableResult(generator());\n}\n//#endregion\n//#region src/mutation-graph/node.ts\nvar Node = class {};\n//#endregion\n//#region src/mutation-graph/delete.ts\nvar Delete = class Delete extends Node {\n\tast;\n\tconstructor(ast) {\n\t\tsuper();\n\t\tthis.ast = ast;\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.ast.returning ?? [];\n\t}\n\texecute(inputs, run) {\n\t\treturn executeFiltered(this.ast, inputs.filter, run);\n\t}\n\twithReturning(columns) {\n\t\treturn new Delete(this.ast.withReturning(withColumns(this.returns, columns)));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/edge.ts\nvar Edge = class {\n\tfrom;\n\tcolumns;\n\tconstructor(from, columns) {\n\t\tthis.from = from;\n\t\tthis.columns = Object.freeze([...columns]);\n\t}\n};\n//#endregion\n//#region src/mutation-graph/filter-data.ts\nvar FilterData = class extends Edge {\n\tconstructor(from, columns) {\n\t\tsuper(from, columns);\n\t\tObject.freeze(this);\n\t}\n\toutput(sourceRow) {\n\t\tconst conditions = this.columns.map(([source, target]) => BinaryExpr.eq(target.expr, ParamRef.of(sourceRow[source.alias], {\n\t\t\tname: target.alias,\n\t\t\t...ifDefined(\"codec\", target.codec)\n\t\t})));\n\t\tconst [first, ...others] = conditions;\n\t\treturn first !== void 0 && others.length === 0 ? first : AndExpr.of(conditions);\n\t}\n};\n//#endregion\n//#region src/mutation-graph/find.ts\nvar Find = class Find extends Node {\n\tast;\n\tconstructor(ast) {\n\t\tsuper();\n\t\tthis.ast = ast;\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.ast.projection;\n\t}\n\texecute(inputs, run) {\n\t\treturn executeFiltered(this.ast, inputs.filter, run);\n\t}\n\twithReturning(columns) {\n\t\treturn new Find(this.ast.withProjection(withColumns(this.returns, columns)));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/graph.ts\nvar Graph = class {\n\t#ids = [];\n\t#nodes = [];\n\t#inputs = [];\n\t#readers = [];\n\t#result = void 0;\n\tget result() {\n\t\treturn this.#result;\n\t}\n\tsetResult(node) {\n\t\tthis.#result = node;\n\t}\n\tadd(node, inputs) {\n\t\tconst id = blindCast(this.#nodes.length);\n\t\tthis.#ids.push(id);\n\t\tthis.#nodes.push(node);\n\t\tthis.#inputs.push(inputs);\n\t\tthis.#readers.push([]);\n\t\tfor (const edge of Object.values(inputs).flat()) {\n\t\t\tthis.#readers[edge.from]?.push({\n\t\t\t\treader: id,\n\t\t\t\tedge\n\t\t\t});\n\t\t\tthis.#nodes[edge.from] = this.#nodes[edge.from]?.withReturning(edge.columns.map(([source]) => source));\n\t\t}\n\t\treturn id;\n\t}\n\treplace(id, next) {\n\t\tthis.#nodes[id] = next;\n\t}\n\tremove(id) {\n\t\tfor (const edge of Object.values(this.inputsOf(id)).flat()) this.#readers[edge.from] = this.readersOf(edge.from).filter((entry) => entry.edge !== edge);\n\t\tfor (const { reader, edge } of this.readersOf(id)) this.#inputs[reader] = Object.fromEntries(Object.entries(this.inputsOf(reader)).map(([slot, edges]) => [slot, edges.filter((other) => other !== edge)]));\n\t\tthis.#nodes[id] = void 0;\n\t\tthis.#inputs[id] = {};\n\t\tthis.#readers[id] = [];\n\t}\n\tnodes() {\n\t\treturn this.#ids.flatMap((id) => {\n\t\t\tconst node = this.#nodes[id];\n\t\t\treturn node === void 0 ? [] : [[id, node]];\n\t\t});\n\t}\n\tinputsOf(id) {\n\t\treturn this.#inputs[id] ?? {};\n\t}\n\treadersOf(id) {\n\t\treturn this.#readers[id] ?? [];\n\t}\n};\n//#endregion\n//#region src/mutation-graph/update.ts\nvar Update = class Update extends Node {\n\tast;\n\tconstructor(ast) {\n\t\tsuper();\n\t\tthis.ast = ast;\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.ast.returning ?? [];\n\t}\n\texecute(inputs, run) {\n\t\treturn executeFiltered(this.ast, inputs.filter, run);\n\t}\n\twithReturning(columns) {\n\t\treturn new Update(this.ast.withReturning(withColumns(this.returns, columns)));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/collection-graphs.ts\nfunction updateAllGraph(collection, set) {\n\tconst { context, state } = collection;\n\tconst graph = new Graph();\n\tif (Object.keys(set).length === 0) {\n\t\tgraph.setResult(graph.add(new Find(selectRowsAst(collection, state)), { filter: [] }));\n\t\treturn graph;\n\t}\n\trequireIdentityColumnsForIncludes(collection);\n\tconst update = updateAst(context.contract, state.tables, set, whereOf(collection));\n\tconst updated = graph.add(new Update(update), { filter: [] });\n\tgraph.setResult(addWithIncludes(graph, collection, updated));\n\treturn graph;\n}\nfunction deleteAllGraph(collection) {\n\tconst { context, state } = collection;\n\tconst graph = new Graph();\n\tconst del = new Delete(deleteAst(context.contract, state.tables, whereOf(collection)));\n\tif (state.includes.length === 0) {\n\t\tgraph.setResult(graph.add(del, { filter: [] }));\n\t\treturn graph;\n\t}\n\tgraph.setResult(graph.add(new Find(selectRowsAst(collection, state)), { filter: [] }));\n\tgraph.add(del, { filter: [] });\n\treturn graph;\n}\nfunction updateFirstGraph(collection, set) {\n\tconst { context, state } = collection;\n\tconst graph = new Graph();\n\tconst nothingToSet = Object.keys(set).length === 0;\n\tif (!nothingToSet) {\n\t\trequireIdentityColumns(collection);\n\t\trequireIdentityColumnsForIncludes(collection);\n\t}\n\tconst find = addFindOfFirstRow(graph, collection, nothingToSet ? selectRowsAst : selectIdentityAst);\n\tif (find === void 0) return graph;\n\tif (nothingToSet) {\n\t\tgraph.setResult(find);\n\t\treturn graph;\n\t}\n\tconst update = updateAst(context.contract, state.tables, set, void 0);\n\tconst updated = graph.add(new Update(update), { filter: [sameRow(find, collection)] });\n\tgraph.setResult(addWithIncludes(graph, collection, updated));\n\treturn graph;\n}\nfunction deleteFirstGraph(collection) {\n\tconst { context, state } = collection;\n\tconst withIncludes = state.includes.length > 0;\n\tconst graph = new Graph();\n\trequireIdentityColumns(collection);\n\tconst find = addFindOfFirstRow(graph, collection, withIncludes ? selectRowsAst : selectIdentityAst);\n\tif (find === void 0) return graph;\n\tconst del = deleteAst(context.contract, state.tables, void 0);\n\tconst deleted = graph.add(new Delete(del), { filter: [sameRow(find, collection)] });\n\tgraph.setResult(withIncludes ? find : deleted);\n\treturn graph;\n}\nfunction addWithIncludes(graph, collection, written) {\n\tconst { state } = collection;\n\tif (state.includes.length === 0) return written;\n\tconst select = selectRowsAst(collection, {\n\t\t...emptyState(state.tables),\n\t\tselectedFields: state.selectedFields,\n\t\tincludes: state.includes\n\t});\n\treturn graph.add(new Find(select), { filter: [sameRow(written, collection)] });\n}\nfunction requireIdentityColumnsForIncludes(collection) {\n\tconst { modelName, state } = collection;\n\tconst { tableName } = state.tables.root.storage;\n\tif (state.includes.length > 0 && identityColumnsOf(collection).length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `Cannot load includes for the mutation result on model \"${modelName}\": table \"${tableName}\" has no primary key or unique constraint to key the include read-back on.`, { meta: {\n\t\tmodel: modelName,\n\t\ttable: tableName\n\t} });\n}\nfunction addFindOfFirstRow(graph, collection, select) {\n\tconst { state } = collection;\n\tcheckLimitOffset(\"limit\", state.limit);\n\tif (state.limit === 0) return;\n\treturn graph.add(new Find(select(collection, {\n\t\t...state,\n\t\tlimit: 1\n\t})), { filter: [] });\n}\nfunction requireIdentityColumns(collection) {\n\tconst { modelName, state } = collection;\n\tconst { tableName } = state.tables.root.storage;\n\tif (identityColumnsOf(collection).length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `update()/delete() on model \"${modelName}\" requires the table to have a primary key or unique constraint`, { meta: {\n\t\tmodel: modelName,\n\t\ttable: tableName\n\t} });\n}\nfunction selectIdentityAst(collection, state) {\n\treturn collectionSelectAst(collection.context.contract, collection.modelName, {\n\t\t...state,\n\t\tincludes: [],\n\t\tselectedFields: identityColumnsOf(collection)\n\t});\n}\nfunction selectRowsAst(collection, state) {\n\tconst { context, modelName } = collection;\n\tif (state.includes.length === 0) return collectionSelectAst(context.contract, modelName, state);\n\treturn collectionSelectWithIncludesAst(context.contract, context.aggregateDescriptors, modelName, state);\n}\nfunction identityColumnsOf(collection) {\n\tconst { namespaceId, tableName } = collection.state.tables.root.storage;\n\treturn resolveRowIdentityColumns(collection.context.contract, namespaceId, tableName);\n}\nfunction sameRow(find, collection) {\n\tconst { context, state } = collection;\n\treturn new FilterData(find, projectTableColumns(context.contract, state.tables.root, identityColumnsOf(collection)).map((column) => [column, column]));\n}\nfunction whereOf(collection) {\n\tconst { context, state } = collection;\n\treturn countMutationWhere(context.contract, state.tables, state.filters, state.variantValue);\n}\n//#endregion\n//#region src/mutation-graph/run-graph.ts\nfunction queryGraph(graph, ctx, annotations, callerRows) {\n\treturnCallerColumns(graph, callerRows);\n\tconst [only, ...others] = graph.nodes();\n\tif (only !== void 0 && others.length === 0 && only[0] === graph.result) {\n\t\tconst [id, node] = only;\n\t\tconst run = runOn(ctx, annotations);\n\t\treturn shapeRows(graph, id, rowStream(node.execute(inputsOf(graph, id, []), run)), callerRows);\n\t}\n\tconst generator = async function* () {\n\t\tyield* (await runAllNodes(graph, ctx, annotations, callerRows)).rows;\n\t};\n\treturn new AsyncIterableResult(generator());\n}\nasync function executeGraph(graph, ctx, annotations) {\n\treturn { affectedRows: (await runAllNodes(graph, ctx, annotations, void 0)).count };\n}\nfunction returnCallerColumns(graph, callerRows) {\n\tconst { context, modelName, state } = callerRows;\n\tconst columns = returningProjection(context.contract, modelName, state.tables.root, state.selectedFields);\n\tfor (const [id, node] of graph.nodes()) if (id === graph.result) graph.replace(id, node.withReturning(columns));\n}\nfunction runAllNodes(graph, ctx, annotations, callerRows) {\n\tif (graph.nodes().length > 1) return withMutationScope(ctx.runtime, (scope) => runNodesInOrder(graph, {\n\t\t...ctx,\n\t\truntime: scope\n\t}, annotations, callerRows));\n\treturn runNodesInOrder(graph, ctx, annotations, callerRows);\n}\nasync function runNodesInOrder(graph, ctx, annotations, callerRows) {\n\tconst run = runOn(ctx, annotations);\n\tconst collected = [];\n\tlet rows = [];\n\tlet count = 0;\n\tfor (const [id, node] of graph.nodes()) {\n\t\tconst executed = await node.execute(inputsOf(graph, id, collected), run);\n\t\tcollected[id] = executed;\n\t\tif (id !== graph.result) continue;\n\t\tconst storageRows = rowsOf(executed);\n\t\tcount = typeof executed === \"number\" ? executed : storageRows.length;\n\t\tif (callerRows !== void 0) rows = await shapeRows(graph, id, streamOf(storageRows), callerRows).toArray();\n\t}\n\treturn {\n\t\trows,\n\t\tcount\n\t};\n}\nfunction inputsOf(graph, id, collected) {\n\tconst outputs = {};\n\tconst slots = graph.inputsOf(id);\n\tfor (const slot in slots) {\n\t\tconst edges = slots[slot] ?? [];\n\t\toutputs[slot] = edges.length === 0 ? null : edges.map((edge) => rowsOf(collected[edge.from]).map((row) => edge.output(row)));\n\t}\n\treturn outputs;\n}\nfunction runOn(ctx, annotations) {\n\tconst { contract } = ctx.context;\n\tconst planOf = (ast) => mergeAnnotations(buildOrmQueryPlan(contract, ast, deriveParamsFromAst(ast).params), annotations);\n\treturn {\n\t\tquery: (ast) => queryPlanRows(ctx.runtime, planOf(ast)),\n\t\texecute: async (ast) => (await ctx.runtime.execute(planOf(ast))).affectedRows\n\t};\n}\nfunction shapeRows(graph, id, storageRows, callerRows) {\n\tconst { context, namespaceId, modelName, state } = callerRows;\n\tconst { contract } = context;\n\tconst { tableName } = state.tables.root.storage;\n\tconst selected = state.selectedFields ?? getColumnsReadOnTable(contract, namespaceId, modelName, tableName);\n\tconst hiddenColumns = graph.readersOf(id).flatMap(({ edge }) => edge.columns.map(([source]) => source.alias)).filter((column) => !selected.includes(column));\n\treturn mapResultRows(consumeCollectionRows(callerRows, storageRows), (row) => {\n\t\tstripHiddenMappedFields(contract, namespaceId, modelName, row, hiddenColumns);\n\t\treturn blindCast(row);\n\t});\n}\nfunction rowsOf(executed) {\n\treturn typeof executed === \"object\" ? executed : [];\n}\nfunction rowStream(executed) {\n\treturn executed instanceof AsyncIterableResult ? executed : streamOf([]);\n}\nfunction streamOf(rows) {\n\tconst generator = async function* () {\n\t\tyield* rows;\n\t};\n\treturn new AsyncIterableResult(generator());\n}\n//#endregion\n//#region src/where-interop.ts\nfunction normalizeWhereArg(arg, options) {\n\tif (arg === void 0) return;\n\tif (arg === null) throw ormError(\"ORM.ARGUMENT_INVALID\", \"WhereArg cannot be null. Pass undefined or a valid WhereExpr/ToWhereExpr payload.\", { meta: { argument: \"where\" } });\n\tconst expr = isToWhereExpr(arg) ? arg.toWhereExpr() : arg;\n\tif (!options) return expr;\n\treturn bindWhereExpr(options.contract, expr, options.tables);\n}\nfunction isToWhereExpr(arg) {\n\treturn typeof arg === \"object\" && arg !== null && \"toWhereExpr\" in arg && !isWhereExpr(arg);\n}\n//#endregion\n//#region src/write-guards.ts\nconst CHAIN_PARTS = {\n\torderBy: {\n\t\tnoun: \"an order\",\n\t\tcall: \"orderBy()\"\n\t},\n\tlimit: {\n\t\tnoun: \"a limit\",\n\t\tcall: \"limit()\"\n\t},\n\toffset: {\n\t\tnoun: \"an offset\",\n\t\tcall: \"offset()\"\n\t},\n\tcursor: {\n\t\tnoun: \"a cursor\",\n\t\tcall: \"cursor()\"\n\t},\n\tdistinct: {\n\t\tnoun: \"a distinct selection\",\n\t\tcall: \"distinct()\"\n\t},\n\tdistinctOn: {\n\t\tnoun: \"a distinctOn selection\",\n\t\tcall: \"distinctOn()\"\n\t}\n};\nfunction presentParts(state, names) {\n\tconst present = names.filter((name) => {\n\t\tconst value = state[name];\n\t\treturn Array.isArray(value) ? value.length > 0 : value !== void 0;\n\t});\n\treturn {\n\t\tnouns: present.map((name) => CHAIN_PARTS[name].noun),\n\t\tcalls: present.map((name) => CHAIN_PARTS[name].call)\n\t};\n}\nfunction listed(items, conjunction) {\n\tconst last = items.at(-1) ?? \"\";\n\treturn items.length > 1 ? `${items.slice(0, -1).join(\", \")} ${conjunction} ${last}` : last;\n}\nconst HIDDEN_BY_A_FRAGMENT = \"A fragment passed to with can add one without showing it at the call site.\";\n/** Throws `ORM.ARGUMENT_INVALID` when the collection has a limit, an offset, a cursor or a distinct selection, which `method`, a write of every matching row, would ignore. */\nfunction assertBulkWriteIgnoresNothing(state, modelName, method) {\n\tconst { nouns, calls } = presentParts(state, [\n\t\t\"limit\",\n\t\t\"offset\",\n\t\t\"cursor\",\n\t\t\"distinct\",\n\t\t\"distinctOn\"\n\t]);\n\tif (nouns.length === 0) return;\n\tconst { limit, offset, cursor, distinct, distinctOn } = state;\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot ${method} ${modelName}: the collection has ${listed(nouns, \"and\")}`, {\n\t\twhy: `${method} changes every row that matches the filter. The statement it runs cannot apply ${listed(nouns, \"or\")}, so it would change more rows than the chain asks for. ${HIDDEN_BY_A_FRAGMENT}`,\n\t\tfix: `Remove ${listed(calls, \"and\")} before ${method}, or read the rows first and change them by their ids.`,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tmethod,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tcursor,\n\t\t\tdistinct,\n\t\t\tdistinctOn\n\t\t}\n\t});\n}\n/** Throws `ORM.ARGUMENT_INVALID` when the collection has an order, a limit, an offset, a cursor or a distinct selection, which an update with a relation callback would ignore. */\nfunction assertRelationUpdateIgnoresNothing(state, modelName) {\n\tconst { nouns, calls } = presentParts(state, [\n\t\t\"orderBy\",\n\t\t\"limit\",\n\t\t\"offset\",\n\t\t\"cursor\",\n\t\t\"distinct\",\n\t\t\"distinctOn\"\n\t]);\n\tif (nouns.length === 0) return;\n\tconst { orderBy, limit, offset, cursor, distinct, distinctOn } = state;\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot update ${modelName} with a relation mutation: the collection has ${listed(nouns, \"and\")}`, {\n\t\twhy: `An update that changes a relation finds its row by the filter alone. It would ignore ${listed(nouns, \"and\")}, and could change another row than first() returns. ${HIDDEN_BY_A_FRAGMENT}`,\n\t\tfix: `Remove ${listed(calls, \"and\")} before update, or filter to the one row, such as by its id.`,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tmethod: \"update\",\n\t\t\tordered: orderBy !== void 0 && orderBy.length > 0,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tcursor,\n\t\t\tdistinct,\n\t\t\tdistinctOn\n\t\t}\n\t});\n}\n//#endregion\n//#region src/collection.ts\nfunction applyCreateDefaults(ctx, namespaceId, tableName, rows, defaultValueCache = /* @__PURE__ */ new Map()) {\n\tfor (const row of rows) {\n\t\tconst applied = ctx.context.applyMutationDefaults({\n\t\t\top: \"create\",\n\t\t\tentry: tableName,\n\t\t\tnamespace: namespaceId,\n\t\t\tvalues: row,\n\t\t\tdefaultValueCache\n\t\t});\n\t\tfor (const def of applied) row[def.field] = def.value;\n\t}\n}\nfunction applyUpdateDefaults(ctx, namespaceId, tableName, values) {\n\tconst applied = ctx.context.applyMutationDefaults({\n\t\top: \"update\",\n\t\tentry: tableName,\n\t\tnamespace: namespaceId,\n\t\tvalues\n\t});\n\tfor (const def of applied) values[def.field] = def.value;\n}\nfunction isToWhereExprInput(value) {\n\treturn typeof value === \"object\" && value !== null && \"toWhereExpr\" in value && typeof value.toWhereExpr === \"function\";\n}\nfunction isWhereDirectInput(value) {\n\treturn isWhereExpr(value) && typeof value === \"object\" && value !== null && \"accept\" in value && typeof value.accept === \"function\" || isToWhereExprInput(value);\n}\nfunction splitCreateArguments(optionsOrConfigure, configure) {\n\tif (typeof optionsOrConfigure === \"function\") return {\n\t\toptions: void 0,\n\t\tconfigureCallback: optionsOrConfigure\n\t};\n\treturn {\n\t\toptions: optionsOrConfigure,\n\t\tconfigureCallback: configure\n\t};\n}\nfunction isMtiVariantInfo(variant) {\n\treturn variant?.strategy === \"mti\";\n}\nvar CollectionBase = class CollectionBase {\n\t/** @internal */\n\tctx;\n\t/** @internal */\n\tcontract;\n\t/** @internal */\n\tmodelName;\n\t/** @internal */\n\ttableName;\n\t/** @internal */\n\tnamespaceId;\n\t/** @internal */\n\tstate;\n\t/** @internal */\n\tregistry;\n\t/** @internal */\n\tincludeRefinementMode;\n\tconstructor(ctx, modelName, options) {\n\t\tthis.ctx = ctx;\n\t\tthis.contract = ctx.context.contract;\n\t\tthis.modelName = modelName;\n\t\tthis.namespaceId = options.namespaceId;\n\t\tthis.tableName = options.tableName ?? resolveModelTableName(this.contract, options.namespaceId, modelName);\n\t\tthis.state = options.state ?? emptyState(createCollectionTables(this.contract, options.namespaceId, modelName, this.tableName));\n\t\tthis.registry = options.registry ?? /* @__PURE__ */ new Map();\n\t\tthis.includeRefinementMode = options.includeRefinementMode ?? false;\n\t\tthis.#installAggregateReducers();\n\t}\n\t/**\n\t* Install one include-scalar reducer per operation the composed registry\n\t* contributes — the runtime mirror of the contract's emitted aggregate map,\n\t* which is what types the reducers as {@link AggregateIncludeReducers} on\n\t* the public {@link Collection} surface. The reducers live on the instance\n\t* because their names are the registry's, not the class declaration's.\n\t*\n\t* A name the collection already carries is skipped, and which member holds\n\t* it decides what the skip means. A `CollectionBase` member is rejected at\n\t* ORM composition with `ORM.AGGREGATE_OPERATION_RESERVED`, since\n\t* {@link reservedCollectionMemberNames} scans this class. A member declared\n\t* by a custom collection class registered through `orm({ collections })`\n\t* falls outside that set, so it keeps the name and the operation gets no\n\t* reducer. The type level is what guards that case: {@link Collection}\n\t* intersects the class with {@link AggregateIncludeReducers}, so for any\n\t* contract whose emitted map carries the operation, a subclass member that\n\t* does not match the reducer's signature is a type error.\n\t*/\n\t#installAggregateReducers() {\n\t\tfor (const operation of aggregateOperationNames(this.ctx.context.aggregateDescriptors)) {\n\t\t\tif (operation in this) continue;\n\t\t\tObject.defineProperty(this, operation, {\n\t\t\t\tvalue: (field) => this.#includeScalarReducer(operation, field),\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Scalar reducer — reduces a to-many relation to the operation's value over\n\t* the related rows. Use inside an `include(...)` refinement callback as\n\t* `include(..., (rel) => rel.count())`; throws if called elsewhere. The\n\t* parent row's relation field becomes that value instead of an array. A\n\t* call without a field aggregates over rows; a call with one aggregates the\n\t* field's storage column.\n\t*/\n\t#includeScalarReducer(operation, field) {\n\t\tthis.#assertIncludeRefinementMode(`${operation}()`);\n\t\tconst column = field === void 0 ? void 0 : columnOfCallerField(this.contract, this.namespaceId, getModelFieldColumns(this.contract, this.namespaceId, this.modelName), this.modelName, field);\n\t\treturn createIncludeScalar(operation, this.state, column);\n\t}\n\twhere(input) {\n\t\tconst tables = withScopeCopy(this.state.tables);\n\t\tconst filter = normalizeWhereArg(typeof input === \"function\" ? whereArgOf(input(createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, tables, this.state.variantValue), this.#callbackTools(tables))) : isWhereDirectInput(input) ? input : shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, input, tables.root), {\n\t\t\tcontract: this.contract,\n\t\t\ttables: tableAliases(tables)\n\t\t});\n\t\tif (!filter) return blindCast(this);\n\t\treturn this.#cloneSelf({\n\t\t\ttables,\n\t\t\tfilters: [...this.state.filters, filter]\n\t\t});\n\t}\n\twhereUnique(criterion) {\n\t\tif (this.includeRefinementMode) throw ormError(\"ORM.INCLUDE_INVALID\", \"whereUnique() is not available inside include() refinement callbacks\", { meta: { action: \"whereUnique()\" } });\n\t\tif (!hasCompleteUniqueKey(this.contract, this.namespaceId, this.modelName, criterion)) throw ormError(\"ORM.ARGUMENT_INVALID\", `whereUnique() for model \"${this.modelName}\" needs a value for every field of the primary key or of one unique constraint`, { meta: {\n\t\t\tmethod: \"whereUnique\",\n\t\t\targument: \"criterion\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tconst tables = withScopeCopy(this.state.tables);\n\t\tconst filter = normalizeWhereArg(shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, criterion, tables.root), {\n\t\t\tcontract: this.contract,\n\t\t\ttables: tableAliases(tables)\n\t\t});\n\t\treturn this.#cloneSelf(filter ? {\n\t\t\ttables,\n\t\t\tfilters: [...this.state.filters, filter]\n\t\t} : {});\n\t}\n\t#callbackTools(tables) {\n\t\treturn createModelCallbackTools(this.ctx.context, this.modelName, tables);\n\t}\n\twith(fn) {\n\t\treturn fn(this);\n\t}\n\t/**\n\t* Define a query fragment for this collection's model, such as a shared `select` and `include`. The body is typed once, against the model's plain collection. The fragment can be applied to any collection of the model that `select` and `variant` have not narrowed.\n\t*\n\t* The fragment is built from the model alone, so call `fragment` on the model's root collection. On a collection with chained calls it throws `ORM.ARGUMENT_INVALID`. The type check is partial: it refuses a collection whose type records a filter, an order or an include, and a collection typed by a type parameter, such as `this` in a class method; it does not see `limit`, `offset`, `select`, `cursor`, `distinct`, `variant` or a lock, a union with a root collection, or a value typed as the plain collection.\n\t*\n\t* ```ts\n\t* const summary = db.Post.fragment((posts) => posts.select('id', 'title').include('user'));\n\t* db.User.include('posts', (posts) => posts.with(summary));\n\t* ```\n\t*/\n\tfragment(body) {\n\t\tassertFragmentBody(body);\n\t\tassertModelFragmentSource(this);\n\t\tconst source = {\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t};\n\t\treturn (collection) => {\n\t\t\tassertModelFragmentReceiver(source, collection);\n\t\t\treturn body(blindCast(collection));\n\t\t};\n\t}\n\tvariant(value) {\n\t\tconst polyInfo = resolvePolymorphismInfo(this.contract, this.namespaceId, this.modelName);\n\t\tconst selectedVariantValue = this.state.variantValue;\n\t\tif (selectedVariantValue !== void 0) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `variant(\"${value}\") cannot be called on model \"${this.modelName}\" because variant(\"${selectedVariantValue}\") is already selected; call variant() on the base collection instead`, { meta: {\n\t\t\tmethod: \"variant\",\n\t\t\tmodel: this.modelName,\n\t\t\tvariant: polyInfo?.variants.get(selectedVariantValue)?.modelName,\n\t\t\tselectedValue: selectedVariantValue,\n\t\t\treason: \"variant-already-selected\"\n\t\t} });\n\t\tconst variantInfo = polyInfo?.variants.get(value);\n\t\tif (!polyInfo || !variantInfo) {\n\t\t\tconst declaredValues = [...polyInfo?.variants.keys() ?? []];\n\t\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", declaredValues.length === 0 ? `variant(\"${value}\") cannot narrow model \"${this.modelName}\": it declares no discriminator values` : `variant(\"${value}\") cannot narrow model \"${this.modelName}\": the declared discriminator values are ${declaredValues.map((declared) => `\"${declared}\"`).join(\", \")}`, { meta: {\n\t\t\t\tmethod: \"variant\",\n\t\t\t\targument: \"value\",\n\t\t\t\tmodel: this.modelName,\n\t\t\t\tvalue,\n\t\t\t\tdeclaredValues\n\t\t\t} });\n\t\t}\n\t\tconst columnName = polyInfo.discriminatorColumn;\n\t\tconst filter = BinaryExpr.eq(this.state.tables.root.column(columnName), paramRefForStorageColumn(this.contract, this.state.tables.root.storage, columnName, variantInfo.value));\n\t\treturn this.#cloneWithRow({\n\t\t\tfilters: [...this.state.filters, filter],\n\t\t\tvariantValue: variantInfo.value\n\t\t});\n\t}\n\tinclude(relationName, refineFn) {\n\t\tconst relation = resolveIncludeRelation(this.contract, this.namespaceId, this.modelName, relationName, this.state.variantValue);\n\t\tconst child = createIncludeTables(this.contract, this.state.tables, relation);\n\t\tlet nestedState = emptyState(child.tables);\n\t\tlet adoptedScope = child.tables.scope;\n\t\tlet scalarSelector;\n\t\tlet combineBranches;\n\t\tif (refineFn) {\n\t\t\tconst refined = refineFn(this.#createCollection(blindCast(relation.relatedModelName), {\n\t\t\t\ttableName: relation.relatedTableName,\n\t\t\t\tnamespaceId: relation.relatedNamespaceId,\n\t\t\t\tstate: nestedState,\n\t\t\t\tincludeRefinementMode: true\n\t\t\t}));\n\t\t\tif (isIncludeScalar(refined)) {\n\t\t\t\tif (isToOneCardinality(relation.cardinality)) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `include('${relationName}') scalar aggregations are only supported for to-many relations`, { meta: {\n\t\t\t\t\trelation: relationName,\n\t\t\t\t\tkind: \"scalar\"\n\t\t\t\t} });\n\t\t\t\tadoptedScope = refined.state.tables.scope;\n\t\t\t\tscalarSelector = refined;\n\t\t\t\tnestedState = refined.state;\n\t\t\t} else if (isIncludeCombine(refined)) {\n\t\t\t\tif (isToOneCardinality(relation.cardinality)) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `include('${relationName}') combine() is only supported for to-many relations`, { meta: {\n\t\t\t\t\trelation: relationName,\n\t\t\t\t\tkind: \"combine\"\n\t\t\t\t} });\n\t\t\t\tcombineBranches = refined.branches;\n\t\t\t} else if (isCollectionStateCarrier(refined)) {\n\t\t\t\tadoptedScope = refined.state.tables.scope;\n\t\t\t\tnestedState = refined.state;\n\t\t\t} else throw ormError(\"ORM.INCLUDE_INVALID\", `include('${relationName}') refinement must return a collection, include scalar selector, or combine() descriptor`, { meta: { relation: relationName } });\n\t\t}\n\t\tconst includeExpr = {\n\t\t\trelationName,\n\t\t\trelatedModelName: relation.relatedModelName,\n\t\t\trelatedNamespaceId: relation.relatedNamespaceId,\n\t\t\trelatedTableName: relation.relatedTableName,\n\t\t\t...ifDefined(\"localVariantValue\", relation.localVariantValue),\n\t\t\ttargetColumns: relation.targetColumns,\n\t\t\tlocalColumns: relation.localColumns,\n\t\t\tcardinality: relation.cardinality,\n\t\t\t...ifDefined(\"through\", relation.through),\n\t\t\t...ifDefined(\"junction\", child.junction),\n\t\t\tnested: nestedState,\n\t\t\tscalar: scalarSelector,\n\t\t\tcombine: combineBranches\n\t\t};\n\t\treturn this.#cloneWithRow({\n\t\t\ttables: {\n\t\t\t\t...this.state.tables,\n\t\t\t\tscope: adoptedScope\n\t\t\t},\n\t\t\tincludes: [...this.state.includes, includeExpr]\n\t\t});\n\t}\n\tselect(...fields) {\n\t\tconst selectedFields = mapSelectedFieldsToColumns(this.contract, this.namespaceId, this.modelName, this.state.variantValue, fields);\n\t\treturn this.#cloneWithRow({ selectedFields });\n\t}\n\torderBy(selection) {\n\t\tconst tables = withScopeCopy(this.state.tables);\n\t\tconst accessor = createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, tables, this.state.variantValue);\n\t\tconst tools = this.#callbackTools(tables);\n\t\tconst nextOrders = (Array.isArray(selection) ? selection : [selection]).map((selector) => selector(accessor, tools));\n\t\tconst existing = this.state.orderBy ?? [];\n\t\treturn this.#cloneSelf({\n\t\t\ttables,\n\t\t\torderBy: [...existing, ...nextOrders]\n\t\t});\n\t}\n\tgroupBy(...fields) {\n\t\tassertLockCompatible(this.state, \"groupBy\");\n\t\tconst groupByColumns = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn new GroupedCollection(this.ctx, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tpreGroupState: this.state,\n\t\t\tgroupByFields: [...fields],\n\t\t\tgroupByColumns,\n\t\t\thavingFilters: [],\n\t\t\tpostGroup: emptyGroupPagingState()\n\t\t});\n\t}\n\t/**\n\t* Produce multiple named sub-views of a to-many relation in a\n\t* single `include(...)`. Each branch is either another refined\n\t* collection (mapped to a row array on the parent) or a scalar\n\t* reducer such as `count()`/`sum(...)`. Only valid inside an\n\t* `include(...)` refinement callback for to-many relations.\n\t*\n\t* ```typescript\n\t* const users = await db.orm.User.include('posts', (posts) =>\n\t* posts.combine({\n\t* recent: posts.where({ published: true }).limit(3),\n\t* total: posts.count(),\n\t* averageViews: posts.avg('views'),\n\t* }),\n\t* ).all();\n\t* // each user row: {\n\t* // ...user,\n\t* // posts: { recent: Post[]; total: number; averageViews: number | null };\n\t* // }\n\t* ```\n\t*/\n\tcombine(spec) {\n\t\tthis.#assertIncludeRefinementMode(\"combine()\");\n\t\tconst branches = {};\n\t\tfor (const [name, value] of Object.entries(spec)) {\n\t\t\tif (isIncludeScalar(value)) {\n\t\t\t\tbranches[name] = {\n\t\t\t\t\tkind: \"scalar\",\n\t\t\t\t\tselector: value\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isCollectionStateCarrier(value)) {\n\t\t\t\tbranches[name] = {\n\t\t\t\t\tkind: \"rows\",\n\t\t\t\t\tstate: value.state\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthrow ormError(\"ORM.INCLUDE_INVALID\", `include().combine() branch \"${name}\" is invalid`, { meta: { branch: name } });\n\t\t}\n\t\treturn createIncludeCombine(branches);\n\t}\n\tcursor(cursorValues) {\n\t\tassertCursorCompatibleOrder(this.state.orderBy);\n\t\tconst mappedCursor = mapCursorValuesToColumns(this.contract, this.namespaceId, this.modelName, cursorValues);\n\t\tif (Object.keys(mappedCursor).length === 0) return this;\n\t\treturn this.#cloneSelf({ cursor: mappedCursor });\n\t}\n\tdistinct(...fields) {\n\t\tconst distinctFields = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn this.#cloneSelf({\n\t\t\tdistinct: distinctFields,\n\t\t\tdistinctOn: void 0\n\t\t});\n\t}\n\tdistinctOn(...fields) {\n\t\tassertDistinctOnCapability(this.contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(this.state.orderBy, fields.length);\n\t\tconst distinctOnFields = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn this.#cloneSelf({\n\t\t\tdistinct: void 0,\n\t\t\tdistinctOn: distinctOnFields\n\t\t});\n\t}\n\tforUpdate(...options) {\n\t\treturn this.#lock(\"forUpdate\", options[0]);\n\t}\n\tforNoKeyUpdate(...options) {\n\t\treturn this.#lock(\"forNoKeyUpdate\", options[0]);\n\t}\n\tforShare(...options) {\n\t\treturn this.#lock(\"forShare\", options[0]);\n\t}\n\tforKeyShare(...options) {\n\t\treturn this.#lock(\"forKeyShare\", options[0]);\n\t}\n\tlimit(n) {\n\t\treturn this.#cloneSelf({ limit: typeof n === \"number\" ? n : toExpr(n) });\n\t}\n\toffset(n) {\n\t\treturn this.#cloneSelf({ offset: typeof n === \"number\" ? n : toExpr(n) });\n\t}\n\tall(configure) {\n\t\treturn this.#withAnnotationsFromMeta(configure, \"all\").#dispatch();\n\t}\n\tget prepared() {\n\t\treturn blindCast({\n\t\t\taggregate: (fn, configure) => this.#describeAggregate(fn, configure),\n\t\t\tall: (configure) => {\n\t\t\t\treturn describeCollectionRows(this.#withAnnotationsFromMeta(configure, \"all\").#descriptionOptions());\n\t\t\t},\n\t\t\tfirst: (filter, configure) => {\n\t\t\t\treturn describeCollectionFirst(this.#forFirst(filter, configure, \"first\").#descriptionOptions());\n\t\t\t},\n\t\t\tfirstOrThrow: (filter, configure) => {\n\t\t\t\treturn describeCollectionFirstOrThrow(this.#forFirst(filter, configure, \"firstOrThrow\").#descriptionOptions());\n\t\t\t}\n\t\t});\n\t}\n\t#descriptionOptions() {\n\t\treturn {\n\t\t\tcontext: this.ctx.context,\n\t\t\tstate: this.state,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t};\n\t}\n\t#forFirst(filter, configure, terminalName) {\n\t\treturn (filter === void 0 ? this : typeof filter === \"function\" ? this.where(filter) : this.where(filter)).limit(1).#withAnnotationsFromMeta(configure, terminalName);\n\t}\n\tasync first(filter, configure) {\n\t\treturn consumeFirstRow(this.#forFirst(filter, configure, \"first\").#dispatch());\n\t}\n\tasync firstOrThrow(filter, configure) {\n\t\treturn this.#forFirst(filter, configure, \"firstOrThrow\").#dispatch().firstOrThrow();\n\t}\n\tasync aggregate(fn, configure) {\n\t\tconst description = this.#describeAggregate(fn, configure);\n\t\treturn description.consume(queryPlanRows(this.ctx.runtime, description.plan));\n\t}\n\t#describeAggregate(fn, configure) {\n\t\tassertLockCompatible(this.state, \"aggregate\");\n\t\tconst aggregateSpec = fn(createAggregateBuilder(this.contract, this.ctx.context.aggregateDescriptors, this.namespaceId, this.modelName));\n\t\tconst entries = Object.entries(aggregateSpec);\n\t\tif (entries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"aggregate() requires at least one aggregation selector\", { meta: {\n\t\t\tmethod: \"aggregate\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tfor (const [alias, selector] of entries) if (!isAggregateSelector(selector)) throw ormError(\"ORM.AGGREGATE_SELECTOR_INVALID\", `aggregate() selector \"${alias}\" is invalid`, { meta: {\n\t\t\tmethod: \"aggregate\",\n\t\t\tmodel: this.modelName,\n\t\t\talias\n\t\t} });\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"read\", \"aggregate\");\n\t\tconst compiled = mergeAnnotations(compileAggregate(this.contract, this.ctx.context.aggregateDescriptors, this.state, aggregateSpec, this.modelName), annotationsMap);\n\t\tconst results = entries.map(([alias, selector]) => {\n\t\t\tconst resolved = resolveAggregate({\n\t\t\t\taggregates: this.ctx.context.aggregateDescriptors,\n\t\t\t\tcontract: this.contract,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\ttableName: this.tableName,\n\t\t\t\tfn: selector.fn,\n\t\t\t\tcolumn: selector.column\n\t\t\t});\n\t\t\treturn {\n\t\t\t\talias,\n\t\t\t\tresolved,\n\t\t\t\tcodec: this.ctx.context.contractCodecs.forCodecRef(resolved.codec)\n\t\t\t};\n\t\t});\n\t\treturn {\n\t\t\tplan: compiled,\n\t\t\tasync consume(source) {\n\t\t\t\tconst row = (await source.toArray())[0] ?? {};\n\t\t\t\treturn blindCast(Object.fromEntries(results.map(({ alias, resolved, codec }) => {\n\t\t\t\t\treturn [alias, (Object.hasOwn(row, alias) ? row[alias] : void 0) ?? emptyAggregateResult(resolved, codec)];\n\t\t\t\t})));\n\t\t\t}\n\t\t};\n\t}\n\tasync create(data, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"create()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"create\");\n\t\tif (hasNestedMutationCallbacks(this.contract, this.namespaceId, this.modelName, blindCast(data))) {\n\t\t\tconst createdRow = await executeNestedCreateMutation({\n\t\t\t\tcontext: this.ctx.context,\n\t\t\t\truntime: this.ctx.runtime,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\tmodelName: this.modelName,\n\t\t\t\tdata: blindCast(data)\n\t\t\t});\n\t\t\tconst identityCriterion = buildRowIdentityFilterFromRow(this.contract, this.namespaceId, this.modelName, createdRow);\n\t\t\tconst reloaded = await this.#reloadMutationRowByIdentity(identityCriterion);\n\t\t\tif (!reloaded) throw ormError(\"ORM.MUTATION_ROW_MISSING\", `create() for model \"${this.modelName}\" did not return a row`, { meta: {\n\t\t\t\toperation: \"create\",\n\t\t\t\tmodel: this.modelName\n\t\t\t} });\n\t\t\treturn reloaded;\n\t\t}\n\t\tconst created = (await this.#createAllWithAnnotations([blindCast(data)], annotationsMap))[0];\n\t\tif (created) return created;\n\t\tthrow ormError(\"ORM.MUTATION_ROW_MISSING\", `create() for model \"${this.modelName}\" did not return a row`, { meta: {\n\t\t\toperation: \"create\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t}\n\tcreateAll(data, optionsOrConfigure, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst { options, configureCallback } = splitCreateArguments(optionsOrConfigure, configure);\n\t\tconst conflictSkip = this.#resolveConflictSkip(options, \"createAll()\");\n\t\treturn this.#createAllWithAnnotations(data, this.#collectAnnotationsFromMeta(configureCallback, \"write\", \"createAll\"), conflictSkip);\n\t}\n\t#createAllWithAnnotations(data, annotationsMap, conflictSkip) {\n\t\tif (data.length === 0) {\n\t\t\tconst generator = async function* () {};\n\t\t\treturn new AsyncIterableResult(generator());\n\t\t}\n\t\tassertReturningCapability(this.contract, \"createAll()\");\n\t\tconst rows = blindCast(data);\n\t\tconst mtiContext = this.#resolveMtiCreateContext();\n\t\tif (mtiContext) return this.#executeMtiCreate(rows, mtiContext);\n\t\tconst mappedRows = this.#mapCreateRows(rows);\n\t\tapplyCreateDefaults(this.ctx, this.namespaceId, this.tableName, mappedRows);\n\t\tconst { selectedForQuery: selectedForInsert, hiddenColumns } = this.#augmentMutationSelection();\n\t\tif (this.contract.capabilities?.[\"sql\"]?.[\"defaultInInsert\"] !== true) {\n\t\t\tconst plans = compileInsertReturningSplit(this.contract, this.namespaceId, this.modelName, this.tableName, mappedRows, selectedForInsert, conflictSkip).map((plan) => mergeAnnotations(plan, annotationsMap));\n\t\t\treturn dispatchSplitMutationRows({\n\t\t\t\tcontext: this.ctx.context,\n\t\t\t\truntime: this.ctx.runtime,\n\t\t\t\tplans,\n\t\t\t\ttables: this.state.tables,\n\t\t\t\tmodelName: this.modelName,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\tvariantValue: this.state.variantValue,\n\t\t\t\tincludes: this.state.includes,\n\t\t\t\tselectedFields: this.state.selectedFields,\n\t\t\t\thiddenColumns,\n\t\t\t\tmapRow: (mapped) => blindCast(mapped)\n\t\t\t});\n\t\t}\n\t\tconst compiled = mergeAnnotations(compileInsertReturning(this.contract, this.namespaceId, this.modelName, this.tableName, mappedRows, selectedForInsert, conflictSkip), annotationsMap);\n\t\treturn dispatchMutationRows({\n\t\t\tcontext: this.ctx.context,\n\t\t\truntime: this.ctx.runtime,\n\t\t\tcompiled,\n\t\t\ttables: this.state.tables,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tvariantValue: this.state.variantValue,\n\t\t\tincludes: this.state.includes,\n\t\t\tselectedFields: this.state.selectedFields,\n\t\t\thiddenColumns,\n\t\t\tmapRow: (mapped) => blindCast(mapped)\n\t\t});\n\t}\n\t#resolveConflictSkip(options, method) {\n\t\tif (options === void 0) return void 0;\n\t\tif (options.onConflict !== \"skip\") throw ormError(\"ORM.ARGUMENT_INVALID\", `${method} onConflict must be \"skip\"; received ${JSON.stringify(options.onConflict)}`, { meta: {\n\t\t\tmethod,\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tif (method === \"createAll()\") this.#assertConflictSkipNotOnMtiVariant(method);\n\t\telse this.#assertNotMtiVariant(method);\n\t\tconst conflictOn = options.conflictOn ?? [];\n\t\tassertInsertConflictSkipCapability(this.contract, method, conflictOn.length > 0);\n\t\treturn { columns: resolveInsertConflictColumns(this.contract, this.namespaceId, this.modelName, conflictOn) };\n\t}\n\t#assertNotMtiVariant(method) {\n\t\tthis.#refuseOnMtiVariant(method, `${method} is not supported for MTI variant \"${this.#variantModelName()}\" on model \"${this.modelName}\". Use createAll() instead.`);\n\t}\n\t#assertConflictSkipNotOnMtiVariant(method) {\n\t\tthis.#refuseOnMtiVariant(method, `The onConflict option is not supported on variant \"${this.#variantModelName()}\" of model \"${this.modelName}\" because the variant is stored in its own table. Call createAll(rows) without the option; a duplicate row then makes the call fail.`);\n\t}\n\t#refuseOnMtiVariant(method, message) {\n\t\tif (!this.#resolveMtiCreateContext()) return;\n\t\tthrow ormError(\"ORM.OPERATION_UNSUPPORTED\", message, { meta: {\n\t\t\tmethod,\n\t\t\tmodel: this.modelName,\n\t\t\tvariant: this.#variantModelName(),\n\t\t\treason: \"mti-variant\"\n\t\t} });\n\t}\n\t#variantModelName() {\n\t\treturn addressedModel(this.contract, this.namespaceId, this.modelName, this.state.variantValue)[1];\n\t}\n\t#resolveMtiCreateContext() {\n\t\tconst variantValue = this.state.variantValue;\n\t\tif (!variantValue) return null;\n\t\tconst polyInfo = resolvePolymorphismInfo(this.contract, this.namespaceId, this.modelName);\n\t\tif (!polyInfo) return null;\n\t\tconst variant = polyInfo.variants.get(variantValue);\n\t\tif (!isMtiVariantInfo(variant)) return null;\n\t\tconst baseFieldToColumn = getModelFieldColumns(this.contract, this.namespaceId, this.modelName);\n\t\tconst variantFieldToColumn = getOwnFieldColumns(this.contract, variant.namespaceId, variant.modelName);\n\t\tconst pkColumns = resolvePrimaryKeyColumns(this.contract, this.namespaceId, this.tableName);\n\t\treturn {\n\t\t\tpolyInfo,\n\t\t\tvariant,\n\t\t\tbaseFieldToColumn,\n\t\t\tvariantFieldToColumn,\n\t\t\tmergedFieldToColumn: getModelAndVariantFieldColumns(this.contract, this.namespaceId, this.modelName, variant.value),\n\t\t\tpkColumns\n\t\t};\n\t}\n\t#executeMtiCreate(data, mtiCtx) {\n\t\tconst { polyInfo, variant, baseFieldToColumn, variantFieldToColumn, mergedFieldToColumn, pkColumns } = mtiCtx;\n\t\tconst contract = this.contract;\n\t\tconst collectionCtx = this.ctx;\n\t\tconst runtime = collectionCtx.runtime;\n\t\tconst tableName = this.tableName;\n\t\tconst modelName = this.modelName;\n\t\tconst namespaceId = this.namespaceId;\n\t\tconst tables = this.state.tables;\n\t\tconst variantTable = requireVariantTable(tables, variant.value);\n\t\tconst baseFieldColumns = new Set(Object.values(baseFieldToColumn));\n\t\tconst variantFieldColumns = new Set(Object.values(variantFieldToColumn));\n\t\tconst generator = async function* () {\n\t\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\t\tfor (const row of data) {\n\t\t\t\tconst allMapped = {};\n\t\t\t\tfor (const [fieldName, value] of Object.entries(row)) {\n\t\t\t\t\tif (value === void 0) continue;\n\t\t\t\t\tallMapped[columnOfCallerField(contract, variant.namespaceId, mergedFieldToColumn, variant.modelName, fieldName)] = value;\n\t\t\t\t}\n\t\t\t\tallMapped[polyInfo.discriminatorColumn] = variant.value;\n\t\t\t\tconst baseRow = {};\n\t\t\t\tconst variantRow = {};\n\t\t\t\tfor (const [col, val] of Object.entries(allMapped)) {\n\t\t\t\t\tif (baseFieldColumns.has(col) || col === polyInfo.discriminatorColumn) baseRow[col] = val;\n\t\t\t\t\tif (variantFieldColumns.has(col)) variantRow[col] = val;\n\t\t\t\t}\n\t\t\t\tyield blindCast(await withMutationScope(runtime, async (scope) => {\n\t\t\t\t\tapplyCreateDefaults(collectionCtx, namespaceId, tableName, [baseRow], defaultValueCache);\n\t\t\t\t\tconst baseCreated = (await queryPlanRows(scope, compileInsertReturning(contract, namespaceId, modelName, tableName, [baseRow], void 0)).toArray())[0];\n\t\t\t\t\tif (!baseCreated) throw ormError(\"ORM.MUTATION_ROW_MISSING\", `MTI base INSERT for model \"${modelName}\" did not return a row`, { meta: {\n\t\t\t\t\t\toperation: \"create\",\n\t\t\t\t\t\tmodel: modelName,\n\t\t\t\t\t\ttable: tableName,\n\t\t\t\t\t\tphase: \"mti-base\"\n\t\t\t\t\t} });\n\t\t\t\t\tfor (const pkColumn of pkColumns) variantRow[pkColumn] = baseCreated[pkColumn];\n\t\t\t\t\tapplyCreateDefaults(collectionCtx, variantTable.storage.namespaceId, variantTable.storage.tableName, [variantRow], defaultValueCache);\n\t\t\t\t\tconst variantCreated = (await queryPlanRows(scope, compileInsertReturning(contract, variantTable.storage.namespaceId, variant.modelName, variantTable.storage.tableName, [variantRow], void 0)).toArray())[0];\n\t\t\t\t\tif (!variantCreated) throw ormError(\"ORM.MUTATION_ROW_MISSING\", `MTI variant INSERT for model \"${modelName}\" into \"${variant.table}\" did not return a row`, { meta: {\n\t\t\t\t\t\toperation: \"create\",\n\t\t\t\t\t\tmodel: modelName,\n\t\t\t\t\t\ttable: variant.table,\n\t\t\t\t\t\tphase: \"mti-variant\"\n\t\t\t\t\t} });\n\t\t\t\t\tconst prefixedVariant = {};\n\t\t\t\t\tfor (const [col, val] of Object.entries(variantCreated)) {\n\t\t\t\t\t\tif (pkColumns.includes(col)) continue;\n\t\t\t\t\t\tprefixedVariant[variantColumnLabel(variantTable, col)] = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, tables, {\n\t\t\t\t\t\t...baseCreated,\n\t\t\t\t\t\t...prefixedVariant\n\t\t\t\t\t}, variant.value);\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\t#mapCreateRows(data) {\n\t\tconst variantValue = this.state.variantValue;\n\t\tif (!variantValue) return data.map((row) => mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, row));\n\t\tconst polyInfo = resolvePolymorphismInfo(this.contract, this.namespaceId, this.modelName);\n\t\tif (!polyInfo) return data.map((row) => mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, row));\n\t\tconst variant = polyInfo.variants.get(variantValue);\n\t\tif (!variant) return data.map((row) => mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, row));\n\t\tconst mergedFieldToColumn = getModelAndVariantFieldColumns(this.contract, this.namespaceId, this.modelName, variant.value);\n\t\treturn data.map((row) => {\n\t\t\tconst mapped = {};\n\t\t\tfor (const [fieldName, value] of Object.entries(row)) {\n\t\t\t\tif (value === void 0) continue;\n\t\t\t\tmapped[columnOfCallerField(this.contract, variant.namespaceId, mergedFieldToColumn, variant.modelName, fieldName)] = value;\n\t\t\t}\n\t\t\tmapped[polyInfo.discriminatorColumn] = variant.value;\n\t\t\treturn mapped;\n\t\t});\n\t}\n\t/**\n\t* Write terminal: insert many rows without materializing the\n\t* inserted rows, returning the number of rows the database reports\n\t* inserting.\n\t*\n\t* Prefer `createAll(...)` when you need the returned rows; prefer\n\t* this when you only need to know how many rows were inserted (the\n\t* compiled plan skips `RETURNING`).\n\t*\n\t* ```typescript\n\t* const inserted = await db.orm.User.createAndCount([\n\t* { email: 'a@example.com' },\n\t* { email: 'b@example.com' },\n\t* ]);\n\t* // inserted === 2\n\t*\n\t* // Let the database skip rows that collide with a unique\n\t* // constraint; the count is how many it actually inserted:\n\t* const added = await db.orm.User.createAndCount(seedUsers, {\n\t* onConflict: 'skip',\n\t* });\n\t* ```\n\t*\n\t* Not supported on MTI variants — use `createAll(...)` instead.\n\t*/\n\tasync createAndCount(data, optionsOrConfigure, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst { options, configureCallback } = splitCreateArguments(optionsOrConfigure, configure);\n\t\tconst conflictSkip = this.#resolveConflictSkip(options, \"createAndCount()\");\n\t\tif (data.length === 0) return 0;\n\t\tthis.#assertNotMtiVariant(\"createAndCount()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configureCallback, \"write\", \"createAndCount\");\n\t\tconst rows = blindCast(data);\n\t\tconst mappedRows = this.#mapCreateRows(rows);\n\t\tapplyCreateDefaults(this.ctx, this.namespaceId, this.tableName, mappedRows);\n\t\tif (this.contract.capabilities?.[\"sql\"]?.[\"defaultInInsert\"] !== true) {\n\t\t\tconst plans = compileInsertCountSplit(this.contract, this.namespaceId, this.tableName, mappedRows, conflictSkip).map((plan) => mergeAnnotations(plan, annotationsMap));\n\t\t\tlet affectedRows = 0;\n\t\t\tfor (const plan of plans) {\n\t\t\t\tconst stats = await this.ctx.runtime.execute(plan);\n\t\t\t\taffectedRows += stats.affectedRows;\n\t\t\t}\n\t\t\treturn affectedRows;\n\t\t}\n\t\tconst compiled = mergeAnnotations(compileInsertCount(this.contract, this.namespaceId, this.tableName, mappedRows, conflictSkip), annotationsMap);\n\t\treturn (await this.ctx.runtime.execute(compiled)).affectedRows;\n\t}\n\tasync upsert(input, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"upsert()\");\n\t\tthis.#assertNotMtiVariant(\"upsert()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"upsert\");\n\t\tconst createValues = this.#mapCreateRows([blindCast(input.create)])[0] ?? {};\n\t\tapplyCreateDefaults(this.ctx, this.namespaceId, this.tableName, [createValues]);\n\t\tconst updateValues = mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, input.update);\n\t\tconst hasUpdateValues = Object.keys(updateValues).length > 0;\n\t\tif (hasUpdateValues) applyUpdateDefaults(this.ctx, this.namespaceId, this.tableName, updateValues);\n\t\tconst conflictColumns = resolveUpsertConflictColumns(this.contract, this.namespaceId, this.modelName, blindCast(input.conflictOn));\n\t\tif (conflictColumns.length === 0) throw ormError(\"ORM.ARGUMENT_INVALID\", `upsert() for model \"${this.modelName}\" requires conflict columns`, { meta: {\n\t\t\tmethod: \"upsert\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tconst { selectedForQuery: selectedForUpsert, hiddenColumns } = this.#augmentMutationSelection();\n\t\tconst compiled = mergeAnnotations(compileUpsertReturning(this.contract, this.namespaceId, this.modelName, this.tableName, createValues, updateValues, conflictColumns, selectedForUpsert), annotationsMap);\n\t\tconst row = await executeMutationReturningSingleRow({\n\t\t\tcontext: this.ctx.context,\n\t\t\truntime: this.ctx.runtime,\n\t\t\tcompiled,\n\t\t\ttables: this.state.tables,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tvariantValue: this.state.variantValue,\n\t\t\tincludes: this.state.includes,\n\t\t\tselectedFields: this.state.selectedFields,\n\t\t\thiddenColumns,\n\t\t\tmapRow: (mapped) => blindCast(mapped),\n\t\t\toperation: \"upsert\",\n\t\t\tonMissingRowMessage: `upsert() for model \"${this.modelName}\" did not return a row`\n\t\t});\n\t\tif (row) return row;\n\t\tif (!hasUpdateValues) {\n\t\t\tconst conflictCriterion = this.#buildUpsertConflictCriterion(createValues, conflictColumns);\n\t\t\tconst existing = await this.#reloadMutationRowByCriterion(conflictCriterion, \"upsert conflict\");\n\t\t\tif (existing) return existing;\n\t\t}\n\t\tthrow ormError(\"ORM.MUTATION_ROW_MISSING\", `upsert() for model \"${this.modelName}\" did not return a row`, { meta: {\n\t\t\toperation: \"upsert\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t}\n\tasync update(data, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"update()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"update\");\n\t\tif (hasNestedMutationCallbacks(this.contract, this.namespaceId, this.modelName, blindCast(data))) {\n\t\t\tassertRelationUpdateIgnoresNothing(this.state, this.modelName);\n\t\t\tconst updatedRow = await executeNestedUpdateMutation({\n\t\t\t\tcontext: this.ctx.context,\n\t\t\t\truntime: this.ctx.runtime,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\tmodelName: this.modelName,\n\t\t\t\ttables: this.state.tables,\n\t\t\t\tfilters: this.state.filters,\n\t\t\t\tdata: blindCast(data)\n\t\t\t});\n\t\t\tif (!updatedRow) return null;\n\t\t\tconst identityCriterion = buildRowIdentityFilterFromRow(this.contract, this.namespaceId, this.modelName, updatedRow);\n\t\t\treturn this.#reloadMutationRowByIdentity(identityCriterion);\n\t\t}\n\t\tassertModelFieldNames(this.contract, this.namespaceId, this.modelName, blindCast(data));\n\t\tconst values = this.#updateValues(blindCast(data));\n\t\treturn consumeFirstRow(queryGraph(updateFirstGraph(this.#descriptionOptions(), values), this.ctx, annotationsMap, this.#descriptionOptions()));\n\t}\n\tupdateAll(data, configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"updateAll\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"updateAll\");\n\t\tassertReturningCapability(this.contract, \"updateAll()\");\n\t\treturn queryGraph(updateAllGraph(this.#descriptionOptions(), this.#updateValues(data)), this.ctx, annotationsMap, this.#descriptionOptions());\n\t}\n\tasync updateAndCount(data, configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"updateAndCount\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst values = this.#updateValues(data);\n\t\tconst graph = Object.keys(values).length === 0 ? new Graph() : updateAllGraph(this.#descriptionWithoutIncludes(), values);\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"updateAndCount\");\n\t\treturn (await executeGraph(graph, this.ctx, annotationsMap)).affectedRows;\n\t}\n\tasync delete(configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"delete()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"delete\");\n\t\treturn consumeFirstRow(queryGraph(deleteFirstGraph(this.#descriptionOptions()), this.ctx, annotationsMap, this.#descriptionOptions()));\n\t}\n\tdeleteAll(configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"deleteAll\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"deleteAll\");\n\t\tassertReturningCapability(this.contract, \"deleteAll()\");\n\t\treturn queryGraph(deleteAllGraph(this.#descriptionOptions()), this.ctx, annotationsMap, this.#descriptionOptions());\n\t}\n\tasync deleteAndCount(configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"deleteAndCount\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"deleteAndCount\");\n\t\treturn (await executeGraph(deleteAllGraph(this.#descriptionWithoutIncludes()), this.ctx, annotationsMap)).affectedRows;\n\t}\n\t#descriptionWithoutIncludes() {\n\t\treturn {\n\t\t\t...this.#descriptionOptions(),\n\t\t\tstate: {\n\t\t\t\t...this.state,\n\t\t\t\tincludes: []\n\t\t\t}\n\t\t};\n\t}\n\t#updateValues(data) {\n\t\tconst values = mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, data);\n\t\tif (Object.keys(values).length > 0) applyUpdateDefaults(this.ctx, this.namespaceId, this.tableName, values);\n\t\treturn values;\n\t}\n\t#buildUpsertConflictCriterion(createValues, conflictColumns) {\n\t\tconst criterion = {};\n\t\tfor (const columnName of conflictColumns) {\n\t\t\tif (!(columnName in createValues)) throw ormError(\"ORM.ARGUMENT_INVALID\", `upsert() for model \"${this.modelName}\" requires create value for conflict column \"${columnName}\"`, { meta: {\n\t\t\t\tmethod: \"upsert\",\n\t\t\t\tmodel: this.modelName,\n\t\t\t\tcolumn: columnName\n\t\t\t} });\n\t\t\tconst fieldName = fieldOfColumn(getModelColumnFields(this.contract, this.namespaceId, this.modelName), this.modelName, columnName);\n\t\t\tcriterion[fieldName] = createValues[columnName];\n\t\t}\n\t\treturn criterion;\n\t}\n\t/**\n\t* Shape the projection for a mutation's `RETURNING` clause.\n\t*\n\t* Without includes, the mutation returns the caller's projection\n\t* directly. With includes, it returns only the row identity columns\n\t* (PK / unique): those rows are reloaded through the read path\n\t* (`reloadMutationRowsByIdentities`), which re-selects the caller's\n\t* projection together with the relations, so the `RETURNING` clause\n\t* need only carry enough to key that read-back.\n\t*/\n\t#augmentMutationSelection() {\n\t\tif (this.state.includes.length > 0) {\n\t\t\tconst identityColumns = resolveRowIdentityColumns(this.contract, this.namespaceId, this.tableName);\n\t\t\tif (identityColumns.length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `Cannot load includes for the mutation result on model \"${this.modelName}\": table \"${this.tableName}\" has no primary key or unique constraint to key the include read-back on.`, { meta: {\n\t\t\t\tmodel: this.modelName,\n\t\t\t\ttable: this.tableName\n\t\t\t} });\n\t\t\treturn {\n\t\t\t\tselectedForQuery: identityColumns,\n\t\t\t\thiddenColumns: []\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tselectedForQuery: this.state.selectedFields,\n\t\t\thiddenColumns: []\n\t\t};\n\t}\n\tasync #reloadMutationRowByIdentity(criterion) {\n\t\treturn this.#reloadMutationRowByCriterion(criterion, \"row identity\");\n\t}\n\tasync #reloadMutationRowByCriterion(criterion, criterionLabel) {\n\t\tconst whereExpr = shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, blindCast(criterion), this.state.tables.root);\n\t\tif (!whereExpr) throw new InternalError(`Failed to build ${criterionLabel} filter for mutation result on model \"${this.modelName}\"`);\n\t\tconst resultState = {\n\t\t\t...emptyState(this.state.tables),\n\t\t\tfilters: [whereExpr],\n\t\t\tincludes: this.state.includes,\n\t\t\tselectedFields: this.state.selectedFields,\n\t\t\tlimit: 1\n\t\t};\n\t\treturn (await dispatchCollectionRows({\n\t\t\tcontext: this.ctx.context,\n\t\t\truntime: this.ctx.runtime,\n\t\t\tstate: resultState,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t}))[0] ?? null;\n\t}\n\t#assertIncludeRefinementMode(action) {\n\t\tif (this.includeRefinementMode) return;\n\t\tthrow ormError(\"ORM.INCLUDE_INVALID\", `${action} is only available inside include() refinement callbacks`, { meta: { action } });\n\t}\n\t#lock(strength, options) {\n\t\tif (this.includeRefinementMode) throw lockIncompatible(\"includeRefinement\", `${strength}() cannot be called inside an include() refinement callback`);\n\t\tassertLockCapability(this.contract, lockStrengthCapabilities[strength], strength);\n\t\tassertLockCapability(this.contract, lockOptionCapabilities.of, strength);\n\t\tconst waitPolicy = lockWaitPolicyOf(strength, options);\n\t\tif (waitPolicy !== void 0) assertLockCapability(this.contract, lockOptionCapabilities[waitPolicy], strength);\n\t\tconst clause = LockingClause.of(strength, {\n\t\t\tof: [this.state.tables.root.alias],\n\t\t\t...ifDefined(\"waitPolicy\", waitPolicy)\n\t\t});\n\t\treturn this.#cloneSelf({ locking: [...this.state.locking ?? [], clause] });\n\t}\n\t#clone(overrides) {\n\t\treturn this.#createSelf({\n\t\t\t...this.state,\n\t\t\t...overrides\n\t\t});\n\t}\n\t#cloneSelf(overrides) {\n\t\treturn blindCast(this.#createSelf({\n\t\t\t...this.state,\n\t\t\t...overrides\n\t\t}));\n\t}\n\t#cloneWithRow(overrides) {\n\t\treturn this.#createSelf({\n\t\t\t...this.state,\n\t\t\t...overrides\n\t\t});\n\t}\n\t#createSelf(state) {\n\t\treturn blindCast(new (blindCast(this.constructor))(this.ctx, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tstate,\n\t\t\tregistry: this.registry,\n\t\t\tincludeRefinementMode: this.includeRefinementMode\n\t\t}));\n\t}\n\t#createCollection(modelName, options) {\n\t\treturn blindCast(new ((this.registry.get(modelName)) ?? (blindCast(CollectionBase)))(this.ctx, modelName, {\n\t\t\ttableName: options.tableName,\n\t\t\tnamespaceId: options.namespaceId,\n\t\t\tstate: options.state,\n\t\t\tregistry: options.registry ?? this.registry,\n\t\t\tincludeRefinementMode: options.includeRefinementMode ?? this.includeRefinementMode\n\t\t}));\n\t}\n\t#dispatch() {\n\t\treturn dispatchCollectionRows({\n\t\t\tcontext: this.ctx.context,\n\t\t\truntime: this.ctx.runtime,\n\t\t\tstate: this.state,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t});\n\t}\n\t/**\n\t* Invokes the user-supplied configurator (if any) against a freshly\n\t* constructed read meta builder, and returns a clone whose\n\t* `state.annotations` carries the recorded map. Used by read\n\t* terminals that flow annotations through state (`all`, `first`).\n\t*\n\t* Returns the receiver unchanged when no configurator was supplied\n\t* or when the configurator did not call `meta.annotate(...)`. The\n\t* meta builder's `annotate` method enforces applicability at the\n\t* type level and at runtime, so terminal code does not need to\n\t* re-validate.\n\t*/\n\t#withAnnotationsFromMeta(configure, terminalName) {\n\t\tif (configure === void 0) return this;\n\t\tconst meta = createMetaBuilder(\"read\", terminalName);\n\t\tconfigure(meta);\n\t\tif (meta.annotations.size === 0) return this;\n\t\tconst next = new Map(this.state.annotations);\n\t\tfor (const [namespace, value] of meta.annotations) next.set(namespace, value);\n\t\treturn blindCast(this.#clone({ annotations: next }));\n\t}\n\t/**\n\t* Invokes the user-supplied configurator (if any) against a freshly\n\t* constructed meta builder of the given operation kind, and returns\n\t* the recorded annotation map (or `undefined` when empty). Used by\n\t* terminals where annotations don't flow through `state` — the\n\t* compiled plan is post-wrapped via `mergeAnnotations` instead.\n\t* Read terminals `all` and `first` populate `state.annotations`\n\t* via `#withAnnotationsFromMeta` instead; `aggregate` uses this\n\t* post-wrap path because `compileAggregate` does not forward `state.annotations` into the plan.\n\t* The meta builder's `annotate` method enforces applicability at the\n\t* type level and at runtime.\n\t*/\n\t#collectAnnotationsFromMeta(configure, kind, terminalName) {\n\t\tif (configure === void 0) return;\n\t\tconst meta = createMetaBuilder(kind, terminalName);\n\t\tconfigure(meta);\n\t\treturn meta.annotations.size === 0 ? void 0 : meta.annotations;\n\t}\n};\nconst collectionInstanceMemberNames = [\n\t\"ctx\",\n\t\"contract\",\n\t\"modelName\",\n\t\"tableName\",\n\t\"namespaceId\",\n\t\"state\",\n\t\"registry\",\n\t\"includeRefinementMode\"\n];\n/**\n* Every member name the collection surface owns: the prototype's methods plus\n* the declared instance fields. A contributed aggregate operation may not\n* take one of these names — reducers install into the same flat namespace —\n* so ORM composition rejects any operation this set contains.\n*/\nfunction reservedCollectionMemberNames() {\n\treturn /* @__PURE__ */ new Set([...Object.getOwnPropertyNames(CollectionBase.prototype), ...collectionInstanceMemberNames]);\n}\nconst Collection = blindCast(CollectionBase);\n//#endregion\n//#region src/orm.ts\n/**\n* Reject a contributed aggregate operation whose name a collection member\n* already owns. Aggregate operations surface as reducer methods on the\n* collection, in one flat namespace with the builder members, so a same-named\n* operation would shadow the member it collides with — a client-surface\n* concern, enforced here where that surface is assembled.\n*/\nfunction assertAggregateOperationsNotReserved(registry) {\n\tconst reserved = reservedCollectionMemberNames();\n\tfor (const operation of aggregateOperationNames(registry)) {\n\t\tif (!reserved.has(operation)) continue;\n\t\tthrow ormError(\"ORM.AGGREGATE_OPERATION_RESERVED\", `Aggregate operation '${operation}' is reserved: the name is a collection builder member.`, {\n\t\t\twhy: \"Aggregate operations surface as reducer methods on the collection, in one namespace with the query-builder members; a same-named operation would shadow the member it collides with.\",\n\t\t\tfix: \"Rename the contributed aggregate operation.\",\n\t\t\tmeta: { operation }\n\t\t});\n\t}\n}\nfunction orm(options) {\n\tconst { runtime, collections, context } = options;\n\tassertAggregateOperationsNotReserved(context.aggregateDescriptors);\n\tconst contract = context.contract;\n\tconst ctx = {\n\t\truntime,\n\t\tcontext\n\t};\n\tconst collectionRegistry = createCollectionRegistry(contract, collections);\n\tfunction buildCollection(namespaceId, modelName, tableName) {\n\t\treturn new (blindCast(collectionRegistry.get(modelName) ?? CollectionBase))(ctx, modelName, {\n\t\t\tregistry: collectionRegistry,\n\t\t\tnamespaceId,\n\t\t\t...tableName !== void 0 ? { tableName } : {}\n\t\t});\n\t}\n\tconst namespaceFacets = /* @__PURE__ */ new Map();\n\tfunction namespaceFacet(namespaceId) {\n\t\tconst cached = namespaceFacets.get(namespaceId);\n\t\tif (cached) return cached;\n\t\tconst facetModelNames = new Set(domainModelNamesInNamespace(contract, namespaceId));\n\t\tconst facetCache = /* @__PURE__ */ new Map();\n\t\tconst facet = new Proxy({}, { get(_facetTarget, modelProp) {\n\t\t\tif (typeof modelProp !== \"string\") return;\n\t\t\tif (!facetModelNames.has(modelProp)) return;\n\t\t\tconst hit = facetCache.get(modelProp);\n\t\t\tif (hit) return hit;\n\t\t\tconst collection = buildCollection(namespaceId, modelProp, domainModelTableInNamespace(contract, namespaceId, modelProp));\n\t\t\tfacetCache.set(modelProp, collection);\n\t\t\treturn collection;\n\t\t} });\n\t\tnamespaceFacets.set(namespaceId, facet);\n\t\treturn facet;\n\t}\n\treturn new Proxy({}, { get(_target, prop) {\n\t\tif (typeof prop !== \"string\") return;\n\t\tif (Object.hasOwn(contract.domain.namespaces, prop)) return namespaceFacet(prop);\n\t\treturn prop === \"fragment\" ? defineDeclaredFieldsFragment : void 0;\n\t} });\n}\nfunction createCollectionRegistry(contract, collections) {\n\tconst registry = /* @__PURE__ */ new Map();\n\tif (!collections) return registry;\n\tconst models = domainModelsAtDefaultNamespace(contract.domain);\n\tfor (const [key, collectionClass] of Object.entries(collections)) {\n\t\tif (!collectionClass) continue;\n\t\tif (!isCollectionClass(collectionClass)) throw ormError(\"ORM.ARGUMENT_INVALID\", `Custom collection '${key}' must be a Collection class (constructor), not an instance`, { meta: {\n\t\t\tmethod: \"orm\",\n\t\t\targument: \"collections\",\n\t\t\tkey\n\t\t} });\n\t\tif (!Object.hasOwn(models, key)) throw ormError(\"ORM.ARGUMENT_INVALID\", `No model found for custom collection '${key}'. Available models: ${Object.keys(models).join(\", \")}`, { meta: {\n\t\t\tmethod: \"orm\",\n\t\t\targument: \"collections\",\n\t\t\tkey\n\t\t} });\n\t\tregistry.set(key, collectionClass);\n\t}\n\treturn registry;\n}\nfunction isCollectionClass(value) {\n\tif (typeof value !== \"function\") return false;\n\tconst candidate = value;\n\tif (!candidate.prototype || typeof candidate.prototype !== \"object\") return false;\n\treturn candidate.prototype instanceof CollectionBase;\n}\n//#endregion\n//#region src/prepared-row-query.ts\nasync function prepareQuery(runtime, declaration, callback) {\n\tlet description;\n\tconst statement = await runtime.prepare(declaration, (params) => {\n\t\tconst authored = callback(params);\n\t\tif (\"plan\" in authored) {\n\t\t\tdescription = authored;\n\t\t\treturn authored.plan;\n\t\t}\n\t\treturn authored;\n\t});\n\treturn blindCast(description ? createPreparedRowQuery(description, statement) : statement);\n}\nfunction createPreparedRowQuery(description, statement) {\n\treturn Object.freeze({ query(target, params, options) {\n\t\treturn description.consume(statement.query(target, params, options));\n\t} });\n}\n//#endregion\nexport { Collection, GroupedCollection, all, and, createCollectionTables, createModelAccessor, createPreparedRowQuery, emptyState, not, or, orderByField, orm, prepareQuery };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orm-client.mjs","names":["#aliases","#clone","#describeAggregate","executeStatement","#result","#nodes","#ids","#inputs","#readers","#sumOfCounts","#installAggregateReducers","#includeScalarReducer","#assertIncludeRefinementMode","#callbackTools","#cloneSelf","#cloneWithRow","#createCollection","#lock","#withAnnotationsFromMeta","#dispatch","#descriptionOptions","#forFirst","#collectAnnotationsFromMeta","#reloadMutationRowByIdentity","#createAllWithAnnotations","#resolveConflictSkip","#resolveMtiCreateContext","#descriptionWithoutIncludes","#variantCreateRows","#createValues","#mapCreateRows","#assertConflictSkipNotOnMtiVariant","#assertNotMtiVariant","#refuseOnMtiVariant","#variantModelName","#updateValues","#reloadMutationRowByCriterion","#createSelf"],"sources":["../../../../3-extensions/sql-orm-client/dist/index.mjs"],"sourcesContent":["import { AsyncIterableResult, createMetaBuilder, isRuntimeError, runtimeError } from \"@internal/framework-components/runtime\";\nimport { AggregateExpr, AndExpr, BinaryExpr, CodecJsonValueProjection, ColumnRef, DefaultValueExpr, DeleteAst, DerivedTableSource, EqColJoinOn, ExistsExpr, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectExpr, ListExpression, LiteralExpr, LockingClause, NativeJsonValueProjection, NotExpr, NullCheckExpr, OrExpr, OrderByItem, ParamRef, ProjectionItem, SelectAst, SubqueryExpr, TableSource, UpdateAst, WindowFuncExpr, checkLimitOffset, collectOrderedParamRefs, isAggregateFn, isOrderByDirection, isOrderByNulls, isWhereExpr, lockIncompatible, lockOptionCapabilities, lockStrengthCapabilities, lockWaitPolicyOf, missingCapability } from \"@internal/sql-relational-core/ast\";\nimport { ExpressionImpl, isExpression, toExpr } from \"@internal/sql-relational-core/expression\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError, isInternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { resolveStorageTable } from \"@internal/sql-contract/resolve-storage-table\";\nimport { codecRefForStorageColumn } from \"@internal/sql-relational-core/codec-descriptor-registry\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { createIndexReferences } from \"@internal/sql-relational-core/index-reference\";\nimport { createFunctions } from \"@internal/sql-relational-core/functions\";\nimport { isUniqueConstraintViolation } from \"@internal/sql-errors\";\nimport { settlementOf } from \"@internal/sql-runtime/internal/prepared-query\";\nimport { domainModelsAtDefaultNamespace } from \"@internal/contract/types\";\n//#region src/aggregate-operations.ts\nconst operationNamesByRegistry = /* @__PURE__ */ new WeakMap();\n/**\n* The operation vocabulary the composed registry contributes, in contribution\n* order — the runtime mirror of the contract's emitted aggregate map, both\n* settled from the same contributed descriptors. Cached per registry: the set\n* is fixed at composition time, and every collection construction reads it.\n*/\nfunction aggregateOperationNames(registry) {\n\tconst cached = operationNamesByRegistry.get(registry);\n\tif (cached !== void 0) return cached;\n\tconst names = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const { operation } of registry.values()) {\n\t\tif (seen.has(operation)) continue;\n\t\tseen.add(operation);\n\t\tnames.push(operation);\n\t}\n\toperationNamesByRegistry.set(registry, names);\n\treturn names;\n}\n//#endregion\n//#region src/contract-cache.ts\nconst contractCache = /* @__PURE__ */ new WeakMap();\n/** Builds a value derived from `contract` once per contract and key. Every key starts with a name that only one function uses, and that function stores its own result type under it. */\nfunction cachedFor(contract, key, build) {\n\tlet perContract = contractCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tcontractCache.set(contract, perContract);\n\t}\n\tconst cacheKey = JSON.stringify(key);\n\tif (perContract.has(cacheKey)) return blindCast(perContract.get(cacheKey));\n\tconst built = build();\n\tperContract.set(cacheKey, built);\n\treturn built;\n}\n//#endregion\n//#region src/orm-errors.ts\nfunction ormError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/storage-resolution.ts\nfunction resolveTableForContract(contract, namespaceId, tableName) {\n\treturn resolveStorageTable(contract.storage, tableName, namespaceId);\n}\nfunction requireStorageTableForContract(contract, namespaceId, tableName) {\n\tconst resolved = resolveTableForContract(contract, namespaceId, tableName);\n\tif (resolved === void 0) throw ormError(\"ORM.TABLE_UNKNOWN\", `Unknown table \"${tableName}\"`, { meta: {\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\treturn resolved;\n}\nfunction storageTableForContract(contract, namespaceId, tableName) {\n\treturn requireStorageTableForContract(contract, namespaceId, tableName).table;\n}\nfunction domainModelNamesInNamespace(contract, namespaceId) {\n\tconst namespace = contract.domain.namespaces[namespaceId];\n\treturn namespace ? Object.keys(namespace.models) : [];\n}\nfunction domainModelTableInNamespace(contract, namespaceId, modelName) {\n\tconst table = (contract.domain.namespaces[namespaceId]?.models[modelName])?.storage[\"table\"];\n\treturn typeof table === \"string\" ? table : void 0;\n}\nfunction tableSourceForContract(contract, namespaceId, tableName, alias) {\n\tconst resolved = requireStorageTableForContract(contract, namespaceId, tableName);\n\tconst effectiveAlias = alias !== void 0 && alias !== tableName ? alias : void 0;\n\treturn TableSource.named(tableName, effectiveAlias, resolved.namespaceId);\n}\n//#endregion\n//#region src/collection-contract.ts\nconst POLYMORPHIC_DISCRIMINATOR_ALIAS = \"__prisma_polymorphic_discriminator\";\nfunction modelsOf(contract, namespaceId) {\n\tconst namespace = contract.domain.namespaces[namespaceId];\n\tif (namespace === void 0) throw new InternalError(`domain namespace \"${namespaceId}\" is not present on the contract`);\n\treturn blindCast(namespace.models);\n}\nfunction metadataCacheKey(namespaceId, modelName) {\n\treturn JSON.stringify([namespaceId, modelName]);\n}\nfunction modelOf(contract, namespaceId, name) {\n\tconst model = contract.domain.namespaces[namespaceId]?.models[name];\n\treturn model === void 0 ? void 0 : blindCast(model);\n}\nconst polymorphismCache = /* @__PURE__ */ new WeakMap();\nfunction resolvePolymorphismInfo(contract, namespaceId, modelName) {\n\tlet perContract = polymorphismCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tpolymorphismCache.set(contract, perContract);\n\t}\n\tconst cacheKey = metadataCacheKey(namespaceId, modelName);\n\tif (perContract.has(cacheKey)) return perContract.get(cacheKey);\n\tconst model = modelsOf(contract, namespaceId)[modelName];\n\tif (!model?.discriminator || !model.variants) {\n\t\tperContract.set(cacheKey, void 0);\n\t\treturn;\n\t}\n\tconst baseTable = model.storage?.table;\n\tif (!baseTable) {\n\t\tperContract.set(cacheKey, void 0);\n\t\treturn;\n\t}\n\tconst discriminatorField = model.discriminator.field;\n\tconst discriminatorColumn = columnOfContractField(contract, namespaceId, modelName, discriminatorField);\n\tconst variants = /* @__PURE__ */ new Map();\n\tconst mtiVariants = [];\n\tfor (const [value, variantRef] of Object.entries(model.variants)) {\n\t\tconst variantModelName = variantRef.model;\n\t\tconst variantModel = modelOf(contract, variantRef.namespace, variantModelName);\n\t\tif (!variantModel) throw new InternalError(`Model \"${modelName}\" declares variant \"${variantModelName}\", but that model is missing from the contract`);\n\t\tconst variantTable = variantModel.storage?.table ?? baseTable;\n\t\tconst strategy = variantRef.namespace === namespaceId && variantTable === baseTable ? \"sti\" : \"mti\";\n\t\tconst info = {\n\t\t\tmodelName: variantModelName,\n\t\t\tnamespaceId: variantRef.namespace,\n\t\t\tvalue,\n\t\t\ttable: variantTable,\n\t\t\tstrategy\n\t\t};\n\t\tvariants.set(value, info);\n\t\tif (strategy === \"mti\") mtiVariants.push(info);\n\t}\n\tconst result = {\n\t\tdiscriminatorField,\n\t\tdiscriminatorColumn,\n\t\tbaseTable,\n\t\tvariants,\n\t\tmtiVariants\n\t};\n\tperContract.set(cacheKey, result);\n\treturn result;\n}\n/** The column each of the model's own fields maps, keyed by field name. */\nfunction getOwnFieldColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"ownFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst storageFields = modelsOf(contract, namespaceId)[modelName]?.storage?.fields ?? {};\n\t\tconst columns = {};\n\t\tfor (const [field, storage] of Object.entries(storageFields)) if (storage?.column) columns[field] = storage.column;\n\t\treturn columns;\n\t});\n}\n/**\n* A model's fields, keyed by field name, with the table and column each maps: its own fields on its own table, and the fields it inherits from its base model on the base model's table. This is the one list of a model's fields; a column no field maps has no entry.\n*/\nfunction getModelFields(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelFields\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst model = modelOf(contract, namespaceId, modelName);\n\t\tconst table = model?.storage?.table;\n\t\tconst own = table === void 0 ? {} : Object.fromEntries(Object.entries(getOwnFieldColumns(contract, namespaceId, modelName)).map(([field, column]) => [field, {\n\t\t\tnamespaceId,\n\t\t\ttable,\n\t\t\tcolumn\n\t\t}]));\n\t\tconst base = model?.base;\n\t\treturn {\n\t\t\t...base === void 0 ? {} : getModelFields(contract, base.namespace, base.model),\n\t\t\t...own\n\t\t};\n\t});\n}\n/** The column each of a model's own and inherited fields maps, keyed by field name. */\nfunction getModelFieldColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => Object.fromEntries(Object.entries(getModelFields(contract, namespaceId, modelName)).map(([field, { column }]) => [field, column])));\n}\n/**\n* The column each field of the model and of the variant `variantValue` maps, keyed by field name. Without a variant, the model's fields alone.\n*\n* A surface accepts a variant's field only when it can place that field's column on the variant's table. A collection narrowed to a variant reads that variant's table, so `select`, the `where` and `orderBy` accessor and a variant create accept the narrowed variant's fields. A collection that is not narrowed reads the base table only, so only `select`, whose polymorphic projection joins each variant's table, accepts variant fields there (`getModelAndEveryVariantFieldColumns`).\n*/\nfunction getModelAndVariantFieldColumns(contract, namespaceId, modelName, variantValue) {\n\treturn cachedFor(contract, [\n\t\t\"modelAndVariantFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName,\n\t\tvariantValue ?? null\n\t], () => ({\n\t\t...variantValue === void 0 ? {} : getOwnFieldColumns(contract, ...addressedModel(contract, namespaceId, modelName, variantValue)),\n\t\t...getModelFieldColumns(contract, namespaceId, modelName)\n\t}));\n}\n/**\n* Every column each field of the model and of every one of its variants maps, keyed by field name. Two variants may map one field name to different columns, so a name can map several columns.\n*/\nfunction getModelAndEveryVariantFieldColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelAndEveryVariantFieldColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst columns = {};\n\t\tconst add = (fieldColumns) => {\n\t\t\tfor (const [field, column] of Object.entries(fieldColumns)) {\n\t\t\t\tconst existing = columns[field] ?? [];\n\t\t\t\tif (!existing.includes(column)) existing.push(column);\n\t\t\t\tcolumns[field] = existing;\n\t\t\t}\n\t\t};\n\t\tadd(getModelFieldColumns(contract, namespaceId, modelName));\n\t\tconst modelFields = new Set(Object.keys(columns));\n\t\tfor (const variant of resolvePolymorphismInfo(contract, namespaceId, modelName)?.variants.values() ?? []) add(Object.fromEntries(Object.entries(getOwnFieldColumns(contract, variant.namespaceId, variant.modelName)).filter(([field]) => !modelFields.has(field))));\n\t\treturn columns;\n\t});\n}\n/** The field each column of the model's own fields maps, keyed by column. */\nfunction getOwnColumnFields(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"ownColumnFields\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => invert(getOwnFieldColumns(contract, namespaceId, modelName)));\n}\n/** The field each column of the model's own and inherited fields maps, keyed by column. */\nfunction getModelColumnFields(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"modelColumnFields\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => invert(getModelFieldColumns(contract, namespaceId, modelName)));\n}\nfunction invert(map) {\n\treturn Object.fromEntries(Object.entries(map).map(([key, value]) => [value, key]));\n}\n/**\n* The column a name a caller passed maps in `fieldColumns`. A name that is not a field is refused with `ORM.FIELD_UNKNOWN`, so no caller reaches a column by its column name, including a column no field maps.\n*/\nfunction columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName) {\n\tconst column = Object.hasOwn(fieldColumns, fieldName) ? fieldColumns[fieldName] : void 0;\n\tif (column === void 0) throw callerFieldUnknown(contract, namespaceId, fieldColumns, modelName, fieldName);\n\treturn column;\n}\n/**\n* The refusal of a name a caller passed that is not a field of the model it addressed. When the name is the column of one of the fields in `fieldColumns`, or a column that no field maps on a table of the model's hierarchy, the message says so and names the table.\n*/\nfunction callerFieldUnknown(contract, namespaceId, fieldColumns, modelName, fieldName) {\n\tconst unknown = `Model \"${modelName}\" has no field \"${fieldName}\"`;\n\tconst fieldForColumn = Object.entries(fieldColumns).find(([, columns]) => typeof columns === \"string\" ? columns === fieldName : columns.includes(fieldName))?.[0];\n\tif (fieldForColumn !== void 0) return ormError(\"ORM.FIELD_UNKNOWN\", `${unknown}. \"${fieldName}\" is the column of field \"${fieldForColumn}\"; pass the field name.`, { meta: {\n\t\tmodel: modelName,\n\t\tfield: fieldName,\n\t\tfieldForColumn\n\t} });\n\tconst unmapped = getUnmappedColumns(contract, namespaceId, modelName).find(({ column }) => column === fieldName);\n\treturn ormError(\"ORM.FIELD_UNKNOWN\", `${unknown}${unmapped === void 0 ? \"\" : `. Table \"${unmapped.table}\" has a column \"${fieldName}\" that no field maps, so the ORM cannot read or write it.`}`, { meta: {\n\t\tmodel: modelName,\n\t\tfield: fieldName\n\t} });\n}\n/** The columns of the tables of a model's hierarchy that no field of the hierarchy maps. */\nfunction getUnmappedColumns(contract, namespaceId, modelName) {\n\treturn cachedFor(contract, [\n\t\t\"unmappedColumns\",\n\t\tnamespaceId,\n\t\tmodelName\n\t], () => {\n\t\tconst root = hierarchyRoot(contract, namespaceId, modelName);\n\t\tconst rootTable = domainModelTableInNamespace(contract, root.namespaceId, root.modelName);\n\t\tif (rootTable === void 0) return [];\n\t\tconst polymorphism = resolvePolymorphismInfo(contract, root.namespaceId, root.modelName);\n\t\treturn [{\n\t\t\t...root,\n\t\t\ttable: rootTable\n\t\t}, ...polymorphism?.mtiVariants ?? []].flatMap((model) => {\n\t\t\tconst read = new Set(getColumnsReadOnTable(contract, model.namespaceId, model.modelName, model.table));\n\t\t\treturn getAllTableColumns(contract, model.namespaceId, model.table).filter((column) => !read.has(column)).map((column) => ({\n\t\t\t\ttable: model.table,\n\t\t\t\tcolumn\n\t\t\t}));\n\t\t});\n\t});\n}\nfunction hierarchyRoot(contract, namespaceId, modelName) {\n\tconst base = modelOf(contract, namespaceId, modelName)?.base;\n\treturn base === void 0 ? {\n\t\tnamespaceId,\n\t\tmodelName\n\t} : hierarchyRoot(contract, base.namespace, base.model);\n}\n/**\n* The column a field name the contract itself gives maps among the model's own and inherited fields, such as a relation's join field or a discriminator. The contract was validated, so a name that is not a field is an internal error.\n*/\nfunction columnOfContractField(contract, namespaceId, modelName, fieldName) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst column = Object.hasOwn(fieldColumns, fieldName) ? fieldColumns[fieldName] : void 0;\n\tif (column === void 0) throw new InternalError(`Model \"${modelName}\" has no field \"${fieldName}\" the contract names`);\n\treturn column;\n}\n/**\n* The field that maps `column` in `columnFields`. The ORM only asks this for a column it chose itself, such as a key column or a column it projected, so a column no field maps is an internal error.\n*/\nfunction fieldOfColumn(columnFields, modelName, column) {\n\tconst field = Object.hasOwn(columnFields, column) ? columnFields[column] : void 0;\n\tif (field === void 0) throw new InternalError(`Column \"${column}\" of model \"${modelName}\" is mapped by no field`);\n\treturn field;\n}\n/**\n* The columns a relation's target fields name. A relation through a junction table names the junction's columns there, not fields of the target model.\n*/\nfunction resolveRelationTargetColumns(contract, relation) {\n\tif (relation.through !== void 0) return [...relation.on.targetFields];\n\treturn relation.on.targetFields.map((field) => columnOfContractField(contract, relation.toNamespace, relation.to, field));\n}\n/**\n* The fields a multi-table variant declares, with the table and column each maps, which is the variant's own table the read path joins. A single-table variant's columns are on the base table, and inherited fields are on the base model's table, so neither appears here.\n*/\nfunction resolveVariantFieldColumns(contract, namespaceId, baseModelName, variantValue) {\n\tconst variant = resolvePolymorphismInfo(contract, namespaceId, baseModelName)?.variants.get(variantValue);\n\tif (variant?.strategy !== \"mti\") return {};\n\treturn Object.fromEntries(Object.entries(getModelFields(contract, variant.namespaceId, variant.modelName)).filter(([, field]) => field.namespaceId === variant.namespaceId && field.table === variant.table));\n}\n/** Every column of a table, in table order. */\nfunction getAllTableColumns(contract, namespaceId, tableName) {\n\ttry {\n\t\treturn Object.keys(storageTableForContract(contract, namespaceId, tableName).columns);\n\t} catch (error) {\n\t\tif (error instanceof Error && error.message.includes(\"ambiguous\")) throw error;\n\t\tthrow ormError(\"ORM.TABLE_UNKNOWN\", `Unknown table \"${tableName}\" in SQL ORM query planner`, { meta: {\n\t\t\tnamespaceId,\n\t\t\ttableName\n\t\t} });\n\t}\n}\nfunction isMultiTableVariantTable(contract, namespaceId, modelName, tableNamespaceId, tableName) {\n\tconst base = modelOf(contract, namespaceId, modelName)?.base;\n\treturn base !== void 0 && namespaceId === tableNamespaceId && domainModelTableInNamespace(contract, namespaceId, modelName) === tableName && (base.namespace !== tableNamespaceId || domainModelTableInNamespace(contract, base.namespace, base.model) !== tableName);\n}\n/**\n* The columns of `tableName` a query on `modelName` reads, in table order: the columns on that table of the model's own and inherited fields and of its variants' fields, and, on a multi-table variant's table, the key the variant inherits. Any other column of the table is storage the model does not map, and the ORM never reads it into a row.\n*/\nfunction getColumnsReadOnTable(contract, namespaceId, modelName, tableName, tableNamespaceId = namespaceId) {\n\treturn cachedFor(contract, [\n\t\t\"columnsReadOnTable\",\n\t\tnamespaceId,\n\t\tmodelName,\n\t\ttableNamespaceId,\n\t\ttableName\n\t], () => {\n\t\tconst read = /* @__PURE__ */ new Set();\n\t\tconst addFieldsOnTable = (modelNamespaceId, name) => {\n\t\t\tfor (const field of Object.values(getModelFields(contract, modelNamespaceId, name))) if (field.namespaceId === tableNamespaceId && field.table === tableName) read.add(field.column);\n\t\t};\n\t\tconst addInheritedKey = () => {\n\t\t\tfor (const column of resolvePrimaryKeyColumns(contract, tableNamespaceId, tableName)) read.add(column);\n\t\t};\n\t\taddFieldsOnTable(namespaceId, modelName);\n\t\tif (isMultiTableVariantTable(contract, namespaceId, modelName, tableNamespaceId, tableName)) addInheritedKey();\n\t\tconst variants = resolvePolymorphismInfo(contract, namespaceId, modelName)?.variants.values();\n\t\tfor (const variant of variants ?? []) {\n\t\t\tif (variant.namespaceId !== tableNamespaceId || variant.table !== tableName) continue;\n\t\t\taddFieldsOnTable(variant.namespaceId, variant.modelName);\n\t\t\tif (variant.strategy === \"mti\") addInheritedKey();\n\t\t}\n\t\treturn getAllTableColumns(contract, tableNamespaceId, tableName).filter((column) => read.has(column));\n\t});\n}\n/** The namespace and name of the model a query or write addresses: the variant it is narrowed to, otherwise the collection's model. */\nfunction addressedModel(contract, namespaceId, modelName, variantValue) {\n\tconst variant = variantValue === void 0 ? void 0 : resolvePolymorphismInfo(contract, namespaceId, modelName)?.variants.get(variantValue);\n\treturn variant === void 0 ? [namespaceId, modelName] : [variant.namespaceId, variant.modelName];\n}\nfunction resolveIncludeRelation(contract, namespaceId, baseModelName, relationName, variantValue) {\n\tconst polymorphism = resolvePolymorphismInfo(contract, namespaceId, baseModelName);\n\tconst variant = variantValue === void 0 ? void 0 : polymorphism?.variants.get(variantValue);\n\tlet declaringNamespaceId = namespaceId;\n\tlet declaringModelName = baseModelName;\n\tlet localVariantValue;\n\tlet relation;\n\tif (variant !== void 0) {\n\t\tconst variantRelations = resolveModelRelations(contract, variant.namespaceId, variant.modelName);\n\t\tconst candidate = Object.hasOwn(variantRelations, relationName) ? variantRelations[relationName] : void 0;\n\t\tif (candidate !== void 0) {\n\t\t\trelation = candidate;\n\t\t\tdeclaringNamespaceId = variant.namespaceId;\n\t\t\tdeclaringModelName = variant.modelName;\n\t\t\tlocalVariantValue = variant.strategy === \"mti\" ? variant.value : void 0;\n\t\t}\n\t}\n\tconst baseRelations = resolveModelRelations(contract, namespaceId, baseModelName);\n\trelation ??= Object.hasOwn(baseRelations, relationName) ? baseRelations[relationName] : void 0;\n\tif (!relation) throw ormError(\"ORM.RELATION_UNKNOWN\", `Relation '${relationName}' not found on model '${baseModelName}'`, { meta: {\n\t\tmodel: baseModelName,\n\t\trelation: relationName\n\t} });\n\tconst { localFields, targetFields } = relation.on;\n\tif (localFields.length === 0 || localFields.length !== targetFields.length) throw new InternalError(`Relation '${relationName}' on model '${declaringModelName}' has incomplete join metadata: ${localFields.length} local field(s), ${targetFields.length} target field(s)`);\n\tconst localColumns = localFields.map((field) => columnOfContractField(contract, declaringNamespaceId, declaringModelName, field));\n\tconst targetColumns = resolveRelationTargetColumns(contract, relation);\n\tconst relatedTableName = resolveModelTableName(contract, relation.toNamespace, relation.to);\n\tlet through;\n\tif (relation.through !== void 0) through = {\n\t\ttable: relation.through.table,\n\t\tnamespaceId: relation.through.namespaceId,\n\t\tparentColumns: relation.through.parentColumns,\n\t\tchildColumns: relation.through.childColumns,\n\t\ttargetColumns: relation.through.targetColumns,\n\t\tparentLocalColumns: localColumns\n\t};\n\treturn {\n\t\trelatedModelName: relation.to,\n\t\trelatedNamespaceId: relation.toNamespace,\n\t\trelatedTableName,\n\t\t...ifDefined(\"localVariantValue\", localVariantValue),\n\t\ttargetColumns,\n\t\tlocalColumns,\n\t\tcardinality: relation.cardinality,\n\t\t...ifDefined(\"through\", through)\n\t};\n}\nfunction resolveThrough(contract, through) {\n\tif (!through) return void 0;\n\tconst { table, namespaceId, parentColumns, childColumns, targetColumns } = through;\n\tconst junctionTable = contract.storage.namespaces[namespaceId]?.entries.table?.[table];\n\tif (!junctionTable) return void 0;\n\tconst fkColumnSet = /* @__PURE__ */ new Set([...parentColumns, ...childColumns]);\n\tconst requiredPayloadColumns = [];\n\tfor (const [colName, col] of Object.entries(junctionTable.columns)) if (!fkColumnSet.has(colName) && !col.nullable && col.default === void 0 && !hasExecutionCreateDefault(contract, namespaceId, table, colName)) requiredPayloadColumns.push(colName);\n\treturn {\n\t\ttable,\n\t\tnamespaceId,\n\t\tparentColumns,\n\t\tchildColumns,\n\t\ttargetColumns,\n\t\trequiredPayloadColumns\n\t};\n}\nfunction hasExecutionCreateDefault(contract, namespace, table, column) {\n\treturn contract.execution?.mutations.defaults.some((mutationDefault) => mutationDefault.ref.namespace === namespace && mutationDefault.ref.entry === table && mutationDefault.ref.field === column && mutationDefault.onCreate !== void 0) ?? false;\n}\nconst modelRelationsCache = /* @__PURE__ */ new WeakMap();\nfunction resolveModelRelations(contract, namespaceId, modelName) {\n\tlet perContract = modelRelationsCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tmodelRelationsCache.set(contract, perContract);\n\t}\n\tconst cacheKey = metadataCacheKey(namespaceId, modelName);\n\tconst cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst relationMap = modelsOf(contract, namespaceId)[modelName]?.relations ?? {};\n\tconst resolved = {};\n\tfor (const [name, value] of Object.entries(relationMap)) {\n\t\tif (!value || typeof value !== \"object\") continue;\n\t\tconst rel = blindCast(value);\n\t\tconst localFields = rel.on?.localFields;\n\t\tconst targetFields = rel.on?.targetFields;\n\t\tif (!rel.to || typeof rel.to !== \"object\" || typeof rel.to.model !== \"string\" || !Array.isArray(localFields) || !Array.isArray(targetFields)) continue;\n\t\tconst through = resolveThrough(contract, rel.through);\n\t\tresolved[name] = {\n\t\t\tto: rel.to.model,\n\t\t\ttoNamespace: rel.to.namespace,\n\t\t\tcardinality: parseRelationCardinality(rel.cardinality),\n\t\t\ton: {\n\t\t\t\tlocalFields: blindCast(localFields),\n\t\t\t\ttargetFields: blindCast(targetFields)\n\t\t\t},\n\t\t\t...through !== void 0 ? { through } : {}\n\t\t};\n\t}\n\tperContract.set(cacheKey, resolved);\n\treturn resolved;\n}\nfunction parseRelationCardinality(value) {\n\tif (value === \"1:1\" || value === \"N:1\" || value === \"1:N\" || value === \"N:M\") return value;\n}\nfunction resolveUpsertConflictColumns(contract, namespaceId, modelName, conflictOn) {\n\tif (conflictOn && typeof conflictOn === \"object\") {\n\t\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\t\tconst columns = Object.keys(conflictOn).map((fieldName) => columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName));\n\t\tif (columns.length > 0) return columns;\n\t}\n\treturn [...storageTableForContract(contract, namespaceId, resolveModelTableName(contract, namespaceId, modelName)).primaryKey?.columns ?? []];\n}\nfunction resolveModelTableName(contract, namespaceId, modelName) {\n\tconst table = domainModelTableInNamespace(contract, namespaceId, modelName);\n\tif (table === void 0) throw new InternalError(`Model \"${modelName}\" has invalid or missing storage.table in namespace \"${namespaceId}\"`);\n\treturn table;\n}\nfunction resolvePrimaryKeyColumns(contract, namespaceId, tableName) {\n\tconst columns = resolveTableForContract(contract, namespaceId, tableName)?.table.primaryKey?.columns ?? [];\n\tif (columns.length === 0) throw new InternalError(`Table \"${tableName}\" in namespace \"${namespaceId}\" has no primary key to join its multi-table variants on`);\n\treturn columns;\n}\nfunction resolveRowIdentityColumns(contract, namespaceId, tableName) {\n\tlet table;\n\ttry {\n\t\ttable = storageTableForContract(contract, namespaceId, tableName);\n\t} catch (error) {\n\t\tif (error instanceof Error && error.message.includes(\"ambiguous\")) throw error;\n\t\treturn [];\n\t}\n\tif (table.primaryKey && table.primaryKey.columns.length > 0) return table.primaryKey.columns;\n\tfor (const unique of table.uniques) if (unique.columns.length > 0) return unique.columns;\n\treturn [];\n}\nfunction resolveUniqueKeyColumnSets(contract, namespaceId, tableName) {\n\tconst table = storageTableForContract(contract, namespaceId, tableName);\n\treturn [table.primaryKey?.columns ?? [], ...table.uniques.map((unique) => unique.columns)].filter((columns) => columns.length > 0);\n}\nfunction hasCompleteUniqueKey(contract, namespaceId, modelName, criterion) {\n\tif (typeof criterion !== \"object\" || criterion === null || Array.isArray(criterion)) return false;\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst fields = getModelFields(contract, namespaceId, modelName);\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst columnsWithValue = /* @__PURE__ */ new Set();\n\tfor (const [fieldName, value] of Object.entries(criterion)) {\n\t\tif (value === void 0) continue;\n\t\tconst column = columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName);\n\t\tconst field = fields[fieldName];\n\t\tif (value !== null && !isExpression(value) && field?.namespaceId === namespaceId && field.table === tableName) columnsWithValue.add(column);\n\t}\n\treturn resolveUniqueKeyColumnSets(contract, namespaceId, tableName).some((columns) => columns.every((column) => columnsWithValue.has(column)));\n}\nfunction assertReturningCapability(contract, action) {\n\tif (hasContractCapability(contract, \"returning\")) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${action} requires contract capability \"returning\"`, { meta: {\n\t\tcapability: \"returning\",\n\t\taction\n\t} });\n}\nfunction assertInsertConflictSkipCapability(contract, action, targeted) {\n\trequireCapability(contract, action, \"insertOnConflictSkip\");\n\tif (!targeted) requireCapability(contract, action, \"insertOnConflictWithoutTarget\");\n}\nfunction requireCapability(contract, action, capability) {\n\tif (hasContractCapability(contract, capability)) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${action} requires contract capability \"${capability}\". Re-emit the contract against an adapter that reports it.`, { meta: {\n\t\tcapability,\n\t\taction\n\t} });\n}\nfunction resolveInsertConflictColumns(contract, namespaceId, modelName, conflictOn) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\treturn conflictOn.map((fieldName) => columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName));\n}\nfunction assertDistinctOnCapability(contract, methodName) {\n\tif (contract.capabilities[\"postgres\"]?.[\"distinctOn\"] === true) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${methodName}() requires capability postgres.distinctOn`, { meta: {\n\t\tcapability: \"postgres.distinctOn\",\n\t\tmethod: methodName\n\t} });\n}\nfunction assertLockCapability(contract, requirement, methodName) {\n\tconst capability = missingCapability(contract.capabilities, requirement);\n\tif (capability === void 0) return;\n\tthrow ormError(\"ORM.CAPABILITY_MISSING\", `${methodName}() requires capability ${capability}`, { meta: {\n\t\tcapability,\n\t\tmethod: methodName\n\t} });\n}\nfunction hasContractCapability(contract, capability) {\n\tconst capabilities = contract.capabilities;\n\tconst value = capabilities[capability];\n\tif (capabilityEnabled(value)) return true;\n\treturn Object.values(capabilities).some((targetCapabilities) => {\n\t\tif (typeof targetCapabilities !== \"object\" || targetCapabilities === null) return false;\n\t\treturn capabilityEnabled(targetCapabilities[capability]);\n\t});\n}\nfunction capabilityEnabled(value) {\n\tif (value === true) return true;\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn Object.values(blindCast(value)).some((flag) => flag === true);\n}\nfunction isToOneCardinality(cardinality) {\n\treturn cardinality === \"1:1\" || cardinality === \"N:1\";\n}\n//#endregion\n//#region src/aggregate-builder.ts\n/**\n* The aggregate selector methods, one per operation the registry contributes —\n* the runtime mirror of the contract's emitted aggregate map, which is what\n* types the surface as {@link AggregateBuilder}. Each method builds a selector\n* carrying the operation's name and, for a field-taking call, the field's\n* storage column; what a selector resolves to is the plan compiler's question\n* to the same registry.\n*/\nfunction createAggregateBuilder(contract, aggregates, namespaceId, modelName) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst builder = {};\n\tfor (const operation of aggregateOperationNames(aggregates)) builder[operation] = (field) => {\n\t\tconst column = field === void 0 ? void 0 : columnOfCallerField(contract, namespaceId, fieldColumns, modelName, field);\n\t\treturn {\n\t\t\tkind: \"aggregate\",\n\t\t\tfn: operation,\n\t\t\t...ifDefined(\"column\", column)\n\t\t};\n\t};\n\treturn blindCast(builder);\n}\nfunction isAggregateSelector(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst candidate = value;\n\treturn candidate.kind === \"aggregate\" && typeof candidate.fn === \"string\";\n}\n//#endregion\n//#region src/aggregate-codecs.ts\n/**\n* What an aggregate resolves to: the codec its result carries, and the expression the target wants built for it.\n*\n* An aggregate over a column resolves against that column's own codec, so a target that widens `sum` over small integers and preserves it over decimals answers differently per column without the caller knowing either rule. Where a target also needs the result rendered a particular way — a value its driver cannot otherwise carry — the descriptor's lowering says so, and the codec it declared stays the codec regardless.\n*\n* A pair the composed stack declares no overload for is rejected before any SQL is built: an undeclared aggregate has no result identity to project or decode, and executing it anyway would hand back the driver-native value the declared-codec path exists to replace.\n*/\nfunction resolveAggregate(query) {\n\tconst input = inputCodecRef(query);\n\tconst resolved = query.aggregates.resolve(query.fn, input);\n\tif (resolved === void 0) throw unsupportedAggregate(query, input);\n\tconst nullability = resolved.nullable ? { nullable: true } : {\n\t\tnullable: false,\n\t\temptyResultJson: resolved.emptyResultJson\n\t};\n\treturn {\n\t\tcodec: resolved.output,\n\t\t...nullability,\n\t\tinput,\n\t\tlower: resolved.lower\n\t};\n}\n/**\n* The plain SQL form of an operation in the closed aggregate alphabet.\n* Registry composition guarantees every operation outside the alphabet\n* carries a lowering hook, so a resolution without one for any other name is\n* a composition bug, not a user error.\n*/\nfunction plainAggregateExpr(fn, expr) {\n\tif (!isAggregateFn(fn)) throw new InternalError(`aggregate operation '${fn}' is outside the SQL aggregate alphabet and resolved without a lowering hook`);\n\treturn new AggregateExpr(fn, expr);\n}\nfunction unsupportedAggregate(query, input) {\n\treturn ormError(\"ORM.AGGREGATE_UNSUPPORTED\", input === void 0 ? `The composed target declares no '${query.fn}' aggregate for a call without an input.` : `The composed target declares no '${query.fn}' aggregate over codec '${input.codecId}' (column '${query.column}' of table '${query.tableName}').`, {\n\t\twhy: \"An aggregate result decodes through the codec its target declares; an undeclared pair has no declared result to type or decode.\",\n\t\tfix: `Aggregate a column the target declares '${query.fn}' for, or contribute an aggregate descriptor for this pair.`,\n\t\tmeta: {\n\t\t\toperation: query.fn,\n\t\t\ttable: query.tableName,\n\t\t\t...ifDefined(\"column\", query.column),\n\t\t\t...ifDefined(\"inputCodecId\", input?.codecId)\n\t\t}\n\t});\n}\n/** The codec of the value being aggregated — the column's own, or none where the aggregate is over rows. */\nfunction inputCodecRef(query) {\n\treturn query.column === void 0 ? void 0 : codecRefForStorageColumn(query.contract.storage, query.namespaceId, query.tableName, query.column);\n}\n//#endregion\n//#region src/aggregate-empty-result.ts\n/**\n* What an aggregate reads as when there is no row to read at all.\n*\n* SQL answers an empty input set itself — a nullable-declared aggregate\n* collapses to NULL, a non-nullable one to a value SQL still produces, a\n* count's zero cardinality — so this covers only the degenerate case of a\n* result set with no row: an absent aggregate alias, or an include whose\n* envelope never arrived. The answer reads off the operation's declared row:\n* NULL where the row is nullable, else the value the row declares, decoded\n* through the codec it declared beside it — so the application sees the same\n* value shape a real row would produce, in whichever form that codec's\n* canonical JSON takes.\n*/\nfunction emptyAggregateResult(result, codec) {\n\treturn result.nullable ? null : codec.decodeJson(result.emptyResultJson);\n}\n//#endregion\n//#region src/collection-column-mapping.ts\n/** The columns of a model's own and inherited fields, for operations that apply each column to the model's table: `groupBy`, `distinct` and `distinctOn`. */\nfunction mapFieldsToColumns(contract, namespaceId, modelName, fieldNames) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\treturn fieldNames.map((fieldName) => columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName));\n}\n/** The columns a `select` names: the narrowed variant's fields too, or, when the collection is not narrowed, every variant's fields, each name reading every column a variant maps it to. See `getModelAndVariantFieldColumns` for why `select` accepts more than other surfaces. */\nfunction mapSelectedFieldsToColumns(contract, namespaceId, modelName, variantValue, fieldNames) {\n\tconst [addressedNamespaceId, addressed] = addressedModel(contract, namespaceId, modelName, variantValue);\n\tif (variantValue !== void 0) {\n\t\tconst fieldColumns = getModelAndVariantFieldColumns(contract, namespaceId, modelName, variantValue);\n\t\treturn fieldNames.map((fieldName) => columnOfCallerField(contract, addressedNamespaceId, fieldColumns, addressed, fieldName));\n\t}\n\tconst fieldColumns = getModelAndEveryVariantFieldColumns(contract, namespaceId, modelName);\n\treturn fieldNames.flatMap((fieldName) => {\n\t\tconst columns = Object.hasOwn(fieldColumns, fieldName) ? fieldColumns[fieldName] : void 0;\n\t\tif (columns === void 0) throw callerFieldUnknown(contract, namespaceId, fieldColumns, addressed, fieldName);\n\t\treturn [...columns];\n\t});\n}\nfunction mapCursorValuesToColumns(contract, namespaceId, modelName, cursorValues) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst mappedCursor = {};\n\tfor (const [fieldName, value] of Object.entries(cursorValues)) {\n\t\tif (value === void 0) continue;\n\t\tmappedCursor[columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName)] = value;\n\t}\n\treturn mappedCursor;\n}\n//#endregion\n//#region src/table-scope.ts\nconst MAX_ALIAS_BYTES = 63;\nconst encoder = new TextEncoder();\nfunction shortenToBytes(value, maxBytes) {\n\tlet shortened = \"\";\n\tlet bytes = 0;\n\tfor (const character of value) {\n\t\tbytes += encoder.encode(character).length;\n\t\tif (bytes > maxBytes) break;\n\t\tshortened += character;\n\t}\n\treturn shortened;\n}\nvar TableScopeImpl = class TableScopeImpl {\n\t#aliases;\n\tconstructor(aliases = []) {\n\t\tthis.#aliases = new Set(aliases);\n\t}\n\talias(preferred) {\n\t\tfor (let n = 1;; n += 1) {\n\t\t\tconst suffix = n === 1 ? \"\" : `_${n}`;\n\t\t\tconst candidate = `${shortenToBytes(preferred, MAX_ALIAS_BYTES - suffix.length)}${suffix}`;\n\t\t\tif (!this.#aliases.has(candidate)) {\n\t\t\t\tthis.#aliases.add(candidate);\n\t\t\t\treturn candidate;\n\t\t\t}\n\t\t}\n\t}\n\taliasTable(storage) {\n\t\tconst alias = this.alias(storage.tableName);\n\t\tconst coordinate = Object.freeze({ ...storage });\n\t\treturn Object.freeze({\n\t\t\talias,\n\t\t\tstorage: coordinate,\n\t\t\tcolumn: (name) => ColumnRef.of(alias, name),\n\t\t\ttableSource: (contract) => tableSourceForContract(contract, coordinate.namespaceId, coordinate.tableName, alias)\n\t\t});\n\t}\n\tcopy() {\n\t\treturn new TableScopeImpl(this.#aliases);\n\t}\n};\nfunction createTableScope() {\n\treturn new TableScopeImpl();\n}\n//#endregion\n//#region src/collection-tables.ts\nfunction createModelTables(contract, scope, namespaceId, modelName, tableName) {\n\tconst root = scope.aliasTable({\n\t\tnamespaceId,\n\t\ttableName\n\t});\n\tconst variants = /* @__PURE__ */ new Map();\n\tconst mtiVariants = resolvePolymorphismInfo(contract, namespaceId, modelName)?.mtiVariants ?? [];\n\tfor (const variant of mtiVariants) variants.set(variant.value, scope.aliasTable({\n\t\tnamespaceId: variant.namespaceId,\n\t\ttableName: variant.table\n\t}));\n\treturn {\n\t\tscope,\n\t\troot,\n\t\tvariants\n\t};\n}\nfunction createCollectionTables(contract, namespaceId, modelName, tableName = resolveModelTableName(contract, namespaceId, modelName)) {\n\treturn createModelTables(contract, createTableScope(), namespaceId, modelName, tableName);\n}\nfunction createIncludeTables(contract, parent, relation) {\n\tconst scope = parent.scope.copy();\n\treturn {\n\t\ttables: createModelTables(contract, scope, relation.relatedNamespaceId, relation.relatedModelName, relation.relatedTableName),\n\t\tjunction: relation.through === void 0 ? void 0 : scope.aliasTable({\n\t\t\tnamespaceId: relation.through.namespaceId,\n\t\t\ttableName: relation.through.table\n\t\t})\n\t};\n}\nfunction createStatementTables(storage) {\n\tconst scope = createTableScope();\n\treturn {\n\t\tscope,\n\t\troot: scope.aliasTable(storage),\n\t\tvariants: /* @__PURE__ */ new Map()\n\t};\n}\nfunction withScopeCopy(tables) {\n\treturn {\n\t\t...tables,\n\t\tscope: tables.scope.copy()\n\t};\n}\nfunction requireVariantTable(tables, variantValue) {\n\tconst variantTable = tables.variants.get(variantValue);\n\tif (variantTable === void 0) throw new InternalError(`Collection state has no aliased table for variant \"${variantValue}\"`);\n\treturn variantTable;\n}\nfunction tableAliases(tables) {\n\treturn new Map([tables.root, ...tables.variants.values()].map((table) => [table.alias, table.storage]));\n}\nfunction variantColumnLabelPrefix(variantTable) {\n\treturn `${variantTable.alias}__`;\n}\nfunction variantColumnLabel(variantTable, column) {\n\treturn `${variantColumnLabelPrefix(variantTable)}${column}`;\n}\n//#endregion\n//#region src/collection-runtime.ts\nfunction stripHiddenMappedFields(contract, namespaceId, modelName, mapped, hiddenColumns) {\n\tif (hiddenColumns.length === 0) return;\n\tconst columnToField = getModelColumnFields(contract, namespaceId, modelName);\n\tfor (const hiddenColumn of hiddenColumns) {\n\t\tconst fieldName = Object.hasOwn(columnToField, hiddenColumn) ? columnToField[hiddenColumn] : void 0;\n\t\tif (fieldName !== void 0) delete mapped[fieldName];\n\t}\n}\nfunction mapStorageRowToModelFields(contract, namespaceId, modelName, row) {\n\treturn mapKnownColumnNames(row, getModelColumnFields(contract, namespaceId, modelName));\n}\nfunction createStorageRowMapper(contract, namespaceId, modelName) {\n\tconst columnToField = getModelColumnFields(contract, namespaceId, modelName);\n\treturn (row) => mapKnownColumnNames(row, columnToField);\n}\nconst mergedColumnToFieldCache = /* @__PURE__ */ new WeakMap();\nfunction getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variant, variantTable) {\n\tconst cacheKey = `${namespaceId}:${baseModelName}:${variant.value}:${variantTable?.alias ?? \"\"}`;\n\tlet perContract = mergedColumnToFieldCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tmergedColumnToFieldCache.set(contract, perContract);\n\t}\n\tconst cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst baseMap = getModelColumnFields(contract, namespaceId, baseModelName);\n\tconst variantMap = getOwnColumnFields(contract, variant.namespaceId, variant.modelName);\n\tconst merged = { ...baseMap };\n\tfor (const [col, field] of Object.entries(variantMap)) if (variantTable) merged[variantColumnLabel(variantTable, col)] = field;\n\telse merged[col] = field;\n\tperContract.set(cacheKey, merged);\n\treturn merged;\n}\nfunction variantTableOf(tables, variant) {\n\treturn variant.strategy === \"mti\" ? requireVariantTable(tables, variant.value) : void 0;\n}\nfunction mapPolymorphicRow(contract, namespaceId, baseModelName, polyInfo, tables, row, variantValue) {\n\tconst discriminatorValue = row[polyInfo.discriminatorColumn] ?? row[\"__prisma_polymorphic_discriminator\"];\n\tconst selectedValue = variantValue ?? discriminatorValue;\n\tconst variant = typeof selectedValue === \"string\" ? polyInfo.variants.get(selectedValue) : void 0;\n\tif (!variant) return mapKnownColumnNames(row, getModelColumnFields(contract, namespaceId, baseModelName));\n\treturn mapKnownColumnNames(row, getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variant, variantTableOf(tables, variant)));\n}\nfunction createPolymorphicRowMapper(contract, namespaceId, baseModelName, polyInfo, tables, variantValue) {\n\tconst baseMapper = captureColumnMapper(() => getModelColumnFields(contract, namespaceId, baseModelName));\n\tconst mappersByValue = /* @__PURE__ */ new Map();\n\tlet pinnedMapper = baseMapper;\n\tfor (const [value, variant] of polyInfo.variants) {\n\t\tif (variantValue && value !== variantValue) continue;\n\t\tconst mapper = captureColumnMapper(() => getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variant, variantTableOf(tables, variant)));\n\t\tif (variantValue) pinnedMapper = mapper;\n\t\tmappersByValue.set(value, mapper);\n\t}\n\tconst discriminatorColumn = polyInfo.discriminatorColumn;\n\treturn (row) => {\n\t\tconst value = row[discriminatorColumn] ?? row[\"__prisma_polymorphic_discriminator\"];\n\t\treturn (variantValue ? pinnedMapper : typeof value === \"string\" ? mappersByValue.get(value) ?? baseMapper : baseMapper)(row);\n\t};\n}\nfunction captureColumnMapper(resolve) {\n\ttry {\n\t\tconst columns = resolve();\n\t\treturn (row) => mapKnownColumnNames(row, columns);\n\t} catch (error) {\n\t\treturn () => {\n\t\t\tthrow error;\n\t\t};\n\t}\n}\n/** Maps a row from columns to fields. A column no field maps is dropped. */\nfunction mapKnownColumnNames(row, columns) {\n\tconst mapped = {};\n\tfor (const [col, val] of Object.entries(row)) {\n\t\tconst field = Object.hasOwn(columns, col) ? columns[col] : void 0;\n\t\tif (field !== void 0) mapped[field] = val;\n\t}\n\treturn mapped;\n}\n/** Refuses any name in `data` with a value that is not a field of the model, as `mapModelDataToStorageRow` would, before anything reads or writes a row. */\nfunction assertModelFieldNames(contract, namespaceId, modelName, data) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tfor (const [fieldName, value] of Object.entries(data)) if (value !== void 0) columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName);\n}\nfunction mapModelDataToStorageRow(contract, namespaceId, modelName, row) {\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst mapped = {};\n\tfor (const [fieldName, value] of Object.entries(row)) {\n\t\tif (value === void 0) continue;\n\t\tmapped[columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName)] = value;\n\t}\n\treturn mapped;\n}\nfunction mapResultRows(result, mapper) {\n\tconst generator = async function* () {\n\t\tfor await (const value of result) yield mapper(value);\n\t};\n\treturn new AsyncIterableResult(generator());\n}\n//#endregion\n//#region src/column-codec.ts\nfunction resolveColumn(contract, namespaceId, tableName, columnName) {\n\treturn resolveTableForContract(contract, namespaceId, tableName)?.table.columns[columnName];\n}\nfunction codecTraits(context, codecId) {\n\treturn context.codecDescriptors.descriptorFor(codecId)?.traits ?? [];\n}\nfunction hasTrait(context, codecId, trait) {\n\treturn codecTraits(context, codecId).includes(trait);\n}\n//#endregion\n//#region src/order-by-guards.ts\n/**\n* A keyset needs a cursor value for every order axis, so each active order must be a plain column without null placement.\n*/\nfunction assertCursorCompatibleOrder(orderBy) {\n\t(orderBy ?? []).forEach((item, index) => {\n\t\tconst position = index + 1;\n\t\tif (item.expr.kind !== \"column-ref\") throw ormError(\"ORM.ARGUMENT_INVALID\", `cursor() cannot key on orderBy item ${position}: it orders by an expression rather than a column, and relation orders, relation counts and operation results are not cursorable. Order by the model's own columns to paginate with a cursor.`, { meta: {\n\t\t\tmethod: \"cursor\",\n\t\t\tposition\n\t\t} });\n\t\tif (item.nulls !== void 0) throw ormError(\"ORM.ARGUMENT_INVALID\", `cursor() cannot key on orderBy item ${position}: an order with nulls placement is not cursorable. Remove the nulls option to paginate with a cursor.`, { meta: {\n\t\t\tmethod: \"cursor\",\n\t\t\tposition,\n\t\t\tnulls: item.nulls\n\t\t} });\n\t});\n}\n/**\n* Postgres requires the leading `ORDER BY` items to match the `DISTINCT ON` expressions, so the first `distinctOnCount` items must be plain columns; later items only choose which row represents each group and may be any expression.\n*/\nfunction assertDistinctOnCompatibleOrder(orderBy, distinctOnCount) {\n\t(orderBy ?? []).slice(0, distinctOnCount).forEach((item, index) => {\n\t\tconst position = index + 1;\n\t\tif (item.expr.kind !== \"column-ref\") throw ormError(\"ORM.ARGUMENT_INVALID\", `distinctOn() needs its ${distinctOnCount} column(s) as the first orderBy items, but orderBy item ${position} orders by an expression rather than a column. Put the distinctOn columns first; relation orders, relation counts and operation results may follow them.`, { meta: {\n\t\t\tmethod: \"distinctOn\",\n\t\t\tposition,\n\t\t\tdistinctOnCount\n\t\t} });\n\t});\n}\nfunction checkedOrderByItem(dir, expr, options) {\n\tconst nulls = options?.nulls;\n\tif (nulls !== void 0 && !isOrderByNulls(nulls)) throw ormError(\"ORM.ARGUMENT_INVALID\", `${dir}() nulls must be \"first\" or \"last\"`, { meta: {\n\t\tmethod: dir,\n\t\tnulls: String(nulls)\n\t} });\n\treturn new OrderByItem(expr, dir, nulls);\n}\n//#endregion\n//#region src/query-plan-meta.ts\nfunction deriveParamsFromAst(ast) {\n\treturn { params: collectOrderedParamRefs(ast).map((p) => p.kind === \"param-ref\" ? p.value : void 0) };\n}\nfunction buildOrmPlanMeta(contract, annotations) {\n\tconst annotationRecord = annotations !== void 0 && annotations.size > 0 ? Object.freeze(Object.fromEntries(annotations)) : void 0;\n\treturn {\n\t\ttarget: contract.target,\n\t\ttargetFamily: contract.targetFamily,\n\t\tstorageHash: contract.storage.storageHash,\n\t\t...ifDefined(\"profileHash\", contract.profileHash),\n\t\t...ifDefined(\"annotations\", annotationRecord),\n\t\tlane: \"orm-client\"\n\t};\n}\nfunction buildOrmQueryPlan(contract, ast, params, annotations) {\n\treturn Object.freeze({\n\t\tast,\n\t\tparams: [...params],\n\t\tmeta: buildOrmPlanMeta(contract, annotations)\n\t});\n}\n/**\n* Merges annotations into an existing `SqlQueryPlan`'s\n* `meta.annotations` and returns a new frozen plan.\n*\n* Used by the ORM dispatch path to attach terminal-call annotations to\n* plans produced by mutation compile functions (which don't take\n* annotations as parameters). Reads compile through `compileSelect`-\n* family functions that pass `state.annotations` directly to\n* `buildOrmQueryPlan`; this helper is the alternate path for write\n* terminals where annotations arrive at the call site, not via state.\n*\n* Returns the input plan unchanged when `annotations` is undefined\n* or empty. Reserved namespaces already on the input plan (`codecs`, target keys such as `pg`)\n* win over caller-supplied entries under the same key —\n* see the reserved-namespace policy on `defineAnnotation`.\n*/\nfunction mergeAnnotations(plan, annotations) {\n\tif (annotations === void 0 || annotations.size === 0) return plan;\n\tconst callerEntries = {};\n\tfor (const [namespace, value] of annotations) callerEntries[namespace] = value;\n\tconst mergedAnnotations = Object.freeze({\n\t\t...callerEntries,\n\t\t...plan.meta.annotations ?? {}\n\t});\n\treturn Object.freeze({\n\t\t...plan,\n\t\tmeta: Object.freeze({\n\t\t\t...plan.meta,\n\t\t\tannotations: mergedAnnotations\n\t\t})\n\t});\n}\n//#endregion\n//#region src/where-binding.ts\nfunction bindWhereExpr(contract, expr, aliases) {\n\treturn bindWhereExprInScope(contract, expr, aliases);\n}\nfunction bindWhereExprInScope(contract, expr, aliases) {\n\treturn expr.accept({\n\t\tcolumnRef(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tidentifierRef(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tsubquery(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\toperation(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\taggregate(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\twindowFunc(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tfunctionCall(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tcast(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tcase(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tjsonObject(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tjsonArrayAgg(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tliteral(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tparam(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tpreparedParam(expr) {\n\t\t\treturn expr;\n\t\t},\n\t\tlist(expr) {\n\t\t\treturn bindExpression(contract, expr, aliases);\n\t\t},\n\t\tbinary(expr) {\n\t\t\tconst left = bindExpression(contract, expr.left, aliases);\n\t\t\tconst bindingColumn = left.kind === \"column-ref\" ? left : void 0;\n\t\t\treturn new BinaryExpr(expr.op, left, bindComparable(contract, expr.right, bindingColumn, aliases));\n\t\t},\n\t\tand(expr) {\n\t\t\treturn AndExpr.of(expr.exprs.map((part) => bindWhereExprInScope(contract, part, aliases)));\n\t\t},\n\t\tor(expr) {\n\t\t\treturn OrExpr.of(expr.exprs.map((part) => bindWhereExprInScope(contract, part, aliases)));\n\t\t},\n\t\texists(expr) {\n\t\t\treturn expr.notExists ? ExistsExpr.notExists(bindSelectAst(contract, expr.subquery, aliases)) : ExistsExpr.exists(bindSelectAst(contract, expr.subquery, aliases));\n\t\t},\n\t\tnullCheck(expr) {\n\t\t\treturn expr.isNull ? NullCheckExpr.isNull(bindExpression(contract, expr.expr, aliases)) : NullCheckExpr.isNotNull(bindExpression(contract, expr.expr, aliases));\n\t\t},\n\t\tnot(expr) {\n\t\t\treturn new NotExpr(bindWhereExprInScope(contract, expr.expr, aliases));\n\t\t},\n\t\trawExpr(expr) {\n\t\t\treturn expr;\n\t\t}\n\t});\n}\nfunction bindComparable(contract, comparable, bindingColumn, aliases) {\n\tif (comparable.kind === \"param-ref\" || bindingColumn === void 0) return comparable.kind === \"param-ref\" ? comparable : comparable.kind === \"literal\" || comparable.kind === \"list\" ? comparable : bindExpression(contract, comparable, aliases);\n\tif (comparable.kind === \"literal\") return paramRefForAlias(contract, bindingColumn, comparable.value, aliases);\n\tif (comparable.kind === \"list\") return ListExpression.of(comparable.values.map((value) => value.kind === \"literal\" ? paramRefForAlias(contract, bindingColumn, value.value, aliases) : value));\n\treturn bindExpression(contract, comparable, aliases);\n}\nfunction unknownColumn(alias, column) {\n\treturn ormError(\"ORM.COLUMN_UNKNOWN\", `Unknown column \"${column}\" in table \"${alias}\"`, { meta: {\n\t\ttableName: alias,\n\t\tcolumn\n\t} });\n}\nfunction paramRefForAlias(contract, columnRef, value, aliases) {\n\tconst coordinate = aliases.get(columnRef.table);\n\tif (coordinate === void 0) throw unknownColumn(columnRef.table, columnRef.column);\n\treturn paramRefForTable(contract, coordinate, columnRef.table, columnRef.column, value);\n}\nfunction paramRefForTable(contract, coordinate, alias, column, value) {\n\tconst resolved = resolveStorageTable(contract.storage, coordinate.tableName, coordinate.namespaceId);\n\tif (resolved === void 0 || !resolved.table.columns[column]) throw unknownColumn(alias, column);\n\tconst codec = codecRefForStorageColumn(contract.storage, resolved.namespaceId, coordinate.tableName, column);\n\treturn ParamRef.of(value, codec ? { codec } : void 0);\n}\nfunction paramRefForStorageColumn(contract, storage, column, value) {\n\treturn paramRefForTable(contract, storage, storage.tableName, column, value);\n}\nfunction bindExpression(contract, expr, aliases) {\n\treturn expr.rewrite({ select: (ast) => bindSelectAst(contract, ast, aliases) });\n}\nfunction bindProjectionExpr(contract, expr, aliases) {\n\treturn expr.kind === \"literal\" ? expr : bindExpression(contract, expr, aliases);\n}\nfunction bindJoin(contract, join, aliases) {\n\treturn new JoinAst(join.joinType, bindFromSource(contract, join.source, aliases), join.on.kind === \"eq-col-join-on\" ? join.on : bindWhereExprInScope(contract, join.on, aliases), join.lateral);\n}\nfunction bindFromSource(contract, source, aliases) {\n\tif (source.kind === \"derived-table-source\") return DerivedTableSource.as(source.alias, bindSelectAst(contract, source.query, aliases));\n\treturn source;\n}\nfunction aliasesWithSources(outer, sources) {\n\tconst aliases = new Map(outer);\n\tfor (const source of sources) if (source.kind === \"table-source\") aliases.set(source.alias ?? source.name, {\n\t\tnamespaceId: source.namespaceId,\n\t\ttableName: source.name\n\t});\n\treturn aliases;\n}\nfunction bindSelectAst(contract, ast, outer) {\n\tconst aliases = aliasesWithSources(outer, [...ast.from !== void 0 ? [ast.from] : [], ...(ast.joins ?? []).map((join) => join.source)]);\n\treturn new SelectAst({\n\t\t...ast.from !== void 0 ? { from: bindFromSource(contract, ast.from, outer) } : {},\n\t\tjoins: ast.joins?.map((join) => bindJoin(contract, join, aliases)),\n\t\tprojection: ast.projection.map((projection) => new ProjectionItem(projection.alias, bindProjectionExpr(contract, projection.expr, aliases), projection.codec)),\n\t\twhere: ast.where ? bindWhereExprInScope(contract, ast.where, aliases) : void 0,\n\t\torderBy: ast.orderBy?.map((orderItem) => orderItem.withExpr(bindExpression(contract, orderItem.expr, aliases))),\n\t\tdistinct: ast.distinct,\n\t\tdistinctOn: ast.distinctOn?.map((expr) => bindExpression(contract, expr, aliases)),\n\t\tgroupBy: ast.groupBy?.map((expr) => bindExpression(contract, expr, aliases)),\n\t\thaving: ast.having ? bindWhereExprInScope(contract, ast.having, aliases) : void 0,\n\t\tlimit: ast.limit,\n\t\toffset: ast.offset,\n\t\tlocking: ast.locking,\n\t\tselectAllIntent: ast.selectAllIntent\n\t});\n}\n//#endregion\n//#region src/where-utils.ts\nfunction combineWhereExprs(filters) {\n\tif (filters.length === 0) return;\n\tif (filters.length === 1) return filters[0];\n\treturn AndExpr.of(filters);\n}\n//#endregion\n//#region src/query-plan-source.ts\nfunction createBoundaryExpr(contract, table, entry) {\n\treturn new BinaryExpr(entry.direction === \"asc\" ? \"gt\" : \"lt\", table.column(entry.column), paramRefForStorageColumn(contract, table.storage, entry.column, entry.value));\n}\nfunction buildLexicographicCursorWhere(contract, table, entries) {\n\tconst branches = entries.map((entry, index) => {\n\t\tconst branchExprs = [];\n\t\tfor (const prefixEntry of entries.slice(0, index)) branchExprs.push(BinaryExpr.eq(table.column(prefixEntry.column), paramRefForStorageColumn(contract, table.storage, prefixEntry.column, prefixEntry.value)));\n\t\tbranchExprs.push(createBoundaryExpr(contract, table, entry));\n\t\tif (branchExprs.length === 1) {\n\t\t\tconst branch = branchExprs[0];\n\t\t\tassertDefined(branch, \"cursor branch contains its boundary expression\");\n\t\t\treturn branch;\n\t\t}\n\t\treturn AndExpr.of(branchExprs);\n\t});\n\tif (branches.length === 1) {\n\t\tconst branch = branches[0];\n\t\tassertDefined(branch, \"cursor expression contains its single branch\");\n\t\treturn branch;\n\t}\n\treturn OrExpr.of(branches);\n}\nfunction buildCursorWhere(contract, table, orderBy, cursor) {\n\tif (!cursor || !orderBy || orderBy.length === 0) return;\n\tassertCursorCompatibleOrder(orderBy);\n\tconst entries = [];\n\tfor (const order of orderBy) {\n\t\tif (order.expr.kind !== \"column-ref\") throw new InternalError(\"assertCursorCompatibleOrder admits only column orders\");\n\t\tconst column = order.expr.column;\n\t\tconst value = cursor[column];\n\t\tif (value === void 0) throw ormError(\"ORM.CURSOR_VALUE_MISSING\", `Missing cursor value for orderBy column \"${column}\"`, { meta: { column } });\n\t\tentries.push({\n\t\t\tcolumn,\n\t\t\tdirection: order.dir,\n\t\t\tvalue\n\t\t});\n\t}\n\tconst firstEntry = entries[0];\n\tif (entries.length === 1 && firstEntry !== void 0) return createBoundaryExpr(contract, table, firstEntry);\n\treturn buildLexicographicCursorWhere(contract, table, entries);\n}\nfunction buildStateWhere(contract, state) {\n\tconst cursorWhere = buildCursorWhere(contract, state.tables.root, state.orderBy, state.cursor);\n\treturn combineWhereExprs(cursorWhere ? [...state.filters, cursorWhere] : state.filters);\n}\n/**\n* Wrap a base SELECT in a `ROW_NUMBER() OVER (PARTITION BY … ORDER BY …) = 1`\n* filter, implementing Prisma-style `.distinct(cols)` semantics: one\n* representative row per `(distinctColumnRefs)` group is kept; the rest\n* are dropped.\n*\n* Picking which row survives in each partition is governed by\n* `rankingOrderBy`. When the caller's `orderBy` doesn't fully order rows\n* within a partition (e.g. user wrote `.distinct('title')` with no\n* `orderBy`, or ties in their ordering), the choice is\n* implementation-defined — matching Prisma's documented nested-distinct\n* behaviour. Callers that want determinism should pass an `orderBy` that\n* is total within each partition.\n*\n* The wrapper forwards every column of `base.projection` through the\n* derived alias, so the wrapper's projection is byte-identical in alias\n* names — making this transparent to any outer query (`json_agg`,\n* correlated subquery, top-level SELECT) that consumes the SELECT.\n*/\nfunction wrapWithRowNumberDedup(options) {\n\tconst { base, distinctColumnRefs, rankingOrderBy, rankedAlias } = options;\n\tconst rnAlias = \"__prisma_distinct_rn\";\n\tconst effectiveOrderBy = rankingOrderBy.length > 0 ? rankingOrderBy : distinctColumnRefs.map((expr) => OrderByItem.asc(expr));\n\tconst inner = base.withProjection([...base.projection, ProjectionItem.of(rnAlias, WindowFuncExpr.rowNumber({\n\t\tpartitionBy: distinctColumnRefs,\n\t\torderBy: effectiveOrderBy\n\t}))]);\n\treturn SelectAst.from(DerivedTableSource.as(rankedAlias, inner)).withProjection(base.projection.map((item) => ProjectionItem.of(item.alias, ColumnRef.of(rankedAlias, item.alias), item.codec))).withWhere(BinaryExpr.eq(ColumnRef.of(rankedAlias, rnAlias), LiteralExpr.of(1)));\n}\n/**\n* FROM source + WHERE for `state.distinct`: wraps in a `ROW_NUMBER`-ranked\n* derived table aliased back to the root alias, so callers need no rewriting.\n*/\nfunction buildDedupedTableSource(contract, state, where, wrapProjection, joins) {\n\tconst { root } = state.tables;\n\tif (!hasEntries(state.distinct)) return {\n\t\tsource: root.tableSource(contract),\n\t\twhere\n\t};\n\tconst distinctColumnRefs = state.distinct.map((column) => root.column(column));\n\tconst rankingOrderBy = hasEntries(state.orderBy) ? state.orderBy : distinctColumnRefs.map((expr) => OrderByItem.asc(expr));\n\tlet inner = SelectAst.from(root.tableSource(contract)).withProjection([...wrapProjection, ProjectionItem.of(\"__prisma_distinct_rn\", WindowFuncExpr.rowNumber({\n\t\tpartitionBy: distinctColumnRefs,\n\t\torderBy: rankingOrderBy\n\t}))]);\n\tif (joins && joins.length > 0) inner = inner.withJoins(joins);\n\tif (where) inner = inner.withWhere(where);\n\treturn {\n\t\tsource: DerivedTableSource.as(root.alias, inner),\n\t\twhere: BinaryExpr.eq(root.column(\"__prisma_distinct_rn\"), LiteralExpr.of(1))\n\t};\n}\nfunction buildPrimaryKeyJoinOn(left, right, primaryKeyColumns) {\n\tconst [firstColumn] = primaryKeyColumns;\n\tif (primaryKeyColumns.length === 1 && firstColumn !== void 0) return EqColJoinOn.of(left.column(firstColumn), right.column(firstColumn));\n\treturn AndExpr.of(primaryKeyColumns.map((column) => BinaryExpr.eq(left.column(column), right.column(column))));\n}\nfunction labeledVariantColumn(contract, variantTable, column) {\n\tconst { namespaceId, tableName } = variantTable.storage;\n\treturn ProjectionItem.of(variantColumnLabel(variantTable, column), variantTable.column(column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column));\n}\nfunction variantReturning(contract, variantTable, variantModelName, keyColumns) {\n\tconst { namespaceId, tableName } = variantTable.storage;\n\treturn getColumnsReadOnTable(contract, namespaceId, variantModelName, tableName).filter((column) => !keyColumns.includes(column)).map((column) => labeledVariantColumn(contract, variantTable, column));\n}\nfunction buildMtiJoins(contract, tables, polyInfo, variantValue, selectedColumnsByVariant) {\n\tconst joins = [];\n\tconst projection = [];\n\tconst variantsToJoin = variantValue ? polyInfo.mtiVariants.filter((v) => v.value === variantValue) : polyInfo.mtiVariants;\n\tif (variantsToJoin.length === 0) return {\n\t\tjoins,\n\t\tprojection\n\t};\n\tconst { root } = tables;\n\tconst pkColumns = resolvePrimaryKeyColumns(contract, root.storage.namespaceId, root.storage.tableName);\n\tfor (const variant of variantsToJoin) {\n\t\tconst variantTable = requireVariantTable(tables, variant.value);\n\t\tconst joinOn = buildPrimaryKeyJoinOn(root, variantTable, pkColumns);\n\t\tjoins.push(variantValue ? JoinAst.inner(variantTable.tableSource(contract), joinOn) : JoinAst.left(variantTable.tableSource(contract), joinOn));\n\t\tconst { namespaceId, tableName } = variantTable.storage;\n\t\tconst variantColumns = getColumnsReadOnTable(contract, namespaceId, variant.modelName, tableName);\n\t\tconst selectedVariantColumns = selectedColumnsByVariant?.get(variant.value);\n\t\tfor (const col of variantColumns) {\n\t\t\tif (pkColumns.includes(col)) continue;\n\t\t\tif (selectedColumnsByVariant !== void 0 && selectedVariantColumns?.has(col) !== true) continue;\n\t\t\tprojection.push(labeledVariantColumn(contract, variantTable, col));\n\t\t}\n\t}\n\treturn {\n\t\tjoins,\n\t\tprojection\n\t};\n}\nfunction hasEntries(value) {\n\treturn value !== void 0 && value.length > 0;\n}\n/**\n* The rows an aggregate reduces over, one SELECT aliased to the root alias — an\n* aggregate has no outer level of its own, so where/joins/distinct/orderBy/\n* limit/offset all have to live in this one wrap.\n*/\nfunction buildAggregateInput(contract, state, modelName, projection) {\n\tconst { root } = state.tables;\n\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, root.storage.namespaceId, modelName) : void 0;\n\tconst variantJoins = polyInfo && polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, state.tables, polyInfo, state.variantValue, void 0).joins : [];\n\tconst where = buildStateWhere(contract, state);\n\tconst hiddenOrders = hasEntries(state.distinct) ? projectExpressionOrders(root, state.orderBy) : void 0;\n\tconst { source, where: effectiveWhere } = buildDedupedTableSource(contract, state, where, [...projection, ...hiddenOrders?.projection ?? []], variantJoins);\n\tlet inner = SelectAst.from(source).withProjection(projection);\n\tif (!hasEntries(state.distinct) && variantJoins.length > 0) inner = inner.withJoins(variantJoins);\n\tif (effectiveWhere) inner = inner.withWhere(effectiveWhere);\n\tif (hasEntries(state.distinctOn)) inner = inner.withDistinctOn(state.distinctOn.map((column) => root.column(column)));\n\tconst orderBy = hiddenOrders?.orderBy ?? state.orderBy;\n\tif (hasEntries(orderBy)) inner = inner.withOrderBy(orderBy);\n\tif (state.limit !== void 0) inner = inner.withLimit(state.limit);\n\tif (state.offset !== void 0) inner = inner.withOffset(state.offset);\n\treturn { source: DerivedTableSource.as(root.alias, inner) };\n}\n/**\n* The dedup wrap exposes only its projection, so an order over an expression (a relation order, a count, an operation result) cannot be evaluated above it. Each such order is projected inside the wrap as a hidden `__order_N` column and the outer order reads that column.\n*/\nfunction projectExpressionOrders(root, orderBy) {\n\tconst projection = [];\n\treturn {\n\t\tprojection,\n\t\torderBy: (orderBy ?? []).map((item, index) => {\n\t\t\tif (item.expr.kind === \"column-ref\") return item;\n\t\t\tconst alias = `__order_${index}`;\n\t\t\tprojection.push(ProjectionItem.of(alias, item.expr));\n\t\t\treturn item.withExpr(root.column(alias));\n\t\t})\n\t};\n}\n//#endregion\n//#region src/predicate-comparison.ts\nfunction predicateComparison(op, left, right) {\n\tconst nullable = (right.kind === \"list\" ? [left, ...right.values] : [left, right]).find((operand) => operand.kind === \"prepared-param-ref\" && operand.nullable);\n\tif (nullable?.kind !== \"prepared-param-ref\") return new BinaryExpr(op, left, right);\n\tif (op === \"eq\" || op === \"neq\") return new BinaryExpr(op === \"eq\" ? \"isNotDistinctFrom\" : \"isDistinctFrom\", left, right);\n\tthrow ormError(\"ORM.FILTER_UNSUPPORTED\", `Structured ORM ${op} comparisons do not support nullable prepared parameter \"${nullable.name}\"`, { meta: { parameter: nullable.name } });\n}\n//#endregion\n//#region src/predicate-expression.ts\nfunction predicateExpression(value) {\n\tif (isExpression(value)) return value.buildAst();\n}\n//#endregion\n//#region src/types.ts\nfunction emptyState(tables) {\n\treturn {\n\t\ttables,\n\t\tfilters: [],\n\t\tincludes: [],\n\t\torderBy: void 0,\n\t\tcursor: void 0,\n\t\tdistinct: void 0,\n\t\tdistinctOn: void 0,\n\t\tselectedFields: void 0,\n\t\tlimit: void 0,\n\t\toffset: void 0,\n\t\tvariantValue: void 0,\n\t\tlocking: void 0,\n\t\tannotations: /* @__PURE__ */ new Map()\n\t};\n}\nfunction emptyGroupPagingState() {\n\treturn {\n\t\torderBy: [],\n\t\tlimit: void 0,\n\t\toffset: void 0\n\t};\n}\nfunction param(codec, value) {\n\tconst expression = predicateExpression(value);\n\tif (expression !== void 0) return expression;\n\tif (codec === void 0) return ParamRef.of(value);\n\treturn ParamRef.of(value, { codec });\n}\nfunction paramList(codec, values) {\n\treturn ListExpression.of(values.map((value) => param(codec, value)));\n}\nfunction scalarComparisonMethod(op) {\n\treturn ((left, codec) => (value) => {\n\t\tif (value === null && (op === \"eq\" || op === \"neq\")) return op === \"eq\" ? NullCheckExpr.isNull(left) : NullCheckExpr.isNotNull(left);\n\t\treturn predicateComparison(op, left, param(codec, value));\n\t});\n}\nfunction listComparisonMethod(op) {\n\treturn ((left, codec) => (values) => predicateComparison(op, left, paramList(codec, values)));\n}\n/**\n* Declares trait requirements and runtime factory for each comparison method.\n*\n* - `traits: []` means \"no trait required\" — always available\n* - Multi-trait: `traits: ['equality', 'order']` means BOTH traits are required\n*/\nconst COMPARISON_METHODS_META = {\n\teq: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: scalarComparisonMethod(\"eq\")\n\t},\n\tneq: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: scalarComparisonMethod(\"neq\")\n\t},\n\tin: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: listComparisonMethod(\"in\")\n\t},\n\tnotIn: {\n\t\ttraits: [\"equality\"],\n\t\tcreate: listComparisonMethod(\"notIn\")\n\t},\n\tgt: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"gt\")\n\t},\n\tlt: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"lt\")\n\t},\n\tgte: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"gte\")\n\t},\n\tlte: {\n\t\ttraits: [\"order\"],\n\t\tcreate: scalarComparisonMethod(\"lte\")\n\t},\n\tlike: {\n\t\ttraits: [\"textual\"],\n\t\tcreate: scalarComparisonMethod(\"like\")\n\t},\n\tasc: {\n\t\ttraits: [\"order\"],\n\t\tcreate: (left) => (options) => checkedOrderByItem(\"asc\", left, options)\n\t},\n\tdesc: {\n\t\ttraits: [\"order\"],\n\t\tcreate: (left) => (options) => checkedOrderByItem(\"desc\", left, options)\n\t},\n\tisNull: {\n\t\ttraits: [],\n\t\tcreate: (left) => () => NullCheckExpr.isNull(left)\n\t},\n\tisNotNull: {\n\t\ttraits: [],\n\t\tcreate: (left) => () => NullCheckExpr.isNotNull(left)\n\t}\n};\n//#endregion\n//#region src/query-plan-aggregate.ts\nfunction toAggregateProjection(contract, aggregates, root, selector) {\n\tconst { namespaceId, tableName } = root.storage;\n\tconst { codec, input: inputCodec, lower } = resolveAggregate({\n\t\taggregates,\n\t\tcontract,\n\t\tnamespaceId,\n\t\ttableName,\n\t\tfn: selector.fn,\n\t\tcolumn: selector.column\n\t});\n\tconst inputExpr = selector.column === void 0 ? void 0 : root.column(selector.column);\n\treturn {\n\t\texpr: lower !== void 0 ? lower({\n\t\t\texpr: inputExpr,\n\t\t\tinputCodec\n\t\t}) : plainAggregateExpr(selector.fn, inputExpr),\n\t\tcodec\n\t};\n}\nfunction validateGroupedComparable(value) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"ParamRef is not supported in grouped having expressions\", { meta: { kind: value.kind } });\n\t\tcase \"prepared-param-ref\":\n\t\tcase \"literal\":\n\t\tcase \"column-ref\":\n\t\tcase \"identifier-ref\":\n\t\tcase \"aggregate\":\n\t\tcase \"operation\": return value;\n\t\tcase \"function-call\":\n\t\tcase \"cast\":\n\t\tcase \"case\": throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", `Unsupported comparable kind in grouped having: \"${value.kind}\"`, { meta: { kind: value.kind } });\n\t\tcase \"list\":\n\t\t\tif (value.values.some((entry) => entry.kind === \"param-ref\")) throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"ParamRef is not supported in grouped having expressions\", { meta: { kind: \"list\" } });\n\t\t\treturn value;\n\t\tdefault: throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", `Unsupported comparable kind in grouped having: \"${value.kind}\"`, { meta: { kind: value.kind } });\n\t}\n}\nfunction validateGroupedMetricExpr(expr) {\n\tif (expr.kind !== \"aggregate\") throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"groupBy().having() only supports aggregate metric expressions\", { meta: { kind: expr.kind } });\n\treturn expr;\n}\nfunction rejectHavingExpr(expr) {\n\tthrow ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", `Unsupported grouped having expression kind \"${expr.kind}\"`, { meta: { kind: expr.kind } });\n}\nfunction validateGroupedHavingExpr(expr) {\n\treturn expr.accept({\n\t\tcolumnRef: rejectHavingExpr,\n\t\tidentifierRef: rejectHavingExpr,\n\t\tsubquery: rejectHavingExpr,\n\t\toperation: rejectHavingExpr,\n\t\taggregate: rejectHavingExpr,\n\t\twindowFunc: rejectHavingExpr,\n\t\tfunctionCall: rejectHavingExpr,\n\t\tcast: rejectHavingExpr,\n\t\tcase: rejectHavingExpr,\n\t\tjsonObject: rejectHavingExpr,\n\t\tjsonArrayAgg: rejectHavingExpr,\n\t\tliteral: rejectHavingExpr,\n\t\tparam() {\n\t\t\tthrow ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"ParamRef is not supported in grouped having expressions\", { meta: { kind: \"param-ref\" } });\n\t\t},\n\t\tpreparedParam() {\n\t\t\tthrow ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"PreparedParamRef is not supported in grouped having expressions\", { meta: { kind: \"prepared-param-ref\" } });\n\t\t},\n\t\tlist: rejectHavingExpr,\n\t\tand(expr) {\n\t\t\treturn AndExpr.of(expr.exprs.map((child) => validateGroupedHavingExpr(child)));\n\t\t},\n\t\tor(expr) {\n\t\t\treturn OrExpr.of(expr.exprs.map((child) => validateGroupedHavingExpr(child)));\n\t\t},\n\t\texists: rejectHavingExpr,\n\t\tnullCheck(expr) {\n\t\t\treturn new NullCheckExpr(validateGroupedMetricExpr(expr.expr), expr.isNull);\n\t\t},\n\t\tnot(expr) {\n\t\t\treturn new NotExpr(validateGroupedHavingExpr(expr.expr));\n\t\t},\n\t\tbinary(expr) {\n\t\t\treturn new BinaryExpr(expr.op, validateGroupedMetricExpr(expr.left), validateGroupedComparable(expr.right));\n\t\t},\n\t\trawExpr: rejectHavingExpr\n\t});\n}\nfunction aggregateInputColumns(root, entries, orderBy, groupByColumns = []) {\n\tconst columns = new Set(groupByColumns);\n\tfor (const [, selector] of entries) if (selector.column !== void 0) columns.add(selector.column);\n\tfor (const item of orderBy ?? []) if (item.expr.kind === \"column-ref\") columns.add(item.expr.column);\n\tif (columns.size === 0) return [ProjectionItem.of(\"__row\", LiteralExpr.of(1))];\n\treturn Array.from(columns, (column) => ProjectionItem.of(column, root.column(column)));\n}\nfunction compileAggregate(contract, aggregates, state, aggregateSpec, modelName) {\n\tconst { root } = state.tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tconst entries = Object.entries(aggregateSpec);\n\tif (entries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"aggregate() requires at least one aggregation selector\", { meta: {\n\t\tmethod: \"aggregate\",\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(state.orderBy, state.distinctOn.length);\n\t}\n\tconst hasPagination = state.limit !== void 0 || state.offset !== void 0;\n\tconst hasDistinct = state.distinct !== void 0 && state.distinct.length > 0 || state.distinctOn !== void 0 && state.distinctOn.length > 0;\n\tif (hasPagination || hasDistinct) {\n\t\tconst { source } = buildAggregateInput(contract, state, modelName, aggregateInputColumns(root, entries, state.orderBy));\n\t\tconst projection = entries.map(([alias, selector]) => {\n\t\t\tconst { expr, codec } = toAggregateProjection(contract, aggregates, root, selector);\n\t\t\treturn ProjectionItem.of(alias, expr, codec);\n\t\t});\n\t\tconst ast = SelectAst.from(source).withProjection(projection);\n\t\tconst { params } = deriveParamsFromAst(ast);\n\t\treturn buildOrmQueryPlan(contract, ast, params);\n\t}\n\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, namespaceId, modelName) : void 0;\n\tconst variantJoins = polyInfo && polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, state.tables, polyInfo, state.variantValue, void 0).joins : [];\n\tconst where = buildStateWhere(contract, state);\n\tconst projection = entries.map(([alias, selector]) => {\n\t\tconst { expr, codec } = toAggregateProjection(contract, aggregates, root, selector);\n\t\treturn ProjectionItem.of(alias, expr, codec);\n\t});\n\tlet ast = SelectAst.from(root.tableSource(contract)).withProjection(projection);\n\tif (variantJoins.length > 0) ast = ast.withJoins(variantJoins);\n\tif (where) ast = ast.withWhere(where);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileGroupedAggregate(contract, aggregates, preGroupState, groupByColumns, aggregateSpec, havingExpr, modelName, postGroup = emptyGroupPagingState()) {\n\tconst { root } = preGroupState.tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tif (groupByColumns.length === 0) throw ormError(\"ORM.GROUP_BY_FIELD_MISSING\", \"groupBy() requires at least one field\", { meta: {\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\tconst entries = Object.entries(aggregateSpec);\n\tif (entries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"groupBy().aggregate() requires at least one aggregation selector\", { meta: {\n\t\tmethod: \"groupBy.aggregate\",\n\t\tnamespaceId,\n\t\ttableName\n\t} });\n\tif (preGroupState.distinctOn !== void 0 && preGroupState.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(preGroupState.orderBy, preGroupState.distinctOn.length);\n\t}\n\tconst projection = [...groupByColumns.map((column) => ProjectionItem.of(column, root.column(column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column))), ...entries.map(([alias, selector]) => {\n\t\tconst { expr, codec } = toAggregateProjection(contract, aggregates, root, selector);\n\t\treturn ProjectionItem.of(alias, expr, codec);\n\t})];\n\tconst hasPagination = preGroupState.limit !== void 0 || preGroupState.offset !== void 0;\n\tconst hasDistinct = preGroupState.distinct !== void 0 && preGroupState.distinct.length > 0 || preGroupState.distinctOn !== void 0 && preGroupState.distinctOn.length > 0;\n\tconst needsInputSelect = hasPagination || hasDistinct;\n\tlet ast;\n\tif (needsInputSelect) {\n\t\tconst { source } = buildAggregateInput(contract, preGroupState, modelName, aggregateInputColumns(root, entries, preGroupState.orderBy, groupByColumns));\n\t\tast = SelectAst.from(source).withProjection(projection).withGroupBy(groupByColumns.map((column) => root.column(column)));\n\t} else {\n\t\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, namespaceId, modelName) : void 0;\n\t\tconst { tables, variantValue } = preGroupState;\n\t\tconst variantJoins = polyInfo && polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, tables, polyInfo, variantValue, void 0).joins : [];\n\t\tast = SelectAst.from(root.tableSource(contract)).withProjection(projection).withGroupBy(groupByColumns.map((column) => root.column(column)));\n\t\tif (variantJoins.length > 0) ast = ast.withJoins(variantJoins);\n\t\tconst where = buildStateWhere(contract, preGroupState);\n\t\tif (where) ast = ast.withWhere(where);\n\t}\n\tif (havingExpr) ast = ast.withHaving(validateGroupedHavingExpr(havingExpr));\n\tif (postGroup.orderBy.length > 0) ast = ast.withOrderBy(postGroup.orderBy);\n\tif (postGroup.limit !== void 0) ast = ast.withLimit(postGroup.limit);\n\tif (postGroup.offset !== void 0) ast = ast.withOffset(postGroup.offset);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\n//#endregion\n//#region src/query-plan-mutations.ts\nfunction aliasTarget(namespaceId, tableName) {\n\treturn createTableScope().aliasTable({\n\t\tnamespaceId,\n\t\ttableName\n\t});\n}\nfunction projectTableColumn(contract, target, column) {\n\tconst { namespaceId, tableName } = target.storage;\n\treturn ProjectionItem.of(column, target.column(column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column));\n}\nfunction projectTableColumns(contract, target, columns) {\n\treturn columns.map((column) => projectTableColumn(contract, target, column));\n}\nfunction returningProjection(contract, modelName, target, returningColumns) {\n\tconst { namespaceId, tableName } = target.storage;\n\treturn projectTableColumns(contract, target, returningColumns && returningColumns.length > 0 ? [...returningColumns] : getColumnsReadOnTable(contract, namespaceId, modelName, tableName));\n}\nfunction toParamAssignments(contract, namespaceId, tableName, values) {\n\tconst assignments = {};\n\tconst table = storageTableForContract(contract, namespaceId, tableName);\n\tfor (const [column, value] of Object.entries(values)) {\n\t\tif (!table.columns[column]) throw ormError(\"ORM.COLUMN_UNKNOWN\", `Unknown column \"${column}\" in table \"${tableName}\"`, { meta: {\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\tcolumn\n\t\t} });\n\t\tconst codec = codecRefForStorageColumn(contract.storage, namespaceId, tableName, column);\n\t\tassignments[column] = ParamRef.of(value, {\n\t\t\tname: column,\n\t\t\t...ifDefined(\"codec\", codec)\n\t\t});\n\t}\n\treturn { assignments };\n}\nfunction normalizeInsertRows(contract, namespaceId, tableName, rows) {\n\tif (rows.length === 0) throw new InternalError(\"normalizeInsertRows requires at least one row\");\n\tconst orderedColumns = [];\n\tconst seenColumns = /* @__PURE__ */ new Set();\n\tfor (const row of rows) for (const column of Object.keys(row)) {\n\t\tif (seenColumns.has(column)) continue;\n\t\tseenColumns.add(column);\n\t\torderedColumns.push(column);\n\t}\n\tconst table = storageTableForContract(contract, namespaceId, tableName);\n\treturn { rows: rows.map((row) => {\n\t\tif (orderedColumns.length === 0) return {};\n\t\tconst normalizedRow = {};\n\t\tfor (const column of orderedColumns) {\n\t\t\tif (Object.hasOwn(row, column)) {\n\t\t\t\tif (!table.columns[column]) throw ormError(\"ORM.COLUMN_UNKNOWN\", `Unknown column \"${column}\" in table \"${tableName}\"`, { meta: {\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\ttableName,\n\t\t\t\t\tcolumn\n\t\t\t\t} });\n\t\t\t\tconst codec = codecRefForStorageColumn(contract.storage, namespaceId, tableName, column);\n\t\t\t\tnormalizedRow[column] = ParamRef.of(row[column], {\n\t\t\t\t\tname: column,\n\t\t\t\t\t...ifDefined(\"codec\", codec)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnormalizedRow[column] = new DefaultValueExpr();\n\t\t}\n\t\treturn normalizedRow;\n\t}) };\n}\nfunction conflictSkipClause(target, conflictSkip) {\n\tif (!conflictSkip) return void 0;\n\tif (conflictSkip.columns.length === 0) return InsertOnConflict.doNothing();\n\treturn InsertOnConflict.on(conflictSkip.columns.map((column) => target.column(column))).doNothing();\n}\nfunction insertAst(contract, target, rows, conflictSkip) {\n\tconst { namespaceId, tableName } = target.storage;\n\tconst { rows: normalizedRows } = normalizeInsertRows(contract, namespaceId, tableName, rows);\n\treturn InsertAst.into(target.tableSource(contract)).withRows(normalizedRows).withOnConflict(conflictSkipClause(target, conflictSkip));\n}\nfunction compileInsertReturning(contract, namespaceId, modelName, tableName, rows, returningColumns, conflictSkip) {\n\tconst target = aliasTarget(namespaceId, tableName);\n\tconst ast = insertAst(contract, target, rows, conflictSkip).withReturning(returningProjection(contract, modelName, target, returningColumns));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileInsertCount(contract, namespaceId, tableName, rows, conflictSkip) {\n\tconst ast = insertAst(contract, aliasTarget(namespaceId, tableName), rows, conflictSkip);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction stripUndefinedValues(row) {\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(row)) if (value !== void 0) result[key] = value;\n\treturn result;\n}\nfunction countMutationWhere(contract, tables, filters, variantValue) {\n\tconst variantTable = variantValue === void 0 ? void 0 : tables.variants.get(variantValue);\n\tif (variantTable === void 0) return combineWhereExprs(filters);\n\tconst { root } = tables;\n\tconst pkColumns = resolvePrimaryKeyColumns(contract, root.storage.namespaceId, root.storage.tableName);\n\tconst rootCopy = tables.scope.copy().aliasTable(root.storage);\n\tconst where = combineWhereExprs([...pkColumns.map((column) => BinaryExpr.eq(rootCopy.column(column), root.column(column))), ...filters]);\n\tlet subquery = SelectAst.from(rootCopy.tableSource(contract)).withProjection(pkColumns.map((column) => ProjectionItem.of(column, rootCopy.column(column)))).withJoins([JoinAst.inner(variantTable.tableSource(contract), buildPrimaryKeyJoinOn(rootCopy, variantTable, pkColumns))]);\n\tif (where) subquery = subquery.withWhere(where);\n\treturn ExistsExpr.exists(subquery);\n}\nfunction groupRowsByColumnSignature(rows) {\n\tconst groups = [];\n\tlet currentKey = \"\";\n\tlet currentGroup = [];\n\tfor (const rawRow of rows) {\n\t\tconst row = stripUndefinedValues(rawRow);\n\t\tconst key = Object.keys(row).sort().join(\",\");\n\t\tif (key !== currentKey || currentGroup.length === 0) {\n\t\t\tif (currentGroup.length > 0) groups.push(currentGroup);\n\t\t\tcurrentKey = key;\n\t\t\tcurrentGroup = [row];\n\t\t} else currentGroup.push(row);\n\t}\n\tif (currentGroup.length > 0) groups.push(currentGroup);\n\treturn groups;\n}\nfunction upsertAst(contract, target, createValues, conflictColumns, updateSet) {\n\tconst { namespaceId, tableName } = target.storage;\n\tconst createAssignments = toParamAssignments(contract, namespaceId, tableName, createValues);\n\tconst conflictTarget = InsertOnConflict.on(conflictColumns.map((column) => target.column(column)));\n\treturn InsertAst.into(target.tableSource(contract)).withRows([createAssignments.assignments]).withOnConflict(updateSet === void 0 ? conflictTarget.doNothing() : conflictTarget.doUpdateSet(updateSet));\n}\nfunction updateAssignments(contract, target, values) {\n\tconst { namespaceId, tableName } = target.storage;\n\treturn toParamAssignments(contract, namespaceId, tableName, values).assignments;\n}\nfunction updateAst(contract, tables, setValues, where) {\n\tconst { root } = tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tconst { assignments } = toParamAssignments(contract, namespaceId, tableName, setValues);\n\treturn UpdateAst.table(root.tableSource(contract)).withSet(assignments).withWhere(where);\n}\nfunction deleteAst(contract, tables, where) {\n\treturn DeleteAst.from(tables.root.tableSource(contract)).withWhere(where);\n}\nfunction compileUpdateReturning(contract, modelName, tables, setValues, filters, returningColumns) {\n\tconst ast = updateAst(contract, tables, setValues, combineWhereExprs(filters)).withReturning(returningProjection(contract, modelName, tables.root, returningColumns));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileUpdateCount(contract, tables, setValues, filters, variantValue) {\n\tconst ast = updateAst(contract, tables, setValues, countMutationWhere(contract, tables, filters, variantValue));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileDeleteCount(contract, tables, filters, variantValue) {\n\tconst ast = deleteAst(contract, tables, countMutationWhere(contract, tables, filters, variantValue));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\n//#endregion\n//#region src/lock-guards.ts\nfunction includeCarriesLock(include) {\n\treturn [\n\t\tinclude.nested,\n\t\t...include.scalar === void 0 ? [] : [include.scalar.state],\n\t\t...Object.values(include.combine ?? {}).map((branch) => branch.kind === \"rows\" ? branch.state : branch.selector.state)\n\t].some(stateCarriesLock);\n}\nfunction stateCarriesLock(state) {\n\treturn state.locking !== void 0 || state.includes.some(includeCarriesLock);\n}\nfunction conflictOf(state, call) {\n\tif (state.includes.some(includeCarriesLock)) return \"includeRefinement\";\n\tif (state.locking === void 0) return void 0;\n\tif (call !== void 0) return call;\n\tif (state.includes.length > 0) return \"include\";\n\tif (state.distinct !== void 0 && state.distinct.length > 0) return \"distinct\";\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) return \"distinctOn\";\n}\n/** Refuses a row lock the ORM cannot render: inside an include, with include, distinct or distinctOn in the state, or before a call that drops it. */\nfunction assertLockCompatible(state, call) {\n\tconst conflict = conflictOf(state, call);\n\tif (conflict !== void 0) throw lockIncompatible(conflict, `A locking clause cannot be combined with ${conflict}`);\n}\n//#endregion\n//#region src/selection-shaping.ts\nfunction augmentSelectionForJoinColumns(selectedFields, requiredColumns) {\n\tif (!selectedFields) return {\n\t\tselectedForQuery: selectedFields,\n\t\thiddenColumns: []\n\t};\n\tconst hiddenColumns = requiredColumns.filter((column) => !selectedFields.includes(column));\n\tif (hiddenColumns.length === 0) return {\n\t\tselectedForQuery: selectedFields,\n\t\thiddenColumns: []\n\t};\n\treturn {\n\t\tselectedForQuery: [...selectedFields, ...hiddenColumns],\n\t\thiddenColumns\n\t};\n}\n//#endregion\n//#region src/query-plan-select.ts\n/**\n* The rule for which JSON projection variant an include entry carries. Every\n* site that puts a value into a `json_build_object` or a `json_agg` goes\n* through here, and the renderers read the variant to decide how the value\n* reaches JSON.\n*\n* - `codec`: the value is a column whose storage codec is known, so the\n* renderer can ask that codec's descriptor for the projection producing its\n* canonical JSON. The `CodecRef` is resolved at planning time by\n* `codecRefForStorageColumn` and carried on the `ProjectionItem` through\n* every wrap between the column and here.\n* - `document`: the value is already a JSON document — a nested include's\n* correlated subquery, a combine branch, or the object a child row set is\n* aggregated from. Its parts were made canonical at the level that produced\n* them; this level only nests it.\n* - `native`: the value has no codec identity. The case that reaches it is an\n* aggregate the target declares no overload for — SQLite computes `sum` over\n* a text column from whatever leading numbers the rows held, and declines to\n* type the result. Native is what a value with no codec identity means, which\n* is a different thing from defaulting a codec to identity — that, the\n* project forbids. An aggregate the target does declare carries the codec the\n* registry resolved for it, like any other value.\n*\n* A document never carries a codec and a codec-bearing column is never a\n* document, so the first two cases cannot both apply.\n*/\nfunction jsonEntryProjection(value, identity) {\n\tif (identity.codec !== void 0) return new CodecJsonValueProjection(value, identity.codec);\n\tif (identity.document === true) return new JsonDocumentProjection(value);\n\treturn new NativeJsonValueProjection(value);\n}\nfunction buildProjection(contract, model, table, selectedFields, projectedThrough) {\n\tconst { namespaceId, tableName } = table.storage;\n\treturn (selectedFields !== void 0 ? [...selectedFields] : getColumnsReadOnTable(contract, ...model, tableName, namespaceId)).map((column) => ProjectionItem.of(column, projectedThrough === void 0 ? table.column(column) : ColumnRef.of(projectedThrough, column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column)));\n}\nfunction appendUnique(values, value) {\n\tif (!values.includes(value)) values.push(value);\n}\nfunction resolvePolymorphicProjectionSelection(contract, namespaceId, modelName, polyInfo, state) {\n\tif (state.selectedFields === void 0) return {\n\t\tbaseSelectedFields: void 0,\n\t\tselectedMtiColumnsByVariant: void 0,\n\t\tneedsHiddenDiscriminator: false\n\t};\n\tconst baseColumnToField = getModelColumnFields(contract, namespaceId, modelName);\n\tconst variantColumnMaps = Array.from(polyInfo.variants.values(), (variant) => ({\n\t\tvariant,\n\t\tcolumnToField: getOwnColumnFields(contract, variant.namespaceId, variant.modelName)\n\t}));\n\tconst baseSelectedFields = [];\n\tconst selectedMtiColumnsByVariant = /* @__PURE__ */ new Map();\n\tlet hasVariantOwnedSelection = false;\n\tfor (const column of state.selectedFields) {\n\t\tconst isBaseColumn = Object.hasOwn(baseColumnToField, column);\n\t\tif (isBaseColumn) appendUnique(baseSelectedFields, column);\n\t\tlet isVariantColumn = false;\n\t\tfor (const { variant, columnToField } of variantColumnMaps) {\n\t\t\tif (!Object.hasOwn(columnToField, column)) continue;\n\t\t\tisVariantColumn = true;\n\t\t\thasVariantOwnedSelection = true;\n\t\t\tif (variant.strategy === \"sti\") {\n\t\t\t\tappendUnique(baseSelectedFields, column);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet selectedColumns = selectedMtiColumnsByVariant.get(variant.value);\n\t\t\tif (selectedColumns === void 0) {\n\t\t\t\tselectedColumns = /* @__PURE__ */ new Set();\n\t\t\t\tselectedMtiColumnsByVariant.set(variant.value, selectedColumns);\n\t\t\t}\n\t\t\tselectedColumns.add(column);\n\t\t}\n\t\tif (!isBaseColumn && !isVariantColumn) throw new InternalError(`Selected column \"${column}\" is mapped by no field of model \"${modelName}\" or its variants; select() resolves field names before they reach the projection`);\n\t}\n\treturn {\n\t\tbaseSelectedFields,\n\t\tselectedMtiColumnsByVariant,\n\t\tneedsHiddenDiscriminator: state.variantValue === void 0 && hasVariantOwnedSelection && !baseSelectedFields.includes(polyInfo.discriminatorColumn)\n\t};\n}\nfunction buildHiddenDiscriminatorProjection(contract, table, polyInfo, needed) {\n\tif (!needed) return [];\n\treturn [ProjectionItem.of(POLYMORPHIC_DISCRIMINATOR_ALIAS, table.column(polyInfo.discriminatorColumn), codecRefForStorageColumn(contract.storage, table.storage.namespaceId, table.storage.tableName, polyInfo.discriminatorColumn))];\n}\nfunction buildIncludeOrderArtifacts(relationName, rowAlias, childOrderBy) {\n\tif (!childOrderBy || childOrderBy.length === 0) return {\n\t\tchildOrderBy: void 0,\n\t\thiddenOrderProjection: [],\n\t\taggregateOrderBy: void 0\n\t};\n\tconst hiddenOrderProjection = childOrderBy.map((orderItem, index) => ProjectionItem.of(`${relationName}__order_${index}`, orderItem.expr));\n\treturn {\n\t\tchildOrderBy,\n\t\thiddenOrderProjection,\n\t\taggregateOrderBy: hiddenOrderProjection.map((projection, index) => {\n\t\t\tconst orderItem = childOrderBy[index];\n\t\t\tif (!orderItem) throw new InternalError(`Missing include order metadata at index ${index}`);\n\t\t\treturn orderItem.withExpr(ColumnRef.of(rowAlias, projection.alias));\n\t\t})\n\t};\n}\nfunction localColumnsForRowInclude(include) {\n\treturn include.through?.parentLocalColumns ?? include.localColumns;\n}\nfunction buildIncludeJoinExpr(include, child, parentLocalRefs) {\n\tinvariant(parentLocalRefs.length === include.targetColumns.length, `Include '${include.relationName}' has mismatched join column counts: ${parentLocalRefs.length} local, ${include.targetColumns.length} target`);\n\tconst joinExprs = include.targetColumns.map((targetColumn, i) => {\n\t\tconst parentLocalRef = parentLocalRefs[i];\n\t\tassertDefined(parentLocalRef, `Include '${include.relationName}': no local column at ${i}`);\n\t\treturn BinaryExpr.eq(child.column(targetColumn), parentLocalRef);\n\t});\n\tconst [firstExpr] = joinExprs;\n\tassertDefined(firstExpr, `Include '${include.relationName}' has no join columns`);\n\treturn joinExprs.length === 1 ? firstExpr : AndExpr.of(joinExprs);\n}\nfunction localTable(tables, include) {\n\treturn include.localVariantValue === void 0 ? tables.root : requireVariantTable(tables, include.localVariantValue);\n}\nfunction resolveParentLocalRefs(parent, include, localColumns) {\n\tconst local = localTable(parent.tables, include);\n\tconst { projectedThrough } = parent;\n\treturn localColumns.map((column) => {\n\t\tif (projectedThrough === void 0) return local.column(column);\n\t\treturn ColumnRef.of(projectedThrough, local === parent.tables.root ? column : variantColumnLabel(local, column));\n\t});\n}\nfunction requireJunction(include) {\n\tif (include.junction === void 0) throw new InternalError(`Include '${include.relationName}' goes through a junction table but carries no aliased table for it`);\n\treturn include.junction;\n}\nfunction buildNestedIncludeProjections(contract, aggregates, scope, parent, includes) {\n\treturn includes.map((nested) => buildCorrelatedIncludeProjection(contract, aggregates, scope, parent, nested).projection);\n}\n/**\n* The aliases a level's nested includes contribute. Each such subquery\n* projects a JSON document — an object for a scalar include, an array of\n* objects for a row include — which is what tells the enclosing level to nest\n* the value rather than convert it.\n*/\nfunction documentAliasesOf(nestedProjections) {\n\treturn new Set(nestedProjections.map((item) => item.alias));\n}\n/**\n* Resolve the MTI variant joins + `variant_table__column` projection for an\n* include whose target model is polymorphic, mirroring the parent path in\n* `compileSelectWithIncludes`. The discriminator column and any STI\n* variant-specific columns live on the base table and reach the row through\n* the ordinary base-column projection (`buildProjection`); only the MTI\n* variant tables need a join.\n*/\nfunction buildChildPolymorphismJoinsAndProjection(contract, include) {\n\tconst polyInfo = resolvePolymorphismInfo(contract, include.relatedNamespaceId, include.relatedModelName);\n\tif (!polyInfo) return {\n\t\tjoins: [],\n\t\tprojection: [],\n\t\thiddenProjection: [],\n\t\tbaseSelectedFields: include.nested.selectedFields\n\t};\n\tconst selection = resolvePolymorphicProjectionSelection(contract, include.relatedNamespaceId, include.relatedModelName, polyInfo, include.nested);\n\tconst { joins, projection } = buildMtiJoins(contract, include.nested.tables, polyInfo, include.nested.variantValue, selection.selectedMtiColumnsByVariant);\n\treturn {\n\t\tjoins,\n\t\tprojection,\n\t\thiddenProjection: buildHiddenDiscriminatorProjection(contract, include.nested.tables.root, polyInfo, selection.needsHiddenDiscriminator),\n\t\tbaseSelectedFields: selection.baseSelectedFields\n\t};\n}\nfunction buildRequiredMtiJoinKeyProjection(contract, include) {\n\tconst aliases = /* @__PURE__ */ new Set();\n\tconst projection = [];\n\tfor (const nested of include.nested.includes) {\n\t\tif (nested.localVariantValue === void 0) continue;\n\t\tconst variantTable = requireVariantTable(include.nested.tables, nested.localVariantValue);\n\t\tfor (const column of localColumnsForRowInclude(nested)) {\n\t\t\tconst alias = variantColumnLabel(variantTable, column);\n\t\t\tif (aliases.has(alias)) continue;\n\t\t\taliases.add(alias);\n\t\t\tprojection.push(ProjectionItem.of(alias, variantTable.column(column), codecRefForStorageColumn(contract.storage, variantTable.storage.namespaceId, variantTable.storage.tableName, column)));\n\t\t}\n\t}\n\treturn projection;\n}\nfunction mergeProjectionByAlias(projection, additional) {\n\tconst aliases = new Set(projection.map((item) => item.alias));\n\tconst merged = [...projection];\n\tfor (const item of additional) if (!aliases.has(item.alias)) {\n\t\taliases.add(item.alias);\n\t\tmerged.push(item);\n\t}\n\treturn merged;\n}\n/**\n* Build the correlated WHERE and junction JOIN artifacts for a many-to-many\n* include. The resulting WHERE correlates the junction to the parent rows\n* (AND-ed across all column pairs for composite keys). The junction JOIN\n* connects child rows to the junction via the child columns.\n*/\nfunction buildManyToManyJunctionArtifacts(contract, parentLocalRefs, child, junction, through) {\n\tconst { table: junctionTable, parentColumns, childColumns, targetColumns } = through;\n\tinvariant(childColumns.length === targetColumns.length, `M:N junction '${junctionTable}': childColumns (${childColumns.length}) and targetColumns (${targetColumns.length}) must have equal length`);\n\tinvariant(parentColumns.length === parentLocalRefs.length, `M:N junction '${junctionTable}': parentColumns (${parentColumns.length}) and parentLocalColumns (${parentLocalRefs.length}) must have equal length`);\n\tconst joinOnPairs = childColumns.map((junctionCol, i) => {\n\t\tconst targetCol = targetColumns[i];\n\t\tassertDefined(targetCol, `M:N junction '${junctionTable}': missing target column at index ${i}`);\n\t\treturn BinaryExpr.eq(junction.column(junctionCol), child.column(targetCol));\n\t});\n\tconst firstJoinPair = joinOnPairs[0];\n\tconst joinOn = joinOnPairs.length === 1 && firstJoinPair ? firstJoinPair : AndExpr.of(joinOnPairs);\n\tconst correlationPairs = parentColumns.map((junctionCol, i) => {\n\t\tconst parentLocalRef = parentLocalRefs[i];\n\t\tassertDefined(parentLocalRef, `M:N junction '${junctionTable}': missing parent-local column ref at index ${i}`);\n\t\treturn BinaryExpr.eq(junction.column(junctionCol), parentLocalRef);\n\t});\n\tconst firstCorrelationPair = correlationPairs[0];\n\treturn {\n\t\twhereExpr: correlationPairs.length === 1 && firstCorrelationPair ? firstCorrelationPair : AndExpr.of(correlationPairs),\n\t\tjunctionJoin: JoinAst.inner(junction.tableSource(contract), joinOn, false)\n\t};\n}\nfunction buildIncludeChildRowsSelect(contract, aggregates, scope, parent, include) {\n\tconst childState = include.nested;\n\tif (childState.distinctOn !== void 0 && childState.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(childState.orderBy, childState.distinctOn.length);\n\t}\n\tconst child = childState.tables.root;\n\tconst parentLocalRefs = resolveParentLocalRefs(parent, include, localColumnsForRowInclude(include));\n\tconst rowsAlias = scope.alias(`${include.relationName}__rows`);\n\tconst { childOrderBy, hiddenOrderProjection, aggregateOrderBy } = buildIncludeOrderArtifacts(include.relationName, rowsAlias, childState.orderBy);\n\tconst childWhere = buildStateWhere(contract, childState);\n\tlet whereExpr;\n\tlet junctionJoins = [];\n\tif (include.through !== void 0) {\n\t\tconst artifacts = buildManyToManyJunctionArtifacts(contract, parentLocalRefs, child, requireJunction(include), include.through);\n\t\twhereExpr = childWhere ? AndExpr.of([artifacts.whereExpr, childWhere]) : artifacts.whereExpr;\n\t\tjunctionJoins = [artifacts.junctionJoin];\n\t} else {\n\t\tconst joinExpr = buildIncludeJoinExpr(include, child, parentLocalRefs);\n\t\twhereExpr = childWhere ? AndExpr.of([joinExpr, childWhere]) : joinExpr;\n\t}\n\tif (childState.distinct !== void 0 && childState.distinct.length > 0 && childState.includes.length > 0) return buildDistinctNonLeafChildRowsSelect({\n\t\tcontract,\n\t\taggregates,\n\t\tscope,\n\t\tinclude,\n\t\trowsAlias,\n\t\tchildOrderBy,\n\t\thiddenOrderProjection,\n\t\taggregateOrderBy,\n\t\twhereExpr,\n\t\tjunctionJoins\n\t});\n\tconst polyJoinsAndProjection = buildChildPolymorphismJoinsAndProjection(contract, include);\n\tconst scalarProjection = buildProjection(contract, addressedModel(contract, include.relatedNamespaceId, include.relatedModelName, include.nested.variantValue), child, polyJoinsAndProjection.baseSelectedFields);\n\tconst nestedProjections = buildNestedIncludeProjections(contract, aggregates, scope, { tables: childState.tables }, childState.includes);\n\tconst childProjection = [\n\t\t...scalarProjection,\n\t\t...polyJoinsAndProjection.projection,\n\t\t...polyJoinsAndProjection.hiddenProjection,\n\t\t...nestedProjections\n\t];\n\tlet childRows = SelectAst.from(child.tableSource(contract)).withProjection([...childProjection, ...hiddenOrderProjection]).withWhere(whereExpr);\n\tif (polyJoinsAndProjection.joins.length > 0) childRows = childRows.withJoins([...polyJoinsAndProjection.joins]);\n\tif (junctionJoins.length > 0) childRows = childRows.withJoins(junctionJoins);\n\tif (childState.distinctOn && childState.distinctOn.length > 0) {\n\t\tchildRows = childRows.withDistinctOn(childState.distinctOn.map((column) => child.column(column)));\n\t\tif (childOrderBy) childRows = childRows.withOrderBy(childOrderBy);\n\t} else if (childState.distinct && childState.distinct.length > 0) {\n\t\tconst rankedAlias = scope.alias(`${include.relationName}__distinct`);\n\t\tchildRows = wrapWithRowNumberDedup({\n\t\t\tbase: childRows,\n\t\t\tdistinctColumnRefs: childState.distinct.map((column) => child.column(column)),\n\t\t\trankingOrderBy: childOrderBy ?? [],\n\t\t\trankedAlias\n\t\t});\n\t\tif (childOrderBy) childRows = childRows.withOrderBy(childOrderBy.map((item, index) => item.withExpr(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`))));\n\t} else if (childOrderBy) childRows = childRows.withOrderBy(childOrderBy);\n\tif (childState.limit !== void 0) childRows = childRows.withLimit(childState.limit);\n\tif (childState.offset !== void 0) childRows = childRows.withOffset(childState.offset);\n\treturn {\n\t\tchildRows,\n\t\tchildProjection,\n\t\tdocumentAliases: documentAliasesOf(nestedProjections),\n\t\trowsAlias,\n\t\taggregateOrderBy\n\t};\n}\nfunction buildDistinctNonLeafChildRowsSelect(options) {\n\tconst { contract, aggregates, scope, include, rowsAlias, childOrderBy, hiddenOrderProjection, aggregateOrderBy, whereExpr, junctionJoins } = options;\n\tconst childState = include.nested;\n\tconst child = childState.tables.root;\n\tconst grandchildJoinColumns = Array.from(new Set(childState.includes.flatMap((nested) => nested.localVariantValue === void 0 ? localColumnsForRowInclude(nested) : [])));\n\tconst { selectedForQuery } = augmentSelectionForJoinColumns(childState.selectedFields, grandchildJoinColumns);\n\tconst visiblePolyProjection = buildChildPolymorphismJoinsAndProjection(contract, include);\n\tconst queryPolyProjection = buildChildPolymorphismJoinsAndProjection(contract, {\n\t\t...include,\n\t\tnested: {\n\t\t\t...childState,\n\t\t\tselectedFields: selectedForQuery\n\t\t}\n\t});\n\tconst innerScalarProjection = buildProjection(contract, addressedModel(contract, include.relatedNamespaceId, include.relatedModelName, include.nested.variantValue), child, queryPolyProjection.baseSelectedFields);\n\tconst innerMtiProjection = mergeProjectionByAlias(queryPolyProjection.projection, buildRequiredMtiJoinKeyProjection(contract, include));\n\tlet baseInner = SelectAst.from(child.tableSource(contract)).withProjection([\n\t\t...innerScalarProjection,\n\t\t...innerMtiProjection,\n\t\t...queryPolyProjection.hiddenProjection,\n\t\t...hiddenOrderProjection\n\t]).withWhere(whereExpr);\n\tconst distinctExtraJoins = [...queryPolyProjection.joins, ...junctionJoins];\n\tif (distinctExtraJoins.length > 0) baseInner = baseInner.withJoins(distinctExtraJoins);\n\tconst distinctColumns = childState.distinct;\n\tif (distinctColumns === void 0 || distinctColumns.length === 0) throw new InternalError(\"buildDistinctNonLeafChildRowsSelect requires a non-empty `distinct` selection\");\n\tconst rankedAlias = scope.alias(`${include.relationName}__ranked`);\n\tlet innerSelect = wrapWithRowNumberDedup({\n\t\tbase: baseInner,\n\t\tdistinctColumnRefs: distinctColumns.map((column) => child.column(column)),\n\t\trankingOrderBy: childOrderBy ?? [],\n\t\trankedAlias\n\t});\n\tif (childOrderBy) innerSelect = innerSelect.withOrderBy(childOrderBy.map((item, index) => item.withExpr(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`))));\n\tif (childState.limit !== void 0) innerSelect = innerSelect.withLimit(childState.limit);\n\tif (childState.offset !== void 0) innerSelect = innerSelect.withOffset(childState.offset);\n\tconst distinctAlias = scope.alias(`${include.relationName}__distinct`);\n\tconst outerScalarProjection = buildProjection(contract, addressedModel(contract, include.relatedNamespaceId, include.relatedModelName, include.nested.variantValue), child, visiblePolyProjection.baseSelectedFields, distinctAlias);\n\tconst outerNestedProjections = buildNestedIncludeProjections(contract, aggregates, scope, {\n\t\ttables: childState.tables,\n\t\tprojectedThrough: distinctAlias\n\t}, childState.includes);\n\tconst outerPolyProjection = visiblePolyProjection.projection.map((proj) => ProjectionItem.of(proj.alias, ColumnRef.of(distinctAlias, proj.alias), proj.codec));\n\tconst outerHiddenProjection = visiblePolyProjection.hiddenProjection.map((proj) => ProjectionItem.of(proj.alias, ColumnRef.of(distinctAlias, proj.alias), proj.codec));\n\tconst outerHiddenOrderProjection = hiddenOrderProjection.map((proj) => ProjectionItem.of(proj.alias, ColumnRef.of(distinctAlias, proj.alias), proj.codec));\n\tconst childProjection = [\n\t\t...outerScalarProjection,\n\t\t...outerPolyProjection,\n\t\t...outerHiddenProjection,\n\t\t...outerNestedProjections\n\t];\n\treturn {\n\t\tchildRows: SelectAst.from(DerivedTableSource.as(distinctAlias, innerSelect)).withProjection([...childProjection, ...outerHiddenOrderProjection]),\n\t\tchildProjection,\n\t\tdocumentAliases: documentAliasesOf(outerNestedProjections),\n\t\trowsAlias,\n\t\taggregateOrderBy\n\t};\n}\n/**\n* Build the inner SELECT for a scalar include reducer (any operation the aggregate registry\n* contributes).\n*\n* Emits one row containing `json_build_object('value', AGG(...))`\n* over the child relation correlated to the parent via the FK. The\n* JSON wrap lets the value flow through the existing include-payload\n* decoder unchanged (it JSON.parses the column and the scalar branch\n* pulls `.value` out).\n*\n* The refine state's pipeline composes through to the aggregate's\n* input set: `where` / `orderBy` / `limit` / `offset` / `distinct` shape\n* the rows the aggregate sees, matching the natural compositional\n* semantic of\n*\n* `db.User.include('posts', p => p.where(W).limit(N).count()) // ≤ N`\n*\n* When `limit` / `offset` / `distinct` is set, the aggregate's input\n* cannot just be the bare correlated table — a top-level `LIMIT` on\n* the aggregating SELECT only trims the (already one-row) output, not\n* the rows being aggregated. We therefore wrap the source in a\n* derived SELECT that materialises the shaped row set, then\n* aggregate over that. `orderBy` alone (no `limit` / `offset` /\n* `distinct`) is dropped at the SQL level since reordering does not\n* change which rows are aggregated.\n*/\nfunction buildIncludeChildScalarSelect(contract, aggregates, scope, parent, include, scalar) {\n\tconst { codec: resultCodec, input: inputCodec, lower: resultLowering } = resolveAggregate({\n\t\taggregates,\n\t\tcontract,\n\t\tnamespaceId: include.relatedNamespaceId,\n\t\ttableName: include.relatedTableName,\n\t\tfn: scalar.fn,\n\t\tcolumn: scalar.column\n\t});\n\tconst parentLocalRefs = resolveParentLocalRefs(parent, include, localColumnsForRowInclude(include));\n\tconst state = scalar.state;\n\tconst child = state.tables.root;\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(state.orderBy, state.distinctOn.length);\n\t}\n\tconst childWhere = buildStateWhere(contract, state);\n\tlet whereExpr;\n\tlet junctionJoins = [];\n\tif (include.through !== void 0) {\n\t\tconst artifacts = buildManyToManyJunctionArtifacts(contract, parentLocalRefs, child, requireJunction(include), include.through);\n\t\twhereExpr = childWhere ? AndExpr.of([artifacts.whereExpr, childWhere]) : artifacts.whereExpr;\n\t\tjunctionJoins = [artifacts.junctionJoin];\n\t} else {\n\t\tconst joinExpr = buildIncludeJoinExpr(include, child, parentLocalRefs);\n\t\twhereExpr = childWhere ? AndExpr.of([joinExpr, childWhere]) : joinExpr;\n\t}\n\tconst hasPagination = state.limit !== void 0 || state.offset !== void 0;\n\tconst hasDistinct = state.distinct !== void 0 && state.distinct.length > 0 || state.distinctOn !== void 0 && state.distinctOn.length > 0;\n\tif (!(hasPagination || hasDistinct)) {\n\t\tconst aggregateExpr = buildIncludeAggregateExpr(scalar, scalar.column === void 0 ? void 0 : child.column(scalar.column), resultLowering, inputCodec);\n\t\tconst jsonObjectExpr = JsonObjectExpr.fromEntries([JsonObjectExpr.entry(\"value\", jsonEntryProjection(aggregateExpr, { codec: resultCodec }))]);\n\t\tlet select = SelectAst.from(child.tableSource(contract)).withProjection([ProjectionItem.of(include.relationName, jsonObjectExpr)]).withWhere(whereExpr);\n\t\tif (junctionJoins.length > 0) select = select.withJoins(junctionJoins);\n\t\treturn select;\n\t}\n\tconst innerAlias = scope.alias(`${include.relationName}__scalar`);\n\tconst hiddenOrderProjection = state.distinct !== void 0 && state.distinct.length > 0 && state.orderBy !== void 0 && state.orderBy.length > 0 ? state.orderBy.map((item, index) => ProjectionItem.of(`${include.relationName}__order_${index}`, item.expr)) : [];\n\tconst innerProjection = [...scalar.column !== void 0 ? [ProjectionItem.of(scalar.column, child.column(scalar.column))] : [ProjectionItem.of(\"__row\", LiteralExpr.of(1))], ...hiddenOrderProjection];\n\tlet inner = SelectAst.from(child.tableSource(contract)).withProjection(innerProjection).withWhere(whereExpr);\n\tif (junctionJoins.length > 0) inner = inner.withJoins(junctionJoins);\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tinner = inner.withDistinctOn(state.distinctOn.map((column) => child.column(column)));\n\t\tif (state.orderBy !== void 0 && state.orderBy.length > 0) inner = inner.withOrderBy(state.orderBy);\n\t} else if (state.distinct !== void 0 && state.distinct.length > 0) {\n\t\tconst rankedAlias = scope.alias(`${include.relationName}__scalar_distinct`);\n\t\tinner = wrapWithRowNumberDedup({\n\t\t\tbase: inner,\n\t\t\tdistinctColumnRefs: state.distinct.map((column) => child.column(column)),\n\t\t\trankingOrderBy: state.orderBy ?? [],\n\t\t\trankedAlias\n\t\t});\n\t\tif (state.orderBy !== void 0 && state.orderBy.length > 0) inner = inner.withOrderBy(state.orderBy.map((item, index) => item.withExpr(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`))));\n\t} else if (state.orderBy !== void 0 && state.orderBy.length > 0) inner = inner.withOrderBy(state.orderBy);\n\tif (state.limit !== void 0) inner = inner.withLimit(state.limit);\n\tif (state.offset !== void 0) inner = inner.withOffset(state.offset);\n\tconst outerAggregateExpr = buildIncludeAggregateExpr(scalar, scalar.column === void 0 ? void 0 : ColumnRef.of(innerAlias, scalar.column), resultLowering, inputCodec);\n\tconst outerJsonObjectExpr = JsonObjectExpr.fromEntries([JsonObjectExpr.entry(\"value\", jsonEntryProjection(outerAggregateExpr, { codec: resultCodec }))]);\n\treturn SelectAst.from(DerivedTableSource.as(innerAlias, inner)).withProjection([ProjectionItem.of(include.relationName, outerJsonObjectExpr)]);\n}\nfunction buildIncludeAggregateExpr(scalar, expr, lower, inputCodec) {\n\tif (lower !== void 0) return lower({\n\t\texpr,\n\t\tinputCodec\n\t});\n\treturn plainAggregateExpr(scalar.fn, expr);\n}\n/**\n* Build the inner SELECT for a `combine({ a, b, ... })` include.\n*\n* Each branch produces a self-contained SELECT projecting one row\n* with one column aliased to the relation name. The branches are\n* stitched together as cross-joined derived tables (FROM <first>\n* INNER JOIN <second> ON TRUE ...), and the outer projection packs\n* them into a single `json_build_object` keyed by branch name. The\n* resulting subquery emits exactly one row per parent row containing\n* the combined JSON — embedded as a correlated subquery in the outer\n* projection.\n*\n* Row branches reuse the standalone row-include builder; scalar\n* branches reuse `buildIncludeChildScalarSelect` — the `{value: ...}`\n* envelope survives into the combined JSON and the decoder unwraps\n* it per scalar branch. Distinct/limit/offset semantics inside a row\n* branch fan out naturally because the row builder is invoked with\n* a synthetic IncludeExpr whose `nested` is the branch's state.\n*/\nfunction buildIncludeChildCombineSelect(contract, aggregates, scope, parent, include, branches) {\n\tconst branchEntries = Object.entries(branches);\n\tif (branchEntries.length === 0) throw ormError(\"ORM.INCLUDE_INVALID\", `combine() include \"${include.relationName}\" has no branches`, { meta: { relation: include.relationName } });\n\tconst compiledBranches = branchEntries.map(([name, branch]) => ({\n\t\tname,\n\t\talias: scope.alias(`${include.relationName}__combine__${name}`),\n\t\tselect: buildIncludeChildCombineBranchSelect(contract, aggregates, scope, parent, include, branch)\n\t}));\n\tconst jsonObjectExpr = JsonObjectExpr.fromEntries(compiledBranches.map((branch) => JsonObjectExpr.entry(branch.name, jsonEntryProjection(ColumnRef.of(branch.alias, include.relationName), { document: true }))));\n\tconst [firstBranch, ...restBranches] = compiledBranches;\n\tif (!firstBranch) throw new InternalError(`combine() include \"${include.relationName}\" has no branches`);\n\tconst joins = restBranches.map((branch) => JoinAst.inner(DerivedTableSource.as(branch.alias, branch.select), AndExpr.true(), false));\n\treturn SelectAst.from(DerivedTableSource.as(firstBranch.alias, firstBranch.select)).withProjection([ProjectionItem.of(include.relationName, jsonObjectExpr)]).withJoins(joins);\n}\n/**\n* Compile one branch of a `combine({ ... })` into a SelectAst that\n* projects exactly one row with one column aliased to the parent\n* relation name. Dispatches to the standalone scalar / row builders\n* with the branch's state spliced into a synthetic IncludeExpr.\n*/\nfunction buildIncludeChildCombineBranchSelect(contract, aggregates, scope, parent, include, branch) {\n\tif (branch.kind === \"scalar\") return buildIncludeChildScalarSelect(contract, aggregates, scope, parent, include, branch.selector);\n\treturn buildIncludeChildRowsAggregateSelect(contract, aggregates, scope, parent, {\n\t\t...include,\n\t\tnested: branch.state,\n\t\tscalar: void 0,\n\t\tcombine: void 0\n\t});\n}\n/**\n* Internal helper: build the inner aggregate SELECT that `json_agg`s\n* child rows into a single JSON-array column aliased to the relation\n* name. Used by both the standalone row correlated-subquery path and\n* by combine's row branches.\n*/\nfunction buildIncludeChildRowsAggregateSelect(contract, aggregates, scope, parent, include) {\n\tconst { childRows, childProjection, documentAliases, rowsAlias, aggregateOrderBy } = buildIncludeChildRowsSelect(contract, aggregates, scope, parent, include);\n\tconst jsonObjectExpr = JsonObjectExpr.fromEntries(childProjection.map((item) => JsonObjectExpr.entry(item.alias, jsonEntryProjection(ColumnRef.of(rowsAlias, item.alias), {\n\t\tcodec: item.codec,\n\t\tdocument: documentAliases.has(item.alias)\n\t}))));\n\treturn SelectAst.from(DerivedTableSource.as(rowsAlias, childRows)).withProjection([ProjectionItem.of(include.relationName, JsonArrayAggExpr.of(jsonEntryProjection(jsonObjectExpr, { document: true }), \"emptyArray\", aggregateOrderBy))]);\n}\nfunction buildCorrelatedIncludeProjection(contract, aggregates, scope, parent, include) {\n\tif (include.scalar) {\n\t\tconst scalarSelect = buildIncludeChildScalarSelect(contract, aggregates, scope, parent, include, include.scalar);\n\t\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(scalarSelect)) };\n\t}\n\tif (include.combine) {\n\t\tconst combineSelect = buildIncludeChildCombineSelect(contract, aggregates, scope, parent, include, include.combine);\n\t\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(combineSelect)) };\n\t}\n\tconst aggregateQuery = buildIncludeChildRowsAggregateSelect(contract, aggregates, scope, parent, include);\n\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(aggregateQuery)) };\n}\nfunction buildSelectAst(contract, modelName, state, options) {\n\tconst { root } = state.tables;\n\tconst { namespaceId, tableName } = root.storage;\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tassertDistinctOnCapability(contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(state.orderBy, state.distinctOn.length);\n\t}\n\tconst addressed = addressedModel(contract, namespaceId, modelName, state.variantValue);\n\tconst projection = [...buildProjection(contract, addressed, root, state.selectedFields), ...options.includeProjection ?? []];\n\tconst { source: fromSource, where: effectiveWhere } = buildDedupedTableSource(contract, state, options.where ?? buildStateWhere(contract, state), getColumnsReadOnTable(contract, ...addressed, tableName, namespaceId).map((column) => ProjectionItem.of(column, root.column(column))));\n\tlet ast = SelectAst.from(fromSource).withProjection(projection);\n\tif (effectiveWhere) ast = ast.withWhere(effectiveWhere);\n\tif (state.orderBy) ast = ast.withOrderBy(state.orderBy);\n\tif (state.selectedFields === void 0) ast = ast.withSelectAllIntent({ table: tableName });\n\tif (state.distinctOn && state.distinctOn.length > 0) ast = ast.withDistinctOn(state.distinctOn.map((column) => root.column(column)));\n\tif (state.limit !== void 0) ast = ast.withLimit(state.limit);\n\tif (state.offset !== void 0) ast = ast.withOffset(state.offset);\n\tif (options.joins && options.joins.length > 0) ast = ast.withJoins(options.joins);\n\tif (state.locking !== void 0) ast = ast.withLocking(state.locking);\n\treturn ast;\n}\nfunction buildRootPolymorphism(contract, state, modelName) {\n\tconst { root } = state.tables;\n\tconst { namespaceId } = root.storage;\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\tif (!polyInfo) return {\n\t\tprojectionState: state,\n\t\tjoins: [],\n\t\tprojection: []\n\t};\n\tconst selection = resolvePolymorphicProjectionSelection(contract, namespaceId, modelName, polyInfo, state);\n\tconst mtiArtifacts = polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, state.tables, polyInfo, state.variantValue, selection.selectedMtiColumnsByVariant) : void 0;\n\treturn {\n\t\tprojectionState: {\n\t\t\t...state,\n\t\t\tselectedFields: selection.baseSelectedFields\n\t\t},\n\t\tjoins: mtiArtifacts?.joins ?? [],\n\t\tprojection: [...mtiArtifacts?.projection ?? [], ...buildHiddenDiscriminatorProjection(contract, root, polyInfo, selection.needsHiddenDiscriminator)]\n\t};\n}\nfunction collectionSelectAst(contract, modelName, state) {\n\tassertLockCompatible(state);\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) assertDistinctOnCapability(contract, \"distinctOn\");\n\tconst polymorphism = buildRootPolymorphism(contract, state, modelName);\n\treturn buildSelectAst(contract, modelName, {\n\t\t...polymorphism.projectionState,\n\t\tincludes: []\n\t}, {\n\t\tjoins: polymorphism.joins,\n\t\tincludeProjection: polymorphism.projection\n\t});\n}\nfunction compileSelect(contract, modelName, state) {\n\tconst ast = collectionSelectAst(contract, modelName, state);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params, state.annotations);\n}\nfunction collectionSelectWithIncludesAst(contract, aggregates, modelName, state) {\n\tassertLockCompatible(state);\n\tconst topLevelWhere = buildStateWhere(contract, state);\n\tconst polymorphism = buildRootPolymorphism(contract, state, modelName);\n\tconst includeProjection = [...polymorphism.projection];\n\tconst scope = state.tables.scope.copy();\n\tconst parent = { tables: state.tables };\n\tfor (const include of state.includes) {\n\t\tconst artifact = buildCorrelatedIncludeProjection(contract, aggregates, scope, parent, include);\n\t\tincludeProjection.push(artifact.projection);\n\t}\n\treturn buildSelectAst(contract, modelName, {\n\t\t...polymorphism.projectionState,\n\t\tincludes: []\n\t}, {\n\t\tjoins: polymorphism.joins,\n\t\tincludeProjection,\n\t\t...ifDefined(\"where\", topLevelWhere)\n\t});\n}\nfunction compileSelectWithIncludes(contract, aggregates, modelName, state) {\n\tconst ast = collectionSelectWithIncludesAst(contract, aggregates, modelName, state);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params, state.annotations);\n}\n//#endregion\n//#region src/query-plan-rows.ts\nfunction queryPlanRows(scope, plan) {\n\treturn scope.query(plan);\n}\n//#endregion\n//#region src/collection-dispatch.ts\nfunction describeCollectionRows(options) {\n\treturn {\n\t\t...describeExecutionRows(options),\n\t\tconsume: createPreparedRowsConsumer(options)\n\t};\n}\nfunction describeExecutionRows(options) {\n\tconst { context, state, modelName } = options;\n\tconst { contract } = context;\n\treturn {\n\t\tplan: state.includes.length === 0 ? compileSelect(contract, modelName, state) : compileSelectWithIncludes(contract, context.aggregateDescriptors, modelName, state),\n\t\tconsume: (rows) => consumeCollectionRows(options, rows)\n\t};\n}\nfunction consumeCollectionRows(options, rows) {\n\tconst { context, state, modelName, namespaceId } = options;\n\tconst { contract } = context;\n\tif (state.includes.length > 0) return consumeIncludeRows(context, state, namespaceId, modelName, rows);\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\treturn mapResultRows(rows, polyInfo ? (rawRow) => blindCast(mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, state.tables, rawRow, state.variantValue)) : (rawRow) => blindCast(mapStorageRowToModelFields(contract, namespaceId, modelName, rawRow)));\n}\nfunction deferResolution(resolve) {\n\ttry {\n\t\tconst value = resolve();\n\t\treturn () => value;\n\t} catch (error) {\n\t\treturn () => {\n\t\t\tthrow error;\n\t\t};\n\t}\n}\nfunction createPreparedMapper(contract, namespaceId, modelName, state) {\n\tconst resolved = deferResolution(() => {\n\t\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\t\treturn polyInfo ? createPolymorphicRowMapper(contract, namespaceId, modelName, polyInfo, state.tables, state.variantValue) : createStorageRowMapper(contract, namespaceId, modelName);\n\t});\n\treturn (row) => resolved()(row);\n}\nfunction createPreparedRowsConsumer(options) {\n\tconst { context, state, namespaceId, modelName } = options;\n\tconst mapRow = createPreparedMapper(context.contract, namespaceId, modelName, state);\n\tconst includes = state.includes.map((include) => createPreparedIncludeConsumer(context, include));\n\tconst castRow = (row) => blindCast(row);\n\tif (includes.length === 0) return (rows) => mapResultRows(rows, (row) => castRow(mapRow(row)));\n\treturn (rows) => new AsyncIterableResult((async function* () {\n\t\tconst parents = (await rows.toArray()).map((raw) => ({\n\t\t\traw,\n\t\t\tmapped: mapRow(raw)\n\t\t}));\n\t\tfor (const parent of parents) for (const include of includes) parent.mapped[include.alias] = include.consume(parent.raw[include.alias]);\n\t\tfor (const parent of parents) yield castRow(parent.mapped);\n\t})());\n}\nfunction createPreparedIncludeConsumer(context, include) {\n\tconst { contract } = context;\n\tconst alias = include.relationName;\n\tif (include.scalar) return {\n\t\talias,\n\t\tconsume: createPreparedScalarConsumer(context, include, include.scalar)\n\t};\n\tif (include.combine) {\n\t\tconst branches = Object.entries(include.combine).map(([name, branch]) => ({\n\t\t\tname,\n\t\t\tconsume: branch.kind === \"rows\" ? createPreparedIncludeConsumer(context, {\n\t\t\t\t...include,\n\t\t\t\tnested: branch.state,\n\t\t\t\tscalar: void 0,\n\t\t\t\tcombine: void 0\n\t\t\t}).consume : createPreparedScalarConsumer(context, include, branch.selector)\n\t\t}));\n\t\treturn {\n\t\t\talias,\n\t\t\tconsume: (raw) => {\n\t\t\t\tconst parsed = parseCombineEnvelope(include, raw);\n\t\t\t\tconst result = {};\n\t\t\t\tfor (const branch of branches) result[branch.name] = branch.consume(parsed[branch.name]);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t};\n\t}\n\tconst mapRow = createPreparedMapper(contract, include.relatedNamespaceId, include.relatedModelName, include.nested);\n\tconst bindings = deferResolution(() => {\n\t\tconst namespace = include.relatedNamespaceId;\n\t\tconst keys = new Set(getColumnsReadOnTable(contract, ...addressedModel(contract, namespace, include.relatedModelName, include.nested.variantValue), include.relatedTableName, namespace));\n\t\tconst polyInfo = resolvePolymorphismInfo(contract, namespace, include.relatedModelName);\n\t\tfor (const variant of polyInfo?.mtiVariants ?? []) {\n\t\t\tconst variantTable = requireVariantTable(include.nested.tables, variant.value);\n\t\t\tfor (const column of getColumnsReadOnTable(contract, variantTable.storage.namespaceId, variant.modelName, variantTable.storage.tableName)) keys.add(variantColumnLabel(variantTable, column));\n\t\t}\n\t\treturn new Map([...keys].map((key) => [key, deferResolution(() => resolveIncludedColumnBinding(contract, context, include, key))]));\n\t});\n\tconst bindingFor = (key) => bindings().get(key)?.() ?? null;\n\tconst nested = include.nested.includes.map((child) => createPreparedIncludeConsumer(context, child));\n\tconst toOne = isToOneCardinality(include.cardinality);\n\tconst fused = deferResolution(() => createPreparedIncludedRowDecoder(contract, include, bindingFor));\n\treturn {\n\t\talias,\n\t\tconsume: (raw) => {\n\t\t\tconst rows = parseIncludedRows(include, raw);\n\t\t\tif (rows.length === 0) return toOne ? null : [];\n\t\t\tconst decoder = fused();\n\t\t\tif (!decoder || !rows.every(decoder.matches)) return consumeRowInclude(rows, mapRow, bindingFor, nested, toOne);\n\t\t\tconst mapped = rows.map((row) => {\n\t\t\t\tconst result = decoder.decode(row);\n\t\t\t\tfor (const child of nested) result[child.alias] = child.consume(row[child.alias]);\n\t\t\t\treturn result;\n\t\t\t});\n\t\t\treturn toOne ? mapped[0] ?? null : mapped;\n\t\t}\n\t};\n}\nfunction createPreparedIncludedRowDecoder(contract, include, bindingFor) {\n\tconst namespace = include.relatedNamespaceId;\n\tconst model = include.relatedModelName;\n\tif (resolvePolymorphismInfo(contract, namespace, model)) return void 0;\n\tconst columnToField = getModelColumnFields(contract, namespace, model);\n\tconst columns = include.nested.selectedFields ?? getColumnsReadOnTable(contract, namespace, model, include.relatedTableName);\n\tconst aliases = include.nested.includes.map((child) => child.relationName);\n\tconst table = contract.storage.namespaces[namespace]?.entries.table?.[include.relatedTableName];\n\tif (aliases.some((alias) => table?.columns[alias] !== void 0)) return void 0;\n\tconst keys = [...columns, ...aliases];\n\tif (keys.includes(\"__proto__\") || new Set(keys).size !== keys.length) return void 0;\n\tconst fieldOf = (key) => aliases.includes(key) ? key : fieldOfColumn(columnToField, model, key);\n\tconst operations = keys.map((key) => {\n\t\tconst binding = deferResolution(() => bindingFor(key));\n\t\treturn {\n\t\t\tkey,\n\t\t\tfield: fieldOf(key),\n\t\t\tdecode(value) {\n\t\t\t\tif (value === null || value === void 0) return value;\n\t\t\t\tconst resolved = binding();\n\t\t\t\treturn resolved ? decodeIncludedColumnValue(resolved.ref, resolved.codecId, resolved.codec, value) : value;\n\t\t\t}\n\t\t};\n\t});\n\treturn {\n\t\tmatches(row) {\n\t\t\tconst actual = Object.keys(row);\n\t\t\treturn actual.length === keys.length && actual.every((key, index) => key === keys[index]);\n\t\t},\n\t\tdecode(row) {\n\t\t\tconst result = {};\n\t\t\tfor (const operation of operations) result[operation.field] = operation.decode(row[operation.key]);\n\t\t\treturn result;\n\t\t}\n\t};\n}\nfunction createPreparedScalarConsumer(context, include, scalar) {\n\tconst metadata = deferResolution(() => resolveScalarIncludeMetadata(context.contract, context, include, scalar));\n\treturn (raw) => {\n\t\tconst { resolved, codec } = metadata();\n\t\treturn consumeScalarInclude(include, resolved, codec, raw);\n\t};\n}\nasync function consumeFirstRow(rows) {\n\treturn (await rows.toArray())[0] ?? null;\n}\nfunction describeCollectionFirst(options) {\n\tconst rows = describeCollectionRows(options);\n\treturn {\n\t\t...rows,\n\t\tconsume: (source) => consumeFirstRow(rows.consume(source))\n\t};\n}\nfunction describeCollectionFirstOrThrow(options) {\n\tconst rows = describeCollectionRows(options);\n\treturn {\n\t\t...rows,\n\t\tconsume: (source) => rows.consume(source).firstOrThrow()\n\t};\n}\nfunction dispatchCollectionRows(options) {\n\tconst { context, runtime, state, modelName, namespaceId } = options;\n\tconst descriptionOptions = {\n\t\tcontext,\n\t\tstate,\n\t\tmodelName,\n\t\tnamespaceId\n\t};\n\tif (state.includes.length === 0) {\n\t\tconst query = describeExecutionRows(descriptionOptions);\n\t\treturn query.consume(queryPlanRows(runtime, query.plan));\n\t}\n\tresolvePolymorphismInfo(context.contract, namespaceId, modelName);\n\tconst generator = async function* () {\n\t\tconst query = describeExecutionRows(descriptionOptions);\n\t\tyield* query.consume(queryPlanRows(runtime, query.plan));\n\t};\n\treturn new AsyncIterableResult(generator());\n}\nfunction consumeIncludeRows(context, state, namespaceId, modelName, rows) {\n\tconst { contract } = context;\n\tconst generator = async function* () {\n\t\tconst parentRowsRaw = await rows.toArray();\n\t\tif (parentRowsRaw.length === 0) return;\n\t\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\t\tconst parentRows = parentRowsRaw.map((row) => {\n\t\t\treturn {\n\t\t\t\traw: row,\n\t\t\t\tmapped: polyInfo ? mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, state.tables, row, state.variantValue) : mapStorageRowToModelFields(contract, namespaceId, modelName, row)\n\t\t\t};\n\t\t});\n\t\tconst bindings = /* @__PURE__ */ new WeakMap();\n\t\tfor (const parent of parentRows) for (const include of state.includes) parent.mapped[include.relationName] = decodeIncludePayload(contract, context, include, parent.raw[include.relationName], bindings);\n\t\tfor (const row of parentRows) yield blindCast(row.mapped);\n\t};\n\treturn new AsyncIterableResult(generator());\n}\n/**\n* Reload the rows a mutation just wrote (create / createAll / update /\n* updateAll / upsert) through the read-path dispatch, so `.include()`\n* relations resolve via the exact same correlated-subquery builder,\n* decoding, and polymorphism mapping a read query uses — there is no\n* parallel mutation read-back implementation.\n*\n* The mutation returns only its identity columns (PK / unique); this\n* re-selects those rows with the caller's projection + includes, keyed\n* by `identity IN (...)`. One round-trip regardless of row count or\n* include depth. The read-back observes the just-written rows because\n* it runs on the same runtime — and therefore the same transaction —\n* the mutation ran on.\n*\n* Delete read-back does NOT come through here: a parent-anchored\n* include query can't observe an already-deleted row, so delete reads\n* its snapshot before issuing the DELETE (see `collection.ts`).\n*/\n/**\n* Decode a single-query include payload from a parent row's raw cell\n* into the model-shaped value that downstream consumers see. Recurses\n* through `include.nested.includes` so depth-2+ trees — emitted by the\n* recursive correlated-subquery builder — are decoded symmetrically.\n*\n* The shape produced by the SQL side is one JSON column per top-level\n* include; values nested inside that JSON are already-parsed JS values\n* after the outer `JSON.parse`, so `parseIncludedRows` recognises both\n* the string (top-level) and array (nested) forms.\n*\n* Scalar leaves arrive wrapped in a `{ value: <primitive> }` JSON\n* envelope (see `buildIncludeChildScalarSelect`); the branch below\n* unwraps that envelope and passes the value straight through. The empty-relation value reads off\n* the operation's declared row via `emptyAggregateResult`: `null` where the row is nullable,\n* otherwise the row's declared empty value (so `count()` is `0`).\n*\n* Combine descriptors arrive as a JSON object keyed by branch name;\n* each branch is dispatched to the row or scalar decoder per its\n* declared shape (see `decodeCombineIncludePayload`).\n*/\nfunction decodeIncludePayload(contract, context, include, raw, bindings) {\n\tif (include.scalar) return decodeScalarIncludePayload(contract, context, include, include.scalar, raw);\n\tif (include.combine) return decodeCombineIncludePayload(contract, context, include, include.combine, raw, bindings);\n\tconst rawChildren = parseIncludedRows(include, raw);\n\tconst polyInfo = resolvePolymorphismInfo(contract, include.relatedNamespaceId, include.relatedModelName);\n\tconst mapChildRow = polyInfo ? (childRow) => mapPolymorphicRow(contract, include.relatedNamespaceId, include.relatedModelName, polyInfo, include.nested.tables, childRow, include.nested.variantValue) : createStorageRowMapper(contract, include.relatedNamespaceId, include.relatedModelName);\n\tlet columns = bindings.get(include);\n\tif (!columns) {\n\t\tcolumns = /* @__PURE__ */ new Map();\n\t\tbindings.set(include, columns);\n\t}\n\tconst columnBindings = columns;\n\treturn consumeRowInclude(rawChildren, mapChildRow, (key) => {\n\t\tlet binding = columnBindings.get(key);\n\t\tif (binding === void 0) {\n\t\t\tbinding = resolveIncludedColumnBinding(contract, context, include, key);\n\t\t\tcolumnBindings.set(key, binding);\n\t\t}\n\t\treturn binding;\n\t}, include.nested.includes.map((nested) => ({\n\t\talias: nested.relationName,\n\t\tconsume: (value) => decodeIncludePayload(contract, context, nested, value, bindings)\n\t})), isToOneCardinality(include.cardinality));\n}\nfunction consumeRowInclude(rawChildren, mapChildRow, bindingFor, nested, toOne) {\n\tconst mappedChildren = [];\n\tfor (const childRow of rawChildren) {\n\t\tconst decodedChildRow = decodeIncludedStorageRow(childRow, bindingFor);\n\t\tconst mapped = mapChildRow(decodedChildRow);\n\t\tfor (const child of nested) mapped[child.alias] = child.consume(decodedChildRow[child.alias]);\n\t\tmappedChildren.push(mapped);\n\t}\n\treturn toOne ? mappedChildren[0] ?? null : mappedChildren;\n}\nfunction decodeIncludedStorageRow(row, bindingFor) {\n\tconst decoded = {};\n\tfor (const [key, value] of Object.entries(row)) {\n\t\tif (value === null || value === void 0) {\n\t\t\tdecoded[key] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tconst binding = bindingFor(key);\n\t\tdecoded[key] = binding ? decodeIncludedColumnValue(binding.ref, binding.codecId, binding.codec, value) : value;\n\t}\n\treturn decoded;\n}\nfunction resolveIncludedColumnBinding(contract, context, include, key) {\n\tconst ref = resolveIncludedColumnRef(contract, include, key);\n\tif (!ref) return null;\n\tconst codec = context.contractCodecs.forColumn(ref.namespaceId, ref.table, ref.column);\n\tif (!codec) return null;\n\treturn {\n\t\tref,\n\t\tcodec,\n\t\tcodecId: context.codecDescriptors.codecRefForColumn(ref.namespaceId, ref.table, ref.column)?.codecId ?? ref.storageColumn.codecId\n\t};\n}\nfunction resolveIncludedColumnRef(contract, include, key) {\n\tconst baseColumn = resolveColumn(contract, include.relatedNamespaceId, include.relatedTableName, key);\n\tif (baseColumn) return {\n\t\tnamespaceId: include.relatedNamespaceId,\n\t\ttable: include.relatedTableName,\n\t\tcolumn: key,\n\t\tstorageColumn: baseColumn\n\t};\n\tconst polyInfo = resolvePolymorphismInfo(contract, include.relatedNamespaceId, include.relatedModelName);\n\tif (!polyInfo) return;\n\tfor (const variant of polyInfo.mtiVariants) {\n\t\tconst variantTable = requireVariantTable(include.nested.tables, variant.value);\n\t\tconst prefix = variantColumnLabelPrefix(variantTable);\n\t\tif (!key.startsWith(prefix)) continue;\n\t\tconst column = key.slice(prefix.length);\n\t\tconst { namespaceId, tableName } = variantTable.storage;\n\t\tconst variantColumn = resolveColumn(contract, namespaceId, tableName, column);\n\t\tif (variantColumn) return {\n\t\t\tnamespaceId,\n\t\t\ttable: tableName,\n\t\t\tcolumn,\n\t\t\tstorageColumn: variantColumn\n\t\t};\n\t}\n}\nfunction decodeIncludedColumnValue(ref, codecId, codec, value) {\n\tif (ref.storageColumn.many !== false) {\n\t\tif (!Array.isArray(value)) wrapIncludedDecodeFailure(/* @__PURE__ */ new TypeError(`expected an array from the driver for many-typed column, got ${typeof value}`), ref, codecId);\n\t\tconst decoded = [];\n\t\tfor (const element of value) {\n\t\t\tif (element === null || element === void 0) {\n\t\t\t\tdecoded.push(null);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdecoded.push(decodeIncludedJsonValue(ref, codecId, codec, element));\n\t\t}\n\t\treturn decoded;\n\t}\n\treturn decodeIncludedJsonValue(ref, codecId, codec, value);\n}\n/** `ref` names the value for a decode failure; an aggregate names its relation where a column would name itself. */\nfunction decodeIncludedJsonValue(ref, codecId, codec, value) {\n\ttry {\n\t\treturn codec.decodeJson(blindCast(value));\n\t} catch (error) {\n\t\tif (isRuntimeError(error)) throw error;\n\t\twrapIncludedDecodeFailure(error, ref, codecId);\n\t}\n}\nfunction wrapIncludedDecodeFailure(error, ref, codecId) {\n\tif (isInternalError(error)) throw error;\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to decode column ${ref.table}.${ref.column} with codec '${codecId}': ${message}`, {\n\t\ttable: ref.table,\n\t\tcolumn: ref.column,\n\t\tcodec: codecId\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\n/**\n* Decode the combine payload produced by `buildIncludeChildCombineSelect`.\n*\n* The raw value is a JSON object (already parsed by the SQL layer when\n* top-level, or already a JS object when nested) whose keys are branch\n* names. Each branch value is decoded per its declared kind:\n* - row branch -> recurse via `decodeIncludePayload` with a synthetic\n* IncludeExpr carrying the branch's state in `nested`. This walks\n* nested row-level includes the same way a plain row include would.\n* - scalar branch -> unwrap the `{value: ...}` envelope via the\n* standalone scalar decoder.\n*\n* On a parent with zero matching child rows the correlated subquery\n* still produces one row (aggregates collapse the empty input to a\n* single row), so the combine envelope here is always present in the\n* read path. Mutation read-back goes through the same read dispatch,\n* so a missing or non-object envelope here is always a planner/decoder\n* bug — `parseCombineEnvelope` throws loudly rather than papering over\n* it with an empty shape.\n*/\nfunction decodeCombineIncludePayload(contract, context, include, branches, raw, bindings) {\n\tconst parsed = parseCombineEnvelope(include, raw);\n\tconst result = {};\n\tfor (const [branchName, branch] of Object.entries(branches)) {\n\t\tconst branchRaw = parsed[branchName];\n\t\tif (branch.kind === \"rows\") result[branchName] = decodeIncludePayload(contract, context, {\n\t\t\t...include,\n\t\t\tnested: branch.state,\n\t\t\tscalar: void 0,\n\t\t\tcombine: void 0\n\t\t}, branchRaw, bindings);\n\t\telse result[branchName] = decodeScalarIncludePayload(contract, context, include, branch.selector, branchRaw);\n\t}\n\treturn result;\n}\nfunction parseCombineEnvelope(include, raw) {\n\tif (raw === null || raw === void 0) throw new InternalError(`combine() envelope for include \"${include.relationName}\" is missing (got ${raw === null ? \"null\" : \"undefined\"}); the correlated subquery should always produce a JSON object — this indicates a planner or decoder bug.`);\n\tconst parsed = parseIncludePayload(raw);\n\tif (!isPlainObjectEnvelope(parsed)) throw new InternalError(`combine() envelope for include \"${include.relationName}\" has unexpected shape (expected object, got ${describeEnvelopeShape(parsed)}); this indicates a planner or decoder bug.`);\n\treturn parsed;\n}\nfunction isPlainObjectEnvelope(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction describeEnvelopeShape(value) {\n\tif (value === null) return \"null\";\n\tif (Array.isArray(value)) return \"array\";\n\treturn typeof value;\n}\n/**\n* Pull the primitive scalar value out of the JSON envelope emitted by\n* the correlated scalar builder.\n*\n* Contract: the envelope is always either\n* - a `{ value: <primitive> }` JSON object (the SQL path), or\n* - `null` / `undefined` (no row reached the decoder), answered with `emptyAggregateResult`.\n*\n* Any other shape — array, primitive, string that JSON-parses to\n* non-object — indicates a planner / decoder bug, so we throw\n* loudly naming the include relation rather than soft-handling.\n* Mirrors `parseCombineEnvelope`'s strict shape gate.\n*\n* The value passes through its own codec — the one the planner projected it\n* under — because it arrived inside a JSON document, where a count past 2^53\n* would otherwise have been read as a rounded number. Resolution mirrors\n* planning — the same registry, operation, and column — so the empty-relation\n* answer derives from the operation's declared row: NULL where the row is\n* nullable, else the value that row declares. The outer `raw === null` fallback is\n* defensive cover for an empty parent set; in single-query dispatch the\n* correlated subquery always produces a row, so the inner envelope's `value`\n* is always set by SQL.\n*/\nfunction decodeScalarIncludePayload(contract, context, include, scalar, raw) {\n\tconst { resolved, codec } = resolveScalarIncludeMetadata(contract, context, include, scalar);\n\treturn consumeScalarInclude(include, resolved, codec, raw);\n}\nfunction resolveScalarIncludeMetadata(contract, context, include, scalar) {\n\tconst resolved = resolveAggregate({\n\t\taggregates: context.aggregateDescriptors,\n\t\tcontract,\n\t\tnamespaceId: include.relatedNamespaceId,\n\t\ttableName: include.relatedTableName,\n\t\tfn: scalar.fn,\n\t\tcolumn: scalar.column\n\t});\n\treturn {\n\t\tresolved,\n\t\tcodec: context.contractCodecs.forCodecRef(resolved.codec)\n\t};\n}\nfunction consumeScalarInclude(include, resolved, codec, raw) {\n\tif (raw === null || raw === void 0) return emptyAggregateResult(resolved, codec);\n\tconst parsed = parseIncludePayload(raw);\n\tif (!isPlainObjectEnvelope(parsed)) throw new InternalError(`scalar() envelope for include \"${include.relationName}\" has unexpected shape (expected object, got ${describeEnvelopeShape(parsed)}); this indicates a planner or decoder bug.`);\n\tconst value = parsed[\"value\"];\n\tif (value === null || value === void 0) return emptyAggregateResult(resolved, codec);\n\treturn decodeIncludedJsonValue({\n\t\ttable: include.relatedTableName,\n\t\tcolumn: include.relationName\n\t}, resolved.codec.codecId, codec, value);\n}\nfunction parseIncludedRows(include, value) {\n\tif (value === null || value === void 0) return [];\n\tconst parsed = parseIncludePayload(value);\n\tif (!Array.isArray(parsed)) return [];\n\tconst rows = [];\n\tfor (const item of parsed) {\n\t\tif (!isPlainObjectEnvelope(item)) throw new InternalError(`Include row envelope for relation \"${include.relationName}\" has unexpected shape (expected object, got ${describeEnvelopeShape(item)}); this indicates a planner or decoder bug.`);\n\t\trows.push({ ...item });\n\t}\n\treturn rows;\n}\nfunction parseIncludePayload(value) {\n\tif (typeof value !== \"string\") return value;\n\ttry {\n\t\treturn JSON.parse(value);\n\t} catch {\n\t\treturn [];\n\t}\n}\n//#endregion\n//#region src/filters.ts\n/** The filter expression of a condition: a condition from `fns` becomes its AST. */\nfunction conditionExpr(condition) {\n\treturn isFunctionCondition(condition) ? condition.buildAst() : condition;\n}\n/** A `where` callback's result as a filter: a condition from `fns` becomes its AST. */\nfunction whereArgOf(result) {\n\treturn isFunctionCondition(result) ? result.buildAst() : result;\n}\nfunction isFunctionCondition(value) {\n\treturn isExpression(value);\n}\nfunction and(...exprs) {\n\treturn AndExpr.of(exprs.map(conditionExpr));\n}\nfunction or(...exprs) {\n\treturn OrExpr.of(exprs.map(conditionExpr));\n}\nfunction not(expr) {\n\treturn conditionExpr(expr).not();\n}\nfunction all() {\n\treturn AndExpr.true();\n}\nfunction shorthandToWhereExpr(context, namespaceId, modelName, filters, table) {\n\tconst contract = context.contract;\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst exprs = [];\n\tfor (const [fieldName, value] of Object.entries(filters)) {\n\t\tif (value === void 0) continue;\n\t\tconst columnName = columnOfCallerField(contract, namespaceId, fieldColumns, modelName, fieldName);\n\t\tconst left = table.column(columnName);\n\t\tif (value === null) {\n\t\t\texprs.push(NullCheckExpr.isNull(left));\n\t\t\tcontinue;\n\t\t}\n\t\tassertFieldHasEqualityTrait(context, namespaceId, modelName, fieldName);\n\t\texprs.push(predicateComparison(\"eq\", left, predicateExpression(value) ?? paramRefForStorageColumn(contract, table.storage, columnName, value)));\n\t}\n\tif (exprs.length === 0) return;\n\treturn exprs.length === 1 ? exprs[0] : and(...exprs);\n}\nfunction assertFieldHasEqualityTrait(context, namespaceId, modelName, fieldName) {\n\tconst fieldType = modelOf(context.contract, namespaceId, modelName)?.fields?.[fieldName]?.type;\n\tconst codecId = fieldType?.kind === \"scalar\" ? fieldType.codecId : void 0;\n\tif (codecId === void 0 || !hasTrait(context, codecId, \"equality\")) throw ormError(\"ORM.FILTER_UNSUPPORTED\", `Shorthand filter on \"${modelName}.${fieldName}\": field does not support equality comparisons`, { meta: {\n\t\tmodel: modelName,\n\t\tfield: fieldName,\n\t\ttrait: \"equality\"\n\t} });\n}\n//#endregion\n//#region src/fragments.ts\nfunction nullability(nullable) {\n\treturn nullable ? \"may be null\" : \"is never null\";\n}\nfunction isFieldBuilder(value) {\n\treturn \"build\" in value && typeof value.build === \"function\";\n}\nfunction isListMultiplicity(value) {\n\treturn typeof value === \"object\" && value !== null && \"elementNullable\" in value && typeof value.elementNullable === \"boolean\";\n}\nfunction isMultiplicity(value) {\n\treturn value === void 0 || value === false || isListMultiplicity(value);\n}\nfunction isFieldSpec(value) {\n\treturn \"codecId\" in value && typeof value.codecId === \"string\" && \"nullable\" in value && typeof value.nullable === \"boolean\" && (!(\"many\" in value) || isMultiplicity(value.many));\n}\nfunction multiplicity(many) {\n\treturn isListMultiplicity(many) ? { elementNullable: many.elementNullable } : false;\n}\nconst FIELD_DECLARATION_FIX = \"Declare each field with a field builder, such as field.temporal.timestamptz().optional(), or with { codecId, nullable }. Declare a list with .many() or many: { elementNullable: false }, or, when its elements may be null, with .many({ elementsNullable: true }) or many: { elementNullable: true }.\";\nfunction declaredFieldSpec(name, declaration) {\n\tif (typeof declaration === \"object\" && declaration !== null && isFieldBuilder(declaration)) {\n\t\tconst built = declaration.build();\n\t\tconst descriptor = typeof built === \"object\" && built !== null && \"descriptor\" in built ? built.descriptor : void 0;\n\t\tconst nullable = typeof built === \"object\" && built !== null && \"nullable\" in built ? built.nullable : void 0;\n\t\tif (typeof descriptor !== \"object\" || descriptor === null || !(\"codecId\" in descriptor) || typeof descriptor.codecId !== \"string\" || typeof nullable !== \"boolean\") throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define the fragment: the field builder for ${name} names no column type`, {\n\t\t\twhy: \"A fragment for any model matches each declared field by its codec and nullability, and this builder refers to a named type instead of a column type.\",\n\t\t\tfix: \"Declare the field with a builder that has a column type, such as field.text() or field.column(textColumn), or with { codecId, nullable }.\",\n\t\t\tmeta: { field: name }\n\t\t});\n\t\tconst many = typeof built === \"object\" && built !== null && \"many\" in built && built.many;\n\t\tif (!isMultiplicity(many)) throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define the fragment: the field builder for ${name} builds a many that is not false or { elementNullable }`, {\n\t\t\twhy: `A field builder's build() returns many as false or undefined for one value, or as { elementNullable } with a boolean elementNullable for a list; received ${describeReceived(many)} for ${name}.`,\n\t\t\tfix: FIELD_DECLARATION_FIX,\n\t\t\tmeta: { field: name }\n\t\t});\n\t\treturn {\n\t\t\tcodecId: descriptor.codecId,\n\t\t\tnullable,\n\t\t\tmany: multiplicity(many)\n\t\t};\n\t}\n\tif (typeof declaration === \"object\" && declaration !== null && isFieldSpec(declaration)) return {\n\t\tcodecId: declaration.codecId,\n\t\tnullable: declaration.nullable,\n\t\tmany: multiplicity(declaration.many)\n\t};\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define the fragment: the declaration of field ${name} is not a field builder or { codecId, nullable }`, {\n\t\twhy: `Each field of a fragment is declared with a field builder or with an object that has a string codecId, a boolean nullable and, for a list, many: { elementNullable } with a boolean elementNullable; received ${describeReceived(declaration)} for ${name}.`,\n\t\tfix: FIELD_DECLARATION_FIX,\n\t\tmeta: { field: name }\n\t});\n}\nfunction declaredFieldSpecs(declarations) {\n\tif (typeof declarations !== \"object\" || declarations === null || Array.isArray(declarations)) throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot define the fragment: the fields are not an object\", {\n\t\twhy: `The first argument of fragment maps the name of each field the fragment needs to its declaration; received ${describeReceived(declarations)}.`,\n\t\tfix: FIELD_DECLARATION_FIX,\n\t\tmeta: { argument: \"fields\" }\n\t});\n\treturn Object.entries(declarations).map(([name, declaration]) => [name, declaredFieldSpec(name, declaration)]);\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `body`, the body of a fragment, is a function. */\nfunction assertFragmentBody(body) {\n\tif (typeof body !== \"function\") throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot define the fragment: the body is not a function\", {\n\t\twhy: `The body of a fragment is a function that receives a collection and returns one; received ${describeReceived(body)}.`,\n\t\tfix: \"Pass a function, such as (rows) => rows.where(...).\",\n\t\tmeta: { argument: \"body\" }\n\t});\n}\nfunction hasContract(ctx) {\n\treturn \"context\" in ctx && typeof ctx.context === \"object\" && ctx.context !== null && \"contract\" in ctx.context && typeof ctx.context.contract === \"object\" && ctx.context.contract !== null;\n}\nfunction isModelCollection(value) {\n\treturn typeof value === \"object\" && value !== null && \"ctx\" in value && typeof value.ctx === \"object\" && value.ctx !== null && hasContract(value.ctx) && \"modelName\" in value && typeof value.modelName === \"string\" && \"namespaceId\" in value && typeof value.namespaceId === \"string\";\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `value`, what a fragment is applied to, is a collection. */\nfunction assertFragmentReceiver(value) {\n\tif (!isModelCollection(value)) throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot apply the fragment: it was not given a collection\", {\n\t\twhy: `A fragment is applied to a collection, such as db.orm.public.Post; received ${describeReceived(value)}.`,\n\t\tfix: \"Pass the fragment to with on a collection: collection.with(fragment).\",\n\t\tmeta: { argument: \"collection\" }\n\t});\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `value` is a collection of the model and namespace a fragment for one model was made from. */\nfunction assertModelFragmentReceiver(source, value) {\n\tassertFragmentReceiver(value);\n\tif (value.modelName !== source.modelName || value.namespaceId !== source.namespaceId) {\n\t\tconst made = `${source.namespaceId}.${source.modelName}`;\n\t\tconst given = `${value.namespaceId}.${value.modelName}`;\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot apply a fragment for ${made} to a collection of ${given}`, {\n\t\t\twhy: `The fragment was made with ${made}.fragment(...), and its body was written for that model.`,\n\t\t\tfix: `Apply the fragment to a collection of ${made}, or make a fragment from ${given}.`,\n\t\t\tmeta: {\n\t\t\t\tmodel: source.modelName,\n\t\t\t\tnamespace: source.namespaceId,\n\t\t\t\treceivedModel: value.modelName,\n\t\t\t\treceivedNamespace: value.namespaceId\n\t\t\t}\n\t\t});\n\t}\n}\nfunction firstQueryState(state) {\n\treturn [\n\t\t[\"a variant\", state.variantValue !== void 0],\n\t\t[\"a cursor\", state.cursor !== void 0],\n\t\t[\"distinctOn\", state.distinctOn !== void 0],\n\t\t[\"distinct\", state.distinct !== void 0],\n\t\t[\"a filter\", state.filters.length > 0],\n\t\t[\"an order\", state.orderBy !== void 0],\n\t\t[\"a limit\", state.limit !== void 0],\n\t\t[\"an offset\", state.offset !== void 0],\n\t\t[\"an include\", state.includes.length > 0],\n\t\t[\"selected fields\", state.selectedFields !== void 0],\n\t\t[\"a row lock\", state.locking !== void 0]\n\t].find(([, isPresent]) => isPresent)?.[0];\n}\n/** Throws `ORM.ARGUMENT_INVALID` when the collection a fragment for one model is made from carries query state, which the fragment would ignore. */\nfunction assertModelFragmentSource(source) {\n\tconst state = firstQueryState(source.state);\n\tif (state === void 0) return;\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot define a fragment from a collection of ${source.modelName} that has ${state}`, {\n\t\twhy: \"A fragment for one model is built from the model alone, so the calls before .fragment(...) would be ignored.\",\n\t\tfix: `Call fragment on the model's root collection, such as db.orm.${source.namespaceId}.${source.modelName}.fragment(...), and apply the other calls where the fragment is used.`,\n\t\tmeta: {\n\t\t\tmethod: \"fragment\",\n\t\t\tmodel: source.modelName,\n\t\t\tstate\n\t\t}\n\t});\n}\n/** The model as error messages name it: with its namespace when the contract has more than one. */\nfunction modelLabel(collection) {\n\treturn Object.keys(collection.ctx.context.contract.domain.namespaces).length > 1 ? `${collection.namespaceId}.${collection.modelName}` : collection.modelName;\n}\n/** Throws `ORM.ARGUMENT_INVALID` unless `result`, what a fragment's body returned, is a collection of the receiver's model, namespace and class. */\nfunction assertDeclaredFieldsFragmentResult(receiver, result) {\n\tif (!(isModelCollection(result) && result.modelName === receiver.modelName && result.namespaceId === receiver.namespaceId && result instanceof receiver.constructor)) {\n\t\tconst label = modelLabel(receiver);\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot apply the fragment to ${label}: its body did not return a collection of ${label}`, {\n\t\t\twhy: `The body of a fragment for any model returns the collection it received, after where, orderBy, limit or offset; it returned ${isModelCollection(result) ? `a collection of ${modelLabel(result)}` : describeReceived(result)}.`,\n\t\t\tfix: \"Return the collection the body receives, or one made from it by calling its methods.\",\n\t\t\tmeta: {\n\t\t\t\tmodel: receiver.modelName,\n\t\t\t\tnamespace: receiver.namespaceId,\n\t\t\t\treturned: isModelCollection(result) ? result.modelName : describeReceived(result)\n\t\t\t}\n\t\t});\n\t}\n}\nfunction elementNullability(elementNullable) {\n\treturn elementNullable ? \"may be null\" : \"are never null\";\n}\nfunction sameMultiplicity(a, b) {\n\treturn a === false || b === false ? a === b : a.elementNullable === b.elementNullable;\n}\nfunction fieldShape(many) {\n\treturn many === false ? \"holds one value\" : `is a list whose elements ${elementNullability(many.elementNullable)}`;\n}\nfunction declarationFor(many) {\n\tif (many === false) return \"as one value, without .many() or many\";\n\treturn many.elementNullable ? \"as a list whose elements may be null, with .many({ elementsNullable: true }) or many: { elementNullable: true }\" : \"as a list whose elements are never null, with .many() or many: { elementNullable: false }\";\n}\nfunction describeField(field) {\n\tconst value = `with codec ${field.codecId} that ${nullability(field.nullable)}`;\n\treturn field.many === false ? value : `${value} and whose elements ${elementNullability(field.many.elementNullable)}`;\n}\nfunction assertDeclaredFieldsFragmentFields(collection, fields) {\n\tconst { contract } = collection.ctx.context;\n\tconst { modelName, namespaceId } = collection;\n\tconst label = modelLabel(collection);\n\tconst modelFields = getModelFields(contract, namespaceId, modelName);\n\tfor (const [name, spec] of fields) {\n\t\tconst declared = `The fragment was declared for models that have a ${spec.many === false ? \"field\" : \"list field\"} ${name} ${describeField(spec)}.`;\n\t\tconst meta = {\n\t\t\tmodel: modelName,\n\t\t\tnamespace: namespaceId,\n\t\t\tfield: name,\n\t\t\tcodecId: spec.codecId,\n\t\t\tnullable: spec.nullable,\n\t\t\tmany: spec.many\n\t\t};\n\t\tconst fieldColumn = Object.hasOwn(modelFields, name) ? modelFields[name] : void 0;\n\t\tif (fieldColumn === void 0) throw ormError(\"ORM.FIELD_UNKNOWN\", `Cannot apply a fragment to ${label}: it has no field ${name}`, {\n\t\t\twhy: declared,\n\t\t\tfix: `Apply the fragment to a model that has a field ${name}, or remove ${name} from the declaration in the fragment.`,\n\t\t\tmeta\n\t\t});\n\t\tconst fieldMany = multiplicity(domainFieldOf(contract, namespaceId, modelName, name)?.many);\n\t\tconst column = resolveColumn(contract, fieldColumn.namespaceId, fieldColumn.table, fieldColumn.column);\n\t\tconst actual = column === void 0 ? `${label}.${name} has no column.` : fieldMany === false ? `${label}.${name} has codec ${column.codecId} and ${nullability(column.nullable)}.` : `${label}.${name} is a list ${describeField({\n\t\t\tcodecId: column.codecId,\n\t\t\tnullable: column.nullable,\n\t\t\tmany: fieldMany\n\t\t})}.`;\n\t\tconst sameCodecAndNullability = column?.codecId === spec.codecId && column.nullable === spec.nullable;\n\t\tif (!sameCodecAndNullability || !sameMultiplicity(fieldMany, spec.many)) throw ormError(\"ORM.FIELD_UNKNOWN\", `Cannot apply a fragment to ${label}: its field ${name} does not match the declaration`, {\n\t\t\twhy: `${declared} ${actual}`,\n\t\t\tfix: sameCodecAndNullability ? `Apply the fragment to a model whose ${name} field ${fieldShape(spec.many)}, or declare ${name} ${declarationFor(fieldMany)}.` : `Apply the fragment to a model whose ${name} field has that codec and nullability, or change the declaration in the fragment.`,\n\t\t\tmeta\n\t\t});\n\t}\n}\n/**\n* Define a fragment for any model that has the declared fields. Reached as the `fragment` method of the client `orm()` returns.\n*/\nfunction defineDeclaredFieldsFragment(declarations, body) {\n\tconst fields = declaredFieldSpecs(declarations);\n\tassertFragmentBody(body);\n\treturn blindCast((collection) => {\n\t\tconst receiver = collection;\n\t\tassertFragmentReceiver(receiver);\n\t\tassertDeclaredFieldsFragmentFields(receiver, fields);\n\t\tconst result = collectionBehind(body(blindCast(withoutIndexes(receiver))));\n\t\tassertDeclaredFieldsFragmentResult(receiver, result);\n\t\treturn result;\n\t});\n}\nconst NO_INDEXES = Object.freeze({});\nconst collectionsBehindViews = /* @__PURE__ */ new WeakMap();\nconst BODY_CHAIN_METHODS = {\n\twhere: true,\n\torderBy: true,\n\tlimit: true,\n\toffset: true\n};\n/**\n* The collection as the body of a fragment for any model sees it: a `where` or `orderBy` callback receives `fns` and an `indexes` with no members, as the body does not know its model.\n*/\nfunction withoutIndexes(collection) {\n\tconst view = new Proxy(collection, { get(target, prop) {\n\t\tconst member = Reflect.get(target, prop, target);\n\t\tif (typeof member !== \"function\") return member;\n\t\tif (!Object.hasOwn(BODY_CHAIN_METHODS, prop)) return member.bind(target);\n\t\treturn (...args) => {\n\t\t\tconst result = Reflect.apply(member, target, args.map(withoutIndexesInCallbacks));\n\t\t\treturn typeof result === \"object\" && result !== null ? withoutIndexes(result) : result;\n\t\t};\n\t} });\n\tcollectionsBehindViews.set(view, collection);\n\treturn view;\n}\nfunction withoutIndexesInCallbacks(argument) {\n\tif (Array.isArray(argument)) return argument.map(withoutIndexesInCallbacks);\n\tif (typeof argument !== \"function\") return argument;\n\treturn (row, tools) => Reflect.apply(argument, void 0, [row, {\n\t\tfns: Reflect.get(Object(tools), \"fns\"),\n\t\tindexes: NO_INDEXES\n\t}]);\n}\nfunction collectionBehind(value) {\n\treturn typeof value === \"object\" && value !== null ? collectionsBehindViews.get(value) ?? value : value;\n}\nconst SHOWN_LENGTH = 64;\nfunction shown(value) {\n\tconst characters = Array.from(value);\n\tconst cut = characters.length > SHOWN_LENGTH;\n\treturn {\n\t\ttext: JSON.stringify(cut ? `${characters.slice(0, SHOWN_LENGTH).join(\"\")}…` : value),\n\t\tcut\n\t};\n}\nfunction describeReceived(value) {\n\tif (value === void 0 || value === null) return String(value);\n\tif (Array.isArray(value)) return \"an array\";\n\tconst kind = typeof value;\n\treturn kind === \"object\" ? \"an object\" : `a ${kind}`;\n}\nfunction cutNote(subject, value) {\n\treturn value.cut ? ` The ${subject} above is cut to its first ${SHOWN_LENGTH} characters.` : \"\";\n}\nfunction fieldCodecId(collection, field) {\n\tconst { contract } = collection.ctx.context;\n\tconst modelFields = getModelFields(contract, collection.namespaceId, collection.modelName);\n\tconst fieldColumn = Object.hasOwn(modelFields, field) ? modelFields[field] : void 0;\n\tif (fieldColumn === void 0) return void 0;\n\treturn resolveColumn(contract, fieldColumn.namespaceId, fieldColumn.table, fieldColumn.column)?.codecId;\n}\n/** The domain declaration of a model's own or inherited field. */\nfunction domainFieldOf(contract, namespaceId, modelName, name) {\n\tlet model = modelOf(contract, namespaceId, modelName);\n\twhile (model !== void 0) {\n\t\tconst fields = model.fields ?? {};\n\t\tif (Object.hasOwn(fields, name)) return fields[name];\n\t\tconst base = model.base;\n\t\tmodel = base === void 0 ? void 0 : modelOf(contract, base.namespace, base.model);\n\t}\n}\nfunction canOrder(collection, field) {\n\tconst codecId = fieldCodecId(collection, field);\n\treturn codecId !== void 0 && hasTrait(collection.ctx.context, codecId, \"order\");\n}\nfunction orderableFieldNames(collection) {\n\tconst modelFields = getModelFields(collection.ctx.context.contract, collection.namespaceId, collection.modelName);\n\treturn Object.keys(modelFields).filter((field) => canOrder(collection, field));\n}\nfunction whyNotOrderable(collection, name) {\n\tconst { modelName } = collection;\n\tconst model = modelOf(collection.ctx.context.contract, collection.namespaceId, modelName);\n\tconst quoted = shown(name).text;\n\tif (Object.hasOwn(model?.relations ?? {}, name)) return `${quoted} is a relation of ${modelName}, not a field.`;\n\tif (!Object.hasOwn(getModelFields(collection.ctx.context.contract, collection.namespaceId, modelName), name)) return `${modelName} has no field ${quoted}.`;\n\treturn canOrder(collection, name) ? `${quoted} is not one of the fields allowed for ordering.` : `The codec ${fieldCodecId(collection, name)} of ${modelName}.${name} cannot be ordered.`;\n}\n/**\n* An `orderBy` selector for a field named by a string, such as an order parameter of a request. `allowed` lists the fields a request may order by. A name that is not in `allowed` or not an orderable field of the collection's model, and a direction other than `asc` or `desc`, throw `ORM.ARGUMENT_INVALID`. An undefined direction is `asc`.\n*\n* ```ts\n* db.Post.orderBy(orderByField(db.Post, input.orderBy, input.direction, ['title', 'createdAt']));\n* ```\n*/\nfunction orderByField(collection, name, direction, allowed) {\n\tconst receiver = collection;\n\tif (!isModelCollection(receiver)) throw ormError(\"ORM.ARGUMENT_INVALID\", \"Cannot order: orderByField was not given a collection\", {\n\t\twhy: `orderByField takes the collection it orders, such as db.orm.public.Post; received ${describeReceived(receiver)}.`,\n\t\tfix: \"Pass the collection the selector is for as the first argument.\",\n\t\tmeta: { argument: \"collection\" }\n\t});\n\tconst { modelName } = collection;\n\tconst requestedName = name;\n\tconst requestedDirection = direction === void 0 ? \"asc\" : direction;\n\tconst allowedList = allowed;\n\tif (!Array.isArray(allowedList) || allowedList.some((field) => typeof field !== \"string\")) throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName}: the allowed fields are not a list of names`, {\n\t\twhy: `orderByField takes the list of fields a request may order by; received ${describeReceived(allowedList)}.`,\n\t\tfix: `Pass an array of field names of ${modelName}, such as ['title', 'createdAt'].`,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\targument: \"allowed\"\n\t\t}\n\t});\n\tif (typeof requestedDirection !== \"string\") throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName}: the direction is not a string`, {\n\t\twhy: `An order direction is \"asc\" or \"desc\"; received ${describeReceived(requestedDirection)}.`,\n\t\tfix: \"Pass \\\"asc\\\" or \\\"desc\\\".\",\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tdirection: requestedDirection\n\t\t}\n\t});\n\tif (!isOrderByDirection(requestedDirection)) {\n\t\tconst shownDirection = shown(requestedDirection);\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName} in direction ${shownDirection.text}`, {\n\t\t\twhy: \"An order direction is \\\"asc\\\" or \\\"desc\\\".\",\n\t\t\tfix: `Pass \"asc\" or \"desc\".${cutNote(\"direction\", shownDirection)}`,\n\t\t\tmeta: {\n\t\t\t\tmodel: modelName,\n\t\t\t\tdirection: requestedDirection\n\t\t\t}\n\t\t});\n\t}\n\tconst orderable = orderableFieldNames(collection);\n\tconst names = allowedList.filter((field) => orderable.includes(field));\n\tconst orderByOneOf = names.length === 0 ? `Pass an allowed list that names at least one field of ${modelName} that can be ordered.` : `Order by one of: ${names.join(\", \")}.`;\n\tif (typeof requestedName !== \"string\") throw ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName}: the field name is not a string`, {\n\t\twhy: `An order field name is a string; received ${describeReceived(requestedName)}.`,\n\t\tfix: orderByOneOf,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tfield: requestedName\n\t\t}\n\t});\n\tif (!names.includes(requestedName)) {\n\t\tconst shownName = shown(requestedName);\n\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot order ${modelName} by ${shownName.text}`, {\n\t\t\twhy: whyNotOrderable(collection, requestedName),\n\t\t\tfix: `${orderByOneOf}${cutNote(\"name\", shownName)}`,\n\t\t\tmeta: {\n\t\t\t\tmodel: modelName,\n\t\t\t\tfield: requestedName\n\t\t\t}\n\t\t});\n\t}\n\tconst field = blindCast(requestedName);\n\tconst order = requestedDirection;\n\treturn (row) => row[field][order]();\n}\n//#endregion\n//#region src/callback-tools.ts\n/**\n* Refuses a bare value in `fns.raw` when the execution context has no raw codec inferer, as a hand-built context may not.\n*/\nconst rawCodecInfererUnavailable = { inferCodec(value) {\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", \"fns.raw cannot infer the codec of an interpolated value: the execution context has no raw codec inferer.\", {\n\t\twhy: \"A value interpolated into fns.raw is bound as a parameter, and its codec comes from the adapter.\",\n\t\tfix: \"Wrap the value with param(value, { codecId }), or pass orm() an execution context built from an execution stack, such as the client's db.context.\",\n\t\tmeta: { argument: typeof value }\n\t});\n} };\n/**\n* The expression with `asc()` and `desc()` added. Its own properties read as they are, which a frozen expression requires; an inherited method is bound to the expression, so it keeps working.\n*/\nfunction orderable(expression) {\n\tconst order = {\n\t\tasc: (options) => checkedOrderByItem(\"asc\", expression.buildAst(), options),\n\t\tdesc: (options) => checkedOrderByItem(\"desc\", expression.buildAst(), options)\n\t};\n\treturn new Proxy(expression, {\n\t\thas: (target, prop) => prop === \"asc\" || prop === \"desc\" || Reflect.has(target, prop),\n\t\tget(target, prop) {\n\t\t\tif (prop === \"asc\" || prop === \"desc\") return order[prop];\n\t\t\tconst member = Reflect.get(target, prop, target);\n\t\t\treturn typeof member === \"function\" && !Object.hasOwn(target, prop) ? member.bind(target) : member;\n\t\t}\n\t});\n}\nfunction orderableValue(context, result) {\n\tif (!isExpression(result)) return result;\n\tif (codecTraits(context, result.returnType.codecId).includes(\"boolean\")) return result;\n\treturn orderable(result);\n}\nfunction orderableRaw(raw) {\n\treturn (strings, ...values) => {\n\t\tconst builder = raw(strings, ...values);\n\t\treturn { returns: (spec) => orderable(builder.returns(spec)) };\n\t};\n}\nconst CONDITION_FIELD = Object.freeze({\n\tcodecId: \"pg/bool@1\",\n\tnullable: false\n});\n/** An ORM condition as an argument of `fns.and` or `fns.or`, which read an expression. */\nfunction asFunctionArgument(argument) {\n\treturn isOrmCondition(argument) ? new ExpressionImpl(argument, CONDITION_FIELD) : argument;\n}\nfunction isOrmCondition(value) {\n\treturn typeof value === \"object\" && value !== null && !isExpression(value) && \"accept\" in value && typeof value.accept === \"function\";\n}\nfunction logical(fn) {\n\treturn (...conditions) => fn(...conditions.map(asFunctionArgument));\n}\nfunction createOrmFunctions(context) {\n\tconst operations = context.queryOperations.entries();\n\tconst fns = createFunctions(operations, context.rawCodecInferer ?? rawCodecInfererUnavailable);\n\tconst raw = orderableRaw(fns.raw);\n\treturn new Proxy(blindCast({}), { get(_target, prop) {\n\t\tif (typeof prop !== \"string\") return void 0;\n\t\tif (prop === \"raw\") return raw;\n\t\tif (prop === \"and\" || prop === \"or\") return logical(Reflect.get(fns, prop));\n\t\tconst fn = Reflect.get(fns, prop);\n\t\tif (typeof fn !== \"function\" || !Object.hasOwn(operations, prop)) return fn;\n\t\treturn (...args) => orderableValue(context, Reflect.apply(fn, void 0, args));\n\t} });\n}\n/**\n* The second argument of a `where` or `orderBy` callback. `indexes` is read lazily, once.\n*/\nfunction createCallbackTools(context, indexes) {\n\tlet resolved;\n\treturn Object.freeze({\n\t\tfns: createOrmFunctions(context),\n\t\tget indexes() {\n\t\t\tresolved ??= indexes();\n\t\t\treturn blindCast(resolved);\n\t\t}\n\t});\n}\n//#endregion\n//#region src/model-accessor.ts\nfunction hasThrough$1(relation) {\n\treturn relation.through !== void 0;\n}\nfunction createModelAccessor(context, namespaceId, modelName, tables, variantValue) {\n\treturn createModelAccessorInScope(context, namespaceId, modelName, variantValue, tables.scope, tables.root, variantValue === void 0 ? void 0 : tables.variants.get(variantValue));\n}\n/**\n* The second argument of a `where` or `orderBy` callback on a collection of the model: the SQL query builder's functions, and the indexes of the model's table.\n*/\nfunction createModelCallbackTools(context, modelName, tables) {\n\treturn callbackToolsFor(context, modelName, tables.root);\n}\nfunction callbackToolsFor(context, modelName, aliasedTable) {\n\treturn createCallbackTools(context, () => indexReferencesOf(context, modelName, aliasedTable));\n}\nfunction indexReferencesOf(context, modelName, aliasedTable) {\n\tconst { contract } = context;\n\tconst { namespaceId, tableName } = aliasedTable.storage;\n\tconst resolved = resolveTableForContract(contract, namespaceId, tableName);\n\tif (!resolved) throw new InternalError(`Model \"${modelName}\" is stored in table \"${tableName}\", which the contract does not have`);\n\tconst { table } = resolved;\n\treturn createIndexReferences({\n\t\tnamespaceId,\n\t\ttableName,\n\t\ttable,\n\t\tcolumn: (columnName) => {\n\t\t\tconst column = table.columns[columnName];\n\t\t\tif (!column) throw new InternalError(`An index of table \"${tableName}\" covers column \"${columnName}\", which the table does not have`);\n\t\t\treturn {\n\t\t\t\treturnType: {\n\t\t\t\t\tcodecId: column.codecId,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\t...ifDefined(\"codec\", codecRefForStorageColumn(contract.storage, namespaceId, tableName, columnName))\n\t\t\t\t},\n\t\t\t\tbuildAst: () => aliasedTable.column(columnName)\n\t\t\t};\n\t\t}\n\t});\n}\nfunction createModelAccessorInScope(context, namespaceId, modelName, variantValue, scope, table, variantTable) {\n\tconst contract = context.contract;\n\tconst fieldColumns = getModelAndVariantFieldColumns(contract, namespaceId, modelName, variantValue);\n\tconst modelRelations = resolveModelRelations(contract, namespaceId, modelName);\n\tconst variantFieldColumns = variantValue ? resolveVariantFieldColumns(contract, namespaceId, modelName, variantValue) : {};\n\tconst [addressedNamespaceId, addressed] = addressedModel(contract, namespaceId, modelName, variantValue);\n\tconst variantCoordinates = variantValue ? {\n\t\tnamespaceId: addressedNamespaceId,\n\t\tname: addressed,\n\t\trelations: resolveModelRelations(contract, addressedNamespaceId, addressed)\n\t} : void 0;\n\tconst variantFieldTable = variantTable ?? table;\n\tconst opsByCodecId = /* @__PURE__ */ new Map();\n\tfunction registerOp(codecId, op) {\n\t\tlet existing = opsByCodecId.get(codecId);\n\t\tif (!existing) {\n\t\t\texisting = [];\n\t\t\topsByCodecId.set(codecId, existing);\n\t\t}\n\t\texisting.push(op);\n\t}\n\tfor (const [name, entry] of Object.entries(context.queryOperations.entries())) {\n\t\tconst op = [name, entry];\n\t\tconst self = entry.self;\n\t\tif (!self) continue;\n\t\tif (self.codecId !== void 0) registerOp(self.codecId, op);\n\t\telse if (self.traits !== void 0) for (const descriptor of context.codecDescriptors.values()) {\n\t\t\tconst descriptorTraits = descriptor.traits;\n\t\t\tif (self.traits.every((t) => descriptorTraits.includes(t))) registerOp(descriptor.codecId, op);\n\t\t}\n\t}\n\treturn blindCast(new Proxy({}, { get(target, prop) {\n\t\tif (typeof prop !== \"string\") return;\n\t\tif (variantCoordinates && Object.hasOwn(variantCoordinates.relations, prop)) {\n\t\t\tconst variantRelation = variantCoordinates.relations[prop];\n\t\t\tif (variantRelation) return createRelationFilterAccessor(context, variantCoordinates.namespaceId, variantCoordinates.name, scope, variantFieldTable, variantRelation);\n\t\t}\n\t\tconst relation = Object.hasOwn(modelRelations, prop) ? modelRelations[prop] : void 0;\n\t\tif (relation) return createRelationFilterAccessor(context, namespaceId, modelName, scope, table, relation);\n\t\tconst variantField = Object.hasOwn(variantFieldColumns, prop) ? variantFieldColumns[prop] : void 0;\n\t\tif (variantField === void 0 && !Object.hasOwn(fieldColumns, prop)) {\n\t\t\tif (isProbedByRuntime(prop)) return probedValue(target, prop);\n\t\t}\n\t\tconst fieldTable = variantField ? variantFieldTable : table;\n\t\tconst fieldStorage = fieldTable.storage;\n\t\tconst columnName = variantField?.column ?? columnOfCallerField(contract, addressedNamespaceId, fieldColumns, addressed, prop);\n\t\tconst column = resolveColumn(contract, fieldStorage.namespaceId, fieldStorage.tableName, columnName);\n\t\tif (!column) throw new InternalError(`Field \"${modelName}.${prop}\" maps column \"${columnName}\", which table \"${fieldStorage.tableName}\" does not have`);\n\t\tconst traits = codecTraits(context, column.codecId);\n\t\tconst operations = opsByCodecId.get(column.codecId) ?? [];\n\t\tconst codec = codecRefForStorageColumn(contract.storage, fieldStorage.namespaceId, fieldStorage.tableName, columnName);\n\t\treturn createScalarFieldAccessor(fieldTable, columnName, column.codecId, column.nullable, codec, traits, operations, context);\n\t} }));\n}\nfunction createScalarFieldAccessor(table, columnName, codecId, nullable, codec, traits, operations, context) {\n\tconst column = table.column(columnName);\n\tconst comparisonEntries = [];\n\tfor (const [name, meta] of Object.entries(COMPARISON_METHODS_META)) {\n\t\tif (meta.traits.some((t) => !traits.includes(t))) continue;\n\t\tcomparisonEntries.push([name, meta.create(column, codec)]);\n\t}\n\tconst accessor = blindCast({\n\t\treturnType: {\n\t\t\tcodecId,\n\t\t\tnullable,\n\t\t\tcodec\n\t\t},\n\t\tbuildAst: () => column,\n\t\t...Object.fromEntries(comparisonEntries)\n\t});\n\tfor (const [name, entry] of operations) accessor[name] = createExtensionMethodFactory(accessor, entry, context);\n\treturn blindCast(accessor);\n}\nfunction createExtensionMethodFactory(selfExpr, entry, context) {\n\treturn (...args) => {\n\t\tconst result = blindCast(entry.impl)(selfExpr, ...args);\n\t\tconst returnCodecId = result.returnType.codecId;\n\t\tconst returnTraits = codecTraits(context, returnCodecId);\n\t\tif (returnTraits.includes(\"boolean\")) return result.buildAst();\n\t\tconst resultAst = result.buildAst();\n\t\tconst returnCodec = { codecId: returnCodecId };\n\t\tconst methods = {};\n\t\tfor (const [resultMethodName, meta] of Object.entries(COMPARISON_METHODS_META)) {\n\t\t\tif (meta.traits.some((t) => !returnTraits.includes(t))) continue;\n\t\t\tmethods[resultMethodName] = meta.create(resultAst, returnCodec);\n\t\t}\n\t\treturn methods;\n\t};\n}\nconst RELATION_ACCESSOR_METHOD_NAMES = /* @__PURE__ */ new Set([\n\t\"some\",\n\t\"every\",\n\t\"none\",\n\t\"count\"\n]);\nfunction createRelationFilterAccessor(context, parentNamespaceId, parentModelName, scope, parentTable, relation) {\n\tconst relatedTableName = resolveModelTableName(context.contract, relation.toNamespace, relation.to);\n\tconst correlate = () => correlateRelatedRows(context, parentNamespaceId, parentModelName, scope, parentTable, relatedTableName, relation);\n\tconst filters = {\n\t\tsome: (predicate) => buildExistsExpr(context, relation, scope, correlate(), \"some\", predicate),\n\t\tevery: (predicate) => buildExistsExpr(context, relation, scope, correlate(), \"every\", predicate),\n\t\tnone: (predicate) => buildExistsExpr(context, relation, scope, correlate(), \"none\", predicate)\n\t};\n\tif (isToOneCardinality(relation.cardinality)) return new Proxy(filters, { get(target, prop) {\n\t\tif (typeof prop !== \"string\") return void 0;\n\t\tif (Object.hasOwn(target, prop)) return Reflect.get(target, prop);\n\t\tif (RELATION_ACCESSOR_METHOD_NAMES.has(prop)) return void 0;\n\t\tif (isProbedByRuntime(prop) && !Object.hasOwn(getModelFieldColumns(context.contract, relation.toNamespace, relation.to), prop)) return probedValue(target, prop);\n\t\treturn relatedOrderableField(context, relation, relatedTableName, correlate, prop);\n\t} });\n\treturn {\n\t\t...filters,\n\t\tcount: (predicate) => createOrderable(() => buildRelationCountExpr(context, relation, scope, correlate(), predicate))\n\t};\n}\n/**\n* Whether the JavaScript runtime or a common library reads `prop` from an object it is handed: `then` when a value is awaited or resolved as a promise, `toJSON` when it is stringified, and the `Object.prototype` members such as `toString`. An accessor answers these like a plain object, so a name that is not a field is refused only when the caller asks for it.\n*/\nfunction isProbedByRuntime(prop) {\n\treturn prop === \"then\" || prop === \"toJSON\" || prop in Object.prototype;\n}\nfunction probedValue(target, prop) {\n\treturn prop === \"then\" || prop === \"toJSON\" ? void 0 : Reflect.get(target, prop);\n}\nfunction createOrderable(buildExpr) {\n\treturn {\n\t\tasc: (options) => checkedOrderByItem(\"asc\", buildExpr(), options),\n\t\tdesc: (options) => checkedOrderByItem(\"desc\", buildExpr(), options)\n\t};\n}\nfunction relatedOrderableField(context, relation, relatedTableName, correlate, fieldName) {\n\tconst columnName = columnOfCallerField(context.contract, relation.toNamespace, getModelFieldColumns(context.contract, relation.toNamespace, relation.to), relation.to, fieldName);\n\tconst column = resolveColumn(context.contract, relation.toNamespace, relatedTableName, columnName);\n\tif (!column || !hasTrait(context, column.codecId, \"order\")) return void 0;\n\treturn createOrderable(() => {\n\t\tconst rows = correlate();\n\t\treturn SubqueryExpr.of(rows.source.withProjection([ProjectionItem.of(columnName, rows.child.column(columnName))]).withWhere(rows.correlation));\n\t});\n}\nfunction buildRelationCountExpr(context, relation, scope, rows, predicate) {\n\tconst childWhere = toRelationWhereExpr(context, relation.toNamespace, relation.to, predicate, scope, rows.child);\n\treturn SubqueryExpr.of(rows.source.withProjection([ProjectionItem.of(\"count\", plainAggregateExpr(\"count\", void 0))]).withWhere(childWhere ? and(rows.correlation, childWhere) : rows.correlation));\n}\nfunction correlateRelatedRows(context, parentNamespaceId, parentModelName, scope, parentTable, relatedTableName, relation) {\n\tconst child = scope.aliasTable({\n\t\tnamespaceId: relation.toNamespace,\n\t\ttableName: relatedTableName\n\t});\n\tif (hasThrough$1(relation)) {\n\t\tconst { through } = relation;\n\t\tconst junction = scope.aliasTable({\n\t\t\tnamespaceId: through.namespaceId,\n\t\t\ttableName: through.table\n\t\t});\n\t\tconst junctionJoinOn = buildPairedColumnExprs(junction, through.childColumns, child, through.targetColumns);\n\t\tconst parentLocalColumns = relation.on.localFields.map((field) => columnOfContractField(context.contract, parentNamespaceId, parentModelName, field));\n\t\treturn {\n\t\t\tchild,\n\t\t\tsource: SelectAst.from(child.tableSource(context.contract)).withJoins([JoinAst.inner(junction.tableSource(context.contract), junctionJoinOn)]),\n\t\t\tcorrelation: buildPairedColumnExprs(junction, through.parentColumns, parentTable, parentLocalColumns),\n\t\t\tkeyColumn: firstJoinColumn(through.targetColumns, \"targetColumns\")\n\t\t};\n\t}\n\treturn {\n\t\tchild,\n\t\tsource: SelectAst.from(child.tableSource(context.contract)),\n\t\tcorrelation: buildJoinWhere(context.contract, parentNamespaceId, parentModelName, parentTable, child, relation),\n\t\tkeyColumn: firstJoinColumn(resolveRelationTargetColumns(context.contract, relation), \"targetFields\")\n\t};\n}\nfunction buildExistsExpr(context, relation, scope, rows, mode, predicate) {\n\tconst childWhere = toRelationWhereExpr(context, relation.toNamespace, relation.to, predicate, scope, rows.child);\n\tconst filterPlan = planRelationFilterMode(rows.correlation, childWhere, mode);\n\tif (filterPlan.kind === \"constantTrue\") return AndExpr.true();\n\tconst subquery = rows.source.withProjection([ProjectionItem.of(\"_exists\", rows.child.column(rows.keyColumn))]).withWhere(filterPlan.where);\n\treturn filterPlan.notExists ? ExistsExpr.notExists(subquery) : ExistsExpr.exists(subquery);\n}\nfunction planRelationFilterMode(joinWhere, childWhere, mode) {\n\tif (mode === \"every\") {\n\t\tif (!childWhere) return { kind: \"constantTrue\" };\n\t\treturn {\n\t\t\tkind: \"exists\",\n\t\t\tnotExists: true,\n\t\t\twhere: and(joinWhere, not(childWhere))\n\t\t};\n\t}\n\tif (mode === \"none\") return {\n\t\tkind: \"exists\",\n\t\tnotExists: true,\n\t\twhere: childWhere ? and(joinWhere, childWhere) : joinWhere\n\t};\n\treturn {\n\t\tkind: \"exists\",\n\t\tnotExists: false,\n\t\twhere: childWhere ? and(joinWhere, childWhere) : joinWhere\n\t};\n}\nfunction firstJoinColumn(columns, label) {\n\tconst first = columns[0];\n\tif (!first) throw new InternalError(`Relation metadata is missing ${label}`);\n\treturn first;\n}\nfunction buildPairedColumnExprs(leftTable, leftColumns, rightTable, rightColumns) {\n\tif (leftColumns.length !== rightColumns.length) throw new InternalError(`Relation metadata has mismatched join column counts: ${leftColumns.length} left column(s), ${rightColumns.length} right column(s)`);\n\tif (leftColumns.length === 0) throw new InternalError(\"Relation metadata is missing join columns\");\n\tconst exprs = [];\n\tfor (let i = 0; i < leftColumns.length; i++) {\n\t\tconst left = leftColumns[i];\n\t\tconst right = rightColumns[i];\n\t\tif (!left || !right) throw new InternalError(`Relation metadata is missing a join column pair at index ${i}`);\n\t\texprs.push(BinaryExpr.eq(leftTable.column(left), rightTable.column(right)));\n\t}\n\tif (exprs.length === 1 && exprs[0]) return exprs[0];\n\treturn and(...exprs);\n}\nfunction toRelationWhereExpr(context, relatedNamespaceId, relatedModelName, predicate, scope, table) {\n\tif (!predicate) return;\n\tconst accessor = createModelAccessorInScope(context, relatedNamespaceId, relatedModelName, void 0, scope, table, void 0);\n\tif (typeof predicate === \"function\") return conditionExpr(predicate(accessor, callbackToolsFor(context, relatedModelName, table)));\n\tassertModelFieldNames(context.contract, relatedNamespaceId, relatedModelName, predicate);\n\tconst exprs = [];\n\tfor (const [fieldName, value] of Object.entries(predicate)) {\n\t\tif (value === void 0) continue;\n\t\tconst fieldAccessor = blindCast(accessor)[fieldName];\n\t\tif (!fieldAccessor) throw new InternalError(`Shorthand filter on \"${relatedModelName}.${fieldName}\": the field's column is missing from its table`);\n\t\tif (value === null) {\n\t\t\tif (!fieldAccessor.isNull) throw new InternalError(`Shorthand filter on \"${relatedModelName}.${fieldName}\": isNull is unexpectedly missing — this is a bug in trait gating`);\n\t\t\texprs.push(fieldAccessor.isNull());\n\t\t\tcontinue;\n\t\t}\n\t\tif (!fieldAccessor.eq) throw ormError(\"ORM.FILTER_UNSUPPORTED\", `Shorthand filter on \"${relatedModelName}.${fieldName}\": field does not support equality comparisons`, { meta: {\n\t\t\tmodel: relatedModelName,\n\t\t\tfield: fieldName,\n\t\t\ttrait: \"equality\"\n\t\t} });\n\t\texprs.push(fieldAccessor.eq(value));\n\t}\n\tif (exprs.length === 0) return;\n\treturn exprs.length === 1 ? exprs[0] : and(...exprs);\n}\nfunction buildJoinWhere(contract, parentNamespaceId, parentModelName, parentTable, relatedTable, relation) {\n\tconst localFields = relation.on?.localFields ?? [];\n\tconst targetFields = relation.on?.targetFields ?? [];\n\tconst joinExprs = [];\n\tconst count = Math.min(localFields.length, targetFields.length);\n\tfor (let i = 0; i < count; i++) {\n\t\tconst localField = localFields[i];\n\t\tconst targetField = targetFields[i];\n\t\tif (!localField || !targetField) continue;\n\t\tconst localColumn = columnOfContractField(contract, parentNamespaceId, parentModelName, localField);\n\t\tconst targetColumn = columnOfContractField(contract, relation.toNamespace, relation.to, targetField);\n\t\tjoinExprs.push(BinaryExpr.eq(relatedTable.column(targetColumn), parentTable.column(localColumn)));\n\t}\n\tif (joinExprs.length === 0) throw new InternalError(\"Relation metadata is missing join columns\");\n\tconst firstExpr = joinExprs[0];\n\tif (joinExprs.length === 1 && firstExpr !== void 0) return firstExpr;\n\treturn and(...joinExprs);\n}\n//#endregion\n//#region src/grouped-collection.ts\nvar GroupedCollection = class GroupedCollection {\n\tctx;\n\tcontract;\n\tmodelName;\n\ttableName;\n\tnamespaceId;\n\tpreGroupState;\n\tgroupByFields;\n\tgroupByColumns;\n\thavingFilters;\n\tpostGroup;\n\tconstructor(ctx, modelName, options) {\n\t\tthis.ctx = ctx;\n\t\tthis.contract = ctx.context.contract;\n\t\tthis.modelName = modelName;\n\t\tthis.tableName = options.tableName;\n\t\tthis.namespaceId = blindCast(options.namespaceId);\n\t\tthis.preGroupState = options.preGroupState;\n\t\tthis.groupByFields = options.groupByFields;\n\t\tthis.groupByColumns = options.groupByColumns;\n\t\tthis.havingFilters = options.havingFilters;\n\t\tthis.postGroup = options.postGroup;\n\t}\n\t#clone(overrides) {\n\t\treturn blindCast(new GroupedCollection(this.ctx, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tpreGroupState: this.preGroupState,\n\t\t\tgroupByFields: this.groupByFields,\n\t\t\tgroupByColumns: this.groupByColumns,\n\t\t\thavingFilters: this.havingFilters,\n\t\t\tpostGroup: this.postGroup,\n\t\t\t...overrides\n\t\t}));\n\t}\n\thaving(predicate) {\n\t\tconst havingExpr = predicate(createHavingBuilder(this.contract, this.ctx.context.aggregateDescriptors, this.namespaceId, this.modelName, this.preGroupState.tables.root));\n\t\treturn this.#clone({ havingFilters: [...this.havingFilters, havingExpr] });\n\t}\n\t/**\n\t* Append an `ORDER BY` clause on the grouped rows themselves — orders by\n\t* group key. Ordering by an aggregate alias needs a builder surface over\n\t* the aliases and isn't supported here. Unlocks post-group `limit(...)` /\n\t* `offset(...)`, which page a group order that would otherwise be undefined.\n\t*/\n\torderBy(selection) {\n\t\tconst selectors = Array.isArray(selection) ? selection : [selection];\n\t\tif (selectors.length === 0) throw ormError(\"ORM.ARGUMENT_INVALID\", `orderBy() for model \"${this.modelName}\" requires at least one selector`, { meta: {\n\t\t\tmethod: \"orderBy\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tconst tables = withScopeCopy(this.preGroupState.tables);\n\t\tconst accessor = createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, tables);\n\t\tconst nextOrders = selectors.map((selector) => selector(accessor));\n\t\treturn this.#clone({\n\t\t\tpreGroupState: {\n\t\t\t\t...this.preGroupState,\n\t\t\t\ttables\n\t\t\t},\n\t\t\tpostGroup: {\n\t\t\t\t...this.postGroup,\n\t\t\t\torderBy: [...this.postGroup.orderBy, ...nextOrders]\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* Apply `LIMIT n` to the grouped rows. Replaces any previous post-group\n\t* limit. Requires a prior `orderBy(...)` — a database may return groups in\n\t* any order, so \"the first n groups\" is undefined without one.\n\t*/\n\tlimit(n) {\n\t\treturn this.#clone({ postGroup: {\n\t\t\t...this.postGroup,\n\t\t\tlimit: typeof n === \"number\" ? n : toExpr(n)\n\t\t} });\n\t}\n\t/**\n\t* Apply `OFFSET n` to the grouped rows. Replaces any previous post-group\n\t* offset. Requires a prior `orderBy(...)`, same as `limit(...)` — both\n\t* pagination methods need a deterministic group order.\n\t*/\n\toffset(n) {\n\t\treturn this.#clone({ postGroup: {\n\t\t\t...this.postGroup,\n\t\t\toffset: typeof n === \"number\" ? n : toExpr(n)\n\t\t} });\n\t}\n\t/**\n\t* Read terminal: run a grouped aggregate query.\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'read'>` for attaching typed annotations.\n\t* Annotations are merged into the compiled plan's `meta.annotations`.\n\t*/\n\tget prepared() {\n\t\treturn { aggregate: (fn, configure) => this.#describeAggregate(fn, configure) };\n\t}\n\tasync aggregate(fn, configure) {\n\t\tconst description = this.#describeAggregate(fn, configure);\n\t\treturn description.consume(queryPlanRows(this.ctx.runtime, description.plan));\n\t}\n\t#describeAggregate(fn, configure) {\n\t\tconst aggregateSpec = fn(createAggregateBuilder(this.contract, this.ctx.context.aggregateDescriptors, this.namespaceId, this.modelName));\n\t\tconst aggregateEntries = Object.entries(aggregateSpec);\n\t\tif (aggregateEntries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"groupBy().aggregate() requires at least one aggregation selector\", { meta: {\n\t\t\tmethod: \"groupBy.aggregate\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tfor (const [alias, selector] of aggregateEntries) if (!isAggregateSelector(selector)) throw ormError(\"ORM.AGGREGATE_SELECTOR_INVALID\", `groupBy().aggregate() selector \"${alias}\" is invalid`, { meta: {\n\t\t\tmethod: \"groupBy.aggregate\",\n\t\t\tmodel: this.modelName,\n\t\t\talias\n\t\t} });\n\t\tlet annotationsMap;\n\t\tif (configure !== void 0) {\n\t\t\tconst meta = createMetaBuilder(\"read\", \"groupBy.aggregate\");\n\t\t\tconfigure(meta);\n\t\t\tif (meta.annotations.size > 0) annotationsMap = meta.annotations;\n\t\t}\n\t\tconst compiled = mergeAnnotations(compileGroupedAggregate(this.contract, this.ctx.context.aggregateDescriptors, this.preGroupState, this.groupByColumns, aggregateSpec, combineWhereExprs(this.havingFilters), this.modelName, this.postGroup), annotationsMap);\n\t\tconst mapRow = createStorageRowMapper(this.contract, this.namespaceId, this.modelName);\n\t\treturn {\n\t\t\tplan: compiled,\n\t\t\tasync consume(source) {\n\t\t\t\treturn (await source.toArray()).map((row) => {\n\t\t\t\t\tconst mapped = mapRow(row);\n\t\t\t\t\tfor (const [alias] of aggregateEntries) mapped[alias] = row[alias];\n\t\t\t\t\treturn blindCast(mapped);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n};\n/**\n* The having metric methods, one per operation the registry contributes —\n* the runtime mirror of the contract's emitted aggregate map, which is what\n* types the surface as {@link HavingBuilder}. HAVING compares the value\n* inside the database, so only an operation's plain `AggregateExpr` form is\n* sound here: an operation outside the SQL aggregate alphabet exists only in\n* its descriptor-lowered form — a rendering for the driver boundary — and is\n* refused. The typed surface already excludes it; the runtime refusal covers\n* dynamic invocation.\n*/\nfunction createHavingBuilder(contract, aggregates, namespaceId, modelName, root) {\n\tconst { tableName } = root.storage;\n\tconst fieldColumns = getModelFieldColumns(contract, namespaceId, modelName);\n\tconst builder = {};\n\tfor (const operation of aggregateOperationNames(aggregates)) builder[operation] = (field) => {\n\t\tif (!isAggregateFn(operation)) throw ormError(\"ORM.AGGREGATE_PROJECTION_ONLY\", `Aggregate operation '${operation}' is projection-only: it has no plain SQL form for HAVING, ORDER BY, or comparison positions.`, {\n\t\t\twhy: \"An operation outside the SQL aggregate alphabet reaches SQL only through its descriptor's lowering hook — a rendering for the driver boundary. HAVING and ORDER BY compare the value inside the database, where that rendering would change SQL semantics.\",\n\t\t\tfix: `Project '${operation}' in a select and filter or order on the projected value, or use an operation from the SQL aggregate alphabet.`,\n\t\t\tmeta: { operation }\n\t\t});\n\t\tconst column = field === void 0 ? void 0 : columnOfCallerField(contract, namespaceId, fieldColumns, modelName, field);\n\t\treturn createHavingComparisonMethods(new AggregateExpr(operation, column === void 0 ? void 0 : root.column(column)), () => resolveAggregate({\n\t\t\taggregates,\n\t\t\tcontract,\n\t\t\tnamespaceId,\n\t\t\ttableName,\n\t\t\tfn: operation,\n\t\t\tcolumn\n\t\t}).codec.codecId);\n\t};\n\treturn blindCast(builder);\n}\nfunction createHavingComparisonMethods(metric, outputCodecId) {\n\tconst buildBinaryExpr = (op, value) => {\n\t\tconst expression = predicateExpression(value);\n\t\tif (expression !== void 0 && (expression.kind !== \"prepared-param-ref\" || expression.codec.codecId !== outputCodecId())) throw ormError(\"ORM.HAVING_EXPRESSION_UNSUPPORTED\", \"HAVING comparands require a prepared parameter with the aggregate output codec\", { meta: { kind: expression.kind } });\n\t\treturn predicateComparison(op, metric, expression ?? LiteralExpr.of(value));\n\t};\n\treturn {\n\t\teq(value) {\n\t\t\treturn buildBinaryExpr(\"eq\", value);\n\t\t},\n\t\tneq(value) {\n\t\t\treturn buildBinaryExpr(\"neq\", value);\n\t\t},\n\t\tgt(value) {\n\t\t\treturn buildBinaryExpr(\"gt\", value);\n\t\t},\n\t\tlt(value) {\n\t\t\treturn buildBinaryExpr(\"lt\", value);\n\t\t},\n\t\tgte(value) {\n\t\t\treturn buildBinaryExpr(\"gte\", value);\n\t\t},\n\t\tlte(value) {\n\t\t\treturn buildBinaryExpr(\"lte\", value);\n\t\t}\n\t};\n}\n//#endregion\n//#region src/include-descriptors.ts\nfunction createIncludeScalar(fn, state, column) {\n\treturn {\n\t\tkind: \"includeScalar\",\n\t\tfn,\n\t\tstate,\n\t\t...column !== void 0 ? { column } : {}\n\t};\n}\nfunction createIncludeCombine(branches) {\n\treturn {\n\t\tkind: \"includeCombine\",\n\t\tbranches\n\t};\n}\nfunction isIncludeScalar(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value;\n\treturn candidate.kind === \"includeScalar\" && typeof candidate.fn === \"string\" && isCollectionState(candidate.state);\n}\nfunction isIncludeCombine(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value;\n\tif (candidate.kind !== \"includeCombine\") return false;\n\tif (typeof candidate.branches !== \"object\" || candidate.branches === null) return false;\n\treturn true;\n}\nfunction isCollectionStateCarrier(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn isCollectionState(value.state);\n}\nfunction isCollectionState(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value;\n\treturn Array.isArray(candidate.filters) && Array.isArray(candidate.includes);\n}\n//#endregion\n//#region src/relation-mutator.ts\nfunction createRelationMutator() {\n\treturn {\n\t\tcreate(data) {\n\t\t\treturn {\n\t\t\t\tkind: \"create\",\n\t\t\t\tdata: Array.isArray(data) ? [...data] : [data]\n\t\t\t};\n\t\t},\n\t\tconnect(criteria) {\n\t\t\treturn {\n\t\t\t\tkind: \"connect\",\n\t\t\t\tcriteria: Array.isArray(criteria) ? [...criteria] : [criteria]\n\t\t\t};\n\t\t},\n\t\tdisconnect(criteria) {\n\t\t\tif (!criteria) return { kind: \"disconnect\" };\n\t\t\treturn {\n\t\t\t\tkind: \"disconnect\",\n\t\t\t\tcriteria: [...criteria]\n\t\t\t};\n\t\t}\n\t};\n}\nfunction isRelationMutationDescriptor(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst candidate = value;\n\tif (candidate.kind !== \"create\" && candidate.kind !== \"connect\" && candidate.kind !== \"disconnect\") return false;\n\treturn true;\n}\nfunction isRelationMutationCallback(value) {\n\treturn typeof value === \"function\";\n}\n//#endregion\n//#region src/mutation-executor.ts\nfunction hasThrough(relation) {\n\treturn relation.through !== void 0;\n}\nfunction hasNestedMutationCallbacks(contract, namespaceId, modelName, data) {\n\tconst relationNames = new Set(Object.keys(resolveModelRelations(contract, namespaceId, modelName)));\n\tfor (const [fieldName, value] of Object.entries(data)) {\n\t\tif (!relationNames.has(fieldName)) continue;\n\t\tif (isRelationMutationCallback(value)) return true;\n\t}\n\treturn false;\n}\nasync function executeNestedCreateMutation(options) {\n\treturn withMutationScope(options.runtime, async (scope) => createGraph(scope, options.context, options.namespaceId, options.modelName, options.data));\n}\nasync function executeNestedUpdateMutation(options) {\n\treturn withMutationScope(options.runtime, async (scope) => updateFirstGraph$1(scope, options.context, options.namespaceId, options.modelName, options.tables, options.filters, options.data));\n}\nfunction buildRowIdentityFilterFromRow(contract, namespaceId, modelName, row) {\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst identityColumns = resolveRowIdentityColumns(contract, namespaceId, tableName);\n\tif (identityColumns.length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `Nested mutations on model \"${modelName}\" require table \"${tableName}\" to have a primary key or unique constraint`, { meta: {\n\t\tmodel: modelName,\n\t\ttable: tableName\n\t} });\n\tconst filter = {};\n\tfor (const column of identityColumns) {\n\t\tconst fieldName = toFieldName(contract, namespaceId, modelName, column);\n\t\tconst value = row[fieldName];\n\t\tif (value === void 0) throw new InternalError(`Missing identity field \"${fieldName}\" while reloading model \"${modelName}\"`);\n\t\tfilter[fieldName] = value;\n\t}\n\treturn filter;\n}\nasync function withMutationScope(runtime, run) {\n\tif (typeof runtime.transaction === \"function\") return runInTransaction(await runtime.transaction(), run);\n\tif (typeof runtime.connection === \"function\") {\n\t\tconst connection = await runtime.connection();\n\t\ttry {\n\t\t\tif (typeof connection.transaction === \"function\") return await runInTransaction(await connection.transaction(), run);\n\t\t\treturn await run(connection);\n\t\t} finally {\n\t\t\tawait connection.release?.();\n\t\t}\n\t}\n\treturn run(runtime);\n}\nasync function runInTransaction(transaction, run) {\n\ttry {\n\t\tconst result = await run(transaction);\n\t\tif (typeof transaction.commit === \"function\") await transaction.commit();\n\t\treturn result;\n\t} catch (error) {\n\t\tif (typeof transaction.rollback === \"function\") try {\n\t\t\tawait transaction.rollback();\n\t\t} catch (rollbackError) {\n\t\t\tconst settlement = settlementOf(transaction);\n\t\t\tif (settlement?.rolledBack !== true) throw rollbackError;\n\t\t\tsettlement.logDroppedError(rollbackError);\n\t\t}\n\t\tthrow error;\n\t}\n}\nasync function createGraph(scope, context, namespaceId, modelName, input) {\n\tconst contract = context.contract;\n\tconst parsed = parseMutationInput(contract, namespaceId, modelName, input);\n\tconst { parentOwned, childOwned, junctionOwned } = partitionByOwnership(parsed.relationMutations);\n\tconst scalarData = { ...parsed.scalarData };\n\tfor (const relationMutation of parentOwned) {\n\t\tif (relationMutation.mutation.kind === \"disconnect\") throw ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", \"disconnect() is only supported in update() nested mutations\", { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relationMutation.relation.relationName\n\t\t} });\n\t\tawait applyParentOwnedMutation(scope, context, namespaceId, modelName, scalarData, relationMutation.relation, relationMutation.mutation);\n\t}\n\tfor (const relationMutation of junctionOwned) {\n\t\tif (relationMutation.mutation.kind === \"disconnect\") throw ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", \"disconnect() is only supported in update() nested mutations\", { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relationMutation.relation.relationName\n\t\t} });\n\t\tawait preflightJunctionOwnedCreateMutation(scope, context, relationMutation);\n\t}\n\tconst parentRow = await insertSingleRow(scope, context, namespaceId, modelName, scalarData);\n\tfor (const relationMutation of childOwned) {\n\t\tif (relationMutation.mutation.kind === \"disconnect\") throw ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", \"disconnect() is only supported in update() nested mutations\", { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relationMutation.relation.relationName\n\t\t} });\n\t\tawait applyChildOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\t}\n\tfor (const relationMutation of junctionOwned) await applyJunctionOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\treturn parentRow;\n}\nasync function updateFirstGraph$1(scope, context, namespaceId, modelName, tables, filters, input) {\n\tconst contract = context.contract;\n\tconst existingRow = await findFirstByFilters(scope, contract, namespaceId, modelName, tables, filters);\n\tif (!existingRow) return null;\n\tconst parsed = parseMutationInput(contract, namespaceId, modelName, input);\n\tconst { parentOwned, childOwned, junctionOwned } = partitionByOwnership(parsed.relationMutations);\n\tconst scalarData = { ...parsed.scalarData };\n\tfor (const relationMutation of parentOwned) await applyParentOwnedMutation(scope, context, namespaceId, modelName, scalarData, relationMutation.relation, relationMutation.mutation);\n\tfor (const relationMutation of junctionOwned) await preflightJunctionOwnedCreateMutation(scope, context, relationMutation);\n\tlet parentRow = existingRow;\n\tconst mappedUpdateData = mapModelDataToStorageRow(contract, namespaceId, modelName, scalarData);\n\tif (Object.keys(mappedUpdateData).length > 0) {\n\t\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\t\tconst appliedUpdateDefaults = context.applyMutationDefaults({\n\t\t\top: \"update\",\n\t\t\tentry: tableName,\n\t\t\tnamespace: namespaceId,\n\t\t\tvalues: mappedUpdateData\n\t\t});\n\t\tfor (const def of appliedUpdateDefaults) mappedUpdateData[def.field] = def.value;\n\t\tconst identityWhere = shorthandToWhereExpr(context, namespaceId, modelName, castAs(buildRowIdentityFilterFromRow(contract, namespaceId, modelName, existingRow)), tables.root);\n\t\tif (!identityWhere) throw new InternalError(`Failed to build row identity filter for model \"${modelName}\"`);\n\t\tconst updatedRaw = (await queryPlanRows(scope, compileUpdateReturning(contract, modelName, tables, mappedUpdateData, [identityWhere], void 0)).toArray())[0];\n\t\tif (updatedRaw) parentRow = mapStorageRowToModelFields(contract, namespaceId, modelName, updatedRaw);\n\t}\n\tfor (const relationMutation of childOwned) await applyChildOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\tfor (const relationMutation of junctionOwned) await applyJunctionOwnedMutation(scope, context, namespaceId, modelName, parentRow, relationMutation.relation, relationMutation.mutation);\n\treturn parentRow;\n}\nfunction parseMutationInput(contract, namespaceId, modelName, input) {\n\tconst scalarData = {};\n\tconst relationDefinitions = new Map(getRelationDefinitions(contract, namespaceId, modelName).map((relation) => [relation.relationName, relation]));\n\tconst relationMutations = [];\n\tfor (const [fieldName, value] of Object.entries(input)) {\n\t\tconst relation = relationDefinitions.get(fieldName);\n\t\tif (!relation) {\n\t\t\tscalarData[fieldName] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!isRelationMutationCallback(value)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Relation field \"${fieldName}\" on model \"${modelName}\" expects a mutator callback`, { meta: {\n\t\t\trelation: fieldName,\n\t\t\tmodel: modelName,\n\t\t\tproblem: \"missing-callback\"\n\t\t} });\n\t\tconst mutation = value(createRelationMutator());\n\t\tif (!isRelationMutationDescriptor(mutation)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Relation field \"${fieldName}\" on model \"${modelName}\" returned an invalid mutation descriptor`, { meta: {\n\t\t\trelation: fieldName,\n\t\t\tmodel: modelName,\n\t\t\tproblem: \"invalid-descriptor\"\n\t\t} });\n\t\trelationMutations.push({\n\t\t\trelation,\n\t\t\tmutation\n\t\t});\n\t}\n\treturn {\n\t\tscalarData,\n\t\trelationMutations\n\t};\n}\nfunction partitionByOwnership(relationMutations) {\n\tconst parentOwned = [];\n\tconst childOwned = [];\n\tconst junctionOwned = [];\n\tfor (const relationMutation of relationMutations) {\n\t\tif (hasThrough(relationMutation.relation)) {\n\t\t\tjunctionOwned.push({\n\t\t\t\trelation: relationMutation.relation,\n\t\t\t\tmutation: relationMutation.mutation\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (relationMutation.relation.cardinality === \"N:1\") {\n\t\t\tparentOwned.push(relationMutation);\n\t\t\tcontinue;\n\t\t}\n\t\tchildOwned.push(relationMutation);\n\t}\n\treturn {\n\t\tparentOwned,\n\t\tchildOwned,\n\t\tjunctionOwned\n\t};\n}\nasync function applyParentOwnedMutation(scope, context, parentNamespaceId, parentModelName, scalarData, relation, mutation) {\n\tconst contract = context.contract;\n\tif (mutation.kind === \"disconnect\") {\n\t\tfor (const localColumn of relation.localColumns) {\n\t\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, localColumn);\n\t\t\tscalarData[parentFieldName] = null;\n\t\t}\n\t\treturn;\n\t}\n\tif (mutation.kind === \"create\") {\n\t\tconst row = mutation.data[0];\n\t\tif (!row) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `create() nested mutation for relation \"${relation.relationName}\" requires data`, { meta: {\n\t\t\tkind: \"create\",\n\t\t\trelation: relation.relationName,\n\t\t\tproblem: \"missing-data\"\n\t\t} });\n\t\tcopyRelatedValuesToParent(contract, parentNamespaceId, parentModelName, relation, scalarData, await createGraph(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(row)));\n\t\treturn;\n\t}\n\tconst criterion = mutation.criteria[0];\n\tif (!criterion) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `connect() nested mutation for relation \"${relation.relationName}\" requires criterion`, { meta: {\n\t\tkind: \"connect\",\n\t\trelation: relation.relationName,\n\t\tproblem: \"missing-criterion\"\n\t} });\n\tconst relatedRow = await findRowByCriterion(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion));\n\tif (!relatedRow) throw ormError(\"ORM.RELATION_ROW_MISSING\", `connect() nested mutation for relation \"${relation.relationName}\" did not find a matching row`, { meta: {\n\t\tkind: \"connect\",\n\t\trelation: relation.relationName\n\t} });\n\tcopyRelatedValuesToParent(contract, parentNamespaceId, parentModelName, relation, scalarData, relatedRow);\n}\nfunction copyRelatedValuesToParent(contract, parentNamespaceId, parentModelName, relation, scalarData, relatedRow) {\n\tfor (let i = 0; i < relation.localColumns.length; i++) {\n\t\tconst localColumn = relation.localColumns[i];\n\t\tconst targetColumn = relation.targetColumns[i];\n\t\tif (!localColumn || !targetColumn) continue;\n\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, localColumn);\n\t\tscalarData[parentFieldName] = relatedRow[toFieldName(contract, relation.relatedNamespaceId, relation.relatedModelName, targetColumn)];\n\t}\n}\nasync function applyChildOwnedMutation(scope, context, parentNamespaceId, parentModelName, parentRow, relation, mutation) {\n\tconst contract = context.contract;\n\tconst parentValues = readParentColumnValues(contract, parentNamespaceId, parentModelName, relation, parentRow);\n\tif (mutation.kind === \"create\") {\n\t\tfor (const childInput of mutation.data) {\n\t\t\tconst payload = { ...castAs(childInput) };\n\t\t\tfor (const [childColumn, parentValue] of parentValues.entries()) {\n\t\t\t\tconst childFieldName = toFieldName(contract, relation.relatedNamespaceId, relation.relatedModelName, childColumn);\n\t\t\t\tpayload[childFieldName] = parentValue;\n\t\t\t}\n\t\t\tawait createGraph(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(payload));\n\t\t}\n\t\treturn;\n\t}\n\tif (mutation.kind === \"connect\") {\n\t\tfor (const criterion of mutation.criteria) {\n\t\t\tconst related = createRelatedTables(relation);\n\t\t\tconst criterionWhere = shorthandToWhereExpr(context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion), related.root);\n\t\t\tif (!criterionWhere) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `connect() nested mutation for relation \"${relation.relationName}\" requires non-empty criterion`, { meta: {\n\t\t\t\tkind: \"connect\",\n\t\t\t\trelation: relation.relationName,\n\t\t\t\tproblem: \"empty-criterion\"\n\t\t\t} });\n\t\t\tconst setValues = {};\n\t\t\tfor (const [childColumn, parentValue] of parentValues.entries()) setValues[childColumn] = parentValue;\n\t\t\tawait executeUpdateCount(scope, contract, related, setValues, [criterionWhere]);\n\t\t}\n\t\treturn;\n\t}\n\tconst setValues = {};\n\tfor (const childColumn of parentValues.keys()) setValues[childColumn] = null;\n\tif (!mutation.criteria || mutation.criteria.length === 0) {\n\t\tconst related = createRelatedTables(relation);\n\t\tawait executeUpdateCount(scope, contract, related, setValues, [buildChildJoinWhere(contract, related.root, parentValues)]);\n\t\treturn;\n\t}\n\tfor (const criterion of mutation.criteria) {\n\t\tconst related = createRelatedTables(relation);\n\t\tconst criterionWhere = shorthandToWhereExpr(context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion), related.root);\n\t\tif (!criterionWhere) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `disconnect() nested mutation for relation \"${relation.relationName}\" requires non-empty criterion`, { meta: {\n\t\t\tkind: \"disconnect\",\n\t\t\trelation: relation.relationName,\n\t\t\tproblem: \"empty-criterion\"\n\t\t} });\n\t\tawait executeUpdateCount(scope, contract, related, setValues, [and(buildChildJoinWhere(contract, related.root, parentValues), criterionWhere)]);\n\t}\n}\nasync function applyJunctionOwnedMutation(scope, context, parentNamespaceId, parentModelName, parentRow, relation, mutation) {\n\tconst contract = context.contract;\n\tconst parentPkValues = readJunctionParentValues(contract, parentNamespaceId, parentModelName, relation, parentRow);\n\tassertJunctionPayloadWritable(relation, mutation.kind);\n\tif (mutation.kind === \"create\") {\n\t\tfor (const childInput of mutation.data) await insertJunctionLink(scope, context, relation, parentPkValues, readJunctionTargetValues(contract, relation, await createGraph(scope, context, relation.relatedNamespaceId, relation.relatedModelName, castAs(childInput))), \"create\");\n\t\treturn;\n\t}\n\tif (mutation.kind === \"connect\") {\n\t\tfor (const criterion of mutation.criteria) await insertJunctionLink(scope, context, relation, parentPkValues, await resolveJunctionTargetValues(scope, context, relation, \"connect\", criterion), \"connect\");\n\t\treturn;\n\t}\n\tif (!mutation.criteria || mutation.criteria.length === 0) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `disconnect() nested mutation for relation \"${relation.relationName}\" requires criterion`, { meta: {\n\t\tkind: \"disconnect\",\n\t\trelation: relation.relationName,\n\t\tproblem: \"missing-criterion\"\n\t} });\n\tfor (const criterion of mutation.criteria) await deleteJunctionLink(scope, context, relation, parentPkValues, await resolveJunctionTargetValues(scope, context, relation, \"disconnect\", criterion));\n}\nasync function preflightJunctionOwnedCreateMutation(scope, context, relationMutation) {\n\tconst { relation, mutation } = relationMutation;\n\tassertJunctionMetadataShape(relation);\n\tassertJunctionPayloadWritable(relation, mutation.kind);\n\tif (mutation.kind !== \"connect\") return;\n\tconst seenTargetKeys = /* @__PURE__ */ new Set();\n\tfor (const criterion of mutation.criteria) {\n\t\tconst targetValues = await resolveJunctionTargetValues(scope, context, relation, \"connect\", criterion);\n\t\tconst targetKey = JSON.stringify([...targetValues.entries()]);\n\t\tif (seenTargetKeys.has(targetKey)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `connect() nested mutation for relation \"${relation.relationName}\" resolved duplicate junction link targets; remove the duplicate criteria`, { meta: {\n\t\t\tkind: \"connect\",\n\t\t\trelation: relation.relationName,\n\t\t\tproblem: \"duplicate-criteria\"\n\t\t} });\n\t\tseenTargetKeys.add(targetKey);\n\t}\n}\nfunction assertJunctionPayloadWritable(relation, mutationKind) {\n\tconst through = relation.through;\n\tif (mutationKind !== \"create\" && mutationKind !== \"connect\" || through.requiredPayloadColumns.length === 0) return;\n\tconst cols = through.requiredPayloadColumns.map((c) => `\\`${c}\\``).join(\", \");\n\tthrow ormError(\"ORM.RELATION_MUTATION_UNSUPPORTED\", `Cannot \\`${mutationKind}\\` on relation \\`${relation.relationName}\\`: its junction \\`${through.table}\\` has required column(s) ${cols} the relation API can't populate. Write the \\`${through.table}\\` junction directly or use the SQL builder.`, { meta: {\n\t\tkind: mutationKind,\n\t\trelation: relation.relationName,\n\t\treason: \"junction-required-columns\",\n\t\tjunction: through.table\n\t} });\n}\nasync function resolveJunctionTargetValues(scope, context, relation, kind, criterion) {\n\tconst relatedRow = await findRowByCriterion(scope, context, relation.relatedNamespaceId, relation.relatedModelName, criterion);\n\tif (!relatedRow) throw ormError(\"ORM.RELATION_ROW_MISSING\", `${kind}() nested mutation for relation \"${relation.relationName}\" did not find a matching row`, { meta: {\n\t\tkind,\n\t\trelation: relation.relationName\n\t} });\n\treturn readJunctionTargetValues(context.contract, relation, relatedRow);\n}\nfunction readJunctionParentValues(contract, parentNamespaceId, parentModelName, relation, parentRow) {\n\tconst values = /* @__PURE__ */ new Map();\n\tassertJunctionParentMetadataLength(relation);\n\tfor (let i = 0; i < relation.through.parentColumns.length; i++) {\n\t\tconst junctionColumn = relation.through.parentColumns[i];\n\t\tconst parentColumn = relation.localColumns[i];\n\t\tif (junctionColumn === void 0 || parentColumn === void 0) throw new InternalError(`Relation \"${relation.relationName}\" has incomplete junction metadata for parent columns`);\n\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, parentColumn);\n\t\tconst parentValue = parentRow[parentFieldName];\n\t\tif (parentValue === void 0) throw new InternalError(`Nested mutation requires parent field \"${parentFieldName}\" to be present in returned row`);\n\t\tvalues.set(junctionColumn, parentValue);\n\t}\n\treturn values;\n}\nfunction readJunctionTargetValues(contract, relation, relatedRow) {\n\tconst values = /* @__PURE__ */ new Map();\n\tassertJunctionTargetMetadataLength(relation);\n\tfor (let i = 0; i < relation.through.childColumns.length; i++) {\n\t\tconst junctionColumn = relation.through.childColumns[i];\n\t\tconst targetColumn = relation.through.targetColumns[i];\n\t\tif (junctionColumn === void 0 || targetColumn === void 0) throw new InternalError(`Relation \"${relation.relationName}\" has incomplete junction metadata for target columns`);\n\t\tconst targetFieldName = toFieldName(contract, relation.relatedNamespaceId, relation.relatedModelName, targetColumn);\n\t\tconst targetValue = relatedRow[targetFieldName];\n\t\tif (targetValue === void 0) throw new InternalError(`Nested mutation requires target field \"${targetFieldName}\" to be present in returned row`);\n\t\tvalues.set(junctionColumn, targetValue);\n\t}\n\treturn values;\n}\nfunction assertJunctionMetadataLength(relation, throughColumnName, throughColumns, pairedColumnName, pairedColumns) {\n\tif (throughColumns.length === pairedColumns.length) return;\n\tthrow new InternalError(`Relation \"${relation.relationName}\" has invalid junction metadata: ${throughColumnName} has ${throughColumns.length} column(s), but ${pairedColumnName} has ${pairedColumns.length}`);\n}\nfunction assertJunctionParentMetadataLength(relation) {\n\tassertJunctionMetadataLength(relation, \"parentColumns\", relation.through.parentColumns, \"localColumns\", relation.localColumns);\n}\nfunction assertJunctionTargetMetadataLength(relation) {\n\tassertJunctionMetadataLength(relation, \"childColumns\", relation.through.childColumns, \"targetColumns\", relation.through.targetColumns);\n}\nfunction assertJunctionMetadataShape(relation) {\n\tassertJunctionParentMetadataLength(relation);\n\tassertJunctionTargetMetadataLength(relation);\n}\nfunction writeJunctionColumn(junctionRow, through, column, value, relationName) {\n\tif (Object.hasOwn(junctionRow, column) && !Object.is(junctionRow[column], value)) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Cannot write junction \"${through.table}\": conflicting values for junction column \"${column}\"`, { meta: {\n\t\trelation: relationName,\n\t\tjunction: through.table,\n\t\tcolumn\n\t} });\n\tjunctionRow[column] = value;\n}\nasync function insertJunctionLink(scope, context, relation, parentPkValues, targetPkValues, mutationKind) {\n\tconst through = relation.through;\n\tconst junctionRow = {};\n\tfor (const [column, value] of parentPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tfor (const [column, value] of targetPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tconst applied = context.applyMutationDefaults({\n\t\top: \"create\",\n\t\tentry: through.table,\n\t\tnamespace: through.namespaceId,\n\t\tvalues: junctionRow\n\t});\n\tfor (const def of applied) junctionRow[def.field] = def.value;\n\tconst compiled = compileInsertCount(context.contract, through.namespaceId, through.table, [junctionRow]);\n\ttry {\n\t\tawait scope.execute(compiled);\n\t} catch (error) {\n\t\tif (mutationKind === \"connect\" && isUniqueConstraintViolation(error)) throw ormError(\"ORM.RELATION_LINK_DUPLICATE\", `connect() nested mutation for relation \"${relation.relationName}\" violated a unique constraint on junction \"${through.table}\"; the junction link may already be present`, {\n\t\t\tmeta: {\n\t\t\t\trelation: relation.relationName,\n\t\t\t\tjunction: through.table\n\t\t\t},\n\t\t\tcause: error\n\t\t});\n\t\tthrow error;\n\t}\n}\nasync function deleteJunctionLink(scope, context, relation, parentPkValues, targetPkValues) {\n\tconst through = relation.through;\n\tconst junctionRow = {};\n\tfor (const [column, value] of parentPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tfor (const [column, value] of targetPkValues.entries()) writeJunctionColumn(junctionRow, through, column, value, relation.relationName);\n\tconst junction = createStatementTables({\n\t\tnamespaceId: through.namespaceId,\n\t\ttableName: through.table\n\t});\n\tconst exprs = [];\n\tfor (const [column, value] of Object.entries(junctionRow)) exprs.push(BinaryExpr.eq(junction.root.column(column), paramRefForStorageColumn(context.contract, junction.root.storage, column, value)));\n\tconst first = exprs[0];\n\tconst where = exprs.length === 1 && first !== void 0 ? first : and(...exprs);\n\tconst compiled = compileDeleteCount(context.contract, junction, [where]);\n\tawait scope.execute(compiled);\n}\nfunction readParentColumnValues(contract, parentNamespaceId, parentModelName, relation, parentRow) {\n\tconst values = /* @__PURE__ */ new Map();\n\tfor (let i = 0; i < relation.localColumns.length; i++) {\n\t\tconst localColumn = relation.localColumns[i];\n\t\tconst targetColumn = relation.targetColumns[i];\n\t\tif (!localColumn || !targetColumn) continue;\n\t\tconst parentFieldName = toFieldName(contract, parentNamespaceId, parentModelName, localColumn);\n\t\tconst parentValue = parentRow[parentFieldName];\n\t\tif (parentValue === void 0) throw new InternalError(`Nested mutation requires parent field \"${parentFieldName}\" to be present in returned row`);\n\t\tvalues.set(targetColumn, parentValue);\n\t}\n\treturn values;\n}\nfunction createRelatedTables(relation) {\n\treturn createStatementTables({\n\t\tnamespaceId: relation.relatedNamespaceId,\n\t\ttableName: relation.relatedTableName\n\t});\n}\nfunction buildChildJoinWhere(contract, related, childValues) {\n\tconst exprs = [];\n\tfor (const [childColumn, parentValue] of childValues.entries()) exprs.push(BinaryExpr.eq(related.column(childColumn), paramRefForStorageColumn(contract, related.storage, childColumn, parentValue)));\n\tconst first = exprs[0];\n\tif (exprs.length === 1 && first !== void 0) return first;\n\treturn and(...exprs);\n}\nasync function insertSingleRow(scope, context, namespaceId, modelName, data) {\n\tconst contract = context.contract;\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst mappedData = mapModelDataToStorageRow(contract, namespaceId, modelName, data);\n\tconst applied = context.applyMutationDefaults({\n\t\top: \"create\",\n\t\tentry: tableName,\n\t\tnamespace: namespaceId,\n\t\tvalues: mappedData\n\t});\n\tfor (const def of applied) mappedData[def.field] = def.value;\n\tconst firstRow = (await queryPlanRows(scope, compileInsertReturning(contract, namespaceId, modelName, tableName, [mappedData], void 0)).toArray())[0];\n\tif (!firstRow) throw ormError(\"ORM.MUTATION_ROW_MISSING\", `Nested create for model \"${modelName}\" did not return a row`, { meta: {\n\t\toperation: \"create\",\n\t\tmodel: modelName,\n\t\tphase: \"nested\"\n\t} });\n\treturn mapStorageRowToModelFields(contract, namespaceId, modelName, firstRow);\n}\nasync function findRowByCriterion(scope, context, namespaceId, modelName, criterion) {\n\tconst contract = context.contract;\n\tconst tables = createStatementTables({\n\t\tnamespaceId,\n\t\ttableName: resolveModelTableName(contract, namespaceId, modelName)\n\t});\n\tconst whereExpr = shorthandToWhereExpr(context, namespaceId, modelName, castAs(criterion), tables.root);\n\tif (!whereExpr) throw ormError(\"ORM.RELATION_MUTATION_INVALID\", `Nested connect for model \"${modelName}\" requires non-empty criterion`, { meta: {\n\t\tkind: \"connect\",\n\t\tmodel: modelName,\n\t\tproblem: \"empty-criterion\"\n\t} });\n\tconst firstRow = (await queryPlanRows(scope, compileSelect(contract, modelName, {\n\t\t...emptyState(tables),\n\t\tfilters: [whereExpr],\n\t\tlimit: 1\n\t})).toArray())[0];\n\tif (!firstRow) return null;\n\treturn mapStorageRowToModelFields(contract, namespaceId, modelName, firstRow);\n}\nasync function findFirstByFilters(scope, contract, namespaceId, modelName, tables, filters) {\n\tconst firstRow = (await queryPlanRows(scope, compileSelect(contract, modelName, {\n\t\t...emptyState(tables),\n\t\tfilters,\n\t\tlimit: 1\n\t})).toArray())[0];\n\tif (!firstRow) return null;\n\treturn mapStorageRowToModelFields(contract, namespaceId, modelName, firstRow);\n}\nasync function executeUpdateCount(scope, contract, tables, setValues, filters) {\n\tconst compiled = compileUpdateCount(contract, tables, setValues, filters);\n\tawait scope.execute(compiled);\n}\nconst relationDefsCache = /* @__PURE__ */ new WeakMap();\nfunction getRelationDefinitions(contract, namespaceId, modelName) {\n\tlet perContract = relationDefsCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\trelationDefsCache.set(contract, perContract);\n\t}\n\tconst cacheKey = JSON.stringify([namespaceId, modelName]);\n\tconst cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst relations = resolveModelRelations(contract, namespaceId, modelName);\n\tconst definitions = Object.entries(relations).map(([relationName, relation]) => ({\n\t\trelationName,\n\t\trelatedModelName: relation.to,\n\t\trelatedNamespaceId: relation.toNamespace,\n\t\trelatedTableName: resolveModelTableName(contract, relation.toNamespace, relation.to),\n\t\tcardinality: relation.cardinality,\n\t\tlocalColumns: relation.on.localFields.map((f) => columnOfContractField(contract, namespaceId, modelName, f)),\n\t\ttargetColumns: resolveRelationTargetColumns(contract, relation),\n\t\tthrough: relation.through ? {\n\t\t\ttable: relation.through.table,\n\t\t\tnamespaceId: relation.through.namespaceId,\n\t\t\tparentColumns: relation.through.parentColumns,\n\t\t\tchildColumns: relation.through.childColumns,\n\t\t\ttargetColumns: relation.through.targetColumns,\n\t\t\trequiredPayloadColumns: relation.through.requiredPayloadColumns\n\t\t} : void 0\n\t}));\n\tperContract.set(cacheKey, definitions);\n\treturn definitions;\n}\nfunction toFieldName(contract, namespaceId, modelName, columnName) {\n\treturn fieldOfColumn(getModelColumnFields(contract, namespaceId, modelName), modelName, columnName);\n}\n//#endregion\n//#region src/mutation-graph/node.ts\nvar Node = class {};\n//#endregion\n//#region src/mutation-graph/run-statement.ts\nfunction executeStatement(ast, run) {\n\treturn ast.kind === \"select\" || ast.returning !== void 0 ? run.query(ast) : run.execute(ast);\n}\nfunction rowsResult(rows) {\n\tconst generator = async function* () {\n\t\tyield* rows;\n\t};\n\treturn new AsyncIterableResult(generator());\n}\n//#endregion\n//#region src/mutation-graph/cross-join.ts\nvar CrossJoin = class extends Node {\n\tconstructor() {\n\t\tsuper();\n\t\tObject.freeze(this);\n\t}\n\texecute(inputs, _run) {\n\t\tconst [left] = inputs.left;\n\t\tconst [right] = inputs.right;\n\t\tif (left === void 0 || right === void 0) return rowsResult([]);\n\t\treturn rowsResult([{\n\t\t\t...left,\n\t\t\t...right\n\t\t}]);\n\t}\n};\n//#endregion\n//#region src/mutation-graph/filtered-statement.ts\nfunction executeFiltered(ast, filter, run) {\n\tif (filter === null) return executeStatement(ast, run);\n\tif (filter.some((conditions) => conditions.length === 0)) return rowsResult([]);\n\tconst where = combineWhereExprs([...ast.where === void 0 ? [] : [ast.where], ...filter.map(anyOf)]);\n\treturn executeStatement(ast.withWhere(where), run);\n}\nfunction anyOf(conditions) {\n\tconst [first, ...others] = conditions;\n\treturn first !== void 0 && others.length === 0 ? first : OrExpr.of(conditions);\n}\nfunction withColumns(returned, columns) {\n\tconst present = new Set(returned.map((item) => item.alias));\n\treturn [...returned, ...columns.filter((column) => !present.has(column.alias))];\n}\n//#endregion\n//#region src/mutation-graph/statement-node.ts\nvar StatementNode = class extends Node {};\n//#endregion\n//#region src/mutation-graph/delete.ts\nvar Delete = class Delete extends StatementNode {\n\tast;\n\tconstructor(ast) {\n\t\tsuper();\n\t\tthis.ast = ast;\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.ast.returning ?? [];\n\t}\n\texecute(inputs, run) {\n\t\treturn executeFiltered(this.ast, inputs.filter, run);\n\t}\n\twithReturning(columns) {\n\t\treturn new Delete(this.ast.withReturning(withColumns(this.returns, columns)));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/edge.ts\nvar Edge = class {\n\tfrom;\n\tcolumns;\n\tconstructor(from, columns) {\n\t\tthis.from = from;\n\t\tthis.columns = Object.freeze([...columns]);\n\t}\n};\n//#endregion\n//#region src/mutation-graph/filter-data.ts\nvar FilterData = class extends Edge {\n\tconstructor(from, columns) {\n\t\tsuper(from, columns);\n\t\tObject.freeze(this);\n\t}\n\toutput(sourceRow) {\n\t\tconst conditions = this.columns.map(([source, target]) => BinaryExpr.eq(target.expr, ParamRef.of(sourceRow[source.alias], {\n\t\t\tname: target.alias,\n\t\t\t...ifDefined(\"codec\", target.codec)\n\t\t})));\n\t\tconst [first, ...others] = conditions;\n\t\treturn first !== void 0 && others.length === 0 ? first : AndExpr.of(conditions);\n\t}\n};\n//#endregion\n//#region src/mutation-graph/find.ts\nvar Find = class Find extends StatementNode {\n\tast;\n\tconstructor(ast) {\n\t\tsuper();\n\t\tthis.ast = ast;\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.ast.projection;\n\t}\n\texecute(inputs, run) {\n\t\treturn executeFiltered(this.ast, inputs.filter, run);\n\t}\n\twithReturning(columns) {\n\t\treturn new Find(this.ast.withProjection(withColumns(this.returns, columns)));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/graph.ts\nvar Graph = class {\n\t#ids = [];\n\t#nodes = [];\n\t#inputs = [];\n\t#readers = [];\n\t#result = void 0;\n\tget result() {\n\t\treturn this.#result;\n\t}\n\tsetResult(node) {\n\t\tthis.#result = node;\n\t}\n\tadd(node, inputs) {\n\t\tconst id = blindCast(this.#nodes.length);\n\t\tthis.#ids.push(id);\n\t\tthis.#nodes.push(node);\n\t\tthis.#inputs.push(inputs);\n\t\tthis.#readers.push([]);\n\t\tfor (const edge of Object.values(inputs).flat()) {\n\t\t\tthis.#readers[edge.from]?.push({\n\t\t\t\treader: id,\n\t\t\t\tedge\n\t\t\t});\n\t\t\tconst source = this.#nodes[edge.from];\n\t\t\tif (source instanceof StatementNode) this.#nodes[edge.from] = source.withReturning(edge.columns.map(([column]) => column));\n\t\t}\n\t\treturn id;\n\t}\n\treplace(id, next) {\n\t\tthis.#nodes[id] = next;\n\t}\n\tremove(id) {\n\t\tfor (const edge of Object.values(this.inputsOf(id)).flat()) this.#readers[edge.from] = this.readersOf(edge.from).filter((entry) => entry.edge !== edge);\n\t\tfor (const { reader, edge } of this.readersOf(id)) this.#inputs[reader] = Object.fromEntries(Object.entries(this.inputsOf(reader)).map(([name, slot]) => [name, Array.isArray(slot) ? slot.filter((other) => other !== edge) : slot]));\n\t\tthis.#nodes[id] = void 0;\n\t\tthis.#inputs[id] = {};\n\t\tthis.#readers[id] = [];\n\t}\n\tnodes() {\n\t\treturn this.#ids.flatMap((id) => {\n\t\t\tconst node = this.#nodes[id];\n\t\t\treturn node === void 0 ? [] : [[id, node]];\n\t\t});\n\t}\n\tinputsOf(id) {\n\t\treturn this.#inputs[id] ?? {};\n\t}\n\treadersOf(id) {\n\t\treturn this.#readers[id] ?? [];\n\t}\n};\n//#endregion\n//#region src/mutation-graph/insert.ts\nvar Insert = class Insert extends StatementNode {\n\tast;\n\tconstructor(ast) {\n\t\tsuper();\n\t\tthis.ast = ast;\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.ast.returning ?? [];\n\t}\n\texecute(inputs, run) {\n\t\tif (inputs.payload === null) return executeStatement(this.ast, run);\n\t\tif (inputs.payload.some((records) => records.length === 0)) return rowsResult([]);\n\t\tconst payload = Object.assign({}, ...inputs.payload.map(([record]) => record));\n\t\tconst rows = this.ast.rows.map((row) => ({\n\t\t\t...row,\n\t\t\t...payload\n\t\t}));\n\t\treturn executeStatement(this.ast.withRows(rows), run);\n\t}\n\twithReturning(columns) {\n\t\treturn new Insert(this.ast.withReturning(withColumns(this.returns, columns)));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/insert-chunked.ts\nvar InsertChunked = class InsertChunked extends StatementNode {\n\tasts;\n\tconstructor(asts) {\n\t\tsuper();\n\t\tthis.asts = Object.freeze([...asts]);\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.asts[0]?.returning ?? [];\n\t}\n\texecute(_inputs, run) {\n\t\tif (this.returns.length === 0) return this.#sumOfCounts(run);\n\t\tconst asts = this.asts;\n\t\tconst generator = async function* () {\n\t\t\tfor (const ast of asts) yield* run.query(ast);\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\twithReturning(columns) {\n\t\treturn new InsertChunked(this.asts.map((ast) => ast.withReturning(withColumns(ast.returning ?? [], columns))));\n\t}\n\tasync #sumOfCounts(run) {\n\t\tlet count = 0;\n\t\tfor (const ast of this.asts) count += await run.execute(ast);\n\t\treturn count;\n\t}\n};\n//#endregion\n//#region src/mutation-graph/payload-data.ts\nvar PayloadData = class extends Edge {\n\tconstructor(from, columns) {\n\t\tsuper(from, columns);\n\t\tObject.freeze(this);\n\t}\n\toutput(sourceRow) {\n\t\treturn Object.fromEntries(this.columns.map(([source, target]) => [target.alias, ParamRef.of(sourceRow[source.alias], {\n\t\t\tname: target.alias,\n\t\t\t...ifDefined(\"codec\", target.codec)\n\t\t})]));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/rows.ts\nvar Rows = class extends Edge {\n\tconstructor(from, columns) {\n\t\tsuper(from, columns);\n\t\tObject.freeze(this);\n\t}\n\toutput(sourceRow) {\n\t\treturn Object.fromEntries(this.columns.map(([source]) => [source.alias, sourceRow[source.alias]]));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/union-all.ts\nvar UnionAll = class extends Node {\n\tconstructor() {\n\t\tsuper();\n\t\tObject.freeze(this);\n\t}\n\texecute(inputs, _run) {\n\t\treturn rowsResult((inputs.rows ?? []).flat());\n\t}\n};\n//#endregion\n//#region src/mutation-graph/update.ts\nvar Update = class Update extends StatementNode {\n\tast;\n\tconstructor(ast) {\n\t\tsuper();\n\t\tthis.ast = ast;\n\t\tObject.freeze(this);\n\t}\n\tget returns() {\n\t\treturn this.ast.returning ?? [];\n\t}\n\texecute(inputs, run) {\n\t\treturn executeFiltered(this.ast, inputs.filter, run);\n\t}\n\twithReturning(columns) {\n\t\treturn new Update(this.ast.withReturning(withColumns(this.returns, columns)));\n\t}\n};\n//#endregion\n//#region src/mutation-graph/collection-graphs.ts\nfunction updateAllGraph(collection, set) {\n\tconst { context, state } = collection;\n\tconst graph = new Graph();\n\tif (Object.keys(set).length === 0) {\n\t\tgraph.setResult(graph.add(new Find(selectRowsAst(collection, state)), { filter: [] }));\n\t\treturn graph;\n\t}\n\trequireIdentityColumnsForIncludes(collection);\n\tconst update = updateAst(context.contract, state.tables, set, whereOf(collection));\n\tconst updated = graph.add(new Update(update), { filter: [] });\n\tgraph.setResult(addWithIncludes(graph, collection, updated));\n\treturn graph;\n}\nfunction deleteAllGraph(collection) {\n\tconst { context, state } = collection;\n\tconst graph = new Graph();\n\tconst del = new Delete(deleteAst(context.contract, state.tables, whereOf(collection)));\n\tif (state.includes.length === 0) {\n\t\tgraph.setResult(graph.add(del, { filter: [] }));\n\t\treturn graph;\n\t}\n\tgraph.setResult(graph.add(new Find(selectRowsAst(collection, state)), { filter: [] }));\n\tgraph.add(del, { filter: [] });\n\treturn graph;\n}\nfunction updateFirstGraph(collection, set) {\n\tconst { context, state } = collection;\n\tconst graph = new Graph();\n\tconst nothingToSet = Object.keys(set).length === 0;\n\tif (!nothingToSet) {\n\t\trequireIdentityColumns(collection);\n\t\trequireIdentityColumnsForIncludes(collection);\n\t}\n\tconst find = addFindOfFirstRow(graph, collection, nothingToSet ? selectRowsAst : selectIdentityAst);\n\tif (find === void 0) return graph;\n\tif (nothingToSet) {\n\t\tgraph.setResult(find);\n\t\treturn graph;\n\t}\n\tconst update = updateAst(context.contract, state.tables, set, void 0);\n\tconst updated = graph.add(new Update(update), { filter: [sameRow(find, collection)] });\n\tgraph.setResult(addWithIncludes(graph, collection, updated));\n\treturn graph;\n}\nfunction deleteFirstGraph(collection) {\n\tconst { context, state } = collection;\n\tconst withIncludes = state.includes.length > 0;\n\tconst graph = new Graph();\n\trequireIdentityColumns(collection);\n\tconst find = addFindOfFirstRow(graph, collection, withIncludes ? selectRowsAst : selectIdentityAst);\n\tif (find === void 0) return graph;\n\tconst del = deleteAst(context.contract, state.tables, void 0);\n\tconst deleted = graph.add(new Delete(del), { filter: [sameRow(find, collection)] });\n\tgraph.setResult(withIncludes ? find : deleted);\n\treturn graph;\n}\nfunction createAllGraph(collection, rows, conflict) {\n\tconst { context, state } = collection;\n\tconst graph = new Graph();\n\tif (rows.length === 0) return graph;\n\trequireIdentityColumnsForIncludes(collection);\n\tconst { contract } = context;\n\tconst { root } = state.tables;\n\tconst inserted = supportsDefaultInInsert(contract) ? graph.add(new Insert(insertAst(contract, root, rows, conflict)), { payload: [] }) : graph.add(new InsertChunked(groupRowsByColumnSignature(rows).map((group) => insertAst(contract, root, group, conflict))), {});\n\tgraph.setResult(addWithIncludes(graph, collection, inserted));\n\treturn graph;\n}\nfunction supportsDefaultInInsert(contract) {\n\treturn contract.capabilities[\"sql\"]?.[\"defaultInInsert\"] === true;\n}\nfunction createAllVariantGraph(collection, variantTable, variantModelName, rows) {\n\tconst { context, modelName, state } = collection;\n\tconst { contract } = context;\n\tconst { root } = state.tables;\n\tconst graph = new Graph();\n\tconst keyColumns = resolvePrimaryKeyColumns(contract, root.storage.namespaceId, root.storage.tableName);\n\tconst keyPairs = keyColumns.map((column) => [projectTableColumn(contract, root, column), projectTableColumn(contract, variantTable, column)]);\n\tconst baseColumns = returningProjection(contract, modelName, root, void 0);\n\tconst variantColumns = variantReturning(contract, variantTable, variantModelName, keyColumns);\n\tconst joins = rows.map((row) => {\n\t\tconst baseInsert = insertAst(contract, root, [row.base], void 0).withReturning(baseColumns);\n\t\tconst base = graph.add(new Insert(baseInsert), { payload: [] });\n\t\tconst variantInsert = insertAst(contract, variantTable, [row.variant], void 0).withReturning(variantColumns);\n\t\tconst variant = graph.add(new Insert(variantInsert), { payload: [new PayloadData(base, keyPairs)] });\n\t\treturn graph.add(new CrossJoin(), {\n\t\t\tleft: new Rows(base, sameColumns(baseColumns)),\n\t\t\tright: new Rows(variant, sameColumns(variantColumns))\n\t\t});\n\t});\n\tconst [only, ...others] = joins;\n\tif (only !== void 0 && others.length === 0) graph.setResult(only);\n\telse if (only !== void 0) {\n\t\tconst joined = sameColumns([...baseColumns, ...variantColumns]);\n\t\tgraph.setResult(graph.add(new UnionAll(), { rows: joins.map((join) => new Rows(join, joined)) }));\n\t}\n\treturn graph;\n}\nfunction sameColumns(columns) {\n\treturn columns.map((column) => [column, column]);\n}\nfunction upsertGraph(collection, create, update, conflictColumns) {\n\tconst { context, state } = collection;\n\tconst { root } = state.tables;\n\tconst graph = new Graph();\n\trequireIdentityColumnsForIncludes(collection);\n\tconst updateSet = Object.keys(update).length > 0 ? updateAssignments(context.contract, root, update) : Object.fromEntries(conflictColumns.slice(0, 1).map((column) => [column, ColumnRef.of(\"excluded\", column)]));\n\tconst upsert = upsertAst(context.contract, root, create, conflictColumns, updateSet);\n\tconst upserted = graph.add(new Insert(upsert), { payload: [] });\n\tgraph.setResult(addWithIncludes(graph, collection, upserted));\n\treturn graph;\n}\nfunction addWithIncludes(graph, collection, written) {\n\tconst { state } = collection;\n\tif (state.includes.length === 0) return written;\n\tconst select = selectRowsAst(collection, {\n\t\t...emptyState(state.tables),\n\t\tselectedFields: state.selectedFields,\n\t\tincludes: state.includes\n\t});\n\treturn graph.add(new Find(select), { filter: [sameRow(written, collection)] });\n}\nfunction requireIdentityColumnsForIncludes(collection) {\n\tconst { modelName, state } = collection;\n\tconst { tableName } = state.tables.root.storage;\n\tif (state.includes.length > 0 && identityColumnsOf(collection).length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `Cannot load includes for the mutation result on model \"${modelName}\": table \"${tableName}\" has no primary key or unique constraint to key the include read-back on.`, { meta: {\n\t\tmodel: modelName,\n\t\ttable: tableName\n\t} });\n}\nfunction addFindOfFirstRow(graph, collection, select) {\n\tconst { state } = collection;\n\tcheckLimitOffset(\"limit\", state.limit);\n\tif (state.limit === 0) return;\n\treturn graph.add(new Find(select(collection, {\n\t\t...state,\n\t\tlimit: 1\n\t})), { filter: [] });\n}\nfunction requireIdentityColumns(collection) {\n\tconst { modelName, state } = collection;\n\tconst { tableName } = state.tables.root.storage;\n\tif (identityColumnsOf(collection).length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `update()/delete() on model \"${modelName}\" requires the table to have a primary key or unique constraint`, { meta: {\n\t\tmodel: modelName,\n\t\ttable: tableName\n\t} });\n}\nfunction selectIdentityAst(collection, state) {\n\treturn collectionSelectAst(collection.context.contract, collection.modelName, {\n\t\t...state,\n\t\tincludes: [],\n\t\tselectedFields: identityColumnsOf(collection)\n\t});\n}\nfunction selectRowsAst(collection, state) {\n\tconst { context, modelName } = collection;\n\tif (state.includes.length === 0) return collectionSelectAst(context.contract, modelName, state);\n\treturn collectionSelectWithIncludesAst(context.contract, context.aggregateDescriptors, modelName, state);\n}\nfunction identityColumnsOf(collection) {\n\tconst { namespaceId, tableName } = collection.state.tables.root.storage;\n\treturn resolveRowIdentityColumns(collection.context.contract, namespaceId, tableName);\n}\nfunction sameRow(find, collection) {\n\tconst { context, state } = collection;\n\treturn new FilterData(find, projectTableColumns(context.contract, state.tables.root, identityColumnsOf(collection)).map((column) => [column, column]));\n}\nfunction whereOf(collection) {\n\tconst { context, state } = collection;\n\treturn countMutationWhere(context.contract, state.tables, state.filters, state.variantValue);\n}\n//#endregion\n//#region src/mutation-graph/run-graph.ts\nfunction queryGraph(graph, ctx, annotations, callerRows) {\n\treturnCallerColumns(graph, callerRows);\n\tconst [only, ...others] = graph.nodes();\n\tif (only !== void 0 && others.length === 0 && only[0] === graph.result) {\n\t\tconst [id, node] = only;\n\t\tconst run = runOn(ctx, annotations);\n\t\treturn shapeRows(graph, id, rowStream(node.execute(inputsOf(graph, id, []), run)), callerRows);\n\t}\n\tconst generator = async function* () {\n\t\tyield* (await runAllNodes(graph, ctx, annotations, callerRows)).rows;\n\t};\n\treturn new AsyncIterableResult(generator());\n}\nasync function executeGraph(graph, ctx, annotations) {\n\treturn { affectedRows: (await runAllNodes(graph, ctx, annotations, void 0)).count };\n}\nfunction returnCallerColumns(graph, callerRows) {\n\tconst { context, modelName, state } = callerRows;\n\tconst columns = returningProjection(context.contract, modelName, state.tables.root, state.selectedFields);\n\tfor (const [id, node] of graph.nodes()) if (id === graph.result && node instanceof StatementNode) graph.replace(id, node.withReturning(columns));\n}\nfunction runAllNodes(graph, ctx, annotations, callerRows) {\n\tif (graph.nodes().length > 1) return withMutationScope(ctx.runtime, (scope) => runNodesInOrder(graph, {\n\t\t...ctx,\n\t\truntime: scope\n\t}, annotations, callerRows));\n\treturn runNodesInOrder(graph, ctx, annotations, callerRows);\n}\nasync function runNodesInOrder(graph, ctx, annotations, callerRows) {\n\tconst run = runOn(ctx, annotations);\n\tconst collected = [];\n\tlet rows = [];\n\tlet count = 0;\n\tfor (const [id, node] of graph.nodes()) {\n\t\tconst executed = await node.execute(inputsOf(graph, id, collected), run);\n\t\tcollected[id] = executed;\n\t\tif (id !== graph.result) continue;\n\t\tconst storageRows = rowsOf(executed);\n\t\tcount = typeof executed === \"number\" ? executed : storageRows.length;\n\t\tif (callerRows !== void 0) rows = await shapeRows(graph, id, streamOf(storageRows), callerRows).toArray();\n\t}\n\treturn {\n\t\trows,\n\t\tcount\n\t};\n}\nfunction inputsOf(graph, id, collected) {\n\tconst outputs = {};\n\tconst outputOf = (edge) => rowsOf(collected[edge.from]).map((row) => edge.output(row));\n\tfor (const [name, slot] of Object.entries(graph.inputsOf(id))) if (!Array.isArray(slot)) outputs[name] = outputOf(slot);\n\telse outputs[name] = slot.length === 0 ? null : slot.map(outputOf);\n\treturn outputs;\n}\nfunction runOn(ctx, annotations) {\n\tconst { contract } = ctx.context;\n\tconst planOf = (ast) => mergeAnnotations(buildOrmQueryPlan(contract, ast, deriveParamsFromAst(ast).params), annotations);\n\treturn {\n\t\tquery: (ast) => queryPlanRows(ctx.runtime, planOf(ast)),\n\t\texecute: async (ast) => (await ctx.runtime.execute(planOf(ast))).affectedRows\n\t};\n}\nfunction shapeRows(graph, id, storageRows, callerRows) {\n\tconst { context, namespaceId, modelName, state } = callerRows;\n\tconst { contract } = context;\n\tconst { tableName } = state.tables.root.storage;\n\tconst selected = state.selectedFields ?? getColumnsReadOnTable(contract, namespaceId, modelName, tableName);\n\tconst hiddenColumns = graph.readersOf(id).flatMap(({ edge }) => edge.columns.map(([source]) => source.alias)).filter((column) => !selected.includes(column));\n\treturn mapResultRows(consumeCollectionRows(callerRows, storageRows), (row) => {\n\t\tstripHiddenMappedFields(contract, namespaceId, modelName, row, hiddenColumns);\n\t\treturn blindCast(row);\n\t});\n}\nfunction rowsOf(executed) {\n\treturn typeof executed === \"object\" ? executed : [];\n}\nfunction rowStream(executed) {\n\treturn executed instanceof AsyncIterableResult ? executed : streamOf([]);\n}\nfunction streamOf(rows) {\n\tconst generator = async function* () {\n\t\tyield* rows;\n\t};\n\treturn new AsyncIterableResult(generator());\n}\n//#endregion\n//#region src/where-interop.ts\nfunction normalizeWhereArg(arg, options) {\n\tif (arg === void 0) return;\n\tif (arg === null) throw ormError(\"ORM.ARGUMENT_INVALID\", \"WhereArg cannot be null. Pass undefined or a valid WhereExpr/ToWhereExpr payload.\", { meta: { argument: \"where\" } });\n\tconst expr = isToWhereExpr(arg) ? arg.toWhereExpr() : arg;\n\tif (!options) return expr;\n\treturn bindWhereExpr(options.contract, expr, options.tables);\n}\nfunction isToWhereExpr(arg) {\n\treturn typeof arg === \"object\" && arg !== null && \"toWhereExpr\" in arg && !isWhereExpr(arg);\n}\n//#endregion\n//#region src/write-guards.ts\nconst CHAIN_PARTS = {\n\torderBy: {\n\t\tnoun: \"an order\",\n\t\tcall: \"orderBy()\"\n\t},\n\tlimit: {\n\t\tnoun: \"a limit\",\n\t\tcall: \"limit()\"\n\t},\n\toffset: {\n\t\tnoun: \"an offset\",\n\t\tcall: \"offset()\"\n\t},\n\tcursor: {\n\t\tnoun: \"a cursor\",\n\t\tcall: \"cursor()\"\n\t},\n\tdistinct: {\n\t\tnoun: \"a distinct selection\",\n\t\tcall: \"distinct()\"\n\t},\n\tdistinctOn: {\n\t\tnoun: \"a distinctOn selection\",\n\t\tcall: \"distinctOn()\"\n\t}\n};\nfunction presentParts(state, names) {\n\tconst present = names.filter((name) => {\n\t\tconst value = state[name];\n\t\treturn Array.isArray(value) ? value.length > 0 : value !== void 0;\n\t});\n\treturn {\n\t\tnouns: present.map((name) => CHAIN_PARTS[name].noun),\n\t\tcalls: present.map((name) => CHAIN_PARTS[name].call)\n\t};\n}\nfunction listed(items, conjunction) {\n\tconst last = items.at(-1) ?? \"\";\n\treturn items.length > 1 ? `${items.slice(0, -1).join(\", \")} ${conjunction} ${last}` : last;\n}\nconst HIDDEN_BY_A_FRAGMENT = \"A fragment passed to with can add one without showing it at the call site.\";\n/** Throws `ORM.ARGUMENT_INVALID` when the collection has a limit, an offset, a cursor or a distinct selection, which `method`, a write of every matching row, would ignore. */\nfunction assertBulkWriteIgnoresNothing(state, modelName, method) {\n\tconst { nouns, calls } = presentParts(state, [\n\t\t\"limit\",\n\t\t\"offset\",\n\t\t\"cursor\",\n\t\t\"distinct\",\n\t\t\"distinctOn\"\n\t]);\n\tif (nouns.length === 0) return;\n\tconst { limit, offset, cursor, distinct, distinctOn } = state;\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot ${method} ${modelName}: the collection has ${listed(nouns, \"and\")}`, {\n\t\twhy: `${method} changes every row that matches the filter. The statement it runs cannot apply ${listed(nouns, \"or\")}, so it would change more rows than the chain asks for. ${HIDDEN_BY_A_FRAGMENT}`,\n\t\tfix: `Remove ${listed(calls, \"and\")} before ${method}, or read the rows first and change them by their ids.`,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tmethod,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tcursor,\n\t\t\tdistinct,\n\t\t\tdistinctOn\n\t\t}\n\t});\n}\n/** Throws `ORM.ARGUMENT_INVALID` when the collection has an order, a limit, an offset, a cursor or a distinct selection, which an update with a relation callback would ignore. */\nfunction assertRelationUpdateIgnoresNothing(state, modelName) {\n\tconst { nouns, calls } = presentParts(state, [\n\t\t\"orderBy\",\n\t\t\"limit\",\n\t\t\"offset\",\n\t\t\"cursor\",\n\t\t\"distinct\",\n\t\t\"distinctOn\"\n\t]);\n\tif (nouns.length === 0) return;\n\tconst { orderBy, limit, offset, cursor, distinct, distinctOn } = state;\n\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `Cannot update ${modelName} with a relation mutation: the collection has ${listed(nouns, \"and\")}`, {\n\t\twhy: `An update that changes a relation finds its row by the filter alone. It would ignore ${listed(nouns, \"and\")}, and could change another row than first() returns. ${HIDDEN_BY_A_FRAGMENT}`,\n\t\tfix: `Remove ${listed(calls, \"and\")} before update, or filter to the one row, such as by its id.`,\n\t\tmeta: {\n\t\t\tmodel: modelName,\n\t\t\tmethod: \"update\",\n\t\t\tordered: orderBy !== void 0 && orderBy.length > 0,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tcursor,\n\t\t\tdistinct,\n\t\t\tdistinctOn\n\t\t}\n\t});\n}\n//#endregion\n//#region src/collection.ts\nfunction applyCreateDefaults(ctx, namespaceId, tableName, rows, defaultValueCache = /* @__PURE__ */ new Map()) {\n\tfor (const row of rows) {\n\t\tconst applied = ctx.context.applyMutationDefaults({\n\t\t\top: \"create\",\n\t\t\tentry: tableName,\n\t\t\tnamespace: namespaceId,\n\t\t\tvalues: row,\n\t\t\tdefaultValueCache\n\t\t});\n\t\tfor (const def of applied) row[def.field] = def.value;\n\t}\n}\nfunction applyUpdateDefaults(ctx, namespaceId, tableName, values) {\n\tconst applied = ctx.context.applyMutationDefaults({\n\t\top: \"update\",\n\t\tentry: tableName,\n\t\tnamespace: namespaceId,\n\t\tvalues\n\t});\n\tfor (const def of applied) values[def.field] = def.value;\n}\nfunction isToWhereExprInput(value) {\n\treturn typeof value === \"object\" && value !== null && \"toWhereExpr\" in value && typeof value.toWhereExpr === \"function\";\n}\nfunction isWhereDirectInput(value) {\n\treturn isWhereExpr(value) && typeof value === \"object\" && value !== null && \"accept\" in value && typeof value.accept === \"function\" || isToWhereExprInput(value);\n}\nfunction splitCreateArguments(optionsOrConfigure, configure) {\n\tif (typeof optionsOrConfigure === \"function\") return {\n\t\toptions: void 0,\n\t\tconfigureCallback: optionsOrConfigure\n\t};\n\treturn {\n\t\toptions: optionsOrConfigure,\n\t\tconfigureCallback: configure\n\t};\n}\nfunction isMtiVariantInfo(variant) {\n\treturn variant?.strategy === \"mti\";\n}\nvar CollectionBase = class CollectionBase {\n\t/** @internal */\n\tctx;\n\t/** @internal */\n\tcontract;\n\t/** @internal */\n\tmodelName;\n\t/** @internal */\n\ttableName;\n\t/** @internal */\n\tnamespaceId;\n\t/** @internal */\n\tstate;\n\t/** @internal */\n\tregistry;\n\t/** @internal */\n\tincludeRefinementMode;\n\tconstructor(ctx, modelName, options) {\n\t\tthis.ctx = ctx;\n\t\tthis.contract = ctx.context.contract;\n\t\tthis.modelName = modelName;\n\t\tthis.namespaceId = options.namespaceId;\n\t\tthis.tableName = options.tableName ?? resolveModelTableName(this.contract, options.namespaceId, modelName);\n\t\tthis.state = options.state ?? emptyState(createCollectionTables(this.contract, options.namespaceId, modelName, this.tableName));\n\t\tthis.registry = options.registry ?? /* @__PURE__ */ new Map();\n\t\tthis.includeRefinementMode = options.includeRefinementMode ?? false;\n\t\tthis.#installAggregateReducers();\n\t}\n\t/**\n\t* Install one include-scalar reducer per operation the composed registry\n\t* contributes — the runtime mirror of the contract's emitted aggregate map,\n\t* which is what types the reducers as {@link AggregateIncludeReducers} on\n\t* the public {@link Collection} surface. The reducers live on the instance\n\t* because their names are the registry's, not the class declaration's.\n\t*\n\t* A name the collection already carries is skipped, and which member holds\n\t* it decides what the skip means. A `CollectionBase` member is rejected at\n\t* ORM composition with `ORM.AGGREGATE_OPERATION_RESERVED`, since\n\t* {@link reservedCollectionMemberNames} scans this class. A member declared\n\t* by a custom collection class registered through `orm({ collections })`\n\t* falls outside that set, so it keeps the name and the operation gets no\n\t* reducer. The type level is what guards that case: {@link Collection}\n\t* intersects the class with {@link AggregateIncludeReducers}, so for any\n\t* contract whose emitted map carries the operation, a subclass member that\n\t* does not match the reducer's signature is a type error.\n\t*/\n\t#installAggregateReducers() {\n\t\tfor (const operation of aggregateOperationNames(this.ctx.context.aggregateDescriptors)) {\n\t\t\tif (operation in this) continue;\n\t\t\tObject.defineProperty(this, operation, {\n\t\t\t\tvalue: (field) => this.#includeScalarReducer(operation, field),\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Scalar reducer — reduces a to-many relation to the operation's value over\n\t* the related rows. Use inside an `include(...)` refinement callback as\n\t* `include(..., (rel) => rel.count())`; throws if called elsewhere. The\n\t* parent row's relation field becomes that value instead of an array. A\n\t* call without a field aggregates over rows; a call with one aggregates the\n\t* field's storage column.\n\t*/\n\t#includeScalarReducer(operation, field) {\n\t\tthis.#assertIncludeRefinementMode(`${operation}()`);\n\t\tconst column = field === void 0 ? void 0 : columnOfCallerField(this.contract, this.namespaceId, getModelFieldColumns(this.contract, this.namespaceId, this.modelName), this.modelName, field);\n\t\treturn createIncludeScalar(operation, this.state, column);\n\t}\n\twhere(input) {\n\t\tconst tables = withScopeCopy(this.state.tables);\n\t\tconst filter = normalizeWhereArg(typeof input === \"function\" ? whereArgOf(input(createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, tables, this.state.variantValue), this.#callbackTools(tables))) : isWhereDirectInput(input) ? input : shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, input, tables.root), {\n\t\t\tcontract: this.contract,\n\t\t\ttables: tableAliases(tables)\n\t\t});\n\t\tif (!filter) return blindCast(this);\n\t\treturn this.#cloneSelf({\n\t\t\ttables,\n\t\t\tfilters: [...this.state.filters, filter]\n\t\t});\n\t}\n\twhereUnique(criterion) {\n\t\tif (this.includeRefinementMode) throw ormError(\"ORM.INCLUDE_INVALID\", \"whereUnique() is not available inside include() refinement callbacks\", { meta: { action: \"whereUnique()\" } });\n\t\tif (!hasCompleteUniqueKey(this.contract, this.namespaceId, this.modelName, criterion)) throw ormError(\"ORM.ARGUMENT_INVALID\", `whereUnique() for model \"${this.modelName}\" needs a value for every field of the primary key or of one unique constraint`, { meta: {\n\t\t\tmethod: \"whereUnique\",\n\t\t\targument: \"criterion\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tconst tables = withScopeCopy(this.state.tables);\n\t\tconst filter = normalizeWhereArg(shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, criterion, tables.root), {\n\t\t\tcontract: this.contract,\n\t\t\ttables: tableAliases(tables)\n\t\t});\n\t\treturn this.#cloneSelf(filter ? {\n\t\t\ttables,\n\t\t\tfilters: [...this.state.filters, filter]\n\t\t} : {});\n\t}\n\t#callbackTools(tables) {\n\t\treturn createModelCallbackTools(this.ctx.context, this.modelName, tables);\n\t}\n\twith(fn) {\n\t\treturn fn(this);\n\t}\n\t/**\n\t* Define a query fragment for this collection's model, such as a shared `select` and `include`. The body is typed once, against the model's plain collection. The fragment can be applied to any collection of the model that `select` and `variant` have not narrowed.\n\t*\n\t* The fragment is built from the model alone, so call `fragment` on the model's root collection. On a collection with chained calls it throws `ORM.ARGUMENT_INVALID`. The type check is partial: it refuses a collection whose type records a filter, an order or an include, and a collection typed by a type parameter, such as `this` in a class method; it does not see `limit`, `offset`, `select`, `cursor`, `distinct`, `variant` or a lock, a union with a root collection, or a value typed as the plain collection.\n\t*\n\t* ```ts\n\t* const summary = db.Post.fragment((posts) => posts.select('id', 'title').include('user'));\n\t* db.User.include('posts', (posts) => posts.with(summary));\n\t* ```\n\t*/\n\tfragment(body) {\n\t\tassertFragmentBody(body);\n\t\tassertModelFragmentSource(this);\n\t\tconst source = {\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t};\n\t\treturn (collection) => {\n\t\t\tassertModelFragmentReceiver(source, collection);\n\t\t\treturn body(blindCast(collection));\n\t\t};\n\t}\n\tvariant(value) {\n\t\tconst polyInfo = resolvePolymorphismInfo(this.contract, this.namespaceId, this.modelName);\n\t\tconst selectedVariantValue = this.state.variantValue;\n\t\tif (selectedVariantValue !== void 0) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `variant(\"${value}\") cannot be called on model \"${this.modelName}\" because variant(\"${selectedVariantValue}\") is already selected; call variant() on the base collection instead`, { meta: {\n\t\t\tmethod: \"variant\",\n\t\t\tmodel: this.modelName,\n\t\t\tvariant: polyInfo?.variants.get(selectedVariantValue)?.modelName,\n\t\t\tselectedValue: selectedVariantValue,\n\t\t\treason: \"variant-already-selected\"\n\t\t} });\n\t\tconst variantInfo = polyInfo?.variants.get(value);\n\t\tif (!polyInfo || !variantInfo) {\n\t\t\tconst declaredValues = [...polyInfo?.variants.keys() ?? []];\n\t\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", declaredValues.length === 0 ? `variant(\"${value}\") cannot narrow model \"${this.modelName}\": it declares no discriminator values` : `variant(\"${value}\") cannot narrow model \"${this.modelName}\": the declared discriminator values are ${declaredValues.map((declared) => `\"${declared}\"`).join(\", \")}`, { meta: {\n\t\t\t\tmethod: \"variant\",\n\t\t\t\targument: \"value\",\n\t\t\t\tmodel: this.modelName,\n\t\t\t\tvalue,\n\t\t\t\tdeclaredValues\n\t\t\t} });\n\t\t}\n\t\tconst columnName = polyInfo.discriminatorColumn;\n\t\tconst filter = BinaryExpr.eq(this.state.tables.root.column(columnName), paramRefForStorageColumn(this.contract, this.state.tables.root.storage, columnName, variantInfo.value));\n\t\treturn this.#cloneWithRow({\n\t\t\tfilters: [...this.state.filters, filter],\n\t\t\tvariantValue: variantInfo.value\n\t\t});\n\t}\n\tinclude(relationName, refineFn) {\n\t\tconst relation = resolveIncludeRelation(this.contract, this.namespaceId, this.modelName, relationName, this.state.variantValue);\n\t\tconst child = createIncludeTables(this.contract, this.state.tables, relation);\n\t\tlet nestedState = emptyState(child.tables);\n\t\tlet adoptedScope = child.tables.scope;\n\t\tlet scalarSelector;\n\t\tlet combineBranches;\n\t\tif (refineFn) {\n\t\t\tconst refined = refineFn(this.#createCollection(blindCast(relation.relatedModelName), {\n\t\t\t\ttableName: relation.relatedTableName,\n\t\t\t\tnamespaceId: relation.relatedNamespaceId,\n\t\t\t\tstate: nestedState,\n\t\t\t\tincludeRefinementMode: true\n\t\t\t}));\n\t\t\tif (isIncludeScalar(refined)) {\n\t\t\t\tif (isToOneCardinality(relation.cardinality)) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `include('${relationName}') scalar aggregations are only supported for to-many relations`, { meta: {\n\t\t\t\t\trelation: relationName,\n\t\t\t\t\tkind: \"scalar\"\n\t\t\t\t} });\n\t\t\t\tadoptedScope = refined.state.tables.scope;\n\t\t\t\tscalarSelector = refined;\n\t\t\t\tnestedState = refined.state;\n\t\t\t} else if (isIncludeCombine(refined)) {\n\t\t\t\tif (isToOneCardinality(relation.cardinality)) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `include('${relationName}') combine() is only supported for to-many relations`, { meta: {\n\t\t\t\t\trelation: relationName,\n\t\t\t\t\tkind: \"combine\"\n\t\t\t\t} });\n\t\t\t\tcombineBranches = refined.branches;\n\t\t\t} else if (isCollectionStateCarrier(refined)) {\n\t\t\t\tadoptedScope = refined.state.tables.scope;\n\t\t\t\tnestedState = refined.state;\n\t\t\t} else throw ormError(\"ORM.INCLUDE_INVALID\", `include('${relationName}') refinement must return a collection, include scalar selector, or combine() descriptor`, { meta: { relation: relationName } });\n\t\t}\n\t\tconst includeExpr = {\n\t\t\trelationName,\n\t\t\trelatedModelName: relation.relatedModelName,\n\t\t\trelatedNamespaceId: relation.relatedNamespaceId,\n\t\t\trelatedTableName: relation.relatedTableName,\n\t\t\t...ifDefined(\"localVariantValue\", relation.localVariantValue),\n\t\t\ttargetColumns: relation.targetColumns,\n\t\t\tlocalColumns: relation.localColumns,\n\t\t\tcardinality: relation.cardinality,\n\t\t\t...ifDefined(\"through\", relation.through),\n\t\t\t...ifDefined(\"junction\", child.junction),\n\t\t\tnested: nestedState,\n\t\t\tscalar: scalarSelector,\n\t\t\tcombine: combineBranches\n\t\t};\n\t\treturn this.#cloneWithRow({\n\t\t\ttables: {\n\t\t\t\t...this.state.tables,\n\t\t\t\tscope: adoptedScope\n\t\t\t},\n\t\t\tincludes: [...this.state.includes, includeExpr]\n\t\t});\n\t}\n\tselect(...fields) {\n\t\tconst selectedFields = mapSelectedFieldsToColumns(this.contract, this.namespaceId, this.modelName, this.state.variantValue, fields);\n\t\treturn this.#cloneWithRow({ selectedFields });\n\t}\n\torderBy(selection) {\n\t\tconst tables = withScopeCopy(this.state.tables);\n\t\tconst accessor = createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, tables, this.state.variantValue);\n\t\tconst tools = this.#callbackTools(tables);\n\t\tconst nextOrders = (Array.isArray(selection) ? selection : [selection]).map((selector) => selector(accessor, tools));\n\t\tconst existing = this.state.orderBy ?? [];\n\t\treturn this.#cloneSelf({\n\t\t\ttables,\n\t\t\torderBy: [...existing, ...nextOrders]\n\t\t});\n\t}\n\tgroupBy(...fields) {\n\t\tassertLockCompatible(this.state, \"groupBy\");\n\t\tconst groupByColumns = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn new GroupedCollection(this.ctx, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tpreGroupState: this.state,\n\t\t\tgroupByFields: [...fields],\n\t\t\tgroupByColumns,\n\t\t\thavingFilters: [],\n\t\t\tpostGroup: emptyGroupPagingState()\n\t\t});\n\t}\n\t/**\n\t* Produce multiple named sub-views of a to-many relation in a\n\t* single `include(...)`. Each branch is either another refined\n\t* collection (mapped to a row array on the parent) or a scalar\n\t* reducer such as `count()`/`sum(...)`. Only valid inside an\n\t* `include(...)` refinement callback for to-many relations.\n\t*\n\t* ```typescript\n\t* const users = await db.orm.User.include('posts', (posts) =>\n\t* posts.combine({\n\t* recent: posts.where({ published: true }).limit(3),\n\t* total: posts.count(),\n\t* averageViews: posts.avg('views'),\n\t* }),\n\t* ).all();\n\t* // each user row: {\n\t* // ...user,\n\t* // posts: { recent: Post[]; total: number; averageViews: number | null };\n\t* // }\n\t* ```\n\t*/\n\tcombine(spec) {\n\t\tthis.#assertIncludeRefinementMode(\"combine()\");\n\t\tconst branches = {};\n\t\tfor (const [name, value] of Object.entries(spec)) {\n\t\t\tif (isIncludeScalar(value)) {\n\t\t\t\tbranches[name] = {\n\t\t\t\t\tkind: \"scalar\",\n\t\t\t\t\tselector: value\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isCollectionStateCarrier(value)) {\n\t\t\t\tbranches[name] = {\n\t\t\t\t\tkind: \"rows\",\n\t\t\t\t\tstate: value.state\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthrow ormError(\"ORM.INCLUDE_INVALID\", `include().combine() branch \"${name}\" is invalid`, { meta: { branch: name } });\n\t\t}\n\t\treturn createIncludeCombine(branches);\n\t}\n\tcursor(cursorValues) {\n\t\tassertCursorCompatibleOrder(this.state.orderBy);\n\t\tconst mappedCursor = mapCursorValuesToColumns(this.contract, this.namespaceId, this.modelName, cursorValues);\n\t\tif (Object.keys(mappedCursor).length === 0) return this;\n\t\treturn this.#cloneSelf({ cursor: mappedCursor });\n\t}\n\tdistinct(...fields) {\n\t\tconst distinctFields = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn this.#cloneSelf({\n\t\t\tdistinct: distinctFields,\n\t\t\tdistinctOn: void 0\n\t\t});\n\t}\n\tdistinctOn(...fields) {\n\t\tassertDistinctOnCapability(this.contract, \"distinctOn\");\n\t\tassertDistinctOnCompatibleOrder(this.state.orderBy, fields.length);\n\t\tconst distinctOnFields = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn this.#cloneSelf({\n\t\t\tdistinct: void 0,\n\t\t\tdistinctOn: distinctOnFields\n\t\t});\n\t}\n\tforUpdate(...options) {\n\t\treturn this.#lock(\"forUpdate\", options[0]);\n\t}\n\tforNoKeyUpdate(...options) {\n\t\treturn this.#lock(\"forNoKeyUpdate\", options[0]);\n\t}\n\tforShare(...options) {\n\t\treturn this.#lock(\"forShare\", options[0]);\n\t}\n\tforKeyShare(...options) {\n\t\treturn this.#lock(\"forKeyShare\", options[0]);\n\t}\n\tlimit(n) {\n\t\treturn this.#cloneSelf({ limit: typeof n === \"number\" ? n : toExpr(n) });\n\t}\n\toffset(n) {\n\t\treturn this.#cloneSelf({ offset: typeof n === \"number\" ? n : toExpr(n) });\n\t}\n\tall(configure) {\n\t\treturn this.#withAnnotationsFromMeta(configure, \"all\").#dispatch();\n\t}\n\tget prepared() {\n\t\treturn blindCast({\n\t\t\taggregate: (fn, configure) => this.#describeAggregate(fn, configure),\n\t\t\tall: (configure) => {\n\t\t\t\treturn describeCollectionRows(this.#withAnnotationsFromMeta(configure, \"all\").#descriptionOptions());\n\t\t\t},\n\t\t\tfirst: (filter, configure) => {\n\t\t\t\treturn describeCollectionFirst(this.#forFirst(filter, configure, \"first\").#descriptionOptions());\n\t\t\t},\n\t\t\tfirstOrThrow: (filter, configure) => {\n\t\t\t\treturn describeCollectionFirstOrThrow(this.#forFirst(filter, configure, \"firstOrThrow\").#descriptionOptions());\n\t\t\t}\n\t\t});\n\t}\n\t#descriptionOptions() {\n\t\treturn {\n\t\t\tcontext: this.ctx.context,\n\t\t\tstate: this.state,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t};\n\t}\n\t#forFirst(filter, configure, terminalName) {\n\t\treturn (filter === void 0 ? this : typeof filter === \"function\" ? this.where(filter) : this.where(filter)).limit(1).#withAnnotationsFromMeta(configure, terminalName);\n\t}\n\tasync first(filter, configure) {\n\t\treturn consumeFirstRow(this.#forFirst(filter, configure, \"first\").#dispatch());\n\t}\n\tasync firstOrThrow(filter, configure) {\n\t\treturn this.#forFirst(filter, configure, \"firstOrThrow\").#dispatch().firstOrThrow();\n\t}\n\tasync aggregate(fn, configure) {\n\t\tconst description = this.#describeAggregate(fn, configure);\n\t\treturn description.consume(queryPlanRows(this.ctx.runtime, description.plan));\n\t}\n\t#describeAggregate(fn, configure) {\n\t\tassertLockCompatible(this.state, \"aggregate\");\n\t\tconst aggregateSpec = fn(createAggregateBuilder(this.contract, this.ctx.context.aggregateDescriptors, this.namespaceId, this.modelName));\n\t\tconst entries = Object.entries(aggregateSpec);\n\t\tif (entries.length === 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_MISSING\", \"aggregate() requires at least one aggregation selector\", { meta: {\n\t\t\tmethod: \"aggregate\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tfor (const [alias, selector] of entries) if (!isAggregateSelector(selector)) throw ormError(\"ORM.AGGREGATE_SELECTOR_INVALID\", `aggregate() selector \"${alias}\" is invalid`, { meta: {\n\t\t\tmethod: \"aggregate\",\n\t\t\tmodel: this.modelName,\n\t\t\talias\n\t\t} });\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"read\", \"aggregate\");\n\t\tconst compiled = mergeAnnotations(compileAggregate(this.contract, this.ctx.context.aggregateDescriptors, this.state, aggregateSpec, this.modelName), annotationsMap);\n\t\tconst results = entries.map(([alias, selector]) => {\n\t\t\tconst resolved = resolveAggregate({\n\t\t\t\taggregates: this.ctx.context.aggregateDescriptors,\n\t\t\t\tcontract: this.contract,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\ttableName: this.tableName,\n\t\t\t\tfn: selector.fn,\n\t\t\t\tcolumn: selector.column\n\t\t\t});\n\t\t\treturn {\n\t\t\t\talias,\n\t\t\t\tresolved,\n\t\t\t\tcodec: this.ctx.context.contractCodecs.forCodecRef(resolved.codec)\n\t\t\t};\n\t\t});\n\t\treturn {\n\t\t\tplan: compiled,\n\t\t\tasync consume(source) {\n\t\t\t\tconst row = (await source.toArray())[0] ?? {};\n\t\t\t\treturn blindCast(Object.fromEntries(results.map(({ alias, resolved, codec }) => {\n\t\t\t\t\treturn [alias, (Object.hasOwn(row, alias) ? row[alias] : void 0) ?? emptyAggregateResult(resolved, codec)];\n\t\t\t\t})));\n\t\t\t}\n\t\t};\n\t}\n\tasync create(data, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"create()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"create\");\n\t\tif (hasNestedMutationCallbacks(this.contract, this.namespaceId, this.modelName, blindCast(data))) {\n\t\t\tconst createdRow = await executeNestedCreateMutation({\n\t\t\t\tcontext: this.ctx.context,\n\t\t\t\truntime: this.ctx.runtime,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\tmodelName: this.modelName,\n\t\t\t\tdata: blindCast(data)\n\t\t\t});\n\t\t\tconst identityCriterion = buildRowIdentityFilterFromRow(this.contract, this.namespaceId, this.modelName, createdRow);\n\t\t\tconst reloaded = await this.#reloadMutationRowByIdentity(identityCriterion);\n\t\t\tif (!reloaded) throw ormError(\"ORM.MUTATION_ROW_MISSING\", `create() for model \"${this.modelName}\" did not return a row`, { meta: {\n\t\t\t\toperation: \"create\",\n\t\t\t\tmodel: this.modelName\n\t\t\t} });\n\t\t\treturn reloaded;\n\t\t}\n\t\tconst created = (await this.#createAllWithAnnotations([blindCast(data)], annotationsMap))[0];\n\t\tif (created) return created;\n\t\tthrow ormError(\"ORM.MUTATION_ROW_MISSING\", `create() for model \"${this.modelName}\" did not return a row`, { meta: {\n\t\t\toperation: \"create\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t}\n\tcreateAll(data, optionsOrConfigure, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst { options, configureCallback } = splitCreateArguments(optionsOrConfigure, configure);\n\t\tconst conflictSkip = this.#resolveConflictSkip(options, \"createAll()\");\n\t\treturn this.#createAllWithAnnotations(data, this.#collectAnnotationsFromMeta(configureCallback, \"write\", \"createAll\"), conflictSkip);\n\t}\n\t#createAllWithAnnotations(data, annotationsMap, conflictSkip) {\n\t\tif (data.length === 0) {\n\t\t\tconst generator = async function* () {};\n\t\t\treturn new AsyncIterableResult(generator());\n\t\t}\n\t\tassertReturningCapability(this.contract, \"createAll()\");\n\t\tconst rows = blindCast(data);\n\t\tconst mtiContext = this.#resolveMtiCreateContext();\n\t\tif (mtiContext) {\n\t\t\tconst variantTable = requireVariantTable(this.state.tables, mtiContext.variant.value);\n\t\t\treturn queryGraph(createAllVariantGraph(this.#descriptionWithoutIncludes(), variantTable, mtiContext.variant.modelName, this.#variantCreateRows(rows, mtiContext, variantTable)), this.ctx, annotationsMap, this.#descriptionWithoutIncludes());\n\t\t}\n\t\treturn queryGraph(createAllGraph(this.#descriptionOptions(), this.#createValues(rows), conflictSkip), this.ctx, annotationsMap, this.#descriptionOptions());\n\t}\n\t#createValues(rows) {\n\t\tconst mappedRows = this.#mapCreateRows(rows);\n\t\tapplyCreateDefaults(this.ctx, this.namespaceId, this.tableName, mappedRows);\n\t\treturn mappedRows;\n\t}\n\t#resolveConflictSkip(options, method) {\n\t\tif (options === void 0) return void 0;\n\t\tif (options.onConflict !== \"skip\") throw ormError(\"ORM.ARGUMENT_INVALID\", `${method} onConflict must be \"skip\"; received ${JSON.stringify(options.onConflict)}`, { meta: {\n\t\t\tmethod,\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tif (method === \"createAll()\") this.#assertConflictSkipNotOnMtiVariant(method);\n\t\telse this.#assertNotMtiVariant(method);\n\t\tconst conflictOn = options.conflictOn ?? [];\n\t\tassertInsertConflictSkipCapability(this.contract, method, conflictOn.length > 0);\n\t\treturn { columns: resolveInsertConflictColumns(this.contract, this.namespaceId, this.modelName, conflictOn) };\n\t}\n\t#assertNotMtiVariant(method) {\n\t\tthis.#refuseOnMtiVariant(method, `${method} is not supported for MTI variant \"${this.#variantModelName()}\" on model \"${this.modelName}\". Use createAll() instead.`);\n\t}\n\t#assertConflictSkipNotOnMtiVariant(method) {\n\t\tthis.#refuseOnMtiVariant(method, `The onConflict option is not supported on variant \"${this.#variantModelName()}\" of model \"${this.modelName}\" because the variant is stored in its own table. Call createAll(rows) without the option; a duplicate row then makes the call fail.`);\n\t}\n\t#refuseOnMtiVariant(method, message) {\n\t\tif (!this.#resolveMtiCreateContext()) return;\n\t\tthrow ormError(\"ORM.OPERATION_UNSUPPORTED\", message, { meta: {\n\t\t\tmethod,\n\t\t\tmodel: this.modelName,\n\t\t\tvariant: this.#variantModelName(),\n\t\t\treason: \"mti-variant\"\n\t\t} });\n\t}\n\t#variantModelName() {\n\t\treturn addressedModel(this.contract, this.namespaceId, this.modelName, this.state.variantValue)[1];\n\t}\n\t#resolveMtiCreateContext() {\n\t\tconst variantValue = this.state.variantValue;\n\t\tif (!variantValue) return null;\n\t\tconst polyInfo = resolvePolymorphismInfo(this.contract, this.namespaceId, this.modelName);\n\t\tif (!polyInfo) return null;\n\t\tconst variant = polyInfo.variants.get(variantValue);\n\t\tif (!isMtiVariantInfo(variant)) return null;\n\t\treturn {\n\t\t\tpolyInfo,\n\t\t\tvariant,\n\t\t\tbaseFieldToColumn: getModelFieldColumns(this.contract, this.namespaceId, this.modelName),\n\t\t\tvariantFieldToColumn: getOwnFieldColumns(this.contract, variant.namespaceId, variant.modelName),\n\t\t\tmergedFieldToColumn: getModelAndVariantFieldColumns(this.contract, this.namespaceId, this.modelName, variant.value)\n\t\t};\n\t}\n\t#variantCreateRows(data, mtiCtx, variantTable) {\n\t\tconst { polyInfo, variant, baseFieldToColumn, variantFieldToColumn, mergedFieldToColumn } = mtiCtx;\n\t\tconst baseFieldColumns = new Set(Object.values(baseFieldToColumn));\n\t\tconst variantFieldColumns = new Set(Object.values(variantFieldToColumn));\n\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\treturn data.map((row) => {\n\t\t\tconst allMapped = {};\n\t\t\tfor (const [fieldName, value] of Object.entries(row)) {\n\t\t\t\tif (value === void 0) continue;\n\t\t\t\tallMapped[columnOfCallerField(this.contract, this.namespaceId, mergedFieldToColumn, variant.modelName, fieldName)] = value;\n\t\t\t}\n\t\t\tallMapped[polyInfo.discriminatorColumn] = variant.value;\n\t\t\tconst baseRow = {};\n\t\t\tconst variantRow = {};\n\t\t\tfor (const [column, value] of Object.entries(allMapped)) {\n\t\t\t\tif (baseFieldColumns.has(column) || column === polyInfo.discriminatorColumn) baseRow[column] = value;\n\t\t\t\tif (variantFieldColumns.has(column)) variantRow[column] = value;\n\t\t\t}\n\t\t\tapplyCreateDefaults(this.ctx, this.namespaceId, this.tableName, [baseRow], defaultValueCache);\n\t\t\tapplyCreateDefaults(this.ctx, variantTable.storage.namespaceId, variantTable.storage.tableName, [variantRow], defaultValueCache);\n\t\t\treturn {\n\t\t\t\tbase: baseRow,\n\t\t\t\tvariant: variantRow\n\t\t\t};\n\t\t});\n\t}\n\t#mapCreateRows(data) {\n\t\tconst variantValue = this.state.variantValue;\n\t\tif (!variantValue) return data.map((row) => mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, row));\n\t\tconst polyInfo = resolvePolymorphismInfo(this.contract, this.namespaceId, this.modelName);\n\t\tif (!polyInfo) return data.map((row) => mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, row));\n\t\tconst variant = polyInfo.variants.get(variantValue);\n\t\tif (!variant) return data.map((row) => mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, row));\n\t\tconst mergedFieldToColumn = getModelAndVariantFieldColumns(this.contract, this.namespaceId, this.modelName, variant.value);\n\t\treturn data.map((row) => {\n\t\t\tconst mapped = {};\n\t\t\tfor (const [fieldName, value] of Object.entries(row)) {\n\t\t\t\tif (value === void 0) continue;\n\t\t\t\tmapped[columnOfCallerField(this.contract, variant.namespaceId, mergedFieldToColumn, variant.modelName, fieldName)] = value;\n\t\t\t}\n\t\t\tmapped[polyInfo.discriminatorColumn] = variant.value;\n\t\t\treturn mapped;\n\t\t});\n\t}\n\t/**\n\t* Write terminal: insert many rows without materializing the\n\t* inserted rows, returning the number of rows the database reports\n\t* inserting.\n\t*\n\t* Prefer `createAll(...)` when you need the returned rows; prefer\n\t* this when you only need to know how many rows were inserted (the\n\t* compiled plan skips `RETURNING`).\n\t*\n\t* ```typescript\n\t* const inserted = await db.orm.User.createAndCount([\n\t* { email: 'a@example.com' },\n\t* { email: 'b@example.com' },\n\t* ]);\n\t* // inserted === 2\n\t*\n\t* // Let the database skip rows that collide with a unique\n\t* // constraint; the count is how many it actually inserted:\n\t* const added = await db.orm.User.createAndCount(seedUsers, {\n\t* onConflict: 'skip',\n\t* });\n\t* ```\n\t*\n\t* Not supported on MTI variants — use `createAll(...)` instead.\n\t*/\n\tasync createAndCount(data, optionsOrConfigure, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst { options, configureCallback } = splitCreateArguments(optionsOrConfigure, configure);\n\t\tconst conflictSkip = this.#resolveConflictSkip(options, \"createAndCount()\");\n\t\tif (data.length === 0) return 0;\n\t\tthis.#assertNotMtiVariant(\"createAndCount()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configureCallback, \"write\", \"createAndCount\");\n\t\tconst rows = blindCast(data);\n\t\treturn (await executeGraph(createAllGraph(this.#descriptionWithoutIncludes(), this.#createValues(rows), conflictSkip), this.ctx, annotationsMap)).affectedRows;\n\t}\n\tasync upsert(input, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"upsert()\");\n\t\tthis.#assertNotMtiVariant(\"upsert()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"upsert\");\n\t\tconst createValues = this.#mapCreateRows([blindCast(input.create)])[0] ?? {};\n\t\tapplyCreateDefaults(this.ctx, this.namespaceId, this.tableName, [createValues]);\n\t\tconst updateValues = mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, input.update);\n\t\tif (Object.keys(updateValues).length > 0) applyUpdateDefaults(this.ctx, this.namespaceId, this.tableName, updateValues);\n\t\tconst conflictColumns = resolveUpsertConflictColumns(this.contract, this.namespaceId, this.modelName, blindCast(input.conflictOn));\n\t\tif (conflictColumns.length === 0) throw ormError(\"ORM.ARGUMENT_INVALID\", `upsert() for model \"${this.modelName}\" requires conflict columns`, { meta: {\n\t\t\tmethod: \"upsert\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t\tconst row = await consumeFirstRow(queryGraph(upsertGraph(this.#descriptionOptions(), createValues, updateValues, conflictColumns), this.ctx, annotationsMap, this.#descriptionOptions()));\n\t\tif (row) return row;\n\t\tthrow ormError(\"ORM.MUTATION_ROW_MISSING\", `upsert() for model \"${this.modelName}\" did not return a row`, { meta: {\n\t\t\toperation: \"upsert\",\n\t\t\tmodel: this.modelName\n\t\t} });\n\t}\n\tasync update(data, configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"update()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"update\");\n\t\tif (hasNestedMutationCallbacks(this.contract, this.namespaceId, this.modelName, blindCast(data))) {\n\t\t\tassertRelationUpdateIgnoresNothing(this.state, this.modelName);\n\t\t\tconst updatedRow = await executeNestedUpdateMutation({\n\t\t\t\tcontext: this.ctx.context,\n\t\t\t\truntime: this.ctx.runtime,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\tmodelName: this.modelName,\n\t\t\t\ttables: this.state.tables,\n\t\t\t\tfilters: this.state.filters,\n\t\t\t\tdata: blindCast(data)\n\t\t\t});\n\t\t\tif (!updatedRow) return null;\n\t\t\tconst identityCriterion = buildRowIdentityFilterFromRow(this.contract, this.namespaceId, this.modelName, updatedRow);\n\t\t\treturn this.#reloadMutationRowByIdentity(identityCriterion);\n\t\t}\n\t\tassertModelFieldNames(this.contract, this.namespaceId, this.modelName, blindCast(data));\n\t\tconst values = this.#updateValues(blindCast(data));\n\t\treturn consumeFirstRow(queryGraph(updateFirstGraph(this.#descriptionOptions(), values), this.ctx, annotationsMap, this.#descriptionOptions()));\n\t}\n\tupdateAll(data, configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"updateAll\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"updateAll\");\n\t\tassertReturningCapability(this.contract, \"updateAll()\");\n\t\treturn queryGraph(updateAllGraph(this.#descriptionOptions(), this.#updateValues(data)), this.ctx, annotationsMap, this.#descriptionOptions());\n\t}\n\tasync updateAndCount(data, configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"updateAndCount\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst values = this.#updateValues(data);\n\t\tconst graph = Object.keys(values).length === 0 ? new Graph() : updateAllGraph(this.#descriptionWithoutIncludes(), values);\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"updateAndCount\");\n\t\treturn (await executeGraph(graph, this.ctx, annotationsMap)).affectedRows;\n\t}\n\tasync delete(configure) {\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tassertReturningCapability(this.contract, \"delete()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"delete\");\n\t\treturn consumeFirstRow(queryGraph(deleteFirstGraph(this.#descriptionOptions()), this.ctx, annotationsMap, this.#descriptionOptions()));\n\t}\n\tdeleteAll(configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"deleteAll\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"deleteAll\");\n\t\tassertReturningCapability(this.contract, \"deleteAll()\");\n\t\treturn queryGraph(deleteAllGraph(this.#descriptionOptions()), this.ctx, annotationsMap, this.#descriptionOptions());\n\t}\n\tasync deleteAndCount(configure) {\n\t\tassertBulkWriteIgnoresNothing(this.state, this.modelName, \"deleteAndCount\");\n\t\tassertLockCompatible(this.state, \"mutation\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"deleteAndCount\");\n\t\treturn (await executeGraph(deleteAllGraph(this.#descriptionWithoutIncludes()), this.ctx, annotationsMap)).affectedRows;\n\t}\n\t#descriptionWithoutIncludes() {\n\t\treturn {\n\t\t\t...this.#descriptionOptions(),\n\t\t\tstate: {\n\t\t\t\t...this.state,\n\t\t\t\tincludes: []\n\t\t\t}\n\t\t};\n\t}\n\t#updateValues(data) {\n\t\tconst values = mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, data);\n\t\tif (Object.keys(values).length > 0) applyUpdateDefaults(this.ctx, this.namespaceId, this.tableName, values);\n\t\treturn values;\n\t}\n\tasync #reloadMutationRowByIdentity(criterion) {\n\t\treturn this.#reloadMutationRowByCriterion(criterion, \"row identity\");\n\t}\n\tasync #reloadMutationRowByCriterion(criterion, criterionLabel) {\n\t\tconst whereExpr = shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, blindCast(criterion), this.state.tables.root);\n\t\tif (!whereExpr) throw new InternalError(`Failed to build ${criterionLabel} filter for mutation result on model \"${this.modelName}\"`);\n\t\tconst resultState = {\n\t\t\t...emptyState(this.state.tables),\n\t\t\tfilters: [whereExpr],\n\t\t\tincludes: this.state.includes,\n\t\t\tselectedFields: this.state.selectedFields,\n\t\t\tlimit: 1\n\t\t};\n\t\treturn (await dispatchCollectionRows({\n\t\t\tcontext: this.ctx.context,\n\t\t\truntime: this.ctx.runtime,\n\t\t\tstate: resultState,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t}))[0] ?? null;\n\t}\n\t#assertIncludeRefinementMode(action) {\n\t\tif (this.includeRefinementMode) return;\n\t\tthrow ormError(\"ORM.INCLUDE_INVALID\", `${action} is only available inside include() refinement callbacks`, { meta: { action } });\n\t}\n\t#lock(strength, options) {\n\t\tif (this.includeRefinementMode) throw lockIncompatible(\"includeRefinement\", `${strength}() cannot be called inside an include() refinement callback`);\n\t\tassertLockCapability(this.contract, lockStrengthCapabilities[strength], strength);\n\t\tassertLockCapability(this.contract, lockOptionCapabilities.of, strength);\n\t\tconst waitPolicy = lockWaitPolicyOf(strength, options);\n\t\tif (waitPolicy !== void 0) assertLockCapability(this.contract, lockOptionCapabilities[waitPolicy], strength);\n\t\tconst clause = LockingClause.of(strength, {\n\t\t\tof: [this.state.tables.root.alias],\n\t\t\t...ifDefined(\"waitPolicy\", waitPolicy)\n\t\t});\n\t\treturn this.#cloneSelf({ locking: [...this.state.locking ?? [], clause] });\n\t}\n\t#clone(overrides) {\n\t\treturn this.#createSelf({\n\t\t\t...this.state,\n\t\t\t...overrides\n\t\t});\n\t}\n\t#cloneSelf(overrides) {\n\t\treturn blindCast(this.#createSelf({\n\t\t\t...this.state,\n\t\t\t...overrides\n\t\t}));\n\t}\n\t#cloneWithRow(overrides) {\n\t\treturn this.#createSelf({\n\t\t\t...this.state,\n\t\t\t...overrides\n\t\t});\n\t}\n\t#createSelf(state) {\n\t\treturn blindCast(new (blindCast(this.constructor))(this.ctx, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tstate,\n\t\t\tregistry: this.registry,\n\t\t\tincludeRefinementMode: this.includeRefinementMode\n\t\t}));\n\t}\n\t#createCollection(modelName, options) {\n\t\treturn blindCast(new ((this.registry.get(modelName)) ?? (blindCast(CollectionBase)))(this.ctx, modelName, {\n\t\t\ttableName: options.tableName,\n\t\t\tnamespaceId: options.namespaceId,\n\t\t\tstate: options.state,\n\t\t\tregistry: options.registry ?? this.registry,\n\t\t\tincludeRefinementMode: options.includeRefinementMode ?? this.includeRefinementMode\n\t\t}));\n\t}\n\t#dispatch() {\n\t\treturn dispatchCollectionRows({\n\t\t\tcontext: this.ctx.context,\n\t\t\truntime: this.ctx.runtime,\n\t\t\tstate: this.state,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId\n\t\t});\n\t}\n\t/**\n\t* Invokes the user-supplied configurator (if any) against a freshly\n\t* constructed read meta builder, and returns a clone whose\n\t* `state.annotations` carries the recorded map. Used by read\n\t* terminals that flow annotations through state (`all`, `first`).\n\t*\n\t* Returns the receiver unchanged when no configurator was supplied\n\t* or when the configurator did not call `meta.annotate(...)`. The\n\t* meta builder's `annotate` method enforces applicability at the\n\t* type level and at runtime, so terminal code does not need to\n\t* re-validate.\n\t*/\n\t#withAnnotationsFromMeta(configure, terminalName) {\n\t\tif (configure === void 0) return this;\n\t\tconst meta = createMetaBuilder(\"read\", terminalName);\n\t\tconfigure(meta);\n\t\tif (meta.annotations.size === 0) return this;\n\t\tconst next = new Map(this.state.annotations);\n\t\tfor (const [namespace, value] of meta.annotations) next.set(namespace, value);\n\t\treturn blindCast(this.#clone({ annotations: next }));\n\t}\n\t/**\n\t* Invokes the user-supplied configurator (if any) against a freshly\n\t* constructed meta builder of the given operation kind, and returns\n\t* the recorded annotation map (or `undefined` when empty). Used by\n\t* terminals where annotations don't flow through `state` — the\n\t* compiled plan is post-wrapped via `mergeAnnotations` instead.\n\t* Read terminals `all` and `first` populate `state.annotations`\n\t* via `#withAnnotationsFromMeta` instead; `aggregate` uses this\n\t* post-wrap path because `compileAggregate` does not forward `state.annotations` into the plan.\n\t* The meta builder's `annotate` method enforces applicability at the\n\t* type level and at runtime.\n\t*/\n\t#collectAnnotationsFromMeta(configure, kind, terminalName) {\n\t\tif (configure === void 0) return;\n\t\tconst meta = createMetaBuilder(kind, terminalName);\n\t\tconfigure(meta);\n\t\treturn meta.annotations.size === 0 ? void 0 : meta.annotations;\n\t}\n};\nconst collectionInstanceMemberNames = [\n\t\"ctx\",\n\t\"contract\",\n\t\"modelName\",\n\t\"tableName\",\n\t\"namespaceId\",\n\t\"state\",\n\t\"registry\",\n\t\"includeRefinementMode\"\n];\n/**\n* Every member name the collection surface owns: the prototype's methods plus\n* the declared instance fields. A contributed aggregate operation may not\n* take one of these names — reducers install into the same flat namespace —\n* so ORM composition rejects any operation this set contains.\n*/\nfunction reservedCollectionMemberNames() {\n\treturn /* @__PURE__ */ new Set([...Object.getOwnPropertyNames(CollectionBase.prototype), ...collectionInstanceMemberNames]);\n}\nconst Collection = blindCast(CollectionBase);\n//#endregion\n//#region src/orm.ts\n/**\n* Reject a contributed aggregate operation whose name a collection member\n* already owns. Aggregate operations surface as reducer methods on the\n* collection, in one flat namespace with the builder members, so a same-named\n* operation would shadow the member it collides with — a client-surface\n* concern, enforced here where that surface is assembled.\n*/\nfunction assertAggregateOperationsNotReserved(registry) {\n\tconst reserved = reservedCollectionMemberNames();\n\tfor (const operation of aggregateOperationNames(registry)) {\n\t\tif (!reserved.has(operation)) continue;\n\t\tthrow ormError(\"ORM.AGGREGATE_OPERATION_RESERVED\", `Aggregate operation '${operation}' is reserved: the name is a collection builder member.`, {\n\t\t\twhy: \"Aggregate operations surface as reducer methods on the collection, in one namespace with the query-builder members; a same-named operation would shadow the member it collides with.\",\n\t\t\tfix: \"Rename the contributed aggregate operation.\",\n\t\t\tmeta: { operation }\n\t\t});\n\t}\n}\nfunction orm(options) {\n\tconst { runtime, collections, context } = options;\n\tassertAggregateOperationsNotReserved(context.aggregateDescriptors);\n\tconst contract = context.contract;\n\tconst ctx = {\n\t\truntime,\n\t\tcontext\n\t};\n\tconst collectionRegistry = createCollectionRegistry(contract, collections);\n\tfunction buildCollection(namespaceId, modelName, tableName) {\n\t\treturn new (blindCast(collectionRegistry.get(modelName) ?? CollectionBase))(ctx, modelName, {\n\t\t\tregistry: collectionRegistry,\n\t\t\tnamespaceId,\n\t\t\t...tableName !== void 0 ? { tableName } : {}\n\t\t});\n\t}\n\tconst namespaceFacets = /* @__PURE__ */ new Map();\n\tfunction namespaceFacet(namespaceId) {\n\t\tconst cached = namespaceFacets.get(namespaceId);\n\t\tif (cached) return cached;\n\t\tconst facetModelNames = new Set(domainModelNamesInNamespace(contract, namespaceId));\n\t\tconst facetCache = /* @__PURE__ */ new Map();\n\t\tconst facet = new Proxy({}, { get(_facetTarget, modelProp) {\n\t\t\tif (typeof modelProp !== \"string\") return;\n\t\t\tif (!facetModelNames.has(modelProp)) return;\n\t\t\tconst hit = facetCache.get(modelProp);\n\t\t\tif (hit) return hit;\n\t\t\tconst collection = buildCollection(namespaceId, modelProp, domainModelTableInNamespace(contract, namespaceId, modelProp));\n\t\t\tfacetCache.set(modelProp, collection);\n\t\t\treturn collection;\n\t\t} });\n\t\tnamespaceFacets.set(namespaceId, facet);\n\t\treturn facet;\n\t}\n\treturn new Proxy({}, { get(_target, prop) {\n\t\tif (typeof prop !== \"string\") return;\n\t\tif (Object.hasOwn(contract.domain.namespaces, prop)) return namespaceFacet(prop);\n\t\treturn prop === \"fragment\" ? defineDeclaredFieldsFragment : void 0;\n\t} });\n}\nfunction createCollectionRegistry(contract, collections) {\n\tconst registry = /* @__PURE__ */ new Map();\n\tif (!collections) return registry;\n\tconst models = domainModelsAtDefaultNamespace(contract.domain);\n\tfor (const [key, collectionClass] of Object.entries(collections)) {\n\t\tif (!collectionClass) continue;\n\t\tif (!isCollectionClass(collectionClass)) throw ormError(\"ORM.ARGUMENT_INVALID\", `Custom collection '${key}' must be a Collection class (constructor), not an instance`, { meta: {\n\t\t\tmethod: \"orm\",\n\t\t\targument: \"collections\",\n\t\t\tkey\n\t\t} });\n\t\tif (!Object.hasOwn(models, key)) throw ormError(\"ORM.ARGUMENT_INVALID\", `No model found for custom collection '${key}'. Available models: ${Object.keys(models).join(\", \")}`, { meta: {\n\t\t\tmethod: \"orm\",\n\t\t\targument: \"collections\",\n\t\t\tkey\n\t\t} });\n\t\tregistry.set(key, collectionClass);\n\t}\n\treturn registry;\n}\nfunction isCollectionClass(value) {\n\tif (typeof value !== \"function\") return false;\n\tconst candidate = value;\n\tif (!candidate.prototype || typeof candidate.prototype !== \"object\") return false;\n\treturn candidate.prototype instanceof CollectionBase;\n}\n//#endregion\n//#region src/prepared-row-query.ts\nasync function prepareQuery(runtime, declaration, callback) {\n\tlet description;\n\tconst statement = await runtime.prepare(declaration, (params) => {\n\t\tconst authored = callback(params);\n\t\tif (\"plan\" in authored) {\n\t\t\tdescription = authored;\n\t\t\treturn authored.plan;\n\t\t}\n\t\treturn authored;\n\t});\n\treturn blindCast(description ? createPreparedRowQuery(description, statement) : statement);\n}\nfunction createPreparedRowQuery(description, statement) {\n\treturn Object.freeze({ query(target, params, options) {\n\t\treturn description.consume(statement.query(target, params, options));\n\t} });\n}\n//#endregion\nexport { Collection, GroupedCollection, all, and, createCollectionTables, createModelAccessor, createPreparedRowQuery, emptyState, not, or, orderByField, orm, prepareQuery };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|