@prisma/orm-family-sql 0.16.0-dev.36
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/LICENSE +201 -0
- package/README.md +28 -0
- package/dist/ast-BstHjAoG.mjs +325 -0
- package/dist/ast-BstHjAoG.mjs.map +1 -0
- package/dist/ast-DSuzmsWn.d.mts +287 -0
- package/dist/ast-DSuzmsWn.d.mts.map +1 -0
- package/dist/authoring-type-constructors-Blqoa2Ua-DyCmD6mp.mjs +316 -0
- package/dist/authoring-type-constructors-Blqoa2Ua-DyCmD6mp.mjs.map +1 -0
- package/dist/build-contract-DBCz_YSs-DO0wMHai.mjs +778 -0
- package/dist/build-contract-DBCz_YSs-DO0wMHai.mjs.map +1 -0
- package/dist/builder.d.mts +3 -0
- package/dist/builder.mjs +1 -0
- package/dist/builder__runtime.d.mts +42 -0
- package/dist/builder__runtime.d.mts.map +1 -0
- package/dist/builder__runtime.mjs +955 -0
- package/dist/builder__runtime.mjs.map +1 -0
- package/dist/builder__types.d.mts +3 -0
- package/dist/builder__types.mjs +1 -0
- package/dist/canonicalization-hooks-CYnW_sGn.d.mts +10 -0
- package/dist/canonicalization-hooks-CYnW_sGn.d.mts.map +1 -0
- package/dist/canonicalization-hooks-DfIc_lOO.mjs +87 -0
- package/dist/canonicalization-hooks-DfIc_lOO.mjs.map +1 -0
- package/dist/codec-descriptor-registry-BJVJRftS.mjs +96 -0
- package/dist/codec-descriptor-registry-BJVJRftS.mjs.map +1 -0
- package/dist/codec-types-MOaceoPi-C5eL2sao.d.mts +116 -0
- package/dist/codec-types-MOaceoPi-C5eL2sao.d.mts.map +1 -0
- package/dist/config-types-47qB33rW.d.mts +21 -0
- package/dist/config-types-47qB33rW.d.mts.map +1 -0
- package/dist/config-types-N7PJc6VN.mjs +65 -0
- package/dist/config-types-N7PJc6VN.mjs.map +1 -0
- package/dist/contract-builder-MvJJrQ-5.d.mts +1306 -0
- package/dist/contract-builder-MvJJrQ-5.d.mts.map +1 -0
- package/dist/contract-builder-YjMQcvZ1.mjs +1615 -0
- package/dist/contract-builder-YjMQcvZ1.mjs.map +1 -0
- package/dist/contract-emitter.d.mts +25 -0
- package/dist/contract-emitter.d.mts.map +1 -0
- package/dist/contract-emitter.mjs +2 -0
- package/dist/contract-errors-BCN6RVI5-5IHBF_lg.mjs +9 -0
- package/dist/contract-errors-BCN6RVI5-5IHBF_lg.mjs.map +1 -0
- package/dist/contract-psl.d.mts +65 -0
- package/dist/contract-psl.d.mts.map +1 -0
- package/dist/contract-psl.mjs +2 -0
- package/dist/contract-psl__provider.d.mts +23 -0
- package/dist/contract-psl__provider.d.mts.map +1 -0
- package/dist/contract-psl__provider.mjs +105 -0
- package/dist/contract-psl__provider.mjs.map +1 -0
- package/dist/contract-ts.d.mts +3 -0
- package/dist/contract-ts.mjs +4 -0
- package/dist/contract-ts__config-types.d.mts +2 -0
- package/dist/contract-ts__config-types.mjs +2 -0
- package/dist/contract-ts__contract-builder.d.mts +2 -0
- package/dist/contract-ts__contract-builder.mjs +3 -0
- package/dist/contract-view-BMR5IWk4.mjs +39 -0
- package/dist/contract-view-BMR5IWk4.mjs.map +1 -0
- package/dist/contract-view-BbWQp6r4.d.mts +61 -0
- package/dist/contract-view-BbWQp6r4.d.mts.map +1 -0
- package/dist/contract.d.mts +26 -0
- package/dist/contract.mjs +17 -0
- package/dist/contract__canonicalization-hooks.d.mts +2 -0
- package/dist/contract__canonicalization-hooks.mjs +2 -0
- package/dist/contract__contract-view.d.mts +2 -0
- package/dist/contract__contract-view.mjs +2 -0
- package/dist/contract__entity-handle-lowering-hook.d.mts +2 -0
- package/dist/contract__entity-handle-lowering-hook.mjs +2 -0
- package/dist/contract__entity-kinds.d.mts +2 -0
- package/dist/contract__entity-kinds.mjs +2 -0
- package/dist/contract__factories.d.mts +2 -0
- package/dist/contract__factories.mjs +2 -0
- package/dist/contract__foreign-key-materialization.d.mts +2 -0
- package/dist/contract__foreign-key-materialization.mjs +2 -0
- package/dist/contract__index-naming.d.mts +2 -0
- package/dist/contract__index-naming.mjs +2 -0
- package/dist/contract__index-type-validation.d.mts +2 -0
- package/dist/contract__index-type-validation.mjs +2 -0
- package/dist/contract__index-types.d.mts +3 -0
- package/dist/contract__index-types.mjs +2 -0
- package/dist/contract__pack-types.d.mts +2 -0
- package/dist/contract__pack-types.mjs +1 -0
- package/dist/contract__referential-action-sql.d.mts +2 -0
- package/dist/contract__referential-action-sql.mjs +2 -0
- package/dist/contract__resolve-storage-table.d.mts +2 -0
- package/dist/contract__resolve-storage-table.mjs +2 -0
- package/dist/contract__types.d.mts +11 -0
- package/dist/contract__types.mjs +4 -0
- package/dist/contract__validators.d.mts +2 -0
- package/dist/contract__validators.mjs +3 -0
- package/dist/contract__value-set-derivation-hook.d.mts +2 -0
- package/dist/contract__value-set-derivation-hook.mjs +2 -0
- package/dist/control-B7iS4jv4.mjs +1326 -0
- package/dist/control-B7iS4jv4.mjs.map +1 -0
- package/dist/control-BHmsZudH.d.mts +948 -0
- package/dist/control-BHmsZudH.d.mts.map +1 -0
- package/dist/control-adapter-4y1O8Ps3.d.mts +1 -0
- package/dist/control-adapter-C99J7aEF-C-17lFY8.d.mts +191 -0
- package/dist/control-adapter-C99J7aEF-C-17lFY8.d.mts.map +1 -0
- package/dist/db-DhMsmBS--DKENDi3l.d.mts +365 -0
- package/dist/db-DhMsmBS--DKENDi3l.d.mts.map +1 -0
- package/dist/ddl-types-BMp2bWVS-D1waZJ4n.mjs +153 -0
- package/dist/ddl-types-BMp2bWVS-D1waZJ4n.mjs.map +1 -0
- package/dist/ddl-types-rrMsf77U-DGctYf-T.d.mts +149 -0
- package/dist/ddl-types-rrMsf77U-DGctYf-T.d.mts.map +1 -0
- package/dist/diff-B16bL_IR.mjs +13 -0
- package/dist/diff-B16bL_IR.mjs.map +1 -0
- package/dist/diff-DhlzHOMD.d.mts +104 -0
- package/dist/diff-DhlzHOMD.d.mts.map +1 -0
- package/dist/dist-C_q1_QR9.mjs +9 -0
- package/dist/dist-C_q1_QR9.mjs.map +1 -0
- package/dist/dist-DrScXbhq.mjs +414 -0
- package/dist/dist-DrScXbhq.mjs.map +1 -0
- package/dist/dist-x6jvtkKM.mjs +68 -0
- package/dist/dist-x6jvtkKM.mjs.map +1 -0
- package/dist/entity-handle-lowering-hook-CIvRKBfa.d.mts +92 -0
- package/dist/entity-handle-lowering-hook-CIvRKBfa.d.mts.map +1 -0
- package/dist/entity-handle-lowering-hook-DwLIKNiS.mjs +11 -0
- package/dist/entity-handle-lowering-hook-DwLIKNiS.mjs.map +1 -0
- package/dist/entity-kinds-DKxwKolf-CcsY-iYV.mjs +136 -0
- package/dist/entity-kinds-DKxwKolf-CcsY-iYV.mjs.map +1 -0
- package/dist/entity-kinds-Dh6VH4uK.d.mts +29 -0
- package/dist/entity-kinds-Dh6VH4uK.d.mts.map +1 -0
- package/dist/errors-B5g0xWro-mWH2C07F.mjs +9 -0
- package/dist/errors-B5g0xWro-mWH2C07F.mjs.map +1 -0
- package/dist/errors.d.mts +63 -0
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +2 -0
- package/dist/expression-DIf8F4Mc.d.mts +167 -0
- package/dist/expression-DIf8F4Mc.d.mts.map +1 -0
- package/dist/expression-RUO52bJB.mjs +109 -0
- package/dist/expression-RUO52bJB.mjs.map +1 -0
- package/dist/factories-B7tA4y9D.d.mts +39 -0
- package/dist/factories-B7tA4y9D.d.mts.map +1 -0
- package/dist/factories-CDG9zBxC.mjs +77 -0
- package/dist/factories-CDG9zBxC.mjs.map +1 -0
- package/dist/family.d.mts +13 -0
- package/dist/family.mjs +12 -0
- package/dist/family__control-adapter.d.mts +3 -0
- package/dist/family__control-adapter.mjs +1 -0
- package/dist/family__control.d.mts +4 -0
- package/dist/family__control.mjs +4 -0
- package/dist/family__diff.d.mts +3 -0
- package/dist/family__diff.mjs +3 -0
- package/dist/family__ir.d.mts +2 -0
- package/dist/family__ir.mjs +3 -0
- package/dist/family__migration.d.mts +2 -0
- package/dist/family__migration.mjs +2 -0
- package/dist/family__pack.d.mts +249 -0
- package/dist/family__pack.d.mts.map +1 -0
- package/dist/family__pack.mjs +18 -0
- package/dist/family__pack.mjs.map +1 -0
- package/dist/family__psl-infer.d.mts +2 -0
- package/dist/family__psl-infer.mjs +2 -0
- package/dist/family__runtime.d.mts +3 -0
- package/dist/family__runtime.mjs +3 -0
- package/dist/family__verify.d.mts +2 -0
- package/dist/family__verify.mjs +2 -0
- package/dist/foreign-key-BSy9u4O4-BnsOe5Nf.d.mts +85 -0
- package/dist/foreign-key-BSy9u4O4-BnsOe5Nf.d.mts.map +1 -0
- package/dist/foreign-key-materialization-Ca-wRbmj.d.mts +65 -0
- package/dist/foreign-key-materialization-Ca-wRbmj.d.mts.map +1 -0
- package/dist/foreign-key-materialization-HI7BIQrG.mjs +72 -0
- package/dist/foreign-key-materialization-HI7BIQrG.mjs.map +1 -0
- package/dist/index-Bb9U36N4.d.mts +511 -0
- package/dist/index-Bb9U36N4.d.mts.map +1 -0
- package/dist/index-BgaTJRxj.d.mts +25 -0
- package/dist/index-BgaTJRxj.d.mts.map +1 -0
- package/dist/index-naming-BZWoh45T.d.mts +62 -0
- package/dist/index-naming-BZWoh45T.d.mts.map +1 -0
- package/dist/index-naming-BoGBcMmI-DiJAr66H.mjs +108 -0
- package/dist/index-naming-BoGBcMmI-DiJAr66H.mjs.map +1 -0
- package/dist/index-type-validation-COH4d78M.mjs +17 -0
- package/dist/index-type-validation-COH4d78M.mjs.map +1 -0
- package/dist/index-type-validation-DN0L2mqm.d.mts +10 -0
- package/dist/index-type-validation-DN0L2mqm.d.mts.map +1 -0
- package/dist/index-types-CNhHgKHi.d.mts +1 -0
- package/dist/index-types-DJQ_xwaE.mjs +40 -0
- package/dist/index-types-DJQ_xwaE.mjs.map +1 -0
- package/dist/index-types-DPVhsW0v-D-BikM4h.d.mts +31 -0
- package/dist/index-types-DPVhsW0v-D-BikM4h.d.mts.map +1 -0
- package/dist/interpreter-5WgpL-ax-_nqHLUTr.mjs +3526 -0
- package/dist/interpreter-5WgpL-ax-_nqHLUTr.mjs.map +1 -0
- package/dist/ir-B3bKMnGQ.d.mts +123 -0
- package/dist/ir-B3bKMnGQ.d.mts.map +1 -0
- package/dist/ir-I-xciGUH.mjs +36 -0
- package/dist/ir-I-xciGUH.mjs.map +1 -0
- package/dist/lane-query-builder.d.mts +236 -0
- package/dist/lane-query-builder.d.mts.map +1 -0
- package/dist/lane-query-builder.mjs +67 -0
- package/dist/lane-query-builder.mjs.map +1 -0
- package/dist/middleware-B4XbF4d4-tfwBl6mX.d.mts +119 -0
- package/dist/middleware-B4XbF4d4-tfwBl6mX.d.mts.map +1 -0
- package/dist/middleware-ByRsXxxq.d.mts +1 -0
- package/dist/middleware-CMr4CHNz-DHIUdxlm.mjs +80 -0
- package/dist/middleware-CMr4CHNz-DHIUdxlm.mjs.map +1 -0
- package/dist/migration-CK4oePIo.mjs +44 -0
- package/dist/migration-CK4oePIo.mjs.map +1 -0
- package/dist/migration-CW0ZJLxP.d.mts +44 -0
- package/dist/migration-CW0ZJLxP.d.mts.map +1 -0
- package/dist/naming-BwqqVcZy-BgTObIQw.mjs +177 -0
- package/dist/naming-BwqqVcZy-BgTObIQw.mjs.map +1 -0
- package/dist/naming-jLgdauLi-C84G_UHi.d.mts +133 -0
- package/dist/naming-jLgdauLi-C84G_UHi.d.mts.map +1 -0
- package/dist/operations.d.mts +2 -0
- package/dist/operations.mjs +2 -0
- package/dist/orm-client.d.mts +1316 -0
- package/dist/orm-client.d.mts.map +1 -0
- package/dist/orm-client.mjs +4544 -0
- package/dist/orm-client.mjs.map +1 -0
- package/dist/pack-types-BcLTpwbv.d.mts +14 -0
- package/dist/pack-types-BcLTpwbv.d.mts.map +1 -0
- package/dist/plan-BTD8xFfa-Dd_K-A1R.d.mts +45 -0
- package/dist/plan-BTD8xFfa-Dd_K-A1R.d.mts.map +1 -0
- package/dist/plan-CkpcgUaM.mjs +34 -0
- package/dist/plan-CkpcgUaM.mjs.map +1 -0
- package/dist/plan-Cm4jaoNM.d.mts +2 -0
- package/dist/psl-infer-6je61Z6J.d.mts +119 -0
- package/dist/psl-infer-6je61Z6J.d.mts.map +1 -0
- package/dist/psl-infer-DGftl-HW.mjs +362 -0
- package/dist/psl-infer-DGftl-HW.mjs.map +1 -0
- package/dist/query-lane-context-Bz8XJZ45.d.mts +1 -0
- package/dist/query-lane-context-DtdVMqoz-C2Tj5QHA.d.mts +94 -0
- package/dist/query-lane-context-DtdVMqoz-C2Tj5QHA.d.mts.map +1 -0
- package/dist/referential-action-sql-Csd6dA8G.d.mts +12 -0
- package/dist/referential-action-sql-Csd6dA8G.d.mts.map +1 -0
- package/dist/referential-action-sql-DSqkrySN.mjs +17 -0
- package/dist/referential-action-sql-DSqkrySN.mjs.map +1 -0
- package/dist/relational-core.d.mts +13 -0
- package/dist/relational-core.mjs +8 -0
- package/dist/relational-core__ast.d.mts +5 -0
- package/dist/relational-core__ast.mjs +5 -0
- package/dist/relational-core__codec-descriptor-registry.d.mts +39 -0
- package/dist/relational-core__codec-descriptor-registry.d.mts.map +1 -0
- package/dist/relational-core__codec-descriptor-registry.mjs +2 -0
- package/dist/relational-core__contract-free.d.mts +220 -0
- package/dist/relational-core__contract-free.d.mts.map +1 -0
- package/dist/relational-core__contract-free.mjs +393 -0
- package/dist/relational-core__contract-free.mjs.map +1 -0
- package/dist/relational-core__expression.d.mts +2 -0
- package/dist/relational-core__expression.mjs +2 -0
- package/dist/relational-core__middleware.d.mts +3 -0
- package/dist/relational-core__middleware.mjs +2 -0
- package/dist/relational-core__plan.d.mts +4 -0
- package/dist/relational-core__plan.mjs +2 -0
- package/dist/relational-core__query-lane-context.d.mts +3 -0
- package/dist/relational-core__query-lane-context.mjs +1 -0
- package/dist/relational-core__types.d.mts +3 -0
- package/dist/relational-core__types.mjs +1 -0
- package/dist/resolve-storage-table-DUwyRJmP.d.mts +21 -0
- package/dist/resolve-storage-table-DUwyRJmP.d.mts.map +1 -0
- package/dist/resolve-storage-table-DZsfnzeW.mjs +46 -0
- package/dist/resolve-storage-table-DZsfnzeW.mjs.map +1 -0
- package/dist/runtime-DNewRuec.d.mts +46 -0
- package/dist/runtime-DNewRuec.d.mts.map +1 -0
- package/dist/runtime-tIHpGCcG.mjs +55 -0
- package/dist/runtime-tIHpGCcG.mjs.map +1 -0
- package/dist/runtime.d.mts +4 -0
- package/dist/runtime.mjs +1606 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/schema-differ-DpG_gnur-g5_iks8G.d.mts +47 -0
- package/dist/schema-differ-DpG_gnur-g5_iks8G.d.mts.map +1 -0
- package/dist/schema-ir.d.mts +2 -0
- package/dist/schema-ir.mjs +2 -0
- package/dist/schema-ir__naming.d.mts +2 -0
- package/dist/schema-ir__naming.mjs +2 -0
- package/dist/schema-ir__types.d.mts +3 -0
- package/dist/schema-ir__types.mjs +2 -0
- package/dist/schema-verify-vtFZbmGq-BNfTr6fU.mjs +222 -0
- package/dist/schema-verify-vtFZbmGq-BNfTr6fU.mjs.map +1 -0
- package/dist/serialized-index-B96AwqtU-DcqcB4q_.d.mts +26 -0
- package/dist/serialized-index-B96AwqtU-DcqcB4q_.d.mts.map +1 -0
- package/dist/serialized-index-Dp5_EjXD-DMsw8jf3.mjs +64 -0
- package/dist/serialized-index-Dp5_EjXD-DMsw8jf3.mjs.map +1 -0
- package/dist/sql-contract-serializer-2oBWuxTe-B9hzBBv1.mjs +171 -0
- package/dist/sql-contract-serializer-2oBWuxTe-B9hzBBv1.mjs.map +1 -0
- package/dist/sql-execution-plan-CJmsCP7n-DoEpNn7r.d.mts +32 -0
- package/dist/sql-execution-plan-CJmsCP7n-DoEpNn7r.d.mts.map +1 -0
- package/dist/sql-index-DsI8HAeK-BJsn-jvD.d.mts +72 -0
- package/dist/sql-index-DsI8HAeK-BJsn-jvD.d.mts.map +1 -0
- package/dist/sql-node-kEz6YFZo-v2F7delx.d.mts +42 -0
- package/dist/sql-node-kEz6YFZo-v2F7delx.d.mts.map +1 -0
- package/dist/sql-storage-B0QwiTg6-B8DVctJm.d.mts +171 -0
- package/dist/sql-storage-B0QwiTg6-B8DVctJm.d.mts.map +1 -0
- package/dist/storage-table-BBaAmanc-BwR37LMA.d.mts +130 -0
- package/dist/storage-table-BBaAmanc-BwR37LMA.d.mts.map +1 -0
- package/dist/storage-table-_LWDmPfv-DFhU2dML.mjs +277 -0
- package/dist/storage-table-_LWDmPfv-DFhU2dML.mjs.map +1 -0
- package/dist/storage-value-set-BGlj5Uus-CvZD--GG.d.mts +41 -0
- package/dist/storage-value-set-BGlj5Uus-CvZD--GG.d.mts.map +1 -0
- package/dist/timestamp-now-generator-DRXygu32-DN9Qb1uI.mjs +173 -0
- package/dist/timestamp-now-generator-DRXygu32-DN9Qb1uI.mjs.map +1 -0
- package/dist/types-BchwQpmO.d.mts +16 -0
- package/dist/types-BchwQpmO.d.mts.map +1 -0
- package/dist/types-BgkZru_1-H7yfikSQ.mjs +1444 -0
- package/dist/types-BgkZru_1-H7yfikSQ.mjs.map +1 -0
- package/dist/types-CMMQS6aG.mjs +111 -0
- package/dist/types-CMMQS6aG.mjs.map +1 -0
- package/dist/types-CuDrWc5v-ISVXBmBs.d.mts +134 -0
- package/dist/types-CuDrWc5v-ISVXBmBs.d.mts.map +1 -0
- package/dist/types-CvbBw1Jo-3KQdErJY.d.mts +688 -0
- package/dist/types-CvbBw1Jo-3KQdErJY.d.mts.map +1 -0
- package/dist/types-DIBA80mc-wf5wLmON.d.mts +723 -0
- package/dist/types-DIBA80mc-wf5wLmON.d.mts.map +1 -0
- package/dist/types-DMxc5KZa.d.mts +1 -0
- package/dist/types-Dl20lxky-DC_jdA0T.d.mts +247 -0
- package/dist/types-Dl20lxky-DC_jdA0T.d.mts.map +1 -0
- package/dist/types-DmhUVq4u-BpqqjPJx.mjs +719 -0
- package/dist/types-DmhUVq4u-BpqqjPJx.mjs.map +1 -0
- package/dist/types-IqZMLrFC-DtdJNICr.d.mts +426 -0
- package/dist/types-IqZMLrFC-DtdJNICr.d.mts.map +1 -0
- package/dist/types-TvBZ2Ne9.d.mts +1 -0
- package/dist/unique-constraint-jQWfH7dg-zLWtFp99.d.mts +32 -0
- package/dist/unique-constraint-jQWfH7dg-zLWtFp99.d.mts.map +1 -0
- package/dist/util-DQQgv2j1-D6INZaRG.mjs +34 -0
- package/dist/util-DQQgv2j1-D6INZaRG.mjs.map +1 -0
- package/dist/validators-C4PItWnf.mjs +0 -0
- package/dist/validators-C4PItWnf.mjs.map +1 -0
- package/dist/validators-CxeHhHrf.d.mts +206 -0
- package/dist/validators-CxeHhHrf.d.mts.map +1 -0
- package/dist/value-set-derivation-hook-BhgGVtw0.d.mts +35 -0
- package/dist/value-set-derivation-hook-BhgGVtw0.d.mts.map +1 -0
- package/dist/value-set-derivation-hook-Di9JZ0X7.mjs +22 -0
- package/dist/value-set-derivation-hook-Di9JZ0X7.mjs.map +1 -0
- package/dist/verify-E6Dd2vYp-gYwnlhLm.mjs +86 -0
- package/dist/verify-E6Dd2vYp-gYwnlhLm.mjs.map +1 -0
- package/dist/verify-zDRnw0Rn.d.mts +26 -0
- package/dist/verify-zDRnw0Rn.d.mts.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orm-client.mjs","names":["#clone","#cloneWithRow","#createCollection","#assertIncludeRefinementMode","#withAnnotationsFromMeta","#dispatch","#collectAnnotationsFromMeta","#reloadMutationRowByPrimaryKey","#createAllWithAnnotations","#resolveMtiCreateContext","#executeMtiCreate","#mapCreateRows","#augmentMutationSelection","#assertNotMtiVariant","#buildUpsertConflictCriterion","#reloadMutationRowByCriterion","#withRuntime","#findFirstMatchingRowIdentityWhere","#updateAllWithAnnotations","#executeDeleteReturning","#deleteAllWithAnnotations","#executeDeleteReturningWithIncludes","#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, NativeJsonValueProjection, NotExpr, NullCheckExpr, OrExpr, OrderByItem, ParamRef, ProjectionItem, SelectAst, SubqueryExpr, TableSource, UpdateAst, WindowFuncExpr, collectOrderedParamRefs, isWhereExpr } from \"@internal/sql-relational-core/ast\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError, assertNever } 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 { isUniqueConstraintViolation } from \"@internal/sql-errors\";\nimport { domainModelsAtDefaultNamespace } from \"@internal/contract/types\";\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 `${namespaceId}\\u0000${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 fieldToColumnCache = /* @__PURE__ */ new WeakMap();\nconst columnToFieldCache = /* @__PURE__ */ new WeakMap();\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 models = modelsOf(contract, namespaceId);\n\tconst model = models[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 = resolveFieldToColumn(contract, namespaceId, modelName, discriminatorField);\n\tconst variants = /* @__PURE__ */ new Map();\n\tconst variantsByValue = /* @__PURE__ */ new Map();\n\tconst mtiVariants = [];\n\tfor (const [variantModelName, variantEntry] of Object.entries(model.variants)) {\n\t\tconst variantModel = models[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 = variantTable === baseTable ? \"sti\" : \"mti\";\n\t\tconst info = {\n\t\t\tmodelName: variantModelName,\n\t\t\tvalue: variantEntry.value,\n\t\t\ttable: variantTable,\n\t\t\tstrategy\n\t\t};\n\t\tvariants.set(variantModelName, info);\n\t\tvariantsByValue.set(variantEntry.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\tvariantsByValue,\n\t\tmtiVariants\n\t};\n\tperContract.set(cacheKey, result);\n\treturn result;\n}\nfunction resolveFieldToColumn(contract, namespaceId, modelName, fieldName) {\n\treturn getFieldToColumnMap(contract, namespaceId, modelName)[fieldName] ?? fieldName;\n}\n/**\n* Map the fields that an MTI variant contributes to `{ table, column }` refs\n* qualified against the variant's own table — the table the read path joins\n* into the correlated child SELECT. STI variants contribute nothing here:\n* their columns live on the base table and resolve through the ordinary\n* base-table field map. Base fields are intentionally absent so callers can\n* gate variant qualification strictly to variant-owned fields.\n*\n* `baseModelName` is a default-namespace model name, consistent with the rest\n* of this module; namespace context is bound downstream at table resolution.\n*\n* Uncached on purpose: `resolvePolymorphismInfo` already memoizes the variant\n* lookup, and the remaining work is one pass over the variant's field→column\n* map, so a second cache layer would buy nothing.\n*/\nfunction resolveVariantFieldColumns(contract, namespaceId, baseModelName, variantName) {\n\tconst variant = resolvePolymorphismInfo(contract, namespaceId, baseModelName)?.variants.get(variantName);\n\tconst result = {};\n\tif (variant && variant.strategy === \"mti\") {\n\t\tconst variantFieldToColumn = getFieldToColumnMap(contract, namespaceId, variant.modelName);\n\t\tfor (const [field, column] of Object.entries(variantFieldToColumn)) result[field] = {\n\t\t\ttable: variant.table,\n\t\t\tcolumn\n\t\t};\n\t}\n\treturn result;\n}\nfunction getFieldToColumnMap(contract, namespaceId, modelName) {\n\tlet perContract = fieldToColumnCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tfieldToColumnCache.set(contract, perContract);\n\t}\n\tconst cacheKey = metadataCacheKey(namespaceId, modelName);\n\tlet cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst storageFields = modelsOf(contract, namespaceId)[modelName]?.storage?.fields ?? {};\n\tcached = {};\n\tfor (const [f, s] of Object.entries(storageFields)) if (s?.column) cached[f] = s.column;\n\tperContract.set(cacheKey, cached);\n\treturn cached;\n}\nfunction getColumnToFieldMap(contract, namespaceId, modelName) {\n\tlet perContract = columnToFieldCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tcolumnToFieldCache.set(contract, perContract);\n\t}\n\tconst cacheKey = metadataCacheKey(namespaceId, modelName);\n\tlet cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst storageFields = modelsOf(contract, namespaceId)[modelName]?.storage?.fields ?? {};\n\tcached = {};\n\tfor (const [f, s] of Object.entries(storageFields)) if (s?.column) cached[s.column] = f;\n\tperContract.set(cacheKey, cached);\n\treturn cached;\n}\nconst completeColumnToFieldCache = /* @__PURE__ */ new WeakMap();\n/**\n* Like getColumnToFieldMap but includes identity-mapped fields (where field name equals column\n* name). getColumnToFieldMap only returns explicit remaps; this returns ALL column→field entries.\n*/\nfunction getCompleteColumnToFieldMap(contract, namespaceId, modelName) {\n\tlet perContract = completeColumnToFieldCache.get(contract);\n\tif (!perContract) {\n\t\tperContract = /* @__PURE__ */ new Map();\n\t\tcompleteColumnToFieldCache.set(contract, perContract);\n\t}\n\tconst cacheKey = metadataCacheKey(namespaceId, modelName);\n\tlet cached = perContract.get(cacheKey);\n\tif (cached) return cached;\n\tconst storageFields = modelsOf(contract, namespaceId)[modelName]?.storage?.fields ?? {};\n\tcached = {};\n\tfor (const [f, s] of Object.entries(storageFields)) cached[s?.column ?? f] = f;\n\tperContract.set(cacheKey, cached);\n\treturn cached;\n}\nfunction resolveIncludeRelation(contract, namespaceId, baseModelName, relationName, variantName) {\n\tconst polymorphism = resolvePolymorphismInfo(contract, namespaceId, baseModelName);\n\tconst variant = variantName === void 0 ? void 0 : polymorphism?.variants.get(variantName);\n\tlet declaringModelName = baseModelName;\n\tlet localTableName = resolveModelTableName(contract, namespaceId, baseModelName);\n\tlet relation;\n\tif (variant !== void 0) {\n\t\tconst candidate = resolveModelRelations(contract, namespaceId, variant.modelName)[relationName];\n\t\tif (candidate !== void 0) {\n\t\t\trelation = candidate;\n\t\t\tdeclaringModelName = variant.modelName;\n\t\t\tlocalTableName = variant.table;\n\t\t}\n\t}\n\trelation ??= resolveModelRelations(contract, namespaceId, baseModelName)[relationName];\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 localField = relation.on.localFields[0];\n\tconst targetField = relation.on.targetFields[0];\n\tif (!localField || !targetField) throw new InternalError(`Relation '${relationName}' on model '${declaringModelName}' has incomplete join metadata (missing localFields or targetFields)`);\n\tconst relatedTableName = resolveModelTableName(contract, relation.toNamespace, relation.to);\n\tconst localColumn = resolveFieldToColumn(contract, namespaceId, declaringModelName, localField);\n\tconst targetColumn = resolveFieldToColumn(contract, relation.toNamespace, relation.to, targetField);\n\tlet through;\n\tif (relation.through !== void 0) {\n\t\tconst parentLocalColumns = relation.on.localFields.map((field) => resolveFieldToColumn(contract, namespaceId, declaringModelName, field));\n\t\tthrough = {\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\tparentLocalColumns\n\t\t};\n\t}\n\treturn {\n\t\trelatedModelName: relation.to,\n\t\trelatedNamespaceId: relation.toNamespace,\n\t\trelatedTableName,\n\t\tlocalTableName,\n\t\ttargetColumn,\n\t\tlocalColumn,\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.table === table && mutationDefault.ref.column === 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 columns = Object.keys(conflictOn).map((fieldName) => resolveFieldToColumn(contract, namespaceId, 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 resolvePrimaryKeyColumn(contract, namespaceId, tableName) {\n\treturn resolveTableForContract(contract, namespaceId, tableName)?.table.primaryKey?.columns[0] ?? \"id\";\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 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 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\nfunction createAggregateBuilder(contract, namespaceId, modelName) {\n\tconst fieldToColumn = getFieldToColumnMap(contract, namespaceId, modelName);\n\treturn {\n\t\tcount() {\n\t\t\treturn {\n\t\t\t\tkind: \"aggregate\",\n\t\t\t\tfn: \"count\"\n\t\t\t};\n\t\t},\n\t\tsum(field) {\n\t\t\treturn createFieldAggregateSelector(fieldToColumn, field, \"sum\");\n\t\t},\n\t\tavg(field) {\n\t\t\treturn createFieldAggregateSelector(fieldToColumn, field, \"avg\");\n\t\t},\n\t\tmin(field) {\n\t\t\treturn createFieldAggregateSelector(fieldToColumn, field, \"min\");\n\t\t},\n\t\tmax(field) {\n\t\t\treturn createFieldAggregateSelector(fieldToColumn, field, \"max\");\n\t\t}\n\t};\n}\nfunction isAggregateSelector(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst candidate = value;\n\tif (candidate.kind !== \"aggregate\") return false;\n\treturn candidate.fn === \"count\" || candidate.fn === \"sum\" || candidate.fn === \"avg\" || candidate.fn === \"min\" || candidate.fn === \"max\";\n}\nfunction createFieldAggregateSelector(fieldToColumn, field, fn) {\n\tconst fieldName = field;\n\treturn {\n\t\tkind: \"aggregate\",\n\t\tfn,\n\t\tcolumn: fieldToColumn[fieldName] ?? fieldName\n\t};\n}\n//#endregion\n//#region src/collection-aggregate-result.ts\nfunction normalizeAggregateResult(aggregateSpec, row) {\n\tconst result = {};\n\tfor (const [alias, selector] of Object.entries(aggregateSpec)) {\n\t\tconst value = row[alias];\n\t\tif (value === null) {\n\t\t\tresult[alias] = null;\n\t\t\tcontinue;\n\t\t}\n\t\tif (value === void 0) {\n\t\t\tresult[alias] = selector.fn === \"count\" ? 0 : null;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof value === \"number\") {\n\t\t\tresult[alias] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof value === \"bigint\") {\n\t\t\tresult[alias] = Number(value);\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof value === \"string\") {\n\t\t\tconst numeric = Number(value);\n\t\t\tresult[alias] = Number.isNaN(numeric) ? value : numeric;\n\t\t\tcontinue;\n\t\t}\n\t\tresult[alias] = value;\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/collection-column-mapping.ts\nfunction mapFieldsToColumns(contract, namespaceId, modelName, fieldNames) {\n\tconst fieldToColumn = getFieldToColumnMap(contract, namespaceId, modelName);\n\treturn fieldNames.map((fieldName) => fieldToColumn[fieldName] ?? fieldName);\n}\nfunction mapCursorValuesToColumns(contract, namespaceId, modelName, cursorValues) {\n\tconst fieldToColumn = getFieldToColumnMap(contract, namespaceId, modelName);\n\tconst mappedCursor = {};\n\tfor (const [fieldName, value] of Object.entries(cursorValues)) {\n\t\tif (value === void 0) continue;\n\t\tconst columnName = fieldToColumn[fieldName] ?? fieldName;\n\t\tmappedCursor[columnName] = value;\n\t}\n\treturn mappedCursor;\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 = getColumnToFieldMap(contract, namespaceId, modelName);\n\tfor (const hiddenColumn of hiddenColumns) {\n\t\tconst fieldName = columnToField[hiddenColumn] ?? hiddenColumn;\n\t\tdelete mapped[fieldName];\n\t}\n}\nfunction mapStorageRowToModelFields(contract, namespaceId, modelName, row) {\n\tconst columnToField = getColumnToFieldMap(contract, namespaceId, modelName);\n\tif (Object.keys(columnToField).length === 0) return { ...row };\n\tconst mapped = {};\n\tfor (const [columnName, value] of Object.entries(row)) mapped[columnToField[columnName] ?? columnName] = value;\n\treturn mapped;\n}\nconst mergedColumnToFieldCache = /* @__PURE__ */ new WeakMap();\nfunction getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variantModelName, variantTable) {\n\tconst cacheKey = `${namespaceId}:${baseModelName}:${variantModelName}:${variantTable ?? \"\"}`;\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 = getCompleteColumnToFieldMap(contract, namespaceId, baseModelName);\n\tconst variantMap = getCompleteColumnToFieldMap(contract, namespaceId, variantModelName);\n\tconst merged = { ...baseMap };\n\tfor (const [col, field] of Object.entries(variantMap)) if (variantTable) merged[`${variantTable}__${col}`] = field;\n\telse merged[col] = field;\n\tperContract.set(cacheKey, merged);\n\treturn merged;\n}\nfunction mapPolymorphicRow(contract, namespaceId, baseModelName, polyInfo, row, variantName) {\n\tconst discriminatorValue = row[polyInfo.discriminatorColumn] ?? row[\"__prisma_polymorphic_discriminator\"];\n\tconst variant = variantName ? polyInfo.variants.get(variantName) : typeof discriminatorValue === \"string\" ? polyInfo.variantsByValue.get(discriminatorValue) : void 0;\n\tif (!variant) {\n\t\tconst baseMap = getCompleteColumnToFieldMap(contract, namespaceId, baseModelName);\n\t\tconst mapped = {};\n\t\tfor (const [col, val] of Object.entries(row)) {\n\t\t\tconst field = baseMap[col];\n\t\t\tif (field !== void 0) mapped[field] = val;\n\t\t}\n\t\treturn mapped;\n\t}\n\tconst mtiTable = variant.strategy === \"mti\" ? variant.table : void 0;\n\tconst mergedMap = getMergedColumnToFieldMap(contract, namespaceId, baseModelName, variant.modelName, mtiTable);\n\tconst mapped = {};\n\tfor (const [col, val] of Object.entries(row)) {\n\t\tconst field = mergedMap[col];\n\t\tif (field !== void 0) mapped[field] = val;\n\t}\n\treturn mapped;\n}\nfunction mapModelDataToStorageRow(contract, namespaceId, modelName, row) {\n\tconst fieldToColumn = getFieldToColumnMap(contract, namespaceId, modelName);\n\tconst mapped = {};\n\tfor (const [fieldName, value] of Object.entries(row)) {\n\t\tif (value === void 0) continue;\n\t\tconst columnName = fieldToColumn[fieldName] ?? fieldName;\n\t\tmapped[columnName] = 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}\nasync function acquireRuntimeScope(runtime) {\n\tif (typeof runtime.connection !== \"function\") return { scope: runtime };\n\tconst connection = await runtime.connection();\n\tconst release = connection.release;\n\tif (typeof release === \"function\") return {\n\t\tscope: connection,\n\t\trelease: () => release.call(connection) ?? Promise.resolve()\n\t};\n\treturn { scope: connection };\n}\n//#endregion\n//#region src/execute-query-plan.ts\nfunction executeQueryPlan(scope, plan) {\n\treturn scope.execute(plan);\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 resolveTableColumns(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 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 framework namespaces (`codecs`, `limit`) on the\n* input plan 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-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-aggregate.ts\nfunction toAggregateProjection(contract, namespaceId, tableName, selector) {\n\tif (selector.fn === \"count\") return {\n\t\texpr: AggregateExpr.count(),\n\t\tcodec: void 0\n\t};\n\tif (!selector.column) throw ormError(\"ORM.AGGREGATE_SELECTOR_INVALID\", `Aggregate selector \"${selector.fn}\" requires a field`, { meta: { fn: selector.fn } });\n\tconst expr = new AggregateExpr(selector.fn, ColumnRef.of(tableName, selector.column));\n\tif (selector.fn === \"min\" || selector.fn === \"max\") return {\n\t\texpr,\n\t\tcodec: codecRefForStorageColumn(contract.storage, namespaceId, tableName, selector.column)\n\t};\n\treturn {\n\t\texpr,\n\t\tcodec: void 0\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 \"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 compileAggregate(contract, namespaceId, tableName, filters, aggregateSpec) {\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\tconst projection = entries.map(([alias, selector]) => {\n\t\tconst { expr, codec } = toAggregateProjection(contract, namespaceId, tableName, selector);\n\t\treturn ProjectionItem.of(alias, expr, codec);\n\t});\n\tlet ast = SelectAst.from(tableSourceForContract(contract, namespaceId, tableName)).withProjection(projection);\n\tconst where = combineWhereExprs(filters);\n\tif (where) ast = ast.withWhere(where);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileGroupedAggregate(contract, namespaceId, tableName, filters, groupByColumns, aggregateSpec, havingExpr) {\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\tconst projection = [...groupByColumns.map((column) => ProjectionItem.of(column, ColumnRef.of(tableName, column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column))), ...entries.map(([alias, selector]) => {\n\t\tconst { expr, codec } = toAggregateProjection(contract, namespaceId, tableName, selector);\n\t\treturn ProjectionItem.of(alias, expr, codec);\n\t})];\n\tlet ast = SelectAst.from(tableSourceForContract(contract, namespaceId, tableName)).withProjection(projection).withGroupBy(groupByColumns.map((column) => ColumnRef.of(tableName, column)));\n\tconst where = combineWhereExprs(filters);\n\tif (where) ast = ast.withWhere(where);\n\tif (havingExpr) ast = ast.withHaving(validateGroupedHavingExpr(havingExpr));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\n//#endregion\n//#region src/query-plan-mutations.ts\nfunction buildReturningColumns(contract, namespaceId, tableName, returningColumns) {\n\treturn (returningColumns && returningColumns.length > 0 ? [...returningColumns] : resolveTableColumns(contract, namespaceId, tableName)).map((column) => ProjectionItem.of(column, ColumnRef.of(tableName, column), codecRefForStorageColumn(contract.storage, namespaceId, tableName, column)));\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 compileInsertReturning(contract, namespaceId, tableName, rows, returningColumns) {\n\tconst { rows: normalizedRows } = normalizeInsertRows(contract, namespaceId, tableName, rows);\n\tconst ast = InsertAst.into(tableSourceForContract(contract, namespaceId, tableName)).withRows(normalizedRows).withReturning(buildReturningColumns(contract, namespaceId, tableName, returningColumns));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileInsertCount(contract, namespaceId, tableName, rows) {\n\tconst { rows: normalizedRows } = normalizeInsertRows(contract, namespaceId, tableName, rows);\n\tconst ast = InsertAst.into(tableSourceForContract(contract, namespaceId, tableName)).withRows(normalizedRows);\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 createTableRefRemapper$1(fromTable, toTable) {\n\treturn {\n\t\tcolumnRef: (col) => col.table === fromTable ? ColumnRef.of(toTable, col.column) : col,\n\t\ttableSource: (source) => {\n\t\t\tif (source.alias === fromTable) return TableSource.named(source.name, toTable, source.namespaceId);\n\t\t\tif (!source.alias && source.name === fromTable) return TableSource.named(source.name, toTable, source.namespaceId);\n\t\t\treturn source;\n\t\t},\n\t\teqColJoinOn: (on) => EqColJoinOn.of(on.left.table === fromTable ? ColumnRef.of(toTable, on.left.column) : on.left, on.right.table === fromTable ? ColumnRef.of(toTable, on.right.column) : on.right)\n\t};\n}\nfunction buildCountMutationWhere(contract, namespaceId, tableName, filters, variantName, modelName) {\n\tif (!variantName || !modelName) return combineWhereExprs(filters);\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\tconst variant = polyInfo?.variants.get(variantName);\n\tif (!polyInfo || !variant || variant.strategy !== \"mti\") return combineWhereExprs(filters);\n\tconst pkColumn = resolvePrimaryKeyColumn(contract, namespaceId, tableName);\n\tconst baseTableRef = `${tableName}__write_filter`;\n\tconst remapper = createTableRefRemapper$1(tableName, baseTableRef);\n\tconst innerFilters = filters.map((filter) => filter.rewrite(remapper));\n\tconst where = combineWhereExprs([BinaryExpr.eq(ColumnRef.of(baseTableRef, pkColumn), ColumnRef.of(tableName, pkColumn)), ...innerFilters]);\n\tconst joinOn = EqColJoinOn.of(ColumnRef.of(baseTableRef, pkColumn), ColumnRef.of(variant.table, pkColumn));\n\tlet subquery = SelectAst.from(TableSource.named(tableName, baseTableRef, namespaceId)).withProjection([ProjectionItem.of(\"_write_filter\", ColumnRef.of(baseTableRef, pkColumn))]).withJoins([JoinAst.inner(tableSourceForContract(contract, namespaceId, variant.table), joinOn)]);\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, tableName, rows, returningColumns) {\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, tableName, group, returningColumns));\n}\nfunction compileInsertCountSplit(contract, namespaceId, tableName, rows) {\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));\n}\nfunction compileUpsertReturning(contract, namespaceId, 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 onConflict = updateAssignments ? InsertOnConflict.on(conflictColumns.map((column) => ColumnRef.of(tableName, column))).doUpdateSet(updateAssignments.assignments) : InsertOnConflict.on(conflictColumns.map((column) => ColumnRef.of(tableName, column))).doNothing();\n\tconst ast = InsertAst.into(tableSourceForContract(contract, namespaceId, tableName)).withRows([createAssignments.assignments]).withOnConflict(onConflict).withReturning(buildReturningColumns(contract, namespaceId, tableName, returningColumns));\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileUpdateReturning(contract, namespaceId, tableName, setValues, filters, returningColumns) {\n\tconst where = combineWhereExprs(filters);\n\tconst { assignments } = toParamAssignments(contract, namespaceId, tableName, setValues);\n\tlet ast = UpdateAst.table(tableSourceForContract(contract, namespaceId, tableName)).withSet(assignments).withReturning(buildReturningColumns(contract, namespaceId, tableName, returningColumns));\n\tif (where) ast = ast.withWhere(where);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileUpdateCount(contract, namespaceId, tableName, setValues, filters, variantName, modelName) {\n\tconst where = buildCountMutationWhere(contract, namespaceId, tableName, filters, variantName, modelName);\n\tconst { assignments } = toParamAssignments(contract, namespaceId, tableName, setValues);\n\tlet ast = UpdateAst.table(tableSourceForContract(contract, namespaceId, tableName)).withSet(assignments);\n\tif (where) ast = ast.withWhere(where);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileDeleteReturning(contract, namespaceId, tableName, filters, returningColumns) {\n\tconst where = combineWhereExprs(filters);\n\tlet ast = DeleteAst.from(tableSourceForContract(contract, namespaceId, tableName)).withReturning(buildReturningColumns(contract, namespaceId, tableName, returningColumns));\n\tif (where) ast = ast.withWhere(where);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\n}\nfunction compileDeleteCount(contract, namespaceId, tableName, filters, variantName, modelName) {\n\tconst where = buildCountMutationWhere(contract, namespaceId, tableName, filters, variantName, modelName);\n\tlet ast = DeleteAst.from(tableSourceForContract(contract, namespaceId, tableName));\n\tif (where) ast = ast.withWhere(where);\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params);\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/where-binding.ts\nfunction namespaceCoordinateForSource(source) {\n\treturn source.kind === \"table-source\" ? source.namespaceId : void 0;\n}\nfunction bindWhereExpr(contract, expr, namespaceId) {\n\treturn bindWhereExprNode(contract, expr, namespaceId);\n}\nfunction bindWhereExprNode(contract, expr, namespaceId) {\n\treturn expr.accept({\n\t\tcolumnRef(expr) {\n\t\t\treturn bindExpression(contract, expr);\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);\n\t\t},\n\t\toperation(expr) {\n\t\t\treturn bindExpression(contract, expr);\n\t\t},\n\t\taggregate(expr) {\n\t\t\treturn bindExpression(contract, expr);\n\t\t},\n\t\twindowFunc(expr) {\n\t\t\treturn bindExpression(contract, expr);\n\t\t},\n\t\tfunctionCall(expr) {\n\t\t\treturn bindExpression(contract, expr);\n\t\t},\n\t\tcast(expr) {\n\t\t\treturn bindExpression(contract, expr);\n\t\t},\n\t\tcase(expr) {\n\t\t\treturn bindExpression(contract, expr);\n\t\t},\n\t\tjsonObject(expr) {\n\t\t\treturn bindExpression(contract, expr);\n\t\t},\n\t\tjsonArrayAgg(expr) {\n\t\t\treturn bindExpression(contract, expr);\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);\n\t\t},\n\t\tbinary(expr) {\n\t\t\tconst left = bindExpression(contract, expr.left);\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, namespaceId));\n\t\t},\n\t\tand(expr) {\n\t\t\treturn AndExpr.of(expr.exprs.map((part) => bindWhereExprNode(contract, part, namespaceId)));\n\t\t},\n\t\tor(expr) {\n\t\t\treturn OrExpr.of(expr.exprs.map((part) => bindWhereExprNode(contract, part, namespaceId)));\n\t\t},\n\t\texists(expr) {\n\t\t\treturn expr.notExists ? ExistsExpr.notExists(bindSelectAst(contract, expr.subquery)) : ExistsExpr.exists(bindSelectAst(contract, expr.subquery));\n\t\t},\n\t\tnullCheck(expr) {\n\t\t\treturn expr.isNull ? NullCheckExpr.isNull(bindExpression(contract, expr.expr)) : NullCheckExpr.isNotNull(bindExpression(contract, expr.expr));\n\t\t},\n\t\tnot(expr) {\n\t\t\treturn new NotExpr(bindWhereExprNode(contract, expr.expr, namespaceId));\n\t\t},\n\t\trawExpr(expr) {\n\t\t\treturn expr;\n\t\t}\n\t});\n}\nfunction bindComparable(contract, comparable, bindingColumn, namespaceId) {\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);\n\tif (comparable.kind === \"literal\") return createParamRef(contract, bindingColumn, comparable.value, namespaceId);\n\tif (comparable.kind === \"list\") return ListExpression.of(comparable.values.map((value) => value.kind === \"literal\" ? createParamRef(contract, bindingColumn, value.value, namespaceId) : value));\n\treturn bindExpression(contract, comparable);\n}\nfunction createParamRef(contract, columnRef, value, namespaceId) {\n\tconst resolved = resolveStorageTable(contract.storage, columnRef.table, namespaceId);\n\tif (resolved === void 0 || !resolved.table.columns[columnRef.column]) throw ormError(\"ORM.COLUMN_UNKNOWN\", `Unknown column \"${columnRef.column}\" in table \"${columnRef.table}\"`, { meta: {\n\t\ttableName: columnRef.table,\n\t\tcolumn: columnRef.column\n\t} });\n\tconst codec = codecRefForStorageColumn(contract.storage, resolved.namespaceId, columnRef.table, columnRef.column);\n\treturn ParamRef.of(value, codec ? { codec } : void 0);\n}\nfunction createExpressionBinder(contract) {\n\treturn { select: (ast) => bindSelectAst(contract, ast) };\n}\nfunction bindExpression(contract, expr) {\n\treturn expr.rewrite(createExpressionBinder(contract));\n}\nfunction bindProjectionExpr(contract, expr) {\n\treturn expr.kind === \"literal\" ? expr : bindExpression(contract, expr);\n}\nfunction bindOrderByItem(contract, orderItem) {\n\treturn new OrderByItem(bindExpression(contract, orderItem.expr), orderItem.dir);\n}\nfunction bindJoin(contract, join) {\n\tconst namespaceId = namespaceCoordinateForSource(join.source);\n\treturn new JoinAst(join.joinType, bindFromSource(contract, join.source), join.on.kind === \"eq-col-join-on\" ? join.on : bindWhereExprNode(contract, join.on, namespaceId), join.lateral);\n}\nfunction bindFromSource(contract, source) {\n\tif (source.kind === \"table-source\") return source;\n\tif (source.kind === \"derived-table-source\") return DerivedTableSource.as(source.alias, bindSelectAst(contract, source.query));\n\treturn source;\n}\nfunction bindSelectAst(contract, ast) {\n\tconst namespaceId = ast.from !== void 0 ? namespaceCoordinateForSource(ast.from) : void 0;\n\treturn new SelectAst({\n\t\t...ast.from !== void 0 ? { from: bindFromSource(contract, ast.from) } : {},\n\t\tjoins: ast.joins?.map((join) => bindJoin(contract, join)),\n\t\tprojection: ast.projection.map((projection) => new ProjectionItem(projection.alias, bindProjectionExpr(contract, projection.expr), projection.codec)),\n\t\twhere: ast.where ? bindWhereExprNode(contract, ast.where, namespaceId) : void 0,\n\t\torderBy: ast.orderBy?.map((orderItem) => bindOrderByItem(contract, orderItem)),\n\t\tdistinct: ast.distinct,\n\t\tdistinctOn: ast.distinctOn?.map((expr) => bindExpression(contract, expr)),\n\t\tgroupBy: ast.groupBy?.map((expr) => bindExpression(contract, expr)),\n\t\thaving: ast.having ? bindWhereExprNode(contract, ast.having, namespaceId) : void 0,\n\t\tlimit: ast.limit,\n\t\toffset: ast.offset,\n\t\tselectAllIntent: ast.selectAllIntent\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. An aggregate is the case that\n* arises today: `COUNT(*)` and `SUM(col)` are computed, and the aggregate's\n* own result type is not the column's codec. Native is what a value with no\n* codec identity means, which is a different thing from defaulting a codec\n* to identity — that, the project forbids.\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, namespaceId, tableName, selectedFields, tableRef = tableName) {\n\treturn (selectedFields !== void 0 ? [...selectedFields] : resolveTableColumns(contract, namespaceId, tableName)).map((column) => ProjectionItem.of(column, ColumnRef.of(tableRef, 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\tselectedMtiColumnsByTable: void 0,\n\t\tneedsHiddenDiscriminator: false\n\t};\n\tconst baseTableColumns = new Set(resolveTableColumns(contract, namespaceId, polyInfo.baseTable));\n\tconst baseFieldToColumn = getFieldToColumnMap(contract, namespaceId, modelName);\n\tconst variantFieldMaps = Array.from(polyInfo.variants.values(), (variant) => ({\n\t\tvariant,\n\t\tcolumnToField: getCompleteColumnToFieldMap(contract, namespaceId, variant.modelName)\n\t}));\n\tconst baseSelectedFields = [];\n\tconst selectedMtiColumnsByTable = /* @__PURE__ */ new Map();\n\tlet hasVariantOwnedSelection = false;\n\tfor (const selectedField of state.selectedFields) {\n\t\tconst baseColumn = baseFieldToColumn[selectedField] ?? (baseTableColumns.has(selectedField) ? selectedField : void 0);\n\t\tif (baseColumn !== void 0) appendUnique(baseSelectedFields, baseColumn);\n\t\tlet matchedVariantField = false;\n\t\tfor (const { variant, columnToField } of variantFieldMaps) for (const [column, field] of Object.entries(columnToField)) {\n\t\t\tif (selectedField !== field && selectedField !== column) continue;\n\t\t\tmatchedVariantField = 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 = selectedMtiColumnsByTable.get(variant.table);\n\t\t\tif (selectedColumns === void 0) {\n\t\t\t\tselectedColumns = /* @__PURE__ */ new Set();\n\t\t\t\tselectedMtiColumnsByTable.set(variant.table, selectedColumns);\n\t\t\t}\n\t\t\tselectedColumns.add(column);\n\t\t}\n\t\tif (baseColumn === void 0 && !matchedVariantField) appendUnique(baseSelectedFields, selectedField);\n\t}\n\treturn {\n\t\tbaseSelectedFields,\n\t\tselectedMtiColumnsByTable,\n\t\tneedsHiddenDiscriminator: state.variantName === void 0 && hasVariantOwnedSelection && !baseSelectedFields.includes(polyInfo.discriminatorColumn)\n\t};\n}\nfunction buildHiddenDiscriminatorProjection(contract, namespaceId, polyInfo, tableRef, needed) {\n\tif (!needed) return [];\n\treturn [ProjectionItem.of(POLYMORPHIC_DISCRIMINATOR_ALIAS, ColumnRef.of(tableRef, polyInfo.discriminatorColumn), codecRefForStorageColumn(contract.storage, namespaceId, polyInfo.baseTable, polyInfo.discriminatorColumn))];\n}\nfunction createBoundaryExpr(tableName, entry) {\n\treturn new BinaryExpr(entry.direction === \"asc\" ? \"gt\" : \"lt\", ColumnRef.of(tableName, entry.column), LiteralExpr.of(entry.value));\n}\nfunction buildLexicographicCursorWhere(tableName, 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(ColumnRef.of(tableName, prefixEntry.column), LiteralExpr.of(prefixEntry.value)));\n\t\tbranchExprs.push(createBoundaryExpr(tableName, 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(tableName, orderBy, cursor) {\n\tif (!cursor || !orderBy || orderBy.length === 0) return;\n\tconst entries = [];\n\tfor (const order of orderBy) {\n\t\tif (order.expr.kind !== \"column-ref\") continue;\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(tableName, firstEntry);\n\treturn buildLexicographicCursorWhere(tableName, entries);\n}\nfunction createTableRefRemapper(fromTable, toTable) {\n\treturn {\n\t\tcolumnRef: (col) => col.table === fromTable ? ColumnRef.of(toTable, col.column) : col,\n\t\ttableSource: (source) => {\n\t\t\tif (source.alias === fromTable) return TableSource.named(source.name, toTable, source.namespaceId);\n\t\t\tif (!source.alias && source.name === fromTable) return TableSource.named(source.name, toTable, source.namespaceId);\n\t\t\treturn source;\n\t\t},\n\t\teqColJoinOn: (on) => EqColJoinOn.of(on.left.table === fromTable ? ColumnRef.of(toTable, on.left.column) : on.left, on.right.table === fromTable ? ColumnRef.of(toTable, on.right.column) : on.right)\n\t};\n}\nfunction buildStateWhere(contract, tableName, state, options) {\n\tconst filterTableName = options?.filterTableName;\n\tconst cursorWhere = buildCursorWhere(filterTableName ?? tableName, state.orderBy, state.cursor);\n\tconst remappedFilters = filterTableName && filterTableName !== tableName ? state.filters.map((filter) => filter.rewrite(createTableRefRemapper(filterTableName, tableName))) : state.filters;\n\tconst boundCursorWhere = cursorWhere ? bindWhereExpr(contract, cursorWhere, options?.namespaceId) : void 0;\n\tconst remappedCursorWhere = boundCursorWhere && filterTableName && filterTableName !== tableName ? boundCursorWhere.rewrite(createTableRefRemapper(filterTableName, tableName)) : boundCursorWhere;\n\treturn combineWhereExprs(remappedCursorWhere ? [...remappedFilters, remappedCursorWhere] : remappedFilters);\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 new OrderByItem(ColumnRef.of(rowAlias, projection.alias), orderItem.dir);\n\t\t})\n\t};\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}\nfunction localColumnsForRowInclude(include) {\n\treturn include.through?.parentLocalColumns ?? [include.localColumn];\n}\nfunction resolveParentLocalRefs(parentSource, include, localColumns) {\n\treturn localColumns.map((column) => {\n\t\tif (include.localTableName === parentSource.baseTableName) return ColumnRef.of(parentSource.tableRef, column);\n\t\tif (parentSource.variantColumnsProjected) return ColumnRef.of(parentSource.tableRef, `${include.localTableName}__${column}`);\n\t\treturn ColumnRef.of(include.localTableName, column);\n\t});\n}\nfunction resolveChildTableSource(include, parentLocalRefs) {\n\tconst alias = parentLocalRefs.some((ref) => ref.table === include.relatedTableName) ? `${include.relationName}__child` : void 0;\n\treturn {\n\t\talias,\n\t\ttableRef: alias ?? include.relatedTableName\n\t};\n}\n/**\n* Recursively build the correlated-subquery projections for the nested\n* includes attached to a child SELECT. Used by `buildIncludeChildRowsSelect`\n* to wire depth-2+ aggregates into the inner SELECT at each level.\n*\n* Each nested include contributes a single projection item whose\n* expression is a correlated subquery.\n*/\nfunction buildNestedIncludeProjections(contract, parentSource, includes) {\n\treturn includes.map((nested) => buildCorrelatedIncludeProjection(contract, parentSource, 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*\n* When the child base table is aliased (self-relations), `buildMtiJoins`\n* emits a join `ON` against the unaliased base table name, which would fall\n* out of scope. Remap it to the child alias — the same remap the row builder\n* already applies to `orderBy`/`where`.\n*/\nfunction buildChildPolymorphismJoinsAndProjection(contract, include, childTableAlias, childTableRef) {\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.relatedNamespaceId, polyInfo, include.nested.variantName, selection.selectedMtiColumnsByTable);\n\tconst hiddenProjection = buildHiddenDiscriminatorProjection(contract, include.relatedNamespaceId, polyInfo, childTableRef, selection.needsHiddenDiscriminator);\n\tif (!childTableAlias) return {\n\t\tjoins,\n\t\tprojection,\n\t\thiddenProjection,\n\t\tbaseSelectedFields: selection.baseSelectedFields\n\t};\n\tconst remapper = createTableRefRemapper(polyInfo.baseTable, childTableRef);\n\treturn {\n\t\tjoins: joins.map((join) => join.rewrite(remapper)),\n\t\tprojection,\n\t\thiddenProjection,\n\t\tbaseSelectedFields: selection.baseSelectedFields\n\t};\n}\nfunction buildRequiredMtiJoinKeyProjection(contract, include) {\n\tconst polyInfo = resolvePolymorphismInfo(contract, include.relatedNamespaceId, include.relatedModelName);\n\tif (!polyInfo) return [];\n\tconst mtiTables = new Set(polyInfo.mtiVariants.map((variant) => variant.table));\n\tconst aliases = /* @__PURE__ */ new Set();\n\tconst projection = [];\n\tfor (const nested of include.nested.includes) {\n\t\tif (!mtiTables.has(nested.localTableName)) continue;\n\t\tfor (const column of localColumnsForRowInclude(nested)) {\n\t\t\tconst alias = `${nested.localTableName}__${column}`;\n\t\t\tif (aliases.has(alias)) continue;\n\t\t\taliases.add(alias);\n\t\t\tprojection.push(ProjectionItem.of(alias, ColumnRef.of(nested.localTableName, column), codecRefForStorageColumn(contract.storage, include.relatedNamespaceId, nested.localTableName, 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(parentLocalRefs, childTableRef, through) {\n\tconst { table: junctionTable, parentColumns, childColumns, targetColumns, namespaceId } = 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(ColumnRef.of(junctionTable, junctionCol), ColumnRef.of(childTableRef, 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(ColumnRef.of(junctionTable, 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(TableSource.named(junctionTable, void 0, namespaceId), joinOn, false)\n\t};\n}\nfunction buildIncludeChildRowsSelect(contract, parentSource, include) {\n\tconst childState = include.nested;\n\tconst parentLocalRefs = resolveParentLocalRefs(parentSource, include, localColumnsForRowInclude(include));\n\tconst childSource = resolveChildTableSource(include, parentLocalRefs);\n\tconst childTableAlias = childSource.alias;\n\tconst childTableRef = childSource.tableRef;\n\tconst rowsAlias = `${include.relationName}__rows`;\n\tconst remappedChildOrderBy = childTableAlias && childState.orderBy ? childState.orderBy.map((item) => item.rewrite(createTableRefRemapper(include.relatedTableName, childTableRef))) : childState.orderBy;\n\tconst { childOrderBy, hiddenOrderProjection, aggregateOrderBy } = buildIncludeOrderArtifacts(include.relationName, rowsAlias, remappedChildOrderBy);\n\tconst childWhere = buildStateWhere(contract, childTableRef, childState, {\n\t\tfilterTableName: include.relatedTableName,\n\t\tnamespaceId: include.relatedNamespaceId\n\t});\n\tlet whereExpr;\n\tlet junctionJoins = [];\n\tif (include.through !== void 0) {\n\t\tconst artifacts = buildManyToManyJunctionArtifacts(parentLocalRefs, childTableRef, include.through);\n\t\twhereExpr = childWhere ? AndExpr.of([artifacts.whereExpr, childWhere]) : artifacts.whereExpr;\n\t\tjunctionJoins = [artifacts.junctionJoin];\n\t} else {\n\t\tconst parentLocalRef = parentLocalRefs[0];\n\t\tassertDefined(parentLocalRef, `Include '${include.relationName}' has no parent-local column ref`);\n\t\tconst joinExpr = BinaryExpr.eq(ColumnRef.of(childTableRef, include.targetColumn), parentLocalRef);\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\tinclude,\n\t\tchildTableAlias,\n\t\tchildTableRef,\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, childTableAlias, childTableRef);\n\tconst scalarProjection = buildProjection(contract, include.relatedNamespaceId, include.relatedTableName, polyJoinsAndProjection.baseSelectedFields, childTableRef);\n\tconst nestedProjections = buildNestedIncludeProjections(contract, {\n\t\tbaseTableName: include.relatedTableName,\n\t\ttableRef: childTableRef,\n\t\tvariantColumnsProjected: false\n\t}, 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(tableSourceForContract(contract, include.relatedNamespaceId, include.relatedTableName, childTableAlias)).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) => ColumnRef.of(childTableRef, column)));\n\t\tif (childOrderBy) childRows = childRows.withOrderBy(childOrderBy);\n\t} else if (childState.distinct && childState.distinct.length > 0) {\n\t\tconst rankedAlias = `${include.relationName}__distinct`;\n\t\tchildRows = wrapWithRowNumberDedup({\n\t\t\tbase: childRows,\n\t\t\tdistinctColumnRefs: childState.distinct.map((column) => ColumnRef.of(childTableRef, column)),\n\t\t\trankingOrderBy: childOrderBy ?? [],\n\t\t\trankedAlias\n\t\t});\n\t\tif (childOrderBy) childRows = childRows.withOrderBy(childOrderBy.map((item, index) => new OrderByItem(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`), item.dir)));\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, include, childTableAlias, childTableRef, rowsAlias, childOrderBy, hiddenOrderProjection, aggregateOrderBy, whereExpr, junctionJoins } = options;\n\tconst childState = include.nested;\n\tconst grandchildJoinColumns = Array.from(new Set(childState.includes.flatMap((nested) => nested.localTableName === include.relatedTableName ? localColumnsForRowInclude(nested) : [])));\n\tconst { selectedForQuery } = augmentSelectionForJoinColumns(childState.selectedFields, grandchildJoinColumns);\n\tconst visiblePolyProjection = buildChildPolymorphismJoinsAndProjection(contract, include, childTableAlias, childTableRef);\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}, childTableAlias, childTableRef);\n\tconst innerScalarProjection = buildProjection(contract, include.relatedNamespaceId, include.relatedTableName, queryPolyProjection.baseSelectedFields, childTableRef);\n\tconst innerMtiProjection = mergeProjectionByAlias(queryPolyProjection.projection, buildRequiredMtiJoinKeyProjection(contract, include));\n\tlet baseInner = SelectAst.from(tableSourceForContract(contract, include.relatedNamespaceId, include.relatedTableName, childTableAlias)).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 = `${include.relationName}__ranked`;\n\tlet innerSelect = wrapWithRowNumberDedup({\n\t\tbase: baseInner,\n\t\tdistinctColumnRefs: distinctColumns.map((column) => ColumnRef.of(childTableRef, column)),\n\t\trankingOrderBy: childOrderBy ?? [],\n\t\trankedAlias\n\t});\n\tif (childOrderBy) innerSelect = innerSelect.withOrderBy(childOrderBy.map((item, index) => new OrderByItem(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`), item.dir)));\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 = `${include.relationName}__distinct`;\n\tconst outerScalarProjection = buildProjection(contract, include.relatedNamespaceId, include.relatedTableName, visiblePolyProjection.baseSelectedFields, distinctAlias);\n\tconst outerNestedProjections = buildNestedIncludeProjections(contract, {\n\t\tbaseTableName: include.relatedTableName,\n\t\ttableRef: distinctAlias,\n\t\tvariantColumnsProjected: true\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 (`count` /\n* `sum` / `avg` / `min` / `max`).\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` / `take` / `skip` / `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).take(N).count()) // ≤ N`\n*\n* When `take` / `skip` / `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 `take` / `skip` /\n* `distinct`) is dropped at the SQL level since reordering does not\n* change which rows are aggregated.\n*/\nfunction buildIncludeChildScalarSelect(contract, parentSource, include, scalar) {\n\tconst parentLocalRefs = resolveParentLocalRefs(parentSource, include, [include.localColumn]);\n\tconst parentLocalRef = parentLocalRefs[0];\n\tassertDefined(parentLocalRef, `Include '${include.relationName}' has no parent-local column ref`);\n\tconst childSource = resolveChildTableSource(include, parentLocalRefs);\n\tconst childTableAlias = childSource.alias;\n\tconst childTableRef = childSource.tableRef;\n\tconst state = scalar.state;\n\tconst joinExpr = BinaryExpr.eq(ColumnRef.of(childTableRef, include.targetColumn), parentLocalRef);\n\tconst childWhere = buildStateWhere(contract, childTableRef, state, {\n\t\tfilterTableName: include.relatedTableName,\n\t\tnamespaceId: include.relatedNamespaceId\n\t});\n\tconst whereExpr = childWhere ? AndExpr.of([joinExpr, childWhere]) : joinExpr;\n\tconst remappedOrderBy = childTableAlias && state.orderBy ? state.orderBy.map((item) => item.rewrite(createTableRefRemapper(include.relatedTableName, childTableRef))) : state.orderBy;\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, childTableRef);\n\t\tconst jsonObjectExpr = JsonObjectExpr.fromEntries([JsonObjectExpr.entry(\"value\", jsonEntryProjection(aggregateExpr, {}))]);\n\t\treturn SelectAst.from(tableSourceForContract(contract, include.relatedNamespaceId, include.relatedTableName, childTableAlias)).withProjection([ProjectionItem.of(include.relationName, jsonObjectExpr)]).withWhere(whereExpr);\n\t}\n\tconst innerAlias = `${include.relationName}__scalar`;\n\tconst hiddenOrderProjection = state.distinct !== void 0 && state.distinct.length > 0 && remappedOrderBy !== void 0 && remappedOrderBy.length > 0 ? remappedOrderBy.map((item, index) => ProjectionItem.of(`${include.relationName}__order_${index}`, item.expr)) : [];\n\tconst innerProjection = [...scalar.column !== void 0 ? [ProjectionItem.of(scalar.column, ColumnRef.of(childTableRef, scalar.column))] : [ProjectionItem.of(\"__row\", LiteralExpr.of(1))], ...hiddenOrderProjection];\n\tlet inner = SelectAst.from(tableSourceForContract(contract, include.relatedNamespaceId, include.relatedTableName, childTableAlias)).withProjection(innerProjection).withWhere(whereExpr);\n\tif (state.distinctOn !== void 0 && state.distinctOn.length > 0) {\n\t\tinner = inner.withDistinctOn(state.distinctOn.map((column) => ColumnRef.of(childTableRef, column)));\n\t\tif (remappedOrderBy !== void 0 && remappedOrderBy.length > 0) inner = inner.withOrderBy(remappedOrderBy);\n\t} else if (state.distinct !== void 0 && state.distinct.length > 0) {\n\t\tconst rankedAlias = `${include.relationName}__scalar_distinct`;\n\t\tinner = wrapWithRowNumberDedup({\n\t\t\tbase: inner,\n\t\t\tdistinctColumnRefs: state.distinct.map((column) => ColumnRef.of(childTableRef, column)),\n\t\t\trankingOrderBy: remappedOrderBy ?? [],\n\t\t\trankedAlias\n\t\t});\n\t\tif (remappedOrderBy !== void 0 && remappedOrderBy.length > 0) inner = inner.withOrderBy(remappedOrderBy.map((item, index) => new OrderByItem(ColumnRef.of(rankedAlias, `${include.relationName}__order_${index}`), item.dir)));\n\t} else if (remappedOrderBy !== void 0 && remappedOrderBy.length > 0) inner = inner.withOrderBy(remappedOrderBy);\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, innerAlias);\n\tconst outerJsonObjectExpr = JsonObjectExpr.fromEntries([JsonObjectExpr.entry(\"value\", jsonEntryProjection(outerAggregateExpr, {}))]);\n\treturn SelectAst.from(DerivedTableSource.as(innerAlias, inner)).withProjection([ProjectionItem.of(include.relationName, outerJsonObjectExpr)]);\n}\nfunction buildIncludeAggregateExpr(scalar, childTableRef) {\n\tif (scalar.fn === \"count\") return AggregateExpr.count();\n\tif (scalar.column === void 0) throw ormError(\"ORM.AGGREGATE_SELECTOR_INVALID\", `Aggregate selector \"${scalar.fn}\" requires a column`, { meta: { fn: scalar.fn } });\n\tconst columnRef = ColumnRef.of(childTableRef, scalar.column);\n\tswitch (scalar.fn) {\n\t\tcase \"sum\": return AggregateExpr.sum(columnRef);\n\t\tcase \"avg\": return AggregateExpr.avg(columnRef);\n\t\tcase \"min\": return AggregateExpr.min(columnRef);\n\t\tcase \"max\": return AggregateExpr.max(columnRef);\n\t\tdefault: return assertNever(scalar.fn);\n\t}\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/take/skip 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, parentSource, 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: `${include.relationName}__combine__${name}`,\n\t\tselect: buildIncludeChildCombineBranchSelect(contract, parentSource, 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, parentSource, include, branch) {\n\tif (branch.kind === \"scalar\") return buildIncludeChildScalarSelect(contract, parentSource, include, branch.selector);\n\treturn buildIncludeChildRowsAggregateSelect(contract, parentSource, {\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, parentSource, include) {\n\tconst { childRows, childProjection, documentAliases, rowsAlias, aggregateOrderBy } = buildIncludeChildRowsSelect(contract, parentSource, 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, parentSource, include) {\n\tif (include.scalar) {\n\t\tconst scalarSelect = buildIncludeChildScalarSelect(contract, parentSource, 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, parentSource, include, include.combine);\n\t\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(combineSelect)) };\n\t}\n\tconst aggregateQuery = buildIncludeChildRowsAggregateSelect(contract, parentSource, include);\n\treturn { projection: ProjectionItem.of(include.relationName, SubqueryExpr.of(aggregateQuery)) };\n}\nfunction buildSelectAst(contract, tableName, state, options) {\n\tconst namespaceId = options.namespaceId;\n\tconst projection = [...buildProjection(contract, namespaceId, tableName, state.selectedFields, tableName), ...options.includeProjection ?? []];\n\tconst where = options.where ?? buildStateWhere(contract, tableName, state, { namespaceId });\n\tconst usesRowNumberDistinct = state.distinct !== void 0 && state.distinct.length > 0;\n\tconst fromSource = usesRowNumberDistinct ? DerivedTableSource.as(tableName, buildTopLevelDistinctRankedInner(contract, namespaceId, tableName, state, where)) : tableSourceForContract(contract, namespaceId, tableName);\n\tlet ast = SelectAst.from(fromSource).withProjection(projection);\n\tif (usesRowNumberDistinct) ast = ast.withWhere(BinaryExpr.eq(ColumnRef.of(tableName, \"__prisma_distinct_rn\"), LiteralExpr.of(1)));\n\telse if (where) ast = ast.withWhere(where);\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) => ColumnRef.of(tableName, 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\treturn ast;\n}\nfunction buildTopLevelDistinctRankedInner(contract, namespaceId, tableName, state, where) {\n\tconst distinctColumns = state.distinct;\n\tif (distinctColumns === void 0 || distinctColumns.length === 0) throw new InternalError(\"buildTopLevelDistinctRankedInner called without `state.distinct`\");\n\tconst allColsProjection = resolveTableColumns(contract, namespaceId, tableName).map((column) => ProjectionItem.of(column, ColumnRef.of(tableName, column)));\n\tconst distinctColumnRefs = distinctColumns.map((column) => ColumnRef.of(tableName, column));\n\tconst rankingOrderBy = state.orderBy && state.orderBy.length > 0 ? state.orderBy : distinctColumnRefs.map((expr) => OrderByItem.asc(expr));\n\tlet inner = SelectAst.from(tableSourceForContract(contract, namespaceId, tableName)).withProjection([...allColsProjection, ProjectionItem.of(\"__prisma_distinct_rn\", WindowFuncExpr.rowNumber({\n\t\tpartitionBy: distinctColumnRefs,\n\t\torderBy: rankingOrderBy\n\t}))]);\n\tif (where) inner = inner.withWhere(where);\n\treturn inner;\n}\nfunction buildMtiJoins(contract, namespaceId, polyInfo, variantName, selectedColumnsByTable) {\n\tconst joins = [];\n\tconst projection = [];\n\tconst pkColumn = resolvePrimaryKeyColumn(contract, namespaceId, polyInfo.baseTable);\n\tconst variantsToJoin = variantName ? polyInfo.mtiVariants.filter((v) => v.modelName === variantName) : polyInfo.mtiVariants;\n\tfor (const variant of variantsToJoin) {\n\t\tconst joinType = variantName ? \"inner\" : \"left\";\n\t\tconst joinOn = EqColJoinOn.of(ColumnRef.of(polyInfo.baseTable, pkColumn), ColumnRef.of(variant.table, pkColumn));\n\t\tconst join = joinType === \"inner\" ? JoinAst.inner(tableSourceForContract(contract, namespaceId, variant.table), joinOn) : JoinAst.left(tableSourceForContract(contract, namespaceId, variant.table), joinOn);\n\t\tjoins.push(join);\n\t\tconst variantColumns = resolveTableColumns(contract, namespaceId, variant.table);\n\t\tconst selectedVariantColumns = selectedColumnsByTable?.get(variant.table);\n\t\tfor (const col of variantColumns) {\n\t\t\tif (col === pkColumn) continue;\n\t\t\tif (selectedColumnsByTable !== void 0 && selectedVariantColumns?.has(col) !== true) continue;\n\t\t\tconst alias = `${variant.table}__${col}`;\n\t\t\tprojection.push(ProjectionItem.of(alias, ColumnRef.of(variant.table, col), codecRefForStorageColumn(contract.storage, namespaceId, variant.table, col)));\n\t\t}\n\t}\n\treturn {\n\t\tjoins,\n\t\tprojection\n\t};\n}\nfunction compileSelect(contract, namespaceId, tableName, state, modelName) {\n\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, namespaceId, modelName) : void 0;\n\tconst selection = polyInfo && modelName ? resolvePolymorphicProjectionSelection(contract, namespaceId, modelName, polyInfo, state) : void 0;\n\tconst projectionState = selection ? {\n\t\t...state,\n\t\tselectedFields: selection.baseSelectedFields\n\t} : state;\n\tconst mtiArtifacts = polyInfo && polyInfo.mtiVariants.length > 0 ? buildMtiJoins(contract, namespaceId, polyInfo, state.variantName, selection?.selectedMtiColumnsByTable) : void 0;\n\tconst hiddenProjection = polyInfo && selection ? buildHiddenDiscriminatorProjection(contract, namespaceId, polyInfo, tableName, selection.needsHiddenDiscriminator) : [];\n\tconst ast = buildSelectAst(contract, tableName, {\n\t\t...projectionState,\n\t\tincludes: []\n\t}, {\n\t\tjoins: mtiArtifacts?.joins ?? [],\n\t\tincludeProjection: [...mtiArtifacts?.projection ?? [], ...hiddenProjection],\n\t\tnamespaceId\n\t});\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params, state.annotations);\n}\nfunction compileSelectWithIncludes(contract, namespaceId, tableName, state, modelName) {\n\tconst includeJoins = [];\n\tconst includeProjection = [];\n\tconst topLevelWhere = buildStateWhere(contract, tableName, state, { namespaceId });\n\tconst polyInfo = modelName ? resolvePolymorphismInfo(contract, namespaceId, modelName) : void 0;\n\tconst selection = polyInfo && modelName ? resolvePolymorphicProjectionSelection(contract, namespaceId, modelName, polyInfo, state) : void 0;\n\tconst projectionState = selection ? {\n\t\t...state,\n\t\tselectedFields: selection.baseSelectedFields\n\t} : state;\n\tif (polyInfo && selection) {\n\t\tif (polyInfo.mtiVariants.length > 0) {\n\t\t\tconst mtiArtifacts = buildMtiJoins(contract, namespaceId, polyInfo, state.variantName, selection.selectedMtiColumnsByTable);\n\t\t\tincludeJoins.push(...mtiArtifacts.joins);\n\t\t\tincludeProjection.push(...mtiArtifacts.projection);\n\t\t}\n\t\tincludeProjection.push(...buildHiddenDiscriminatorProjection(contract, namespaceId, polyInfo, tableName, selection.needsHiddenDiscriminator));\n\t}\n\tconst parentSource = {\n\t\tbaseTableName: tableName,\n\t\ttableRef: tableName,\n\t\tvariantColumnsProjected: false\n\t};\n\tfor (const include of state.includes) {\n\t\tconst artifact = buildCorrelatedIncludeProjection(contract, parentSource, include);\n\t\tincludeProjection.push(artifact.projection);\n\t}\n\tconst ast = buildSelectAst(contract, tableName, {\n\t\t...projectionState,\n\t\tincludes: []\n\t}, {\n\t\tjoins: includeJoins,\n\t\tincludeProjection,\n\t\tnamespaceId,\n\t\t...ifDefined(\"where\", topLevelWhere)\n\t});\n\tconst { params } = deriveParamsFromAst(ast);\n\treturn buildOrmQueryPlan(contract, ast, params, state.annotations);\n}\n//#endregion\n//#region src/types.ts\nfunction emptyState() {\n\treturn {\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\tvariantName: void 0,\n\t\tannotations: /* @__PURE__ */ new Map()\n\t};\n}\nfunction param(codec, value) {\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 new BinaryExpr(op, left, param(codec, value));\n\t});\n}\nfunction listComparisonMethod(op) {\n\treturn ((left, codec) => (values) => new BinaryExpr(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) => () => OrderByItem.asc(left)\n\t},\n\tdesc: {\n\t\ttraits: [\"order\"],\n\t\tcreate: (left) => () => OrderByItem.desc(left)\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/collection-dispatch.ts\nfunction dispatchCollectionRows(options) {\n\tconst { context, runtime, state, tableName, modelName, namespaceId } = options;\n\tconst { contract } = context;\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\tif (state.includes.length === 0) return mapResultRows(executeQueryPlan(runtime, compileSelect(contract, namespaceId, tableName, state, modelName)), polyInfo ? (rawRow) => blindCast(mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, rawRow, state.variantName)) : (rawRow) => blindCast(mapStorageRowToModelFields(contract, namespaceId, modelName, rawRow)));\n\treturn dispatchWithIncludes(options);\n}\nfunction dispatchWithIncludes(options) {\n\tconst { context, runtime, state, tableName, modelName, namespaceId } = options;\n\tconst { contract } = context;\n\tconst generator = async function* () {\n\t\tconst { scope, release } = await acquireRuntimeScope(runtime);\n\t\ttry {\n\t\t\tconst parentRowsRaw = await executeQueryPlan(scope, compileSelectWithIncludes(contract, namespaceId, tableName, state, modelName)).toArray();\n\t\t\tif (parentRowsRaw.length === 0) return;\n\t\t\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\t\t\tconst parentRows = parentRowsRaw.map((row) => {\n\t\t\t\treturn {\n\t\t\t\t\traw: row,\n\t\t\t\t\tmapped: polyInfo ? mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, row, state.variantName) : mapStorageRowToModelFields(contract, namespaceId, modelName, row)\n\t\t\t\t};\n\t\t\t});\n\t\t\tfor (const parent of parentRows) for (const include of state.includes) parent.mapped[include.relationName] = await decodeIncludePayload(contract, context, include, parent.raw[include.relationName]);\n\t\t\tfor (const row of parentRows) yield blindCast(row.mapped);\n\t\t} finally {\n\t\t\tif (release) await release();\n\t\t}\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, tableName, modelName, namespaceId, identityRows, selectedFields, includes } = options;\n\tconst { contract } = context;\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, namespaceId, tableName, identityColumns, identityRows);\n\tif (!identityFilter) return emptyResult();\n\treturn dispatchCollectionRows({\n\t\tcontext,\n\t\truntime,\n\t\tstate: {\n\t\t\t...emptyState(),\n\t\t\tfilters: [identityFilter],\n\t\t\tselectedFields,\n\t\t\tincludes\n\t\t},\n\t\ttableName,\n\t\tmodelName,\n\t\tnamespaceId\n\t});\n}\nfunction emptyResult() {\n\treturn new AsyncIterableResult((async function* () {})());\n}\nfunction buildIdentityInFilter(contract, namespaceId, tableName, identityColumns, identityRows) {\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 bindWhereExpr(contract, BinaryExpr.in(ColumnRef.of(tableName, singleColumn), ListExpression.fromValues(values)), namespaceId);\n\t}\n\tif (identityRows.length === 0) return;\n\tconst tuples = identityRows.map((row) => AndExpr.of(identityColumns.map((column) => BinaryExpr.eq(ColumnRef.of(tableName, column), LiteralExpr.of(row[column])))));\n\treturn bindWhereExpr(contract, OrExpr.of(tuples), namespaceId);\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\n* empty-relation default is driven by SQL semantics, not the decoder:\n* `COUNT(*)` over an empty input set is `0`; `SUM` / `AVG` / `MIN` /\n* `MAX` over an empty input set are SQL `NULL`, which surfaces as\n* `null` in TS — the documented contract for those reducers.\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*/\nasync function decodeIncludePayload(contract, context, include, raw) {\n\tif (include.scalar) return Promise.resolve(decodeScalarIncludePayload(include, include.scalar, raw));\n\tif (include.combine) return decodeCombineIncludePayload(contract, context, include, include.combine, raw);\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, childRow, include.nested.variantName) : (childRow) => mapStorageRowToModelFields(contract, include.relatedNamespaceId, include.relatedModelName, childRow);\n\tconst mappedChildren = [];\n\tfor (const childRow of rawChildren) {\n\t\tconst decodedChildRow = await decodeIncludedStorageRow(contract, context, include, childRow);\n\t\tconst mapped = mapChildRow(decodedChildRow);\n\t\tfor (const nestedInclude of include.nested.includes) mapped[nestedInclude.relationName] = await decodeIncludePayload(contract, context, nestedInclude, decodedChildRow[nestedInclude.relationName]);\n\t\tmappedChildren.push(mapped);\n\t}\n\treturn coerceSingleQueryIncludeResult(mappedChildren, include.cardinality);\n}\nasync function decodeIncludedStorageRow(contract, context, include, row) {\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 ref = resolveIncludedColumnRef(contract, include, key);\n\t\tif (!ref) {\n\t\t\tdecoded[key] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tconst codec = context.contractCodecs.forColumn(include.relatedNamespaceId, ref.table, ref.column);\n\t\tif (!codec) {\n\t\t\tdecoded[key] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tdecoded[key] = await decodeIncludedColumnValue(ref, context.codecDescriptors.codecRefForColumn(include.relatedNamespaceId, ref.table, ref.column)?.codecId ?? ref.storageColumn.codecId, codec, value);\n\t}\n\treturn decoded;\n}\nfunction resolveIncludedColumnRef(contract, include, key) {\n\tconst baseColumn = resolveStorageColumn(contract, include.relatedNamespaceId, include.relatedTableName, key);\n\tif (baseColumn) return {\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 prefix = `${variant.table}__`;\n\t\tif (!key.startsWith(prefix)) continue;\n\t\tconst column = key.slice(prefix.length);\n\t\tconst variantColumn = resolveStorageColumn(contract, include.relatedNamespaceId, variant.table, column);\n\t\tif (variantColumn) return {\n\t\t\ttable: variant.table,\n\t\t\tcolumn,\n\t\t\tstorageColumn: variantColumn\n\t\t};\n\t}\n}\nfunction resolveStorageColumn(contract, namespaceId, tableName, columnName) {\n\treturn contract.storage.namespaces[namespaceId]?.entries.table?.[tableName]?.columns[columnName];\n}\nasync function decodeIncludedColumnValue(ref, codecId, codec, value) {\n\tif (ref.storageColumn.many === true) {\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}\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\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. The\n* mutation read-back's `assignEmptyMutationIncludes` writes the empty\n* per-branch shape directly to `parent.mapped[relationName]` for any\n* parent absent from the read-back result and never enters the decoder,\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*/\nasync function decodeCombineIncludePayload(contract, context, include, branches, raw) {\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] = await 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);\n\t\telse result[branchName] = decodeScalarIncludePayload(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` (the mutation read-back's\n* `assignEmptyMutationIncludes` short-circuit before this decoder\n* runs, for a parent absent from the read-back result).\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* Values are passed through unchanged — no JS-side `Number()` coercion\n* and no JS-side empty-relation defaulting. SQL semantics drive the\n* empty-relation case: `COUNT(*)` over an empty input set is `0`;\n* `SUM` / `AVG` / `MIN` / `MAX` over an empty input set return SQL\n* `NULL`, which surfaces as `null` here. The outer `raw === null`\n* fallback is defensive cover for an empty parent set; in single-query\n* dispatch the correlated subquery always produces a row, so the inner\n* envelope's `value` is always set by SQL.\n*/\nfunction decodeScalarIncludePayload(include, scalar, raw) {\n\tif (raw === null || raw === void 0) return emptyScalarResult(scalar.fn);\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\treturn parsed[\"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}\nfunction coerceSingleQueryIncludeResult(rows, cardinality) {\n\treturn isToOneCardinality(cardinality) ? rows[0] ?? null : rows;\n}\nfunction emptyScalarResult(fn) {\n\treturn fn === \"count\" ? 0 : null;\n}\n//#endregion\n//#region src/collection-mutation-dispatch.ts\nfunction createMutationRowMapper(contract, namespaceId, modelName, variantName) {\n\tconst polyInfo = resolvePolymorphismInfo(contract, namespaceId, modelName);\n\treturn polyInfo ? (row) => mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, row, variantName) : (row) => mapStorageRowToModelFields(contract, namespaceId, modelName, row);\n}\nfunction dispatchMutationRows(options) {\n\tconst { context, runtime, compiled, tableName, modelName, namespaceId, variantName, includes, selectedFields, hiddenColumns, mapRow } = options;\n\tconst { contract } = context;\n\tconst mapStorageRow = createMutationRowMapper(contract, namespaceId, modelName, variantName);\n\tif (includes.length === 0) return mapResultRows(executeQueryPlan(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 executeQueryPlan(runtime, compiled).toArray();\n\t\tyield* reloadMutationRowsByIdentities({\n\t\t\tcontext,\n\t\t\truntime,\n\t\t\ttableName,\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, tableName, modelName, namespaceId, variantName, includes, selectedFields, hiddenColumns, mapRow } = options;\n\tconst { contract } = context;\n\tconst mapStorageRow = createMutationRowMapper(contract, namespaceId, modelName, variantName);\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 executeQueryPlan(runtime, plan).toArray());\n\t\t\tyield* reloadMutationRowsByIdentities({\n\t\t\t\tcontext,\n\t\t\t\truntime,\n\t\t\t\ttableName,\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 executeQueryPlan(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, tableName, modelName, namespaceId, variantName, includes, selectedFields, hiddenColumns, mapRow, operation, onMissingRowMessage } = options;\n\tconst { contract } = context;\n\tconst mapStorageRow = createMutationRowMapper(contract, namespaceId, modelName, variantName);\n\tif (includes.length === 0) {\n\t\tconst first = (await executeQueryPlan(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 executeQueryPlan(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\ttableName,\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\n\t} });\n}\n//#endregion\n//#region src/filters.ts\nfunction and(...exprs) {\n\treturn AndExpr.of(exprs);\n}\nfunction or(...exprs) {\n\treturn OrExpr.of(exprs);\n}\nfunction not(expr) {\n\treturn expr.not();\n}\nfunction all() {\n\treturn AndExpr.true();\n}\nfunction shorthandToWhereExpr(context, namespaceId, modelName, filters) {\n\tconst contract = context.contract;\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst fieldToColumn = getFieldToColumnMap(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 = fieldToColumn[fieldName] ?? fieldName;\n\t\tconst left = ColumnRef.of(tableName, 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(BinaryExpr.eq(left, LiteralExpr.of(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 ? context.codecDescriptors.descriptorFor(codecId)?.traits ?? [] : []).includes(\"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/grouped-collection.ts\nvar GroupedCollection = class GroupedCollection {\n\tctx;\n\tcontract;\n\tmodelName;\n\ttableName;\n\tnamespaceId;\n\tbaseFilters;\n\tgroupByFields;\n\tgroupByColumns;\n\thavingFilters;\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 = options.namespaceId;\n\t\tthis.baseFilters = options.baseFilters;\n\t\tthis.groupByFields = options.groupByFields;\n\t\tthis.groupByColumns = options.groupByColumns;\n\t\tthis.havingFilters = options.havingFilters;\n\t}\n\thaving(predicate) {\n\t\tconst havingExpr = predicate(createHavingBuilder(this.contract, this.namespaceId, this.modelName, this.tableName));\n\t\treturn new GroupedCollection(this.ctx, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tbaseFilters: this.baseFilters,\n\t\t\tgroupByFields: this.groupByFields,\n\t\t\tgroupByColumns: this.groupByColumns,\n\t\t\thavingFilters: [...this.havingFilters, havingExpr]\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\tasync aggregate(fn, configure) {\n\t\tconst aggregateSpec = fn(createAggregateBuilder(this.contract, 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.namespaceId, this.tableName, this.baseFilters, this.groupByColumns, aggregateSpec, combineWhereExprs(this.havingFilters)), annotationsMap);\n\t\treturn (await executeQueryPlan(this.ctx.runtime, compiled).toArray()).map((row) => {\n\t\t\tconst mapped = mapStorageRowToModelFields(this.contract, this.namespaceId, this.modelName, row);\n\t\t\tfor (const [alias, selector] of aggregateEntries) mapped[alias] = coerceAggregateValue(selector.fn, row[alias]);\n\t\t\treturn mapped;\n\t\t});\n\t}\n};\nfunction createHavingBuilder(contract, namespaceId, modelName, tableName) {\n\tconst fieldToColumn = getFieldToColumnMap(contract, namespaceId, modelName);\n\tconst createMetricExpr = (fn, fieldName) => new AggregateExpr(fn, ColumnRef.of(tableName, fieldToColumn[fieldName] ?? fieldName));\n\treturn {\n\t\tcount() {\n\t\t\treturn createHavingComparisonMethods(AggregateExpr.count());\n\t\t},\n\t\tsum(field) {\n\t\t\treturn createHavingComparisonMethods(createMetricExpr(\"sum\", field));\n\t\t},\n\t\tavg(field) {\n\t\t\treturn createHavingComparisonMethods(createMetricExpr(\"avg\", field));\n\t\t},\n\t\tmin(field) {\n\t\t\treturn createHavingComparisonMethods(createMetricExpr(\"min\", field));\n\t\t},\n\t\tmax(field) {\n\t\t\treturn createHavingComparisonMethods(createMetricExpr(\"max\", field));\n\t\t}\n\t};\n}\nfunction createHavingComparisonMethods(metric) {\n\tconst buildBinaryExpr = (op, value) => new BinaryExpr(op, metric, LiteralExpr.of(value));\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}\nfunction coerceAggregateValue(fn, value) {\n\tif (value === null) return null;\n\tif (value === void 0) return fn === \"count\" ? 0 : null;\n\tif (typeof value === \"number\") return value;\n\tif (typeof value === \"bigint\") return Number(value);\n\tif (typeof value === \"string\") {\n\t\tconst numeric = Number(value);\n\t\treturn Number.isNaN(numeric) ? value : numeric;\n\t}\n\treturn value;\n}\n//#endregion\n//#region src/include-descriptors.ts\nconst aggregateFns = /* @__PURE__ */ new Set([\n\t\"count\",\n\t\"sum\",\n\t\"avg\",\n\t\"min\",\n\t\"max\"\n]);\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\" && aggregateFns.has(candidate.fn) && 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/model-accessor.ts\nfunction hasThrough$1(relation) {\n\treturn relation.through !== void 0;\n}\nfunction createModelAccessor(context, namespaceId, modelName, variantName) {\n\tconst contract = context.contract;\n\tconst fieldToColumn = getFieldToColumnMap(contract, namespaceId, modelName);\n\tconst tableName = resolveModelTableName(contract, namespaceId, modelName);\n\tconst modelRelations = resolveModelRelations(contract, namespaceId, modelName);\n\tconst variantFieldColumns = variantName ? resolveVariantFieldColumns(contract, namespaceId, modelName, variantName) : {};\n\tconst variantCoordinates = variantName ? {\n\t\tname: variantName,\n\t\trelations: resolveModelRelations(contract, namespaceId, variantName),\n\t\ttableName: resolvePolymorphismInfo(contract, namespaceId, modelName)?.variants.get(variantName)?.table ?? tableName\n\t} : void 0;\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) {\n\t\t\tconst variantRelation = variantCoordinates.relations[prop];\n\t\t\tif (variantRelation) return createRelationFilterAccessor(context, namespaceId, variantCoordinates.name, variantCoordinates.tableName, prop, variantRelation);\n\t\t}\n\t\tconst relation = modelRelations[prop];\n\t\tif (relation) return createRelationFilterAccessor(context, namespaceId, modelName, tableName, prop, relation);\n\t\tconst variantField = variantFieldColumns[prop];\n\t\tconst resolvedTable = variantField?.table ?? tableName;\n\t\tconst columnName = variantField?.column ?? fieldToColumn[prop] ?? prop;\n\t\tconst column = resolveColumn(contract, namespaceId, resolvedTable, columnName);\n\t\tif (!column) return;\n\t\tconst traits = context.codecDescriptors.descriptorFor(column.codecId)?.traits ?? [];\n\t\tconst operations = opsByCodecId.get(column.codecId) ?? [];\n\t\tconst codec = codecRefForStorageColumn(contract.storage, namespaceId, resolvedTable, columnName);\n\t\treturn createScalarFieldAccessor(resolvedTable, columnName, column.codecId, column.nullable, codec, traits, operations, context);\n\t} }));\n}\nfunction resolveColumn(contract, namespaceId, tableName, columnName) {\n\tlet table;\n\ttry {\n\t\ttable = storageTableForContract(contract, namespaceId, tableName);\n\t} catch {\n\t\treturn;\n\t}\n\tconst column = table.columns[columnName];\n\tif (!column) return void 0;\n\treturn {\n\t\tcodecId: column.codecId,\n\t\tnullable: column.nullable\n\t};\n}\nfunction createScalarFieldAccessor(tableName, columnName, codecId, nullable, codec, traits, operations, context) {\n\tconst column = ColumnRef.of(tableName, 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\tcodec,\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 = context.codecDescriptors.descriptorFor(returnCodecId)?.traits ?? [];\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}\nfunction createRelationFilterAccessor(context, parentNamespaceId, parentModelName, parentTableName, relationName, relation) {\n\tconst relatedTableName = resolveModelTableName(context.contract, relation.toNamespace, relation.to);\n\treturn {\n\t\tsome: (predicate) => buildExistsExpr(context, parentNamespaceId, parentModelName, parentTableName, relatedTableName, relationName, relation, {\n\t\t\tmode: \"some\",\n\t\t\tpredicate\n\t\t}),\n\t\tevery: (predicate) => buildExistsExpr(context, parentNamespaceId, parentModelName, parentTableName, relatedTableName, relationName, relation, {\n\t\t\tmode: \"every\",\n\t\t\tpredicate\n\t\t}),\n\t\tnone: (predicate) => buildExistsExpr(context, parentNamespaceId, parentModelName, parentTableName, relatedTableName, relationName, relation, {\n\t\t\tmode: \"none\",\n\t\t\tpredicate\n\t\t})\n\t};\n}\nfunction buildExistsExpr(context, parentNamespaceId, parentModelName, parentTableName, relatedTableName, relationName, relation, options) {\n\tif (hasThrough$1(relation)) return buildManyToManyExistsExpr(context, parentNamespaceId, parentModelName, parentTableName, relatedTableName, relationName, relation, options);\n\tconst filterPlan = planRelationFilterMode(buildJoinWhere(context.contract, parentNamespaceId, parentModelName, parentTableName, relatedTableName, relation), toRelationWhereExpr(context, relation.toNamespace, relation.to, options.predicate), options.mode);\n\tif (filterPlan.kind === \"constantTrue\") return AndExpr.true();\n\tconst selectProjectionColumn = firstTargetColumn(context.contract, relation) ?? \"id\";\n\tconst subquery = SelectAst.from(tableSourceForContract(context.contract, relation.toNamespace, relatedTableName)).withProjection([ProjectionItem.of(\"_exists\", ColumnRef.of(relatedTableName, selectProjectionColumn))]).withWhere(filterPlan.where);\n\treturn filterPlan.notExists ? ExistsExpr.notExists(subquery) : ExistsExpr.exists(subquery);\n}\nfunction buildManyToManyExistsExpr(context, parentNamespaceId, parentModelName, parentTableName, relatedTableName, relationName, relation, options) {\n\tconst { through } = relation;\n\tconst junctionTable = through.table;\n\tconst relatedTableAlias = parentNamespaceId === relation.toNamespace && parentTableName === relatedTableName ? `${relationName}__child` : void 0;\n\tconst relatedTableRef = relatedTableAlias ?? relatedTableName;\n\tconst junctionJoinOn = buildPairedColumnExprs(junctionTable, through.childColumns, relatedTableRef, through.targetColumns);\n\tconst parentLocalColumns = relation.on.localFields.map((field) => resolveFieldToColumn(context.contract, parentNamespaceId, parentModelName, field));\n\tconst filterPlan = planRelationFilterMode(buildPairedColumnExprs(junctionTable, through.parentColumns, parentTableName, parentLocalColumns), remapColumnRefs(relatedTableName, relatedTableRef, toRelationWhereExpr(context, relation.toNamespace, relation.to, options.predicate)), options.mode);\n\tif (filterPlan.kind === \"constantTrue\") return AndExpr.true();\n\tconst firstTargetCol = firstJoinColumn(through.targetColumns, \"targetColumns\");\n\tconst subquery = SelectAst.from(tableSourceForContract(context.contract, relation.toNamespace, relatedTableName, relatedTableAlias)).withJoins([JoinAst.inner(TableSource.named(junctionTable, void 0, through.namespaceId), junctionJoinOn)]).withProjection([ProjectionItem.of(\"_exists\", ColumnRef.of(relatedTableRef, firstTargetCol))]).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 remapColumnRefs(tableName, tableRef, expr) {\n\tif (!expr || tableName === tableRef) return expr;\n\treturn expr.rewrite({ columnRef: (column) => column.table === tableName ? ColumnRef.of(tableRef, column.column) : column });\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(ColumnRef.of(leftTable, left), ColumnRef.of(rightTable, right)));\n\t}\n\tif (exprs.length === 1 && exprs[0]) return exprs[0];\n\treturn and(...exprs);\n}\nfunction toRelationWhereExpr(context, relatedNamespaceId, relatedModelName, predicate) {\n\tif (!predicate) return;\n\tconst accessor = createModelAccessor(context, relatedNamespaceId, relatedModelName);\n\tif (typeof predicate === \"function\") return predicate(accessor);\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 ormError(\"ORM.FIELD_UNKNOWN\", `Shorthand filter on \"${relatedModelName}.${fieldName}\": field is not defined on the model`, { meta: {\n\t\t\tmodel: relatedModelName,\n\t\t\tfield: fieldName\n\t\t} });\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, parentTableName, relatedTableName, 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 = resolveFieldToColumn(contract, parentNamespaceId, parentModelName, localField);\n\t\tconst targetColumn = resolveFieldToColumn(contract, relation.toNamespace, relation.to, targetField);\n\t\tjoinExprs.push(BinaryExpr.eq(ColumnRef.of(relatedTableName, targetColumn), ColumnRef.of(parentTableName, 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}\nfunction firstTargetColumn(contract, relation) {\n\tconst firstField = (relation.on?.targetFields)?.[0];\n\tif (!firstField) return;\n\treturn resolveFieldToColumn(contract, relation.toNamespace, relation.to, firstField);\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(scope, options.context, options.namespaceId, options.modelName, options.filters, options.data));\n}\nfunction buildPrimaryKeyFilterFromRow(contract, namespaceId, modelName, row) {\n\tconst fieldName = toFieldName(contract, namespaceId, modelName, resolvePrimaryKeyColumn(contract, namespaceId, resolveModelTableName(contract, namespaceId, modelName)));\n\tconst value = row[fieldName];\n\tif (value === void 0) throw new InternalError(`Missing primary key field \"${fieldName}\" while reloading model \"${modelName}\"`);\n\treturn { [fieldName]: value };\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\") await transaction.rollback();\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(scope, context, namespaceId, modelName, filters, input) {\n\tconst contract = context.contract;\n\tconst existingRow = await findFirstByFilters(scope, contract, namespaceId, modelName, 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\ttable: tableName,\n\t\t\tnamespace: namespaceId,\n\t\t\tvalues: mappedUpdateData\n\t\t});\n\t\tfor (const def of appliedUpdateDefaults) mappedUpdateData[def.column] = def.value;\n\t\tconst pkWhere = shorthandToWhereExpr(context, namespaceId, modelName, castAs(buildPrimaryKeyFilterFromRow(contract, namespaceId, modelName, existingRow)));\n\t\tif (!pkWhere) throw new InternalError(`Failed to build primary key filter for model \"${modelName}\"`);\n\t\tconst updatedRaw = (await executeQueryPlan(scope, compileUpdateReturning(contract, namespaceId, tableName, mappedUpdateData, [pkWhere], 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 criterionWhere = shorthandToWhereExpr(context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion));\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, relation.relatedNamespaceId, relation.relatedTableName, 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 parentJoinWhere = buildChildJoinWhere(relation, parentValues);\n\t\tawait executeUpdateCount(scope, contract, relation.relatedNamespaceId, relation.relatedTableName, setValues, [parentJoinWhere]);\n\t\treturn;\n\t}\n\tfor (const criterion of mutation.criteria) {\n\t\tconst criterionWhere = shorthandToWhereExpr(context, relation.relatedNamespaceId, relation.relatedModelName, castAs(criterion));\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\tconst parentJoinWhere = buildChildJoinWhere(relation, parentValues);\n\t\tawait executeUpdateCount(scope, contract, relation.relatedNamespaceId, relation.relatedTableName, setValues, [and(parentJoinWhere, 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\ttable: through.table,\n\t\tnamespace: through.namespaceId,\n\t\tvalues: junctionRow\n\t});\n\tfor (const def of applied) junctionRow[def.column] = def.value;\n\tconst compiled = compileInsertCount(context.contract, through.namespaceId, through.table, [junctionRow]);\n\ttry {\n\t\tawait executeQueryPlan(scope, compiled).toArray();\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 exprs = [];\n\tfor (const [column, value] of Object.entries(junctionRow)) exprs.push(BinaryExpr.eq(ColumnRef.of(through.table, column), LiteralExpr.of(value)));\n\tconst first = exprs[0];\n\tconst where = exprs.length === 1 && first !== void 0 ? first : and(...exprs);\n\tawait executeQueryPlan(scope, compileDeleteCount(context.contract, through.namespaceId, through.table, [where])).toArray();\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 buildChildJoinWhere(relation, childValues) {\n\tconst exprs = [];\n\tfor (const [childColumn, parentValue] of childValues.entries()) exprs.push(BinaryExpr.eq(ColumnRef.of(relation.relatedTableName, childColumn), LiteralExpr.of(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\ttable: tableName,\n\t\tnamespace: namespaceId,\n\t\tvalues: mappedData\n\t});\n\tfor (const def of applied) mappedData[def.column] = def.value;\n\tconst firstRow = (await executeQueryPlan(scope, compileInsertReturning(contract, namespaceId, 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 whereExpr = shorthandToWhereExpr(context, namespaceId, modelName, castAs(criterion));\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 executeQueryPlan(scope, compileSelect(contract, namespaceId, resolveModelTableName(contract, namespaceId, modelName), {\n\t\t...emptyState(),\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, filters) {\n\tconst firstRow = (await executeQueryPlan(scope, compileSelect(contract, namespaceId, resolveModelTableName(contract, namespaceId, modelName), {\n\t\t...emptyState(),\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, namespaceId, tableName, setValues, filters) {\n\tawait executeQueryPlan(scope, compileUpdateCount(contract, namespaceId, tableName, setValues, filters)).toArray();\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 = `${namespaceId}\\u0000${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) => resolveFieldToColumn(contract, namespaceId, modelName, f)),\n\t\ttargetColumns: relation.on.targetFields.map((f) => resolveFieldToColumn(contract, relation.toNamespace, relation.to, f)),\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 getColumnToFieldMap(contract, namespaceId, modelName)[columnName] ?? columnName;\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\tif (isToWhereExpr(arg)) return arg.toWhereExpr();\n\tif (options?.contract) return bindWhereExpr(options.contract, arg, options.namespaceId);\n\treturn arg;\n}\nfunction isToWhereExpr(arg) {\n\treturn typeof arg === \"object\" && arg !== null && \"toWhereExpr\" in arg && !isWhereExpr(arg);\n}\n//#endregion\n//#region src/collection.ts\nfunction applyCreateDefaults(ctx, namespaceId, tableName, rows) {\n\tconst defaultValueCache = rows.length > 1 ? /* @__PURE__ */ new Map() : void 0;\n\tfor (const row of rows) {\n\t\tconst applied = ctx.context.applyMutationDefaults({\n\t\t\top: \"create\",\n\t\t\ttable: tableName,\n\t\t\tnamespace: namespaceId,\n\t\t\tvalues: row,\n\t\t\t...defaultValueCache ? { defaultValueCache } : {}\n\t\t});\n\t\tfor (const def of applied) row[def.column] = def.value;\n\t}\n}\nfunction applyUpdateDefaults(ctx, namespaceId, tableName, values) {\n\tconst applied = ctx.context.applyMutationDefaults({\n\t\top: \"update\",\n\t\ttable: tableName,\n\t\tnamespace: namespaceId,\n\t\tvalues\n\t});\n\tfor (const def of applied) values[def.column] = 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 isMtiVariantInfo(variant) {\n\treturn variant?.strategy === \"mti\";\n}\nvar Collection = class Collection {\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();\n\t\tthis.registry = options.registry ?? /* @__PURE__ */ new Map();\n\t\tthis.includeRefinementMode = options.includeRefinementMode ?? false;\n\t}\n\twhere(input) {\n\t\tconst filter = normalizeWhereArg(typeof input === \"function\" ? input(createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, this.state.variantName)) : isWhereDirectInput(input) ? input : shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, input), {\n\t\t\tcontract: this.contract,\n\t\t\tnamespaceId: this.namespaceId\n\t\t});\n\t\tif (!filter) return blindCast(this);\n\t\treturn this.#clone({ filters: [...this.state.filters, filter] });\n\t}\n\t/**\n\t* Narrow a polymorphic model to a specific variant. The returned\n\t* collection has the variant's row shape and a discriminator filter\n\t* is automatically applied. Chaining `.variant(...)` again replaces\n\t* the previous variant filter.\n\t*\n\t* ```typescript\n\t* // Read only admin users (STI):\n\t* const admins = await db.orm.User.variant('Admin').all();\n\t*\n\t* // Iterate the rows:\n\t* for await (const admin of db.orm.User.variant('Admin').all()) {\n\t* console.log(admin.role);\n\t* }\n\t*\n\t* // Insert under a variant — discriminator is injected automatically:\n\t* await db.orm.User.variant('Admin').create({ name: 'Ada', role: 'super' });\n\t* ```\n\t*/\n\tvariant(variantName) {\n\t\tconst model = modelOf(this.contract, this.namespaceId, this.modelName);\n\t\tconst discriminator = model?.discriminator;\n\t\tconst variants = model?.variants;\n\t\tif (!discriminator || !variants) return blindCast(this);\n\t\tconst variantEntry = variants[variantName];\n\t\tif (!variantEntry) return blindCast(this);\n\t\tconst columnName = resolveFieldToColumn(this.contract, this.namespaceId, this.modelName, discriminator.field);\n\t\tconst filter = BinaryExpr.eq(ColumnRef.of(this.tableName, columnName), LiteralExpr.of(variantEntry.value));\n\t\tconst filtersWithoutPreviousVariant = this.state.variantName ? this.state.filters.filter((f) => !(f instanceof BinaryExpr && f.left instanceof ColumnRef && f.left.column === columnName && f.left.table === this.tableName)) : this.state.filters;\n\t\treturn this.#cloneWithRow({\n\t\t\tfilters: [...filtersWithoutPreviousVariant, filter],\n\t\t\tvariantName\n\t\t});\n\t}\n\t/**\n\t* Eagerly load a related model. The relation appears on every\n\t* returned row under its declared name; to-one relations are mapped\n\t* to a single object (or `null`), to-many relations to an array.\n\t*\n\t* An optional refinement callback receives a child collection that\n\t* can be further constrained, projected, ordered, paginated, or\n\t* reduced to scalars via `count()`/`sum()`/etc. or to multiple\n\t* sub-aggregates via `combine()`.\n\t*\n\t* ```typescript\n\t* // Simple include — every user comes back with its posts array:\n\t* const users = await db.orm.User.include('posts').all();\n\t*\n\t* // Refine the related collection:\n\t* const withRecent = await db.orm.User.include('posts', (posts) =>\n\t* posts.where({ published: true }).orderBy((p) => p.createdAt.desc()).take(5),\n\t* ).all();\n\t*\n\t* // Reduce a to-many relation to a scalar value:\n\t* const withCounts = await db.orm.User.include('posts', (posts) => posts.count()).all();\n\t*\n\t* // Multiple sub-views via combine():\n\t* const overview = await db.orm.User.include('posts', (posts) =>\n\t* posts.combine({ recent: posts.take(3), total: posts.count() }),\n\t* ).all();\n\t* ```\n\t*/\n\tinclude(relationName, refineFn) {\n\t\tconst relation = resolveIncludeRelation(this.contract, this.namespaceId, this.modelName, relationName, this.state.variantName);\n\t\tlet nestedState = emptyState();\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: emptyState(),\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\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)) nestedState = refined.state;\n\t\t\telse 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\tlocalTableName: relation.localTableName,\n\t\t\ttargetColumn: relation.targetColumn,\n\t\t\tlocalColumn: relation.localColumn,\n\t\t\tcardinality: relation.cardinality,\n\t\t\t...ifDefined(\"through\", relation.through),\n\t\t\tnested: nestedState,\n\t\t\tscalar: scalarSelector,\n\t\t\tcombine: combineBranches\n\t\t};\n\t\treturn this.#cloneWithRow({ includes: [...this.state.includes, includeExpr] });\n\t}\n\t/**\n\t* Project the row down to a subset of scalar fields. Previously\n\t* included relations are preserved on the resulting row shape; only\n\t* scalar columns are narrowed.\n\t*\n\t* ```typescript\n\t* const summaries = await db.orm.User.select('id', 'email').all();\n\t* // typeof summaries[number] === { id: ...; email: ... }\n\t*\n\t* for await (const row of db.orm.User.select('id', 'email').all()) {\n\t* console.log(row.id, row.email);\n\t* }\n\t* ```\n\t*/\n\tselect(...fields) {\n\t\tconst selectedFields = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn this.#cloneWithRow({ selectedFields });\n\t}\n\t/**\n\t* Append an `ORDER BY` clause. Pass a single selector callback or an\n\t* array of callbacks; each receives a typed model accessor whose\n\t* columns expose `.asc()` and `.desc()`. Multiple calls append to the\n\t* existing list (left-to-right ordering preserved).\n\t*\n\t* Calling `orderBy(...)` unlocks `cursor(...)` and `distinctOn(...)`,\n\t* which both require a defined sort order.\n\t*\n\t* ```typescript\n\t* const newest = await db.orm.User.orderBy((u) => u.createdAt.desc()).all();\n\t*\n\t* const byName = await db.orm.User\n\t* .orderBy([(u) => u.lastName.asc(), (u) => u.firstName.asc()])\n\t* .all();\n\t* ```\n\t*/\n\torderBy(selection) {\n\t\tconst accessor = createModelAccessor(this.ctx.context, this.namespaceId, this.modelName, this.state.variantName);\n\t\tconst nextOrders = (Array.isArray(selection) ? selection : [selection]).map((selector) => selector(accessor));\n\t\tconst existing = this.state.orderBy ?? [];\n\t\treturn this.#clone({ orderBy: [...existing, ...nextOrders] });\n\t}\n\t/**\n\t* Switch to grouped-aggregate mode. Returns a `GroupedCollection`\n\t* whose `.aggregate(...)` terminal produces one row per group with\n\t* the chosen key columns plus the requested aggregates.\n\t*\n\t* ```typescript\n\t* const stats = await db.orm.Post\n\t* .where({ published: true })\n\t* .groupBy('userId')\n\t* .aggregate((agg) => ({ count: agg.count(), totalViews: agg.sum('views') }));\n\t* // [{ userId: 1, count: 3, totalViews: 120 }, ...]\n\t* ```\n\t*/\n\tgroupBy(...fields) {\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\tbaseFilters: this.state.filters,\n\t\t\tgroupByFields: [...fields],\n\t\t\tgroupByColumns,\n\t\t\thavingFilters: []\n\t\t});\n\t}\n\t/**\n\t* Scalar reducer — reduces a to-many relation to the number of\n\t* related rows. Use inside an `include(...)` refinement callback as\n\t* `include(..., (rel) => rel.count())`; throws if called elsewhere.\n\t* The parent row's relation field becomes that count instead of an\n\t* array.\n\t*\n\t* ```typescript\n\t* const users = await db.orm.User.include('posts', (posts) => posts.count()).all();\n\t* // each user row: { ...user, posts: number }\n\t* ```\n\t*/\n\tcount() {\n\t\tthis.#assertIncludeRefinementMode(\"count()\");\n\t\treturn createIncludeScalar(\"count\", this.state);\n\t}\n\t/**\n\t* Scalar reducer — reduces a to-many relation to the sum of `field`\n\t* across related rows. Returns `null` when there are no related\n\t* rows. Use inside an `include(...)` refinement callback; throws if\n\t* called elsewhere.\n\t*\n\t* ```typescript\n\t* const users = await db.orm.User.include('posts', (posts) => posts.sum('views')).all();\n\t* // each user row: { ...user, posts: number | null }\n\t* ```\n\t*/\n\tsum(field) {\n\t\tthis.#assertIncludeRefinementMode(\"sum()\");\n\t\tconst columnName = resolveFieldToColumn(this.contract, this.namespaceId, this.modelName, field);\n\t\treturn createIncludeScalar(\"sum\", this.state, columnName);\n\t}\n\t/**\n\t* Scalar reducer — reduces a to-many relation to the average of\n\t* `field` across related rows. Returns `null` when there are no\n\t* related rows. Use inside an `include(...)` refinement callback;\n\t* throws if called elsewhere.\n\t*\n\t* ```typescript\n\t* const users = await db.orm.User.include('posts', (posts) => posts.avg('views')).all();\n\t* // each user row: { ...user, posts: number | null }\n\t* ```\n\t*/\n\tavg(field) {\n\t\tthis.#assertIncludeRefinementMode(\"avg()\");\n\t\tconst columnName = resolveFieldToColumn(this.contract, this.namespaceId, this.modelName, field);\n\t\treturn createIncludeScalar(\"avg\", this.state, columnName);\n\t}\n\t/**\n\t* Scalar reducer — reduces a to-many relation to the minimum value\n\t* of `field` across related rows. Returns `null` when there are no\n\t* related rows. Use inside an `include(...)` refinement callback;\n\t* throws if called elsewhere.\n\t*\n\t* ```typescript\n\t* const users = await db.orm.User.include('posts', (posts) => posts.min('views')).all();\n\t* ```\n\t*/\n\tmin(field) {\n\t\tthis.#assertIncludeRefinementMode(\"min()\");\n\t\tconst columnName = resolveFieldToColumn(this.contract, this.namespaceId, this.modelName, field);\n\t\treturn createIncludeScalar(\"min\", this.state, columnName);\n\t}\n\t/**\n\t* Scalar reducer — reduces a to-many relation to the maximum value\n\t* of `field` across related rows. Returns `null` when there are no\n\t* related rows. Use inside an `include(...)` refinement callback;\n\t* throws if called elsewhere.\n\t*\n\t* ```typescript\n\t* const users = await db.orm.User.include('posts', (posts) => posts.max('views')).all();\n\t* ```\n\t*/\n\tmax(field) {\n\t\tthis.#assertIncludeRefinementMode(\"max()\");\n\t\tconst columnName = resolveFieldToColumn(this.contract, this.namespaceId, this.modelName, field);\n\t\treturn createIncludeScalar(\"max\", this.state, columnName);\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 }).take(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\t/**\n\t* Resume pagination from a known cursor position. Requires a prior\n\t* `orderBy(...)` so the cursor has a stable basis; provide a value\n\t* for every column referenced by the active `orderBy(...)` so each\n\t* ordered axis has a defined boundary.\n\t*\n\t* ```typescript\n\t* const page1 = await db.orm.Post\n\t* .orderBy((p) => p.createdAt.desc())\n\t* .take(20)\n\t* .all();\n\t*\n\t* const last = page1[page1.length - 1]!;\n\t* const page2 = await db.orm.Post\n\t* .orderBy((p) => p.createdAt.desc())\n\t* .cursor({ createdAt: last.createdAt })\n\t* .take(20)\n\t* .all();\n\t* ```\n\t*/\n\tcursor(cursorValues) {\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.#clone({ cursor: mappedCursor });\n\t}\n\t/**\n\t* Emit `SELECT DISTINCT` keyed on the given fields. Replaces any\n\t* previous `distinct(...)` / `distinctOn(...)` selection.\n\t*\n\t* ```typescript\n\t* const groups = await db.orm.User.distinct('country', 'role').all();\n\t* ```\n\t*/\n\tdistinct(...fields) {\n\t\tconst distinctFields = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn this.#clone({\n\t\t\tdistinct: distinctFields,\n\t\t\tdistinctOn: void 0\n\t\t});\n\t}\n\t/**\n\t* Emit `SELECT DISTINCT ON (fields)` — keep the first row per\n\t* distinct key according to the current `orderBy(...)`. Requires a\n\t* prior `orderBy(...)`; replaces any previous `distinct(...)` /\n\t* `distinctOn(...)` selection.\n\t*\n\t* ```typescript\n\t* // Latest post per user:\n\t* const latestPerUser = await db.orm.Post\n\t* .orderBy([(p) => p.userId.asc(), (p) => p.createdAt.desc()])\n\t* .distinctOn('userId')\n\t* .all();\n\t* ```\n\t*/\n\tdistinctOn(...fields) {\n\t\tconst distinctOnFields = mapFieldsToColumns(this.contract, this.namespaceId, this.modelName, fields);\n\t\treturn this.#clone({\n\t\t\tdistinct: void 0,\n\t\t\tdistinctOn: distinctOnFields\n\t\t});\n\t}\n\t/**\n\t* Apply `LIMIT n`. Replaces any previous limit set on this collection.\n\t*\n\t* ```typescript\n\t* const firstTen = await db.orm.User.orderBy((u) => u.id.asc()).take(10).all();\n\t* ```\n\t*/\n\ttake(n) {\n\t\treturn this.#clone({ limit: n });\n\t}\n\t/**\n\t* Apply `OFFSET n`. Replaces any previous offset set on this collection.\n\t*\n\t* ```typescript\n\t* const page2 = await db.orm.User\n\t* .orderBy((u) => u.id.asc())\n\t* .skip(10)\n\t* .take(10)\n\t* .all();\n\t* ```\n\t*/\n\tskip(n) {\n\t\treturn this.#clone({ offset: n });\n\t}\n\t/**\n\t* Read terminal: execute the query and stream every matching row.\n\t*\n\t* The returned `AsyncIterableResult<Row>` is BOTH a thenable that\n\t* resolves to `Row[]` (so `await` collects all rows into an array)\n\t* AND an async iterable (so `for await` streams rows as they\n\t* arrive, without buffering the whole result set in memory). Pick\n\t* whichever fits the caller. A single result can only be consumed\n\t* once.\n\t*\n\t* Streaming is the default and the expected execution model. The\n\t* only scenarios that fall back to buffering internally before\n\t* yielding are drivers that cannot expose a cursor to the\n\t* underlying database, and — for queries with `include(...)` —\n\t* targets whose SQL dialect supports neither lateral joins nor\n\t* correlated subqueries (so child rows cannot be stitched in a\n\t* single streaming query). These are implementation details below\n\t* the public API; the iteration shape itself is genuinely\n\t* streaming whenever the driver and plan allow it.\n\t*\n\t* ```typescript\n\t* // Thenable — collect to an array:\n\t* const users = await db.orm.User.all();\n\t* for (const user of users) console.log(user.id);\n\t*\n\t* // Async iterable — stream rows as they arrive:\n\t* for await (const user of db.orm.User.all()) {\n\t* console.log(user.id);\n\t* }\n\t* ```\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'read'>` so the caller can attach typed user\n\t* annotations to the executed plan. `meta.annotate(...)` enforces\n\t* applicability at the type level and at runtime; annotations are\n\t* merged into `plan.meta.annotations` at compile time.\n\t*\n\t* ```typescript\n\t* await db.orm.User.all((meta) => meta.annotate(cacheAnnotation({ ttl: 60 })));\n\t* ```\n\t*/\n\tall(configure) {\n\t\treturn this.#withAnnotationsFromMeta(configure, \"all\").#dispatch();\n\t}\n\tasync first(filter, configure) {\n\t\treturn (await (filter === void 0 ? this : typeof filter === \"function\" ? this.where(filter) : this.where(filter)).take(1).#withAnnotationsFromMeta(configure, \"first\").#dispatch().toArray())[0] ?? null;\n\t}\n\t/**\n\t* Read terminal: run an aggregate query (count, sum, avg, min, max)\n\t* built via the `AggregateBuilder` callback. Returns one object\n\t* with the requested aggregate values keyed by the aliases supplied\n\t* in the spec.\n\t*\n\t* ```typescript\n\t* const stats = await db.orm.Post\n\t* .where({ published: true })\n\t* .aggregate((agg) => ({\n\t* total: agg.count(),\n\t* averageViews: agg.avg('views'),\n\t* maxViews: agg.max('views'),\n\t* }));\n\t* // { total: 42, averageViews: 17.3, maxViews: 9001 }\n\t* ```\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\tasync aggregate(fn, configure) {\n\t\tconst aggregateSpec = fn(createAggregateBuilder(this.contract, 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.namespaceId, this.tableName, this.state.filters, aggregateSpec), annotationsMap);\n\t\treturn normalizeAggregateResult(aggregateSpec, (await executeQueryPlan(this.ctx.runtime, compiled).toArray())[0] ?? {});\n\t}\n\tasync create(data, configure) {\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 pkCriterion = buildPrimaryKeyFilterFromRow(this.contract, this.namespaceId, this.modelName, createdRow);\n\t\t\tconst reloaded = await this.#reloadMutationRowByPrimaryKey(pkCriterion);\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\t/**\n\t* Write terminal: insert many rows and stream the inserted rows.\n\t*\n\t* The returned `AsyncIterableResult<Row>` is BOTH a thenable that\n\t* resolves to `Row[]` AND an async iterable that streams inserted\n\t* rows as they arrive. Use whichever shape fits the caller — but\n\t* only consume it once. Streaming is the default; some\n\t* driver/plan combinations may still buffer internally before\n\t* yielding.\n\t*\n\t* ```typescript\n\t* // Thenable — collect all inserted rows into an array:\n\t* const created = await db.orm.User.createAll([\n\t* { email: 'a@example.com' },\n\t* { email: 'b@example.com' },\n\t* ]);\n\t*\n\t* // Async iterable — stream inserted rows as they arrive:\n\t* for await (const row of db.orm.User.createAll(seedUsers)) {\n\t* console.log('inserted', row.id);\n\t* }\n\t* ```\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'write'>` for attaching typed annotations to the\n\t* compiled insert plan.\n\t*/\n\tcreateAll(data, configure) {\n\t\treturn this.#createAllWithAnnotations(data, this.#collectAnnotationsFromMeta(configure, \"write\", \"createAll\"));\n\t}\n\t#createAllWithAnnotations(data, annotationsMap) {\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.tableName, mappedRows, selectedForInsert).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\ttableName: this.tableName,\n\t\t\t\tmodelName: this.modelName,\n\t\t\t\tnamespaceId: this.namespaceId,\n\t\t\t\tvariantName: this.state.variantName,\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.tableName, mappedRows, selectedForInsert), 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\ttableName: this.tableName,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tvariantName: this.state.variantName,\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#assertNotMtiVariant(method) {\n\t\tif (this.#resolveMtiCreateContext()) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `${method} is not supported for MTI variant \"${this.state.variantName}\" on model \"${this.modelName}\". Use createAll() instead.`, { meta: {\n\t\t\tmethod,\n\t\t\tmodel: this.modelName,\n\t\t\tvariant: this.state.variantName,\n\t\t\treason: \"mti-variant\"\n\t\t} });\n\t}\n\t#resolveMtiCreateContext() {\n\t\tconst variantName = this.state.variantName;\n\t\tif (!variantName) 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(variantName);\n\t\tif (!isMtiVariantInfo(variant)) return null;\n\t\treturn {\n\t\t\tpolyInfo,\n\t\t\tvariant,\n\t\t\tbaseFieldToColumn: getFieldToColumnMap(this.contract, this.namespaceId, this.modelName),\n\t\t\tvariantFieldToColumn: getFieldToColumnMap(this.contract, this.namespaceId, variant.modelName),\n\t\t\tpkColumn: resolvePrimaryKeyColumn(this.contract, this.namespaceId, this.tableName)\n\t\t};\n\t}\n\t#executeMtiCreate(data, mtiCtx) {\n\t\tconst { polyInfo, variant, baseFieldToColumn, variantFieldToColumn, pkColumn } = 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 baseFieldColumns = new Set(Object.values(baseFieldToColumn));\n\t\tconst variantFieldColumns = new Set(Object.values(variantFieldToColumn));\n\t\tconst mergedFieldToColumn = {\n\t\t\t...baseFieldToColumn,\n\t\t\t...variantFieldToColumn\n\t\t};\n\t\tconst generator = async function* () {\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\tconst columnName = mergedFieldToColumn[fieldName] ?? fieldName;\n\t\t\t\t\tallMapped[columnName] = 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]);\n\t\t\t\t\tconst baseCreated = (await executeQueryPlan(scope, compileInsertReturning(contract, namespaceId, 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\tconst pkValue = baseCreated[pkColumn];\n\t\t\t\t\tvariantRow[pkColumn] = pkValue;\n\t\t\t\t\tapplyCreateDefaults(collectionCtx, namespaceId, variant.table, [variantRow]);\n\t\t\t\t\tconst variantCreated = (await executeQueryPlan(scope, compileInsertReturning(contract, namespaceId, variant.table, [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 (col === pkColumn) continue;\n\t\t\t\t\t\tprefixedVariant[`${variant.table}__${col}`] = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn mapPolymorphicRow(contract, namespaceId, modelName, polyInfo, {\n\t\t\t\t\t\t...baseCreated,\n\t\t\t\t\t\t...prefixedVariant\n\t\t\t\t\t}, variant.modelName);\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 variantName = this.state.variantName;\n\t\tif (!variantName) 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(variantName);\n\t\tif (!variant) return data.map((row) => mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, row));\n\t\tconst baseFieldToColumn = getFieldToColumnMap(this.contract, this.namespaceId, this.modelName);\n\t\tconst variantFieldToColumn = getFieldToColumnMap(this.contract, this.namespaceId, variant.modelName);\n\t\tconst mergedFieldToColumn = {\n\t\t\t...baseFieldToColumn,\n\t\t\t...variantFieldToColumn\n\t\t};\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\tconst columnName = mergedFieldToColumn[fieldName] ?? fieldName;\n\t\t\t\tmapped[columnName] = 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 inserted records.\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*\n\t* Not supported on MTI variants — use `createAll(...)` instead.\n\t*/\n\tasync createAndCount(data, configure) {\n\t\tif (data.length === 0) return 0;\n\t\tthis.#assertNotMtiVariant(\"createAndCount()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"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).map((plan) => mergeAnnotations(plan, annotationsMap));\n\t\t\tfor (const plan of plans) await executeQueryPlan(this.ctx.runtime, plan).toArray();\n\t\t\treturn data.length;\n\t\t}\n\t\tconst compiled = mergeAnnotations(compileInsertCount(this.contract, this.namespaceId, this.tableName, mappedRows), annotationsMap);\n\t\tawait executeQueryPlan(this.ctx.runtime, compiled).toArray();\n\t\treturn data.length;\n\t}\n\t/**\n\t* Write terminal: insert a row, or update the existing row on\n\t* conflict. Returns the resulting row (the inserted one or the\n\t* updated/existing one).\n\t*\n\t* `conflictOn` selects which unique constraint drives the conflict\n\t* resolution — omit to use the model's primary key.\n\t*\n\t* ```typescript\n\t* // Insert-or-update on email uniqueness:\n\t* await db.orm.User.upsert({\n\t* create: { email: 'alice@example.com', name: 'Alice' },\n\t* update: { name: 'Alice (updated)' },\n\t* conflictOn: { email: 'alice@example.com' },\n\t* });\n\t*\n\t* // Conditional create — `update: {}` keeps the existing row\n\t* // unchanged. `conflictOn` must reference the constraint that\n\t* // makes the row \"already exist\"; omit only when the conflict is\n\t* // on the primary key. On conflict,\n\t* // `ON CONFLICT DO NOTHING RETURNING ...` may return zero rows,\n\t* // so a follow-up reload is issued to fetch and return the\n\t* // existing row.\n\t* await db.orm.User.upsert({\n\t* create: { email: 'alice@example.com', name: 'Alice' },\n\t* update: {},\n\t* conflictOn: { email: 'alice@example.com' },\n\t* });\n\t* ```\n\t*\n\t* Not supported on MTI variants.\n\t*/\n\tasync upsert(input, configure) {\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.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\ttableName: this.tableName,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tvariantName: this.state.variantName,\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\t/**\n\t* Write terminal: update matching rows and return the first one (or\n\t* `null` when no row matched). Requires a prior `.where(...)` —\n\t* calling `update(...)` on an unfiltered collection is a type error.\n\t*\n\t* Related rows can be created or relinked through relation\n\t* callbacks on parent/child-owned relations (one-to-one or\n\t* one-to-many). The callback receives a mutator exposing\n\t* `create(...)`, `connect(...)`, and `disconnect(...)`. Nested\n\t* updates against existing related rows, and many-to-many relations\n\t* as nested-mutation targets, are not supported through this API.\n\t*\n\t* ```typescript\n\t* // Update one row by id:\n\t* const updated = await db.orm.User\n\t* .where({ id: 1 })\n\t* .update({ name: 'Alice Renamed' });\n\t*\n\t* // Update + relink — runs as a graph of internal mutations:\n\t* await db.orm.User\n\t* .where({ id: 1 })\n\t* .update({\n\t* name: 'Alice',\n\t* posts: (posts) => posts.connect([{ id: 5 }]),\n\t* });\n\t* ```\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'write'>` for attaching typed annotations.\n\t*\n\t* Note: when the input contains nested-mutation callbacks, the\n\t* operation is executed as a graph of internal queries via\n\t* `withMutationScope`. In that path, annotations apply to the logical\n\t* `update()` call but do not currently flow into each constituent SQL\n\t* statement issued for the related rows.\n\t*/\n\tasync update(data, configure) {\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\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\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 pkCriterion = buildPrimaryKeyFilterFromRow(this.contract, this.namespaceId, this.modelName, updatedRow);\n\t\t\treturn this.#reloadMutationRowByPrimaryKey(pkCriterion);\n\t\t}\n\t\treturn withMutationScope(this.ctx.runtime, async (scope) => {\n\t\t\tconst scoped = this.#withRuntime(scope);\n\t\t\tconst identityWhere = await scoped.#findFirstMatchingRowIdentityWhere();\n\t\t\tif (!identityWhere) return null;\n\t\t\treturn (await scoped.#clone({ filters: [identityWhere] }).#updateAllWithAnnotations(blindCast(data), annotationsMap))[0] ?? null;\n\t\t});\n\t}\n\t/**\n\t* Write terminal: update every matching row and stream the updated\n\t* rows. Requires a prior `.where(...)` filter.\n\t*\n\t* The returned `AsyncIterableResult<Row>` is BOTH a thenable that\n\t* resolves to `Row[]` AND an async iterable that streams updated\n\t* rows as they arrive. Use whichever fits; a result can only be\n\t* consumed once. Streaming is the default; some driver/plan\n\t* combinations may still buffer internally before yielding.\n\t*\n\t* ```typescript\n\t* // Thenable — collect updated rows into an array:\n\t* const updated = await db.orm.Post\n\t* .where({ published: false })\n\t* .updateAll({ published: true });\n\t*\n\t* // Async iterable — stream updated rows as they arrive:\n\t* for await (const row of db.orm.Post.where({ draft: true }).updateAll({ draft: false })) {\n\t* console.log('published', row.id);\n\t* }\n\t* ```\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'write'>` for attaching typed annotations.\n\t*/\n\tupdateAll(data, configure) {\n\t\treturn this.#updateAllWithAnnotations(data, this.#collectAnnotationsFromMeta(configure, \"write\", \"updateAll\"));\n\t}\n\t#updateAllWithAnnotations(data, annotationsMap) {\n\t\tassertReturningCapability(this.contract, \"updateAll()\");\n\t\tconst mappedData = mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, data);\n\t\tif (Object.keys(mappedData).length === 0) {\n\t\t\tconst generator = async function* () {};\n\t\t\treturn new AsyncIterableResult(generator());\n\t\t}\n\t\tapplyUpdateDefaults(this.ctx, this.namespaceId, this.tableName, mappedData);\n\t\tconst { selectedForQuery: selectedForUpdate, hiddenColumns } = this.#augmentMutationSelection();\n\t\tconst compiled = mergeAnnotations(compileUpdateReturning(this.contract, this.namespaceId, this.tableName, mappedData, this.state.filters, selectedForUpdate), 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\ttableName: this.tableName,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tvariantName: this.state.variantName,\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/**\n\t* Write terminal: update every matching row without returning them,\n\t* resolving to the count of rows that were updated. Requires a prior\n\t* `.where(...)` filter.\n\t*\n\t* Prefer `updateAll(...)` when you need the updated rows; prefer\n\t* this when you only need the affected-row count.\n\t*\n\t* ```typescript\n\t* const count = await db.orm.Post\n\t* .where({ published: false })\n\t* .updateAndCount({ published: true });\n\t* ```\n\t*/\n\tasync updateAndCount(data, configure) {\n\t\tconst mappedData = mapModelDataToStorageRow(this.contract, this.namespaceId, this.modelName, data);\n\t\tif (Object.keys(mappedData).length === 0) return 0;\n\t\tapplyUpdateDefaults(this.ctx, this.namespaceId, this.tableName, mappedData);\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"updateAndCount\");\n\t\tconst primaryKeyColumn = resolvePrimaryKeyColumn(this.contract, this.namespaceId, this.tableName);\n\t\tconst countState = {\n\t\t\t...emptyState(),\n\t\t\tfilters: this.state.filters,\n\t\t\tselectedFields: [primaryKeyColumn],\n\t\t\tvariantName: this.state.variantName\n\t\t};\n\t\tconst countCompiled = compileSelect(this.contract, this.namespaceId, this.tableName, countState, this.modelName);\n\t\tconst matchingRows = await executeQueryPlan(this.ctx.runtime, countCompiled).toArray();\n\t\tconst compiled = mergeAnnotations(compileUpdateCount(this.contract, this.namespaceId, this.tableName, mappedData, this.state.filters, this.state.variantName, this.modelName), annotationsMap);\n\t\tawait executeQueryPlan(this.ctx.runtime, compiled).toArray();\n\t\treturn matchingRows.length;\n\t}\n\t/**\n\t* Write terminal: delete matching rows and return the first deleted\n\t* row (or `null` when no row matched). Requires a prior `.where(...)`\n\t* — calling `delete()` on an unfiltered collection is a type error.\n\t*\n\t* ```typescript\n\t* const deleted = await db.orm.User.where({ id: 1 }).delete();\n\t* if (deleted) console.log('deleted', deleted.email);\n\t* ```\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'write'>` for attaching typed annotations.\n\t*/\n\tasync delete(configure) {\n\t\tassertReturningCapability(this.contract, \"delete()\");\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"delete\");\n\t\treturn withMutationScope(this.ctx.runtime, async (scope) => {\n\t\t\tconst scoped = this.#withRuntime(scope);\n\t\t\tconst identityWhere = await scoped.#findFirstMatchingRowIdentityWhere();\n\t\t\tif (!identityWhere) return null;\n\t\t\treturn (await scoped.#clone({ filters: [identityWhere] }).#executeDeleteReturning(annotationsMap).toArray())[0] ?? null;\n\t\t});\n\t}\n\t/**\n\t* Write terminal: delete every matching row and stream the deleted\n\t* rows. Requires a prior `.where(...)` filter.\n\t*\n\t* The returned `AsyncIterableResult<Row>` is BOTH a thenable that\n\t* resolves to `Row[]` AND an async iterable that streams deleted\n\t* rows as they arrive. Use whichever fits; a result can only be\n\t* consumed once. Streaming is the default; some driver/plan\n\t* combinations may still buffer internally before yielding.\n\t*\n\t* ```typescript\n\t* // Thenable — collect the deleted rows into an array:\n\t* const deleted = await db.orm.Post.where({ archived: true }).deleteAll();\n\t*\n\t* // Async iterable — stream deleted rows as they arrive:\n\t* for await (const row of db.orm.Post.where({ archived: true }).deleteAll()) {\n\t* console.log('removed', row.id);\n\t* }\n\t* ```\n\t*\n\t* Accepts an optional `configure` callback that receives a\n\t* `MetaBuilder<'write'>` for attaching typed annotations.\n\t*/\n\tdeleteAll(configure) {\n\t\treturn blindCast(this).#deleteAllWithAnnotations(this.#collectAnnotationsFromMeta(configure, \"write\", \"deleteAll\"));\n\t}\n\t#deleteAllWithAnnotations(annotationsMap) {\n\t\tassertReturningCapability(this.contract, \"deleteAll()\");\n\t\treturn this.#executeDeleteReturning(annotationsMap);\n\t}\n\t#executeDeleteReturning(annotationsMap) {\n\t\tif (this.state.includes.length > 0) return this.#executeDeleteReturningWithIncludes(annotationsMap);\n\t\tconst { selectedForQuery: selectedForDelete, hiddenColumns } = this.#augmentMutationSelection();\n\t\tconst compiled = mergeAnnotations(compileDeleteReturning(this.contract, this.namespaceId, this.tableName, this.state.filters, selectedForDelete), 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\ttableName: this.tableName,\n\t\t\tmodelName: this.modelName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tvariantName: this.state.variantName,\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/**\n\t* Delete read-back with includes.\n\t*\n\t* A parent-anchored single-query include read can't observe a row\n\t* that has already been deleted, so this reads the rows together with\n\t* their relations BEFORE issuing the DELETE. The snapshot is fully\n\t* drained into a plain array with `.toArray()` while the rows still\n\t* exist; only then does the DELETE run. The yielded `for..of` walks\n\t* that in-memory array, not a live cursor, so nothing reads from the\n\t* deleted rows after the fact. Snapshot read and delete share one\n\t* `withMutationScope` so they are atomic; the returned relations\n\t* reflect the row's state at delete time.\n\t*/\n\t#executeDeleteReturningWithIncludes(annotationsMap) {\n\t\tconst collection = this;\n\t\tconst generator = async function* () {\n\t\t\tconst snapshot = await withMutationScope(collection.ctx.runtime, async (scope) => {\n\t\t\t\tconst rows = await dispatchCollectionRows({\n\t\t\t\t\tcontext: collection.ctx.context,\n\t\t\t\t\truntime: scope,\n\t\t\t\t\tstate: collection.state,\n\t\t\t\t\ttableName: collection.tableName,\n\t\t\t\t\tmodelName: collection.modelName,\n\t\t\t\t\tnamespaceId: collection.namespaceId\n\t\t\t\t}).toArray();\n\t\t\t\tawait executeQueryPlan(scope, mergeAnnotations(compileDeleteCount(collection.contract, collection.namespaceId, collection.tableName, collection.state.filters, collection.state.variantName, collection.modelName), annotationsMap)).toArray();\n\t\t\t\treturn rows;\n\t\t\t});\n\t\t\tfor (const row of snapshot) yield row;\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\t/**\n\t* Write terminal: delete every matching row without returning them,\n\t* resolving to the count of rows that were deleted. Requires a prior\n\t* `.where(...)` filter.\n\t*\n\t* Prefer `deleteAll(...)` when you need the deleted rows; prefer\n\t* this when you only need the affected-row count.\n\t*\n\t* ```typescript\n\t* const removed = await db.orm.Post.where({ archived: true }).deleteAndCount();\n\t* ```\n\t*/\n\tasync deleteAndCount(configure) {\n\t\tconst annotationsMap = this.#collectAnnotationsFromMeta(configure, \"write\", \"deleteAndCount\");\n\t\tconst primaryKeyColumn = resolvePrimaryKeyColumn(this.contract, this.namespaceId, this.tableName);\n\t\tconst countState = {\n\t\t\t...emptyState(),\n\t\t\tfilters: this.state.filters,\n\t\t\tselectedFields: [primaryKeyColumn],\n\t\t\tvariantName: this.state.variantName\n\t\t};\n\t\tconst countCompiled = compileSelect(this.contract, this.namespaceId, this.tableName, countState, this.modelName);\n\t\tconst matchingRows = await executeQueryPlan(this.ctx.runtime, countCompiled).toArray();\n\t\tconst compiled = mergeAnnotations(compileDeleteCount(this.contract, this.namespaceId, this.tableName, this.state.filters, this.state.variantName, this.modelName), annotationsMap);\n\t\tawait executeQueryPlan(this.ctx.runtime, compiled).toArray();\n\t\treturn matchingRows.length;\n\t}\n\t#buildUpsertConflictCriterion(createValues, conflictColumns) {\n\t\tconst columnToField = getColumnToFieldMap(this.contract, this.namespaceId, this.modelName);\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 = columnToField[columnName] ?? 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 #findFirstMatchingRowIdentityWhere() {\n\t\tconst identityColumns = resolveRowIdentityColumns(this.contract, this.namespaceId, this.tableName);\n\t\tif (identityColumns.length === 0) throw ormError(\"ORM.ROW_IDENTITY_MISSING\", `update()/delete() on model \"${this.modelName}\" requires the table to have a primary key or unique constraint`, { meta: {\n\t\t\tmodel: this.modelName,\n\t\t\ttable: this.tableName\n\t\t} });\n\t\tconst firstRow = await this.#clone({\n\t\t\tselectedFields: [...identityColumns],\n\t\t\tincludes: []\n\t\t}).first();\n\t\tif (!firstRow) return null;\n\t\tconst columnToField = getColumnToFieldMap(this.contract, this.namespaceId, this.modelName);\n\t\tconst criterion = {};\n\t\tfor (const column of identityColumns) {\n\t\t\tconst fieldName = columnToField[column] ?? column;\n\t\t\tconst value = blindCast(firstRow)[fieldName];\n\t\t\tif (value === void 0) throw new InternalError(`Missing identity field \"${fieldName}\" while resolving single-row scope for model \"${this.modelName}\"`);\n\t\t\tcriterion[fieldName] = value;\n\t\t}\n\t\treturn shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, blindCast(criterion)) ?? null;\n\t}\n\tasync #reloadMutationRowByPrimaryKey(criterion) {\n\t\treturn this.#reloadMutationRowByCriterion(criterion, \"primary key\");\n\t}\n\tasync #reloadMutationRowByCriterion(criterion, criterionLabel) {\n\t\tconst whereExpr = shorthandToWhereExpr(this.ctx.context, this.namespaceId, this.modelName, blindCast(criterion));\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(),\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\ttableName: this.tableName,\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#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#withRuntime(runtime) {\n\t\treturn blindCast(new (blindCast(this.constructor))({\n\t\t\t...this.ctx,\n\t\t\truntime\n\t\t}, this.modelName, {\n\t\t\ttableName: this.tableName,\n\t\t\tnamespaceId: this.namespaceId,\n\t\t\tstate: this.state,\n\t\t\tregistry: this.registry,\n\t\t\tincludeRefinementMode: this.includeRefinementMode\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(Collection)))(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\ttableName: this.tableName,\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 its compile function doesn't take `state`.\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};\n//#endregion\n//#region src/orm.ts\nfunction orm(options) {\n\tconst { runtime, collections, context } = options;\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) ?? Collection))(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;\n\t\treturn namespaceFacet(prop);\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 Collection;\n}\n//#endregion\nexport { Collection, GroupedCollection, all, and, createModelAccessor, emptyState, not, or, orm };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|