@prisma/orm-family-sql 8.0.0-rc.19-dev.1 → 8.0.0-rc.19-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ast-DlajRqlB.d.mts → ast-BySjcUKx.d.mts} +3 -3
- package/dist/{ast-DlajRqlB.d.mts.map → ast-BySjcUKx.d.mts.map} +1 -1
- package/dist/{attribute-specs-cHzMPvMl.d.mts → attribute-specs-BsaemIyu.d.mts} +9 -11
- package/dist/attribute-specs-BsaemIyu.d.mts.map +1 -0
- package/dist/{authoring-entity-types-DUQLeBf_-nuhFC6jJ.d.mts → authoring-entity-types-DUQLeBf_-DSWWvkLJ.d.mts} +2 -2
- package/dist/{authoring-entity-types-DUQLeBf_-nuhFC6jJ.d.mts.map → authoring-entity-types-DUQLeBf_-DSWWvkLJ.d.mts.map} +1 -1
- package/dist/builder.d.mts +3 -3
- package/dist/builder__runtime.d.mts +10 -10
- package/dist/builder__runtime.mjs +1 -1
- package/dist/builder__types.d.mts +5 -5
- package/dist/{codec-descriptor-registry-4kw8FPpo.mjs → codec-descriptor-registry-MG2bFxW_.mjs} +5 -14
- package/dist/codec-descriptor-registry-MG2bFxW_.mjs.map +1 -0
- package/dist/collection-methods-BTknGdHI.d.mts +1 -0
- package/dist/{collection-methods-BtJYB_5s-0fek2_wK.d.mts → collection-methods-D2UnCS0S-CRYoAOtB.d.mts} +5 -5
- package/dist/{collection-methods-BtJYB_5s-0fek2_wK.d.mts.map → collection-methods-D2UnCS0S-CRYoAOtB.d.mts.map} +1 -1
- package/dist/{config-types-DY37pCIx.mjs → config-types-BLDwd9wS.mjs} +2 -2
- package/dist/{config-types-DY37pCIx.mjs.map → config-types-BLDwd9wS.mjs.map} +1 -1
- package/dist/{config-types-DN0IueHY.d.mts → config-types-D8quwydu.d.mts} +4 -4
- package/dist/{config-types-DN0IueHY.d.mts.map → config-types-D8quwydu.d.mts.map} +1 -1
- package/dist/{contract-builder-DT689tII.mjs → contract-builder-CNeGxqP_.mjs} +96 -99
- package/dist/contract-builder-CNeGxqP_.mjs.map +1 -0
- package/dist/{contract-builder-DZSUqbp0.d.mts → contract-builder-xFftVmD8.d.mts} +85 -69
- package/dist/contract-builder-xFftVmD8.d.mts.map +1 -0
- package/dist/contract-emitter.mjs +1 -1
- package/dist/contract-prisma7__provider.d.mts +2 -2
- package/dist/contract-prisma7__provider.mjs +4 -4
- package/dist/contract-psl.d.mts +4 -4
- package/dist/contract-psl.d.mts.map +1 -1
- package/dist/contract-psl.mjs +1 -1
- package/dist/contract-psl__attribute-specs.d.mts +1 -1
- package/dist/contract-psl__attribute-specs.mjs +1 -1
- package/dist/contract-psl__provider.d.mts +2 -2
- package/dist/contract-psl__provider.mjs +2 -2
- package/dist/contract-psl__provider.mjs.map +1 -1
- package/dist/contract-ts.d.mts +3 -3
- package/dist/contract-ts.mjs +3 -3
- package/dist/contract-ts__config-types.d.mts +1 -1
- package/dist/contract-ts__config-types.mjs +1 -1
- package/dist/contract-ts__contract-builder.d.mts +2 -2
- package/dist/contract-ts__contract-builder.mjs +2 -2
- package/dist/{contract-view-BAbRgQMW.d.mts → contract-view-BgpEwVz0.d.mts} +2 -2
- package/dist/{contract-view-BAbRgQMW.d.mts.map → contract-view-BgpEwVz0.d.mts.map} +1 -1
- package/dist/contract.d.mts +13 -13
- package/dist/contract.mjs +7 -7
- package/dist/contract__contract-view.d.mts +1 -1
- package/dist/contract__data-type.d.mts +1 -1
- package/dist/contract__entity-kinds.d.mts +1 -1
- package/dist/contract__entity-kinds.mjs +1 -1
- package/dist/contract__factories.d.mts +1 -1
- package/dist/contract__factories.mjs +1 -1
- package/dist/contract__foreign-key-materialization.d.mts +1 -1
- package/dist/contract__index-type-validation.d.mts +1 -1
- package/dist/contract__resolve-storage-table.d.mts +1 -1
- package/dist/contract__types.d.mts +5 -5
- package/dist/contract__types.mjs +4 -4
- package/dist/contract__validators.d.mts +1 -1
- package/dist/contract__validators.mjs +2 -2
- package/dist/{control-CF-KJYTH.mjs → control-B_FwQQXi.mjs} +35 -68
- package/dist/control-B_FwQQXi.mjs.map +1 -0
- package/dist/{control-YFLg-7Gn.d.mts → control-Xwm5kFlC.d.mts} +24 -24
- package/dist/control-Xwm5kFlC.d.mts.map +1 -0
- package/dist/{control-adapter-Bn0uhplA-BBax-2PG.d.mts → control-adapter-Bn0uhplA-D0fhkvnJ.d.mts} +8 -8
- package/dist/{control-adapter-Bn0uhplA-BBax-2PG.d.mts.map → control-adapter-Bn0uhplA-D0fhkvnJ.d.mts.map} +1 -1
- package/dist/{control-adapter-QzlyTp1z.d.mts → control-adapter-El4czoUh.d.mts} +4 -4
- package/dist/{control-adapter-QzlyTp1z.d.mts.map → control-adapter-El4czoUh.d.mts.map} +1 -1
- package/dist/{data-type-BacIoCfv.d.mts → data-type-CWFhlpaq.d.mts} +3 -3
- package/dist/{data-type-BacIoCfv.d.mts.map → data-type-CWFhlpaq.d.mts.map} +1 -1
- package/dist/{db-BmrN9nRS-DGNx3jwd.d.mts → db-BmrN9nRS-MT5cfCJy.d.mts} +13 -13
- package/dist/{db-BmrN9nRS-DGNx3jwd.d.mts.map → db-BmrN9nRS-MT5cfCJy.d.mts.map} +1 -1
- package/dist/{ddl-types-BBrLVtS--u4u-I8L5.d.mts → ddl-types-By5mT2_S--j4lTxme.d.mts} +4 -4
- package/dist/{ddl-types-BBrLVtS--u4u-I8L5.d.mts.map → ddl-types-By5mT2_S--j4lTxme.d.mts.map} +1 -1
- package/dist/{derived-checks-DpPkO6Dt-D-vp9vY3.d.mts → derived-checks-DpPkO6Dt-D6tfanWv.d.mts} +3 -3
- package/dist/{derived-checks-DpPkO6Dt-D-vp9vY3.d.mts.map → derived-checks-DpPkO6Dt-D6tfanWv.d.mts.map} +1 -1
- package/dist/{derived-checks-CXW9ytkb-B_zxX1-8.mjs → derived-checks-iXF3y0Ki-28vqz_8w.mjs} +22 -18
- package/dist/derived-checks-iXF3y0Ki-28vqz_8w.mjs.map +1 -0
- package/dist/{diff-CzUyZmJi.d.mts → diff-D2PJJkGv.d.mts} +7 -7
- package/dist/{diff-CzUyZmJi.d.mts.map → diff-D2PJJkGv.d.mts.map} +1 -1
- package/dist/diff-DZ82XaGR.mjs.map +1 -1
- package/dist/{dist-Bxu8hzMC.mjs → dist-D8RKUdwh.mjs} +4 -5
- package/dist/dist-D8RKUdwh.mjs.map +1 -0
- package/dist/{entity-kinds-CQ_jwgYv-DoOBWwvX.mjs → entity-kinds-JR5SAm5h-ZkDejOUK.mjs} +4 -8
- package/dist/entity-kinds-JR5SAm5h-ZkDejOUK.mjs.map +1 -0
- package/dist/{entity-kinds-BCMNbwxO.d.mts → entity-kinds-OhCjfrIe.d.mts} +2 -2
- package/dist/{entity-kinds-BCMNbwxO.d.mts.map → entity-kinds-OhCjfrIe.d.mts.map} +1 -1
- package/dist/{exports-D3JbXqm_-mm-wWICO.mjs → exports-CRROThzp-BNz0pGj0.mjs} +8 -65
- package/dist/{exports-D3JbXqm_-mm-wWICO.mjs.map → exports-CRROThzp-BNz0pGj0.mjs.map} +1 -1
- package/dist/{expression-CC4544Y8-C_EWTA_0.d.mts → expression-6ld_ZQL6-CQghHqQ4.d.mts} +8 -8
- package/dist/{expression-CC4544Y8-C_EWTA_0.d.mts.map → expression-6ld_ZQL6-CQghHqQ4.d.mts.map} +1 -1
- package/dist/expression-BLiObOS8.d.mts +2 -0
- package/dist/{expression-BdaU48Qq-Dff96hT_.d.mts → expression-CieaNuRM-BpwVyjJL.d.mts} +4 -4
- package/dist/expression-CieaNuRM-BpwVyjJL.d.mts.map +1 -0
- package/dist/{factories-DkD3nMYt.mjs → factories-C4JbtO84.mjs} +2 -2
- package/dist/{factories-DkD3nMYt.mjs.map → factories-C4JbtO84.mjs.map} +1 -1
- package/dist/{factories-B4AMRt6O.d.mts → factories-CfHDga-q.d.mts} +3 -3
- package/dist/{factories-B4AMRt6O.d.mts.map → factories-CfHDga-q.d.mts.map} +1 -1
- package/dist/family.d.mts +14 -14
- package/dist/family.mjs +6 -6
- package/dist/family__control-adapter.d.mts +2 -2
- package/dist/family__control.d.mts +4 -4
- package/dist/family__control.mjs +3 -3
- package/dist/family__diff.d.mts +1 -1
- package/dist/family__diff.mjs +1 -1
- package/dist/family__ir.d.mts +1 -1
- package/dist/family__ir.mjs +1 -1
- package/dist/family__migration.d.mts +1 -1
- package/dist/family__pack.d.mts +1 -1
- package/dist/family__pack.mjs +2 -2
- package/dist/family__psl-build.d.mts +1 -1
- package/dist/family__psl-infer.d.mts +1 -1
- package/dist/family__runtime.d.mts +2 -2
- package/dist/{foreign-key-materialization-bL-t2oPB.d.mts → foreign-key-materialization-CgW18KP-.d.mts} +3 -3
- package/dist/{foreign-key-materialization-bL-t2oPB.d.mts.map → foreign-key-materialization-CgW18KP-.d.mts.map} +1 -1
- package/dist/{functions-wFi6AtCc.d.mts → functions-DTInIMZT.d.mts} +6 -6
- package/dist/{functions-wFi6AtCc.d.mts.map → functions-DTInIMZT.d.mts.map} +1 -1
- package/dist/{generator-functions-DuDZSQHE-BbKhsXck.mjs → generator-functions-DuDZSQHE-Dl5EP61A.mjs} +2 -2
- package/dist/{generator-functions-DuDZSQHE-BbKhsXck.mjs.map → generator-functions-DuDZSQHE-Dl5EP61A.mjs.map} +1 -1
- package/dist/{index-v5QXXCrA.d.mts → index-3aEIvk82.d.mts} +22 -22
- package/dist/{index-v5QXXCrA.d.mts.map → index-3aEIvk82.d.mts.map} +1 -1
- package/dist/{index-BRFLss5v.d.mts → index-ffCr9ySU.d.mts} +3 -3
- package/dist/{index-BRFLss5v.d.mts.map → index-ffCr9ySU.d.mts.map} +1 -1
- package/dist/{index-reference-DSsn39tX-EEkv1N4w.d.mts → index-reference-4wsdeB7v-DiTLLldN.d.mts} +4 -4
- package/dist/{index-reference-DSsn39tX-EEkv1N4w.d.mts.map → index-reference-4wsdeB7v-DiTLLldN.d.mts.map} +1 -1
- package/dist/index-reference-Da9mdOjD.d.mts +1 -0
- package/dist/{index-type-validation-Cz2T3FJn.d.mts → index-type-validation-Ibtp3RKo.d.mts} +3 -3
- package/dist/{index-type-validation-Cz2T3FJn.d.mts.map → index-type-validation-Ibtp3RKo.d.mts.map} +1 -1
- package/dist/{interpreter-DTwRm0sl-DHX1SdeJ.mjs → interpreter-BGgim2OE-D9BG-4aU.mjs} +148 -130
- package/dist/interpreter-BGgim2OE-D9BG-4aU.mjs.map +1 -0
- package/dist/{ir-qK4wX3D3.d.mts → ir-BjC1VOuq.d.mts} +3 -3
- package/dist/{ir-qK4wX3D3.d.mts.map → ir-BjC1VOuq.d.mts.map} +1 -1
- package/dist/{middleware-C7H9kh01-l6_mYpN2.d.mts → middleware-DHkW6pRr-CFiQojK4.d.mts} +3 -3
- package/dist/{middleware-C7H9kh01-l6_mYpN2.d.mts.map → middleware-DHkW6pRr-CFiQojK4.d.mts.map} +1 -1
- package/dist/middleware-GO31SJSv.d.mts +1 -0
- package/dist/{migration-tfMTDejH.d.mts → migration-DWLbMM34.d.mts} +4 -4
- package/dist/{migration-tfMTDejH.d.mts.map → migration-DWLbMM34.d.mts.map} +1 -1
- package/dist/operations.d.mts +1 -1
- package/dist/orm-client.d.mts +21 -21
- package/dist/orm-client.mjs +2 -2
- package/dist/{pack-NM8AYiUp.mjs → pack-B5_CfdgT.mjs} +3 -3
- package/dist/{pack-NM8AYiUp.mjs.map → pack-B5_CfdgT.mjs.map} +1 -1
- package/dist/{pack-AyeYizq-.d.mts → pack-BJ53Inwa.d.mts} +6 -6
- package/dist/{pack-AyeYizq-.d.mts.map → pack-BJ53Inwa.d.mts.map} +1 -1
- package/dist/{plan-BiCLdXQr-0ZB4P6b9.d.mts → plan-Cr4azjnG-lIrzIrmu.d.mts} +5 -5
- package/dist/plan-Cr4azjnG-lIrzIrmu.d.mts.map +1 -0
- package/dist/plan-OXQ8s6Ee.d.mts +2 -0
- package/dist/psl-build-D5VG40ej.mjs.map +1 -1
- package/dist/{psl-build-C4ia2uM6.d.mts → psl-build-prdUw3sC.d.mts} +4 -4
- package/dist/{psl-build-C4ia2uM6.d.mts.map → psl-build-prdUw3sC.d.mts.map} +1 -1
- package/dist/{psl-column-resolution-BgThghdu-BWaFlWYV.d.mts → psl-column-resolution-ChZqioOc-DcjGSXDp.d.mts} +3 -4
- package/dist/psl-column-resolution-ChZqioOc-DcjGSXDp.d.mts.map +1 -0
- package/dist/{psl-field-resolution-DpGsATq3-BREG9FbU.mjs → psl-field-resolution-C9zwpsAu-DCc7Eifv.mjs} +163 -133
- package/dist/psl-field-resolution-C9zwpsAu-DCc7Eifv.mjs.map +1 -0
- package/dist/{psl-infer-B_n-rSCj.d.mts → psl-infer-CpTRaF5I.d.mts} +3 -3
- package/dist/{psl-infer-B_n-rSCj.d.mts.map → psl-infer-CpTRaF5I.d.mts.map} +1 -1
- package/dist/{query-lane-context-DEr9NHM--ClIM8v5T.d.mts → query-lane-context-BCEoKy0_-DQOOliDn.d.mts} +11 -20
- package/dist/query-lane-context-BCEoKy0_-DQOOliDn.d.mts.map +1 -0
- package/dist/query-lane-context-BssPNZey.d.mts +1 -0
- package/dist/relational-core.d.mts +13 -13
- package/dist/relational-core__aggregate-descriptor-registry.d.mts +1 -1
- package/dist/relational-core__ast.d.mts +3 -3
- package/dist/relational-core__codec-descriptor-registry.d.mts +6 -7
- package/dist/relational-core__codec-descriptor-registry.d.mts.map +1 -1
- package/dist/relational-core__codec-descriptor-registry.mjs +1 -1
- package/dist/relational-core__collection-methods.d.mts +2 -2
- package/dist/relational-core__contract-free.d.mts +3 -3
- package/dist/relational-core__expression.d.mts +3 -3
- package/dist/relational-core__functions.d.mts +1 -1
- package/dist/relational-core__index-reference.d.mts +2 -2
- package/dist/relational-core__middleware.d.mts +2 -2
- package/dist/relational-core__plan.d.mts +3 -3
- package/dist/relational-core__query-lane-context.d.mts +3 -3
- package/dist/relational-core__types.d.mts +2 -2
- package/dist/{resolve-storage-table-8N2xelSh.d.mts → resolve-storage-table-CxmU_MPu.d.mts} +3 -3
- package/dist/{resolve-storage-table-8N2xelSh.d.mts.map → resolve-storage-table-CxmU_MPu.d.mts.map} +1 -1
- package/dist/{runtime-BlUQqGCH.d.mts → runtime-Bmndf-fm.d.mts} +2 -2
- package/dist/{runtime-BlUQqGCH.d.mts.map → runtime-Bmndf-fm.d.mts.map} +1 -1
- package/dist/runtime.d.mts +5 -5
- package/dist/runtime.mjs +1 -1
- package/dist/runtime__internal__prepared-query.d.mts +1 -1
- package/dist/{schema-differ-DmP74bB8-BfEQ_9cY.d.mts → schema-differ-DmP74bB8-0ZupRJKb.d.mts} +5 -5
- package/dist/{schema-differ-DmP74bB8-BfEQ_9cY.d.mts.map → schema-differ-DmP74bB8-0ZupRJKb.d.mts.map} +1 -1
- package/dist/schema-ir.d.mts +1 -1
- package/dist/schema-ir__types.d.mts +2 -2
- package/dist/{schema-verify-BwRdzbHb-DfFAS0EC.mjs → schema-verify-C3wbdviw-BifQBCpu.mjs} +3 -3
- package/dist/{schema-verify-BwRdzbHb-DfFAS0EC.mjs.map → schema-verify-C3wbdviw-BifQBCpu.mjs.map} +1 -1
- package/dist/{serialized-index-52COq1yV-CUJ2F65u.mjs → serialized-index-DjCCnXB1-C_YccpTL.mjs} +3 -3
- package/dist/{serialized-index-52COq1yV-CUJ2F65u.mjs.map → serialized-index-DjCCnXB1-C_YccpTL.mjs.map} +1 -1
- package/dist/{sql-contract-serializer-sMY3prTx-CpZa5Nlt.mjs → sql-contract-serializer-sMY3prTx-BkFoHhST.mjs} +4 -4
- package/dist/{sql-contract-serializer-sMY3prTx-CpZa5Nlt.mjs.map → sql-contract-serializer-sMY3prTx-BkFoHhST.mjs.map} +1 -1
- package/dist/{sql-execution-plan-BEhLlwYP-seGNP8Qr.d.mts → sql-execution-plan-3uxYjHyu-C0Z4_RSY.d.mts} +3 -3
- package/dist/sql-execution-plan-3uxYjHyu-C0Z4_RSY.d.mts.map +1 -0
- package/dist/{sql-storage-tZhB8nS5-8NSWT0TW.d.mts → sql-storage-DeCAh5Hi-nJQUIgfL.d.mts} +6 -9
- package/dist/sql-storage-DeCAh5Hi-nJQUIgfL.d.mts.map +1 -0
- package/dist/{storage-table-DC9afJhr-CmRU56OS.d.mts → storage-table-Bf1ZjnxO-NvkG2pgq.d.mts} +2 -8
- package/dist/storage-table-Bf1ZjnxO-NvkG2pgq.d.mts.map +1 -0
- package/dist/{storage-table-DN36E2yE-0ncS821l.mjs → storage-table-DDvN83mw-CbCFr5wm.mjs} +2 -3
- package/dist/{storage-table-DN36E2yE-0ncS821l.mjs.map → storage-table-DDvN83mw-CbCFr5wm.mjs.map} +1 -1
- package/dist/{transaction-state-DR3nKTmH-2-ewbth1.d.mts → transaction-state-DR3nKTmH-D6VdY7YX.d.mts} +9 -9
- package/dist/{transaction-state-DR3nKTmH-2-ewbth1.d.mts.map → transaction-state-DR3nKTmH-D6VdY7YX.d.mts.map} +1 -1
- package/dist/types-BUggiEEH.d.mts +1 -0
- package/dist/{types-M_FeBD9w.mjs → types-C7610W2l.mjs} +5 -6
- package/dist/types-C7610W2l.mjs.map +1 -0
- package/dist/{types-B2Dee96w.d.mts → types-CRbj_WQf.d.mts} +7 -12
- package/dist/types-CRbj_WQf.d.mts.map +1 -0
- package/dist/{types-CI5lled6-CDV4aYNB.d.mts → types-Cq6ImLAB-BqOfLAYG.d.mts} +13 -11
- package/dist/types-Cq6ImLAB-BqOfLAYG.d.mts.map +1 -0
- package/dist/{types-DiD6BqoN-ZF53hwPp.d.mts → types-CuCxAQat-BBGUHEku.d.mts} +3 -4
- package/dist/types-CuCxAQat-BBGUHEku.d.mts.map +1 -0
- package/dist/types-DDqbg3WC.d.mts +1 -0
- package/dist/{types-Dqf87mfA-BOElvimQ.d.mts → types-DfKvtJwS-tndgHh53.d.mts} +4 -4
- package/dist/{types-Dqf87mfA-BOElvimQ.d.mts.map → types-DfKvtJwS-tndgHh53.d.mts.map} +1 -1
- package/dist/{types-GgcOrYm_-RhoxnXdj.d.mts → types-DriMIMNQ-BBacSgaI.d.mts} +4 -5
- package/dist/types-DriMIMNQ-BBacSgaI.d.mts.map +1 -0
- package/dist/{types-Dy1w8GHm-7hJTBOLL.d.mts → types-TXO7x1BA-DuW4v0rw.d.mts} +11 -11
- package/dist/{types-Dy1w8GHm-7hJTBOLL.d.mts.map → types-TXO7x1BA-DuW4v0rw.d.mts.map} +1 -1
- package/dist/{validators-CTZ-hU2l.d.mts → validators-BDuMio1F.d.mts} +3 -4
- package/dist/validators-BDuMio1F.d.mts.map +1 -0
- package/dist/{validators-Cfy0jmZ2.mjs → validators-xXKEHvnw.mjs} +25 -12
- package/dist/validators-xXKEHvnw.mjs.map +1 -0
- package/package.json +18 -18
- package/dist/attribute-specs-cHzMPvMl.d.mts.map +0 -1
- package/dist/codec-descriptor-registry-4kw8FPpo.mjs.map +0 -1
- package/dist/collection-methods-CwBVxvll.d.mts +0 -1
- package/dist/contract-builder-DT689tII.mjs.map +0 -1
- package/dist/contract-builder-DZSUqbp0.d.mts.map +0 -1
- package/dist/control-CF-KJYTH.mjs.map +0 -1
- package/dist/control-YFLg-7Gn.d.mts.map +0 -1
- package/dist/derived-checks-CXW9ytkb-B_zxX1-8.mjs.map +0 -1
- package/dist/dist-Bxu8hzMC.mjs.map +0 -1
- package/dist/entity-kinds-CQ_jwgYv-DoOBWwvX.mjs.map +0 -1
- package/dist/expression-BdaU48Qq-Dff96hT_.d.mts.map +0 -1
- package/dist/expression-DI_LoyKf.d.mts +0 -2
- package/dist/index-reference-burEIuXy.d.mts +0 -1
- package/dist/interpreter-DTwRm0sl-DHX1SdeJ.mjs.map +0 -1
- package/dist/middleware-CpxZxPGp.d.mts +0 -1
- package/dist/plan-BiCLdXQr-0ZB4P6b9.d.mts.map +0 -1
- package/dist/plan-xPa9B6I3.d.mts +0 -2
- package/dist/psl-column-resolution-BgThghdu-BWaFlWYV.d.mts.map +0 -1
- package/dist/psl-field-resolution-DpGsATq3-BREG9FbU.mjs.map +0 -1
- package/dist/query-lane-context--sVodqqM.d.mts +0 -1
- package/dist/query-lane-context-DEr9NHM--ClIM8v5T.d.mts.map +0 -1
- package/dist/sql-execution-plan-BEhLlwYP-seGNP8Qr.d.mts.map +0 -1
- package/dist/sql-storage-tZhB8nS5-8NSWT0TW.d.mts.map +0 -1
- package/dist/storage-table-DC9afJhr-CmRU56OS.d.mts.map +0 -1
- package/dist/types-B2Dee96w.d.mts.map +0 -1
- package/dist/types-BQC-To7K.d.mts +0 -1
- package/dist/types-CI5lled6-CDV4aYNB.d.mts.map +0 -1
- package/dist/types-D_nlUp-1.d.mts +0 -1
- package/dist/types-DiD6BqoN-ZF53hwPp.d.mts.map +0 -1
- package/dist/types-GgcOrYm_-RhoxnXdj.d.mts.map +0 -1
- package/dist/types-M_FeBD9w.mjs.map +0 -1
- package/dist/validators-CTZ-hU2l.d.mts.map +0 -1
- package/dist/validators-Cfy0jmZ2.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators-xXKEHvnw.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/validators.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { c as sameSqlColumnType } from \"./sql-data-type-D7M-YTTY.mjs\";\nimport { a as ColumnDefaultFunctionSchema, c as ForeignKeyReferenceSchema, d as IndexSchema, f as ReferentialActionSchema, i as CheckConstraintSchema, l as ForeignKeySchema, m as StorageValueSetSchema, o as ColumnDefaultLiteralSchema, p as StorageTableSchema, s as ColumnDefaultSchema, t as composeSqlEntityKinds, u as ForeignKeySourceSchema } from \"./entity-kinds-JR5SAm5h.mjs\";\nimport { a as sameColumns$1, s as startsWithColumns } from \"./index-equivalence-DswCiq5l.mjs\";\nimport { computeCheckContentHash, computeIndexContentHash } from \"@internal/sql-schema-ir/naming\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { isPlainRecord } from \"@internal/framework-components/ir\";\nimport { DATA_TYPE_ID_PATTERN, createDataTypeLookup } from \"@internal/framework-components/codec\";\nimport { canonicalizeJson } from \"@internal/framework-components/utils\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { type } from \"arktype\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { ContractExecutionSectionSchema, CrossReferenceSchema } from \"@internal/contract/types\";\nimport { validateContractDomain } from \"@internal/contract/validate-domain\";\n//#region src/default-sql-text.ts\nconst UNSAFE_DEFAULT_TEXT = /;|--|\\/\\*|\\$\\$|\\bSELECT\\b/i;\n/** Returns undefined when the text may be rendered as `DEFAULT (<text>)`, else the reason. */\nfunction checkSqlDefaultText(text) {\n\treturn UNSAFE_DEFAULT_TEXT.test(text) ? \"Default SQL must not contain semicolons, SQL comment tokens, dollar-quoting, or subqueries.\" : void 0;\n}\n/**\n* Names the Prisma default function that raw SQL text is exactly, ignoring surrounding whitespace. The planners treat the contract expressions `now()` and `autoincrement()` as those functions, so raw SQL with that text would not be used as written.\n*/\nfunction reservedSqlDefaultText(text) {\n\tswitch (text.trim()) {\n\t\tcase \"now()\": return \"now\";\n\t\tcase \"autoincrement()\": return \"autoincrement\";\n\t\tdefault: return;\n\t}\n}\n//#endregion\n//#region src/relation-storage.ts\nfunction sameColumns(left, right) {\n\treturn left.length === right.length && left.every((column, index) => column === right[index]);\n}\n/**\n* The storage facts behind a same-space to-one relation's nullability: which side owns the\n* foreign key, and whether each local column is nullable.\n*/\nfunction resolveSqlToOneRelationStorage(contract, modelStorage, relation) {\n\tconst table = blindCast(contract.storage.namespaces[modelStorage.namespaceId]?.entries.table?.[modelStorage.table]);\n\tconst columns = relation.on.localFields.map((fieldName) => {\n\t\tconst columnName = modelStorage.fields[fieldName]?.column;\n\t\tconst column = columnName === void 0 ? void 0 : table?.columns[columnName];\n\t\treturn {\n\t\t\tname: columnName ?? fieldName,\n\t\t\tnullable: column?.nullable ?? true\n\t\t};\n\t});\n\tconst columnNames = columns.map((column) => column.name);\n\treturn {\n\t\townsForeignKey: relation.cardinality === \"N:1\" || (table?.foreignKeys ?? []).some((foreignKey) => sameColumns(foreignKey.source.columns, columnNames)),\n\t\tcolumns\n\t};\n}\n//#endregion\n//#region src/validators.ts\nconst ControlPolicySchema = type(\"'managed' | 'tolerated' | 'external' | 'observed'\");\nconst DomainEnumRefSchema = type({\n\tplane: \"'domain'\",\n\tnamespaceId: \"string\",\n\tentityKind: \"'enum'\",\n\tentityName: \"string\",\n\t\"spaceId?\": \"string\"\n});\n/** Document-scoped `storage.types`: codec triples only. */\nconst DocumentScopedStorageTypeSchema = type.declare().type({\n\tkind: \"'codec-instance'\",\n\tcodecId: \"string\",\n\tdataType: DATA_TYPE_ID_PATTERN,\n\t\"typeParams?\": \"Record<string, unknown>\"\n});\n/**\n* Domain enum entry under `domain.namespaces[id].enum[name]`.\n* Carries the codec id and an ordered `members` array of `{name, value}` pairs.\n*/\nconst ContractEnumSchema = type({\n\t\"+\": \"reject\",\n\tcodecId: \"string\",\n\tmembers: type({\n\t\tname: \"string\",\n\t\tvalue: \"string | number | boolean | null | unknown[] | Record<string, unknown>\"\n\t}).array().readonly()\n});\n/**\n* Derives a schema map from a descriptor map: maps each kind's key to its\n* `schema` field. Used by validation functions to validate entries.\n*/\nfunction schemaViewOf(kinds) {\n\treturn new Map([...kinds].map(([k, d]) => [k, d.schema]));\n}\nconst DEFAULT_SQL_KINDS = composeSqlEntityKinds();\n/**\n* Builds the per-namespace entry schema for `storage.namespaces[id]`.\n*\n* Validation is descriptor-driven: the `kinds` map carries both the schema\n* (used here for structural validation) and the construct function (used at\n* hydration time). An unregistered key fails validation naming the kind and\n* the namespace id, so validation fails closed.\n*/\nfunction createNamespaceEntrySchema(kinds) {\n\tconst schemas = schemaViewOf(kinds);\n\tconst knownKinds = new Set(kinds.keys());\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\tid: \"string\",\n\t\t\"kind?\": \"string\",\n\t\tentries: \"object\"\n\t}).narrow((ns, ctx) => {\n\t\tif (!isPlainRecord(ns.entries)) return ctx.mustBe(\"an entries object\");\n\t\tfor (const [key, innerMap] of Object.entries(ns.entries)) {\n\t\t\tif (!knownKinds.has(key)) return ctx.reject({ expected: `entries key \"${key}\" in namespace \"${ns.id}\" is not a registered entity kind` });\n\t\t\tif (!isPlainRecord(innerMap)) return ctx.reject({ expected: `entries[\"${key}\"] in namespace \"${ns.id}\" must be an object` });\n\t\t\tconst entrySchema = blindCast(schemas.get(key));\n\t\t\tfor (const [, value] of Object.entries(innerMap)) {\n\t\t\t\tconst parsed = entrySchema(value);\n\t\t\t\tif (parsed instanceof type.errors) return ctx.reject({ expected: parsed.summary });\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t});\n}\n/**\n* Builds the storage schema. Pack contributions reach the per-namespace\n* entry shape through {@link createNamespaceEntrySchema}; the\n* document-scoped `storage.types` field (codec triples only) and the\n* storage hash stay family-shared.\n*/\nfunction createSqlStorageSchema(kinds) {\n\tconst namespaceEntry = createNamespaceEntrySchema(kinds);\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\tstorageHash: \"string\",\n\t\t\"types?\": type({ \"[string]\": DocumentScopedStorageTypeSchema }),\n\t\t\"namespaces?\": type({ \"[string]\": namespaceEntry })\n\t});\n}\nconst StorageSchema = createSqlStorageSchema(DEFAULT_SQL_KINDS);\n/** The refusal of a value-object column when the stack declares no value-object storage type. */\nfunction valueObjectStorageTypeMissingMessage(columnPath) {\n\treturn `${columnPath}: a value-object column needs the stack's value-object storage type, and the stack declares none`;\n}\nconst LISTED_REMOVED_KEYS = 5;\nfunction fieldOf(value, key) {\n\treturn isPlainRecord(value) ? value[key] : void 0;\n}\nfunction entriesOf(value) {\n\treturn isPlainRecord(value) ? Object.entries(value) : [];\n}\nfunction storedColumnEntries(storage) {\n\treturn entriesOf(fieldOf(storage, \"namespaces\")).flatMap(([namespaceId, namespace]) => entriesOf(fieldOf(fieldOf(namespace, \"entries\"), \"table\")).flatMap(([tableName, table]) => entriesOf(fieldOf(table, \"columns\")).map(([columnName, column]) => ({\n\t\tpath: `storage.namespaces.${namespaceId}.entries.table.${tableName}.columns.${columnName}`,\n\t\tentry: column\n\t}))));\n}\nfunction pathsHolding(entries, key) {\n\treturn entries.filter(({ entry }) => isPlainRecord(entry) && Object.hasOwn(entry, key)).map(({ path }) => path);\n}\nfunction listedProblems(paths, describe) {\n\tconst listed = paths.slice(0, LISTED_REMOVED_KEYS).map(describe);\n\tconst unlisted = paths.length - listed.length;\n\treturn unlisted > 0 ? [...listed, `and ${unlisted} more ${unlisted === 1 ? \"path\" : \"paths\"} (${paths.length} in all)`] : listed;\n}\n/**\n* Contracts emitted before a column named its data type stored the database type name in `nativeType` on columns and `storage.types` entries. The first five such keys are reported with their paths and the rest are counted, so an old contract is refused with a short message that says what changed.\n*/\nfunction storedTypeNameProblems(storage) {\n\tconst types = entriesOf(fieldOf(storage, \"types\")).map(([typeName, entry]) => ({\n\t\tpath: `storage.types.${typeName}`,\n\t\tentry\n\t}));\n\treturn listedProblems(pathsHolding([...storedColumnEntries(storage), ...types], \"nativeType\"), (path) => `${path}.nativeType: contracts no longer store a column's database type name; the column names its data type in \"dataType\"`);\n}\n/** One sentence that says what to do about a removed column key, followed by the first five columns that hold it and a count of the rest. */\nfunction removedColumnKeyProblems(storage, key, whatToDo) {\n\tconst paths = pathsHolding(storedColumnEntries(storage), key);\n\tif (paths.length === 0) return [];\n\tconst listed = paths.slice(0, LISTED_REMOVED_KEYS).map((path) => `${path}.${key}`);\n\tconst unlisted = paths.length - listed.length;\n\tconst more = unlisted > 0 ? `, and ${unlisted} more (${paths.length} in all)` : \"\";\n\treturn [`${whatToDo} Columns: ${listed.join(\", \")}${more}`];\n}\n/** Contracts emitted before generated checks became mandatory stored the checks a column waived in `noCheck`. */\nfunction checkWaiverProblems(storage) {\n\treturn removedColumnKeyProblems(storage, \"noCheck\", \"contracts no longer store check waivers in \\\"noCheck\\\", so re-emit the contract from its source, or rewrite a stored contract such as a migration snapshot with remove-nocheck.ts, which ships in the remove-nocheck scripts of the Prisma 8 upgrade guide.\");\n}\n/** Contracts emitted before type aliases were expanded into each column stored the alias a column was typed by in `typeRef`. */\nfunction typeAliasProblems(storage) {\n\treturn removedColumnKeyProblems(storage, \"typeRef\", \"contracts no longer store type aliases, so re-emit the contract from its source, or rewrite a stored contract such as a migration snapshot with expand-type-aliases.ts, which ships in the expand-type-aliases scripts of the Prisma 8 upgrade guide.\");\n}\n/** The removed keys of the oldest format the contract is in: a contract that still stores `nativeType` is refused for that first, then one that stores `noCheck`, since each is rewritten at an earlier step of the upgrade than the next. */\nfunction removedKeyProblems(storage) {\n\tfor (const problems of [\n\t\tstoredTypeNameProblems,\n\t\tcheckWaiverProblems,\n\t\ttypeAliasProblems\n\t]) {\n\t\tconst found = problems(storage);\n\t\tif (found.length > 0) return found;\n\t}\n\treturn [];\n}\n/**\n* Any entries entity that declares both a `tableName` and a physical `name`\n* (e.g. a target's RLS policy entities) shares one physical-name space per\n* table: two such entries of one kind on the same table would collide as\n* DDL (`CREATE POLICY \"<name>\" ON <table>` fails on the second), while the\n* same name on different tables is legal. Structural — no entry-kind\n* vocabulary; `table` entries are keyed by name already and are excluded.\n*/\nfunction validateTableScopedEntryNames(storage, errors) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) {\n\t\tif (!isPlainRecord(ns.entries)) continue;\n\t\tfor (const [entriesKind, slot] of Object.entries(ns.entries)) {\n\t\t\tif (entriesKind === \"table\" || !isPlainRecord(slot)) continue;\n\t\t\tconst seen = /* @__PURE__ */ new Map();\n\t\t\tfor (const entity of Object.values(slot)) {\n\t\t\t\tif (typeof entity !== \"object\" || entity === null) continue;\n\t\t\t\tconst record = blindCast(entity);\n\t\t\t\tconst name = record[\"name\"];\n\t\t\t\tconst tableName = record[\"tableName\"];\n\t\t\t\tif (typeof name !== \"string\" || typeof tableName !== \"string\") continue;\n\t\t\t\tconst key = JSON.stringify([tableName, name]);\n\t\t\t\tseen.set(key, (seen.get(key) ?? 0) + 1);\n\t\t\t\tif (seen.get(key) === 2) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": ${entriesKind} \"${name}\" is declared multiple times`);\n\t\t\t}\n\t\t}\n\t}\n}\nfunction eachStorageTable(storage) {\n\treturn Object.entries(storage.namespaces).flatMap(([namespaceId, ns]) => Object.entries(ns.entries[\"table\"] ?? {}).map(([tableName, table]) => ({\n\t\tnamespaceId,\n\t\ttableName,\n\t\ttable\n\t})));\n}\nfunction findDuplicateValue(values) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const value of values) {\n\t\tif (seen.has(value)) return value;\n\t\tseen.add(value);\n\t}\n}\n/** A column may appear at most once in one index's element tuple. */\nfunction rejectRepeatedIndexColumns(indexes, coordinate, errors) {\n\tfor (const index of indexes) {\n\t\tconst duplicateColumn = findDuplicateValue(index.columns ?? []);\n\t\tif (duplicateColumn !== void 0) errors.push(`${coordinate}: index contains duplicate column \"${duplicateColumn}\"`);\n\t}\n}\n/**\n* Two wire-named indexes with the same content are one index written twice —\n* the content hash is their identity, so neither spelling can survive. An\n* exact-named index is identified by its name instead, so content twins under\n* two names are legal and a repeated name is rejected by the named-object\n* check.\n*/\nfunction rejectDuplicateWireNamedIndexContent(indexes, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const index of indexes) {\n\t\tif (index.prefix === void 0) continue;\n\t\tconst content = computeIndexContentHash(index);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate index definition on columns [${(index.columns ?? []).join(\", \")}]`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\n/**\n* Two wire-named checks with the same predicate are one check written twice —\n* the content hash is their identity, so neither spelling can survive, and\n* whitespace variants of one predicate collapse onto the same hash. An\n* exact-named check is identified by its name instead, so content twins under\n* two names are legal (the legacy shape a database adopts from) and a repeated\n* name is rejected by the named-object check.\n*/\nfunction rejectDuplicateWireNamedCheckContent(checks, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const check of checks) {\n\t\tif (check.prefix === void 0) continue;\n\t\tconst content = computeCheckContentHash(check.expression);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate check constraint definition (expression \"${check.expression}\")`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\nfunction isContractFieldType(value) {\n\tif (!isPlainRecord(value)) return false;\n\tconst kind = value[\"kind\"];\n\tif (kind === \"scalar\") {\n\t\tif (typeof value[\"codecId\"] !== \"string\") return false;\n\t\tconst typeParams = value[\"typeParams\"];\n\t\tif (typeParams !== void 0 && !isPlainRecord(typeParams)) return false;\n\t\treturn true;\n\t}\n\tif (kind === \"valueObject\") return typeof value[\"name\"] === \"string\";\n\tif (kind === \"union\") {\n\t\tconst members = value[\"members\"];\n\t\tif (!Array.isArray(members)) return false;\n\t\treturn members.every((m) => isContractFieldType(m));\n\t}\n\treturn false;\n}\nconst ModelFieldSchema = type({\n\t\"+\": \"reject\",\n\tnullable: \"boolean\",\n\ttype: type(\"unknown\").narrow((value, ctx) => isContractFieldType(value) ? true : ctx.mustBe(\"scalar, valueObject, or union field type\")),\n\tmany: type(\"false\").or({\n\t\t\"+\": \"reject\",\n\t\telementNullable: \"boolean\"\n\t}).default(false),\n\t\"dict?\": \"true\",\n\t\"valueSet?\": DomainEnumRefSchema\n});\nconst ModelStorageSchema = type({\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tfields: type({ \"[string]\": type({\n\t\tcolumn: \"string\",\n\t\t\"codecId?\": \"string\",\n\t\t\"nullable?\": \"boolean\"\n\t}) })\n});\nconst ContractRelationThroughSchema = type({\n\t\"+\": \"reject\",\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tparentColumns: type.string.array().readonly(),\n\tchildColumns: type.string.array().readonly(),\n\ttargetColumns: type.string.array().readonly()\n});\nconst ContractRelationOnSchema = type({\n\t\"+\": \"reject\",\n\tlocalFields: type.string.array().readonly(),\n\ttargetFields: type.string.array().readonly()\n});\nconst ContractManyToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'N:M'\",\n\ton: ContractRelationOnSchema,\n\tthrough: ContractRelationThroughSchema\n});\nconst ContractToOneRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | 'N:1'\",\n\t\"nullable?\": \"boolean\",\n\ton: ContractRelationOnSchema\n});\nconst ContractToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:N'\",\n\ton: ContractRelationOnSchema\n});\nconst ContractReferenceRelationSchema = ContractManyToManyRelationSchema.or(ContractToOneRelationSchema).or(ContractToManyRelationSchema);\nconst ContractEmbedRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | '1:N'\"\n});\nconst ContractRelationSchema = ContractReferenceRelationSchema.or(ContractEmbedRelationSchema);\nconst ModelSchema = type({\n\tstorage: ModelStorageSchema,\n\t\"fields?\": type({ \"[string]\": ModelFieldSchema }),\n\t\"relations?\": type({ \"[string]\": ContractRelationSchema }),\n\t\"discriminator?\": type({ field: \"string\" }),\n\t\"variants?\": type({ \"[string]\": CrossReferenceSchema }),\n\t\"base?\": CrossReferenceSchema,\n\t\"owner?\": \"string\"\n});\nconst ContractMetaSchema = type({ \"[string]\": \"unknown\" });\n/**\n* Builds the full SQL contract schema. The storage subtree threads\n* pack contributions through {@link createSqlStorageSchema}; the rest\n* of the contract envelope is family-shared.\n*/\nfunction createSqlContractSchema(kinds) {\n\tconst storage = createSqlStorageSchema(kinds);\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\ttarget: \"string\",\n\t\ttargetFamily: \"'sql'\",\n\t\t\"coreHash?\": \"string\",\n\t\tprofileHash: \"string\",\n\t\t\"capabilities?\": \"Record<string, Record<string, boolean>>\",\n\t\t\"extensions?\": \"Record<string, unknown>\",\n\t\t\"meta?\": ContractMetaSchema,\n\t\t\"defaultControlPolicy?\": ControlPolicySchema,\n\t\t\"roots?\": type({ \"[string]\": CrossReferenceSchema }),\n\t\tdomain: type({ namespaces: type({ \"[string]\": type({\n\t\t\tmodels: type({ \"[string]\": ModelSchema }),\n\t\t\t\"valueObjects?\": type({ \"[string]\": type({ fields: type({ \"[string]\": ModelFieldSchema }) }) }),\n\t\t\t\"enum?\": type({ \"[string]\": ContractEnumSchema })\n\t\t}) }) }),\n\t\tstorage,\n\t\t\"execution?\": ContractExecutionSectionSchema\n\t});\n}\nconst SqlContractSchema = createSqlContractSchema(DEFAULT_SQL_KINDS);\n/**\n* Validates the structural shape of SqlStorage using Arktype. Pure\n* structural check: namespace IR is never materialized here (that needs\n* a target concretion via the serializer hydration path), so this throws\n* on invalid input and constructs nothing.\n*\n* @param value - The storage value to validate\n* @throws Error if the storage structure is invalid\n*/\nfunction validateStorage(value) {\n\tconst removedKeys = removedKeyProblems(value);\n\tconst result = StorageSchema(value);\n\tconst errors = removedKeys.length > 0 ? [...removedKeys] : result instanceof type.errors ? result.map((p) => p.message) : [];\n\tif (errors.length > 0) throw contractError(\"CONTRACT.VALIDATION_FAILED\", `Storage validation failed: ${errors.join(\"; \")}`, { meta: { errors } });\n}\nfunction validateModel(value) {\n\tconst result = ModelSchema(value);\n\tif (result instanceof type.errors) {\n\t\tconst errors = result.map((p) => p.message);\n\t\tthrow contractError(\"CONTRACT.VALIDATION_FAILED\", `Model validation failed: ${errors.join(\"; \")}`, { meta: { errors } });\n\t}\n\treturn result;\n}\n/**\n* Structural arktype validation of an SQL contract envelope. Internal\n* helper for {@link validateSqlContractFully} — exposed only inside\n* this module, since the family seam-of-record is the\n* `SqlContractSerializerBase.deserializeContract` SPI.\n*/\nfunction validateSqlContractStructure(value, contractSchema) {\n\tif (typeof value !== \"object\" || value === null) throw new ContractValidationError(\"Contract structural validation failed: value must be an object\", \"structural\");\n\tconst targetFamily = \"targetFamily\" in value ? value.targetFamily : void 0;\n\tif (targetFamily !== void 0 && targetFamily !== \"sql\") throw new ContractValidationError(`Unsupported target family: ${targetFamily}`, \"structural\");\n\tconst removedKeys = removedKeyProblems(fieldOf(value, \"storage\"));\n\tif (removedKeys.length > 0) throw new ContractValidationError(`Contract structural validation failed: ${removedKeys.join(\"; \")}`, \"structural\");\n\tconst contractResult = contractSchema(value);\n\tif (contractResult instanceof type.errors) throw new ContractValidationError(`Contract structural validation failed: ${contractResult.map((p) => p.message).join(\"; \")}`, \"structural\");\n\treturn blindCast(contractResult);\n}\nfunction foreignKeyBackingError(table, fk) {\n\tconst { index } = fk;\n\tif (index === void 0) return void 0;\n\tconst columns = fk.source.columns;\n\tif (\"name\" in index) {\n\t\tconst named = table.indexes.find((candidate) => candidate.name === index.name);\n\t\tif (named === void 0) return `is indexed by \"${index.name}\", but the table has no index with that name`;\n\t\treturn named.columns !== void 0 && startsWithColumns(named.columns, columns) ? void 0 : `is indexed by \"${index.name}\", but that index does not start with those columns`;\n\t}\n\tif (\"primaryKey\" in index) return table.primaryKey !== void 0 && startsWithColumns(table.primaryKey.columns, columns) ? void 0 : \"is indexed by the primary key, but the table's primary key does not start with those columns\";\n\tconst described = `the unique constraint on [${index.unique.join(\", \")}]`;\n\tif (!table.uniques.some((unique) => sameColumns$1(unique.columns, index.unique))) return `is indexed by ${described}, but the table has no unique constraint on those columns`;\n\treturn startsWithColumns(index.unique, columns) ? void 0 : `is indexed by ${described}, which does not start with those columns`;\n}\n/**\n* Validates semantic constraints on SqlStorage that cannot be expressed in Arktype schemas.\n*\n* Returns an array of human-readable error strings. Empty array = valid.\n*\n* Currently checks:\n* - duplicate named primary key / unique / index / foreign key objects within a table\n* - duplicate unique, index, or foreign key declarations within a table\n* - duplicate columns within primary key / unique / index definitions\n* - nullable columns in primary key definitions\n* - `setNull` referential action on a non-nullable FK column (would fail at runtime)\n* - `setDefault` referential action on a non-nullable FK column without a DEFAULT (would fail at runtime)\n* - a foreign key whose `index` is an index, primary key or unique constraint its table does not have\n*/\nfunction validateStorageSemantics(storage) {\n\tconst errors = [];\n\tvalidateTableScopedEntryNames(storage, errors);\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst namedObjects = /* @__PURE__ */ new Map();\n\t\tconst registerNamedObject = (kind, name) => {\n\t\t\tif (!name) return;\n\t\t\tnamedObjects.set(name, [...namedObjects.get(name) ?? [], kind]);\n\t\t};\n\t\tregisterNamedObject(\"primary key\", table.primaryKey?.name);\n\t\tfor (const unique of table.uniques) registerNamedObject(\"unique constraint\", unique.name);\n\t\tfor (const index of table.indexes) registerNamedObject(\"index\", index.name);\n\t\tfor (const fk of table.foreignKeys) registerNamedObject(\"foreign key\", fk.name);\n\t\tfor (const check of table.checks ?? []) registerNamedObject(\"check constraint\", check.name);\n\t\tfor (const [name, kinds] of namedObjects) if (kinds.length > 1) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": named object \"${name}\" is declared multiple times (${kinds.join(\", \")})`);\n\t\tif (table.primaryKey) {\n\t\t\tconst duplicateColumn = findDuplicateValue(table.primaryKey.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tfor (const columnName of table.primaryKey.columns) if (table.columns[columnName]?.nullable === true) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key column \"${columnName}\" is nullable; primary key columns must be NOT NULL`);\n\t\t}\n\t\tconst seenUniqueDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const unique of table.uniques) {\n\t\t\tconst duplicateColumn = findDuplicateValue(unique.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": unique constraint contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tconst signature = JSON.stringify({ columns: unique.columns });\n\t\t\tif (seenUniqueDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate unique constraint definition on columns [${unique.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenUniqueDefinitions.add(signature);\n\t\t}\n\t\tconst tableCoordinate = `Namespace \"${namespaceId}\" table \"${tableName}\"`;\n\t\trejectRepeatedIndexColumns(table.indexes, tableCoordinate, errors);\n\t\trejectDuplicateWireNamedIndexContent(table.indexes, tableCoordinate, errors);\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst error = foreignKeyBackingError(table, fk);\n\t\t\tif (error !== void 0) errors.push(`${tableCoordinate}: foreign key on columns [${fk.source.columns.join(\", \")}] ${error}`);\n\t\t}\n\t\tconst seenForeignKeyDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst signature = JSON.stringify({\n\t\t\t\tsource: fk.source,\n\t\t\t\ttarget: fk.target,\n\t\t\t\tonDelete: fk.onDelete ?? null,\n\t\t\t\tonUpdate: fk.onUpdate ?? null\n\t\t\t});\n\t\t\tif (seenForeignKeyDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate foreign key definition on columns [${fk.source.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenForeignKeyDefinitions.add(signature);\n\t\t}\n\t\tfor (const fk of table.foreignKeys) for (const colName of fk.source.columns) {\n\t\t\tconst column = table.columns[colName];\n\t\t\tif (!column) continue;\n\t\t\tif (fk.onDelete === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onUpdate === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onDelete === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t\tif (fk.onUpdate === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t}\n\t\trejectDuplicateWireNamedCheckContent(table.checks ?? [], tableCoordinate, errors);\n\t}\n\treturn errors;\n}\n/**\n* SQL storage logical-consistency checks: every model.storage.table resolves to a real table, every domain field has a model.storage.fields entry, and every model.storage.fields[*].column resolves to a real column. Throws `ContractValidationError` on the first mismatch.\n*/\nfunction validateModelStorageReferences(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) {\n\t\tconst modelStorage = blindCast(model.storage);\n\t\tconst qualifiedName = `${namespaceId}:${modelName}`;\n\t\tconst storageNamespaceId = modelStorage.namespaceId;\n\t\tif (storageNamespaceId !== namespaceId) throw new ContractValidationError(`Model \"${qualifiedName}\" storage.namespaceId \"${storageNamespaceId}\" does not match domain namespace \"${namespaceId}\"`, \"storage\");\n\t\tconst storageTable = modelStorage.table;\n\t\tconst rawTable = contract.storage.namespaces[storageNamespaceId]?.entries.table?.[storageTable];\n\t\tif (rawTable === void 0) throw new ContractValidationError(`Model \"${qualifiedName}\" references non-existent table \"${storageNamespaceId}.${storageTable}\"`, \"storage\");\n\t\tconst table = blindCast(rawTable);\n\t\tfor (const fieldName of Object.keys(model.fields)) if (!Object.hasOwn(modelStorage.fields, fieldName)) throw new ContractValidationError(`Model \"${qualifiedName}\" field \"${fieldName}\" has no entry in storage.fields, so no column holds it`, \"storage\");\n\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\tfor (const [fieldName, field] of Object.entries(modelStorage.fields)) if (!columnNames.has(field.column)) throw new ContractValidationError(`Model \"${qualifiedName}\" field \"${fieldName}\" references non-existent column \"${field.column}\" in table \"${storageTable}\"`, \"storage\");\n\t}\n}\n/** The names of a model's own fields and of the fields it inherits from its base models. */\nfunction fieldNamesWithInherited(contract, namespaceId, modelName) {\n\tconst names = /* @__PURE__ */ new Set();\n\tconst seen = /* @__PURE__ */ new Set();\n\tlet coordinate = {\n\t\tnamespace: namespaceId,\n\t\tmodel: modelName\n\t};\n\twhile (coordinate !== void 0) {\n\t\tconst key = JSON.stringify([coordinate.namespace, coordinate.model]);\n\t\tif (seen.has(key)) break;\n\t\tseen.add(key);\n\t\tconst model = contract.domain.namespaces[coordinate.namespace]?.models[coordinate.model];\n\t\tif (model === void 0) break;\n\t\tfor (const name of Object.keys(model.fields)) names.add(name);\n\t\tcoordinate = model.base;\n\t}\n\treturn names;\n}\n/**\n* Every relation joins on fields: its local fields are fields of the model that declares it, and its target fields are fields of the target model. The target side of a many-to-many relation names columns of its junction table instead. A cross-space relation's target is in another contract, so its target side is not checked. Throws `ContractValidationError` on the first name that is not a field.\n*/\nfunction validateRelationJoinFields(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) for (const [relationName, relation] of Object.entries(model.relations)) {\n\t\tif (!(\"on\" in relation)) continue;\n\t\tconst location = `Relation \"${relationName}\" on model \"${namespaceId}:${modelName}\"`;\n\t\tconst localFields = fieldNamesWithInherited(contract, namespaceId, modelName);\n\t\tfor (const field of relation.on.localFields) if (!localFields.has(field)) throw new ContractValidationError(`${location} joins on \"${field}\", which is not a field of model \"${namespaceId}:${modelName}\"`, \"domain\");\n\t\tif (relation.cardinality === \"N:M\") {\n\t\t\tconst { namespaceId: junctionNamespaceId, table: junctionTable } = relation.through;\n\t\t\tfor (const column of relation.on.targetFields) if (!lookupStorageColumn(contract, junctionNamespaceId, junctionTable, column)) throw new ContractValidationError(`${location} joins on \"${column}\", which is not a column of junction table \"${junctionNamespaceId}.${junctionTable}\"`, \"domain\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (relation.to.space !== void 0) continue;\n\t\tconst targetFields = fieldNamesWithInherited(contract, relation.to.namespace, relation.to.model);\n\t\tfor (const field of relation.on.targetFields) if (!targetFields.has(field)) throw new ContractValidationError(`${location} joins on \"${field}\", which is not a field of model \"${relation.to.namespace}:${relation.to.model}\"`, \"domain\");\n\t}\n}\n/**\n* Every execution default targets a column some model's field maps: an execution default is declared on a field, and it belongs to that field. Throws `ContractValidationError` on the first default on a column no field maps.\n*/\nfunction validateExecutionDefaultsTargetMappedColumns(contract) {\n\tconst mappedColumns = /* @__PURE__ */ new Set();\n\tfor (const namespace of Object.values(contract.domain.namespaces)) for (const model of Object.values(namespace.models)) {\n\t\tconst modelStorage = blindCast(model.storage);\n\t\tfor (const field of Object.values(modelStorage.fields)) mappedColumns.add(JSON.stringify([\n\t\t\tmodelStorage.namespaceId,\n\t\t\tmodelStorage.table,\n\t\t\tfield.column\n\t\t]));\n\t}\n\tfor (const { ref } of contract.execution?.mutations.defaults ?? []) if (!mappedColumns.has(JSON.stringify([\n\t\tref.namespace,\n\t\tref.entry,\n\t\tref.field\n\t]))) throw new ContractValidationError(`Execution default for column \"${ref.field}\" of table \"${ref.namespace}.${ref.entry}\" targets a column no field maps; execution defaults are declared on fields. Give the column a database default instead.`, \"storage\");\n}\n/**\n* Cross-table consistency checks for SQL storage: primary key, unique,\n* index, and foreign key column references resolve to real columns;\n* NOT NULL columns don't carry a literal `null` default; FK column\n* counts match their referenced columns. Throws on the first mismatch.\n*/\nfunction validateSqlStorageConsistency(contract) {\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(contract.storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\tif (table.primaryKey) {\n\t\t\tfor (const colName of table.primaryKey.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" primaryKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t}\n\t\tfor (const unique of table.uniques) for (const colName of unique.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" unique constraint references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const index of table.indexes) for (const colName of index.columns ?? []) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" index references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const [colName, column] of Object.entries(table.columns)) if (!column.nullable && column.default?.kind === \"literal\" && column.default.value === null) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" column \"${colName}\" is NOT NULL but has a literal null default`, \"storage\");\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tif (fk.source.namespaceId !== namespaceId || fk.source.tableName !== tableName) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" contains foreignKey with mismatched source coordinates (${fk.source.namespaceId}.${fk.source.tableName})`, \"storage\");\n\t\t\tfor (const colName of fk.source.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t\tif (fk.target.spaceId === void 0) {\n\t\t\t\tconst referencedRaw = contract.storage.namespaces[fk.target.namespaceId]?.entries.table?.[fk.target.tableName];\n\t\t\t\tif (referencedRaw === void 0) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent table \"${fk.target.namespaceId}.${fk.target.tableName}\"`, \"storage\");\n\t\t\t\tconst referencedTable = blindCast(referencedRaw);\n\t\t\t\tconst referencedColumnNames = new Set(Object.keys(referencedTable.columns));\n\t\t\t\tfor (const colName of fk.target.columns) if (!referencedColumnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\" in table \"${fk.target.tableName}\"`, \"storage\");\n\t\t\t}\n\t\t\tif (fk.source.columns.length !== fk.target.columns.length) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey column count (${fk.source.columns.length}) does not match referenced column count (${fk.target.columns.length})`, \"storage\");\n\t\t}\n\t}\n}\n/**\n* Full SQL contract validation: structural (arktype) +\n* framework-shared domain + SQL storage logical-consistency + SQL\n* storage semantic + model ↔ storage reference checks. Throws\n* `ContractValidationError` on the first failure. Returns the\n* validated flat-data shape; IR class hydration happens in the SPI\n* base on top of this helper.\n*/\nfunction validateSqlContractFully(value, options) {\n\tconst validated = validateSqlContractStructure(typeof value === \"object\" && value !== null ? (() => {\n\t\tconst { schemaVersion: _, _generated: _g, ...rest } = blindCast(value);\n\t\treturn rest;\n\t})() : value, options?.contractSchema ?? SqlContractSchema);\n\tvalidateContractDomain({\n\t\troots: validated.roots,\n\t\tdomain: validated.domain\n\t});\n\tvalidateSqlStorageConsistency(validated);\n\tconst semanticErrors = validateStorageSemantics(validated.storage);\n\tif (semanticErrors.length > 0) throw new ContractValidationError(`Contract semantic validation failed: ${semanticErrors.join(\"; \")}`, \"storage\");\n\tvalidateModelStorageReferences(validated);\n\tvalidateExecutionDefaultsTargetMappedColumns(validated);\n\tvalidateRelationJoinFields(validated);\n\tvalidateRelationThroughConsistency(validated, options?.dataTypes ?? createDataTypeLookup([]));\n\tvalidateToOneRelationNullabilityAgainstStorage(validated);\n\treturn validated;\n}\n/**\n* A same-space to-one relation that states `nullable` must agree with its local FK columns:\n* nullable exactly when one of them is nullable (a column that cannot be resolved counts as\n* nullable). A relation without the flag is left to hydration, which derives it the same way.\n*/\nfunction validateToOneRelationNullabilityAgainstStorage(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) {\n\t\tconst storage = blindCast(model.storage);\n\t\tfor (const [relationName, relation] of Object.entries(model.relations)) {\n\t\t\tif (!(\"on\" in relation && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\") && relation.to.space === void 0) || relation.nullable === void 0) continue;\n\t\t\tconst location = `Relation \"${relationName}\" on model \"${namespaceId}:${modelName}\"`;\n\t\t\tconst { ownsForeignKey, columns } = resolveSqlToOneRelationStorage(contract, storage, relation);\n\t\t\tif (!ownsForeignKey) {\n\t\t\t\tif (relation.nullable) continue;\n\t\t\t\tthrow new ContractValidationError(`${location} is required but does not own the foreign key, so nothing in storage guarantees the related row exists`, \"storage\");\n\t\t\t}\n\t\t\tconst anyNullable = columns.some((column) => column.nullable);\n\t\t\tif (relation.nullable === anyNullable) continue;\n\t\t\tconst columnList = columns.filter((column) => column.nullable !== relation.nullable).map((column) => `\"${column.name}\"`).join(\", \");\n\t\t\tthrow new ContractValidationError(relation.nullable ? `${location} is nullable but every local FK column is NOT NULL (columns ${columnList})` : `${location} is required but a local FK column is nullable (columns ${columnList})`, \"storage\");\n\t\t}\n\t}\n}\n/** Storage column lookup for through-consistency validation. */\nfunction lookupStorageColumn(contract, namespaceId, tableName, columnName) {\n\tconst rawTable = contract.storage.namespaces[namespaceId]?.entries.table?.[tableName];\n\tif (rawTable === void 0) return;\n\treturn blindCast(rawTable).columns[columnName];\n}\nfunction describeColumnType(column) {\n\treturn column.typeParams === void 0 ? column.dataType : `${column.dataType} ${canonicalizeJson(column.typeParams)}`;\n}\n/**\n* Validates one side of an N:M join: the junction columns and the model\n* columns they pair against positionally must be equal in number, exist in\n* their tables, and have the same type by `sameSqlColumnType`.\n* The junction's storage foreign keys already guarantee this for user-declared\n* FK constraints, but `through` is a logical descriptor never tied to them by\n* the rest of validation — and the TS builder accepts explicit join columns\n* without requiring a junction FK at all — so this checks the columns directly\n* against storage, one path regardless of how the junction was authored.\n*\n* Joined columns must be the *same* storage type, not merely compatible:\n* relying on implicit conversion (e.g. `text`↔`character`) is unsafe on writes\n* — `character(n)` space-padding makes such coercions non-associative — and no\n* ADR sanctions heterogeneous junction columns. Equality is the conservative\n* default; it can be relaxed deliberately if a real use case ever appears.\n*/\nfunction validateThroughJoinSide(input) {\n\tconst fail = (detail) => new ContractValidationError(`Many-to-many relation \"${input.qualifiedName}\" ${detail}`, \"storage\");\n\tif (input.junctionColumns.length !== input.modelColumns.length) throw fail(`pairs ${input.junctionColumnsLabel} (${input.junctionColumns.length}) with ${input.modelColumnsLabel} (${input.modelColumns.length}) of differing length; they join positionally and must match.`);\n\tfor (const [index, junctionColumnName] of input.junctionColumns.entries()) {\n\t\tconst modelColumnRef = input.modelColumns[index];\n\t\tif (modelColumnRef === void 0) continue;\n\t\tconst junctionColumn = lookupStorageColumn(input.contract, input.junctionNamespaceId, input.junctionTable, junctionColumnName);\n\t\tif (junctionColumn === void 0) throw fail(`${input.junctionColumnsLabel} references column \"${junctionColumnName}\" absent from junction table \"${input.junctionNamespaceId}.${input.junctionTable}\".`);\n\t\tconst model = input.model;\n\t\tif (model === void 0) continue;\n\t\tlet modelColumnName = modelColumnRef;\n\t\tif (model.fieldToColumn !== void 0) {\n\t\t\tconst mapped = model.fieldToColumn[modelColumnRef];\n\t\t\tif (mapped === void 0) throw fail(`${input.modelColumnsLabel} references field \"${modelColumnRef}\" absent from model on table \"${model.namespaceId}.${model.table}\".`);\n\t\t\tmodelColumnName = mapped.column;\n\t\t}\n\t\tconst modelColumn = lookupStorageColumn(input.contract, model.namespaceId, model.table, modelColumnName);\n\t\tif (modelColumn === void 0) throw fail(`${input.modelColumnsLabel} references column \"${modelColumnName}\" absent from table \"${model.namespaceId}.${model.table}\".`);\n\t\tif (!sameSqlColumnType(junctionColumn, modelColumn, input.dataTypes)) throw fail(`joins \"${input.junctionTable}.${junctionColumnName}\" (${describeColumnType(junctionColumn)}) with \"${model.table}.${modelColumnName}\" (${describeColumnType(modelColumn)}) of differing storage type; junction columns must match the type of the column they reference.`);\n\t}\n}\n/**\n* Validates that every N:M relation's `through` descriptor is consistent with\n* the storage columns it joins: both join sides match in column count,\n* reference columns that exist in their tables, and pair columns of the same\n* storage type. Without this, a `through` that disagrees with storage surfaces\n* as a silently wrong JOIN at query time rather than a validation error here.\n*/\nfunction validateRelationThroughConsistency(contract, dataTypes) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) for (const [relationName, relation] of Object.entries(model.relations)) {\n\t\tif (relation.cardinality !== \"N:M\") continue;\n\t\tconst qualifiedName = `${namespaceId}.${modelName}.${relationName}`;\n\t\tconst { on, through } = relation;\n\t\tconst modelStorage = blindCast(model.storage);\n\t\tvalidateThroughJoinSide({\n\t\t\tdataTypes,\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: on.localFields,\n\t\t\tmodelColumnsLabel: \"on.localFields\",\n\t\t\tmodel: {\n\t\t\t\tnamespaceId,\n\t\t\t\ttable: modelStorage.table,\n\t\t\t\tfieldToColumn: modelStorage.fields\n\t\t\t},\n\t\t\tjunctionColumns: through.parentColumns,\n\t\t\tjunctionColumnsLabel: \"through.parentColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t\tconst targetModel = relation.to.space === void 0 ? contract.domain.namespaces[relation.to.namespace]?.models[relation.to.model] : void 0;\n\t\tconst targetModelSide = targetModel === void 0 ? void 0 : {\n\t\t\tnamespaceId: relation.to.namespace,\n\t\t\ttable: blindCast(targetModel.storage).table\n\t\t};\n\t\tvalidateThroughJoinSide({\n\t\t\tdataTypes,\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: through.targetColumns,\n\t\t\tmodelColumnsLabel: \"through.targetColumns\",\n\t\t\t...ifDefined(\"model\", targetModelSide),\n\t\t\tjunctionColumns: through.childColumns,\n\t\t\tjunctionColumnsLabel: \"through.childColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t}\n}\n//#endregion\nexport { CheckConstraintSchema, ColumnDefaultFunctionSchema, ColumnDefaultLiteralSchema, ColumnDefaultSchema, ContractEnumSchema, ForeignKeyReferenceSchema, ForeignKeySchema, ForeignKeySourceSchema, IndexSchema, ReferentialActionSchema, StorageTableSchema, StorageValueSetSchema, checkSqlDefaultText, createNamespaceEntrySchema, createSqlContractSchema, createSqlStorageSchema, reservedSqlDefaultText, resolveSqlToOneRelationStorage, validateExecutionDefaultsTargetMappedColumns, validateModel, validateModelStorageReferences, validateRelationJoinFields, validateSqlContractFully, validateSqlStorageConsistency, validateStorage, validateStorageSemantics, valueObjectStorageTypeMissingMessage };\n\n//# sourceMappingURL=validators.mjs.map"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma/orm-family-sql",
|
|
3
|
-
"version": "8.0.0-rc.19-dev.
|
|
3
|
+
"version": "8.0.0-rc.19-dev.3",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@prisma/orm-framework": "8.0.0-rc.19-dev.
|
|
13
|
-
"@prisma/orm-toolchain": "8.0.0-rc.19-dev.
|
|
12
|
+
"@prisma/orm-framework": "8.0.0-rc.19-dev.3",
|
|
13
|
+
"@prisma/orm-toolchain": "8.0.0-rc.19-dev.3",
|
|
14
14
|
"@standard-schema/spec": "^1.1.0",
|
|
15
15
|
"arktype": "^2.2.2",
|
|
16
16
|
"pathe": "^2.0.3",
|
|
@@ -19,21 +19,21 @@
|
|
|
19
19
|
"ts-toolbelt": "^9.6.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@internal/family-sql": "8.0.0-rc.19-dev.
|
|
23
|
-
"@internal/sql-builder": "8.0.0-rc.19-dev.
|
|
24
|
-
"@internal/sql-contract": "8.0.0-rc.19-dev.
|
|
25
|
-
"@internal/sql-contract-emitter": "8.0.0-rc.19-dev.
|
|
26
|
-
"@internal/sql-contract-prisma7": "8.0.0-rc.19-dev.
|
|
27
|
-
"@internal/sql-contract-psl": "8.0.0-rc.19-dev.
|
|
28
|
-
"@internal/sql-contract-ts": "8.0.0-rc.19-dev.
|
|
29
|
-
"@internal/sql-errors": "8.0.0-rc.19-dev.
|
|
30
|
-
"@internal/sql-operations": "8.0.0-rc.19-dev.
|
|
31
|
-
"@internal/sql-orm-client": "8.0.0-rc.19-dev.
|
|
32
|
-
"@internal/sql-relational-core": "8.0.0-rc.19-dev.
|
|
33
|
-
"@internal/sql-runtime": "8.0.0-rc.19-dev.
|
|
34
|
-
"@internal/sql-schema-ir": "8.0.0-rc.19-dev.
|
|
35
|
-
"@repo/tsconfig": "8.0.0-rc.19-dev.
|
|
36
|
-
"@repo/tsdown": "8.0.0-rc.19-dev.
|
|
22
|
+
"@internal/family-sql": "8.0.0-rc.19-dev.3",
|
|
23
|
+
"@internal/sql-builder": "8.0.0-rc.19-dev.3",
|
|
24
|
+
"@internal/sql-contract": "8.0.0-rc.19-dev.3",
|
|
25
|
+
"@internal/sql-contract-emitter": "8.0.0-rc.19-dev.3",
|
|
26
|
+
"@internal/sql-contract-prisma7": "8.0.0-rc.19-dev.3",
|
|
27
|
+
"@internal/sql-contract-psl": "8.0.0-rc.19-dev.3",
|
|
28
|
+
"@internal/sql-contract-ts": "8.0.0-rc.19-dev.3",
|
|
29
|
+
"@internal/sql-errors": "8.0.0-rc.19-dev.3",
|
|
30
|
+
"@internal/sql-operations": "8.0.0-rc.19-dev.3",
|
|
31
|
+
"@internal/sql-orm-client": "8.0.0-rc.19-dev.3",
|
|
32
|
+
"@internal/sql-relational-core": "8.0.0-rc.19-dev.3",
|
|
33
|
+
"@internal/sql-runtime": "8.0.0-rc.19-dev.3",
|
|
34
|
+
"@internal/sql-schema-ir": "8.0.0-rc.19-dev.3",
|
|
35
|
+
"@repo/tsconfig": "8.0.0-rc.19-dev.3",
|
|
36
|
+
"@repo/tsdown": "8.0.0-rc.19-dev.3",
|
|
37
37
|
"tsdown": "0.22.14",
|
|
38
38
|
"typescript": "5.9.3"
|
|
39
39
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-specs-cHzMPvMl.d.mts","names":[],"sources":["../../../../2-sql/2-authoring/contract-psl/dist/sql-attribute-specs-PZQwre0P.d.mts","../../../../2-sql/2-authoring/contract-psl/dist/attribute-specs.d.mts"],"mappings":";;;;;;;;;;UAOU;WACC;WACA;;;UAGD;WACC;WACA,MAAM;;;UAGP;WACC;WACA,oBAAoB,oBAAoB;;;UAGzC;WACC;WACA,MAAM;;KAEZ,kBAAkB,sBAAsB,oBAAoB,kBAAkB,sBAAsB,qBAAqB,sBAAsB,oBAAoB;;KAEnK,2BAA2B,gBAAgB,WAAW,oBAAoB;;;;iBAI9D,oBAAoB,cAAc,OAAO,6BAA6B,WAAW,kBAAkB,QAAQ,eAAe;iBAC1H,iBAAiB,KAAK,4BAA4B;EACjE,OAAO;GACN;iBACc,eAAe,KAAK,uBAAuB;EAC1D;WACS,4CAA4C;WAC5C,uCAAuC;WACvC;WACA;WACA;WACA;WACA,UAAU;GAClB;iBACc,eAAe,KAAK,uBAAuB;WACjD,2CAA2C;WAC3C;WACA;GACR;;cAEW;WACH;aACE,MAAM,MAAM,yBAAyB;MAC5C;OACC;aACM,KAAK,MAAM,yBAAyB;MAC3C;eACS;OACR;aACM,SAAS,MAAM,yBAAyB;MAC/C;eACS;OACR;aACM,cAAc;aACd,cAAc;aACd,UAAU,MAAM,yBAAyB;MAChD;OACC;aACM,gBAAgB,MAAM,yBAAyB;MACtD;OACC;aACM,OAAO,MAAM,yBAAyB;MAC7C,qCAAqC,wBAAwB;MAC7D,OAAO;OACN;;WAEI;aACE,MAAM,MAAM,8BAA8B;MACjD;OACC;aACM,KAAK,MAAM,8BAA8B;eACvC;OACR;aACM,SAAS,MAAM,8BAA8B;eAC3C;OACR;aACM,WAAW,MAAM,8BAA8B;MACtD;eACS;eACA;eACA;eACA;eACA;eACA;OACR;aACM,gBAAgB;aAChB,WAAW,KAAK,8BAA8B;MACrD,OAAO;OACN;aACM,WAAW,KAAK,8BAA8B;MACrD,OAAO;OACN;;;;;;iBC3FU,gCAAgC,SAAS,aAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec-descriptor-registry-4kw8FPpo.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/codec-descriptor-registry.mjs"],"sourcesContent":["import { structuredError } from \"@internal/utils/structured-error\";\nimport { resolveStorageTable } from \"@internal/sql-contract/resolve-storage-table\";\nimport { isStorageTypeInstance, resolvedTypeParams } from \"@internal/sql-contract/types\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/codec-ref-for-column.ts\n/**\n* Derive the canonical {@link CodecRef} for a `(table, column)` pair against a {@link SqlStorage}. This is the build-time path every column-bound `ParamRef` / `ProjectionItem` uses to stamp its `codec` slot before the AST is handed to the runtime — the runtime resolver then materialises a memoised {@link import('@internal/sql-relational-core/ast').Codec} for the same `CodecRef` via `forCodecRef`.\n*\n* Resolution rules over namespace `entries.table[table].columns[column]`:\n*\n* - `typeRef` column → `{codecId, typeParams}` from `storage.types[typeRef]` (multiple columns sharing the typeRef share one ref → one memoised codec).\n* - inline `typeParams` column → `{codecId, typeParams}` from the column itself.\n* - non-parameterized column → `{codecId}` with `typeParams` undefined.\n*\n* Returns `undefined` when the table or column is unknown, or when a `typeRef` column references a `storage.types` entry that does not exist.\n*\n* `namespaceId` leads the coordinate args and is always supplied: every\n* model/table sits in an explicit namespace, so the table is resolved strictly\n* within that namespace (see {@link resolveStorageTable}).\n*/\nfunction codecRefForStorageColumn(storage, namespaceId, tableName, columnName) {\n\tconst resolved = resolveStorageTable(storage, tableName, namespaceId);\n\tif (resolved === void 0) return void 0;\n\tconst columnDef = resolved.table.columns[columnName];\n\tif (!columnDef) return void 0;\n\tconst typeParams = resolvedTypeParams(columnDef, storage.types);\n\tconst params = typeParams === void 0 ? {} : { typeParams: blindCast(typeParams) };\n\tif (columnDef.typeRef !== void 0) {\n\t\tconst instance = storage.types?.[columnDef.typeRef];\n\t\tif (!instance || !isStorageTypeInstance(instance)) return void 0;\n\t\treturn {\n\t\t\tcodecId: instance.codecId,\n\t\t\t...params\n\t\t};\n\t}\n\treturn columnDef.many ? {\n\t\tcodecId: columnDef.codecId,\n\t\t...params,\n\t\tmany: true\n\t} : {\n\t\tcodecId: columnDef.codecId,\n\t\t...params\n\t};\n}\n//#endregion\n//#region src/codec-descriptor-registry.ts\n/**\n* Build a {@link CodecDescriptorRegistry} from a flat descriptor list.\n*\n* Used by:\n* - Each codec-shipping package's `core/registry.ts` to expose a package-scoped registry as the public consumer surface (replacing raw descriptor-array exports). See ADR 208.\n* - The runtime's `buildExecutionContext` to construct the contract-bound combined registry from every contributor's `codecs:` slot.\n*\n* The descriptor map is heterogeneous in `P` — each codec id has its own params shape. The public {@link CodecDescriptorRegistry} interface widens to `CodecDescriptor<unknown>` and consumers narrow per codec id at the call site (the descriptor's `paramsSchema` validates JSON-sourced params before the factory ever sees them, so the runtime narrow is safe). The cast at registration goes through `unknown` because\n* `CodecDescriptor<P>` is invariant in `P` (the `factory` and `renderOutputType` slots use `P` contravariantly).\n*/\nfunction buildCodecDescriptorRegistry(allDescriptors, storage) {\n\tconst byId = /* @__PURE__ */ new Map();\n\tfor (const descriptor of allDescriptors) {\n\t\tif (byId.has(descriptor.codecId)) throw structuredError(\"RUNTIME.DUPLICATE_CODEC\", `Duplicate codec descriptor id: '${descriptor.codecId}' — registered twice during registry construction. Each codecId must be contributed by exactly one component (target / adapter / extension pack).`, { meta: { codecId: descriptor.codecId } });\n\t\tconst widened = descriptor;\n\t\tbyId.set(descriptor.codecId, widened);\n\t}\n\treturn {\n\t\tdescriptorFor(codecId) {\n\t\t\treturn byId.get(codecId);\n\t\t},\n\t\tcodecRefForColumn(namespaceId, table, column) {\n\t\t\tif (!storage) return void 0;\n\t\t\treturn codecRefForStorageColumn(storage, namespaceId, table, column);\n\t\t},\n\t\t*values() {\n\t\t\tyield* byId.values();\n\t\t}\n\t};\n}\n//#endregion\nexport { buildCodecDescriptorRegistry, codecRefForStorageColumn };\n\n//# sourceMappingURL=codec-descriptor-registry.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,yBAAyB,SAAS,aAAa,WAAW,YAAY;CAC9E,MAAM,WAAW,oBAAoB,SAAS,WAAW,WAAW;CACpE,IAAI,aAAa,KAAK,GAAG,OAAO,KAAK;CACrC,MAAM,YAAY,SAAS,MAAM,QAAQ;CACzC,IAAI,CAAC,WAAW,OAAO,KAAK;CAC5B,MAAM,aAAa,mBAAmB,WAAW,QAAQ,KAAK;CAC9D,MAAM,SAAS,eAAe,KAAK,IAAI,CAAC,IAAI,EAAE,YAAY,UAAU,UAAU,EAAE;CAChF,IAAI,UAAU,YAAY,KAAK,GAAG;EACjC,MAAM,WAAW,QAAQ,QAAQ,UAAU;EAC3C,IAAI,CAAC,YAAY,CAAC,sBAAsB,QAAQ,GAAG,OAAO,KAAK;EAC/D,OAAO;GACN,SAAS,SAAS;GAClB,GAAG;EACJ;CACD;CACA,OAAO,UAAU,OAAO;EACvB,SAAS,UAAU;EACnB,GAAG;EACH,MAAM;CACP,IAAI;EACH,SAAS,UAAU;EACnB,GAAG;CACJ;AACD;;;;;;;;;;;AAaA,SAAS,6BAA6B,gBAAgB,SAAS;CAC9D,MAAM,uBAAuB,IAAI,IAAI;CACrC,KAAK,MAAM,cAAc,gBAAgB;EACxC,IAAI,KAAK,IAAI,WAAW,OAAO,GAAG,MAAM,gBAAgB,2BAA2B,mCAAmC,WAAW,QAAQ,oJAAoJ,EAAE,MAAM,EAAE,SAAS,WAAW,QAAQ,EAAE,CAAC;EACtU,MAAM,UAAU;EAChB,KAAK,IAAI,WAAW,SAAS,OAAO;CACrC;CACA,OAAO;EACN,cAAc,SAAS;GACtB,OAAO,KAAK,IAAI,OAAO;EACxB;EACA,kBAAkB,aAAa,OAAO,QAAQ;GAC7C,IAAI,CAAC,SAAS,OAAO,KAAK;GAC1B,OAAO,yBAAyB,SAAS,aAAa,OAAO,MAAM;EACpE;EACA,CAAC,SAAS;GACT,OAAO,KAAK,OAAO;EACpB;CACD;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./collection-methods-BtJYB_5s-0fek2_wK.mjs";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract-builder-DT689tII.mjs","names":["#handle"],"sources":["../../../../2-sql/2-authoring/contract-ts/dist/contract-builder.mjs"],"sourcesContent":["import { a as storedAsListColumn, i as isValueObjectMember, n as buildSqlContractFromDefinition, o as contractError, r as toOneNullabilityContradictionMessage, t as applySqlSpecifierControlPolicy } from \"./derived-checks-CXW9ytkb.mjs\";\nimport { SQL_EXPRESSION_TAG, SqlExpression, isSqlExpression, readSqlExpression, requireSqlExpression, sql } from \"@internal/sql-contract/sql-expression\";\nimport { assertSafeAuthoringHelperKey, bindEnumType, composePackAuthoringNamespace, createEntityHelpersFromNamespace, createFieldHelpersFromNamespace, enumType, isEnumTypeHandle, member, resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { assembleDataTypeSupport, assertNoCrossRegistryCollisions, describeAdmittedForms, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringTypeConstructorDescriptor, readWrittenValueAs, validateAuthoringHelperArguments, validateAuthoringTypeParams } from \"@internal/framework-components/authoring\";\nimport { assembleGeneratorFunctions, createGeneratorHelpers } from \"@internal/framework-components/components\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { dataTypeId } from \"@internal/framework-components/codec\";\nimport { numeralText, sqlColumnLength } from \"@internal/sql-contract/data-type\";\nimport { CODEC_INSTANCE_KIND } from \"@internal/sql-contract/types\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\nimport { isColumnDefault } from \"@internal/contract/types\";\nimport { checkSqlDefaultText, reservedSqlDefaultText } from \"@internal/sql-contract/validators\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { providesEntityHandleLowering } from \"@internal/sql-contract/entity-handle-lowering-hook\";\n//#region src/authoring-helper-runtime.ts\n/** The written value a TypeScript argument stands for: a number, string or boolean as written in PSL, and a `sql` value as a `sql` literal of its text. */\nfunction writtenValueOf(value) {\n\tif (typeof value === \"number\") return {\n\t\tkind: \"number\",\n\t\ttext: numeralText(value)\n\t};\n\tif (typeof value === \"string\") return {\n\t\tkind: \"string\",\n\t\ttext: value\n\t};\n\tif (typeof value === \"boolean\") return {\n\t\tkind: \"boolean\",\n\t\tvalue\n\t};\n\tconst expression = readSqlExpression(value);\n\treturn expression === void 0 ? void 0 : {\n\t\tkind: \"tag\",\n\t\ttag: SQL_EXPRESSION_TAG,\n\t\ttext: expression.text\n\t};\n}\nfunction readValueArgument(label, value, dataType, dataTypes) {\n\tconst refuse = (message) => {\n\t\tthrow contractError(\"CONTRACT.ARGUMENT_INVALID\", `${label}: ${message}`, { meta: { dataType } });\n\t};\n\tconst written = writtenValueOf(value);\n\tif (written === void 0) return refuse(`Expected ${describeAdmittedForms(dataTypes, dataType)}`);\n\tconst read = readWrittenValueAs(dataTypes, dataType, written);\n\treturn read.ok ? read.value.value : refuse(read.failure.message);\n}\n/**\n* The arguments of a type constructor or field preset call as the constructor receives them: each `value` argument read as a value of its data type, through the same read and cast as a PSL argument, so both give the same parameters. ADR 129, ADR 254.\n*/\nfunction readValueArguments(helperPath, descriptors, args, dataTypes) {\n\treturn args.map((value, index) => {\n\t\tconst descriptor = descriptors?.[index];\n\t\tif (descriptor?.kind !== \"value\" || value === void 0) return value;\n\t\treturn readValueArgument(descriptor.name === void 0 ? `Argument #${index + 1} of ${helperPath}` : `Argument \"${descriptor.name}\" of ${helperPath}`, value, dataTypeId(descriptor.dataType), dataTypes);\n\t});\n}\nfunction isNamedConstraintOptionsLike(value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) return false;\n\tif (Object.keys(value).some((key) => key !== \"name\")) return false;\n\tconst name = value.name;\n\treturn name === void 0 || typeof name === \"string\";\n}\nfunction createTypeHelpersFromNamespace(namespace, lookups, path = []) {\n\tconst helpers = {};\n\tfor (const [key, value] of Object.entries(namespace)) {\n\t\tassertSafeAuthoringHelperKey(key, path);\n\t\tconst currentPath = [...path, key];\n\t\tif (isAuthoringTypeConstructorDescriptor(value)) {\n\t\t\tconst helperPath = currentPath.join(\".\");\n\t\t\thelpers[key] = (...written) => {\n\t\t\t\tvalidateAuthoringHelperArguments(helperPath, value.args, written);\n\t\t\t\tconst args = readValueArguments(helperPath, value.args, written, lookups.dataTypes);\n\t\t\t\tconst output = instantiateAuthoringTypeConstructor(value, args);\n\t\t\t\tvalidateAuthoringTypeParams(helperPath, value.output, output.typeParams, lookups.codecLookup.descriptorFor(output.codecId)?.paramsSchema);\n\t\t\t\treturn {\n\t\t\t\t\tkind: CODEC_INSTANCE_KIND,\n\t\t\t\t\tcodecId: output.codecId,\n\t\t\t\t\ttypeParams: output.typeParams ?? {}\n\t\t\t\t};\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\t\thelpers[key] = createTypeHelpersFromNamespace(value, lookups, currentPath);\n\t}\n\treturn helpers;\n}\nfunction createFieldPresetHelper(options) {\n\treturn (...rawArgs) => {\n\t\tconst acceptsNamedConstraintOptions = options.descriptor.output.id === true || options.descriptor.output.unique === true;\n\t\tconst declaredArguments = options.descriptor.args ?? [];\n\t\tif (acceptsNamedConstraintOptions && rawArgs.length > declaredArguments.length + 1) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", `${options.helperPath} expects at most ${declaredArguments.length + 1} argument(s), received ${rawArgs.length}`, { meta: {\n\t\t\thelperPath: options.helperPath,\n\t\t\texpected: declaredArguments.length + 1,\n\t\t\treceived: rawArgs.length\n\t\t} });\n\t\tlet args = rawArgs;\n\t\tlet namedConstraintOptions;\n\t\tif (acceptsNamedConstraintOptions && rawArgs.length === declaredArguments.length + 1) {\n\t\t\tconst maybeNamedConstraintOptions = rawArgs.at(-1);\n\t\t\tif (!isNamedConstraintOptionsLike(maybeNamedConstraintOptions)) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", `${options.helperPath} accepts an optional trailing { name?: string } constraint options object`, { meta: { helperPath: options.helperPath } });\n\t\t\tnamedConstraintOptions = maybeNamedConstraintOptions;\n\t\t\targs = rawArgs.slice(0, -1);\n\t\t}\n\t\tvalidateAuthoringHelperArguments(options.helperPath, options.descriptor.args, args);\n\t\tconst values = readValueArguments(options.helperPath, options.descriptor.args, args, options.dataTypes);\n\t\tconst output = options.descriptor.output;\n\t\tvalidateAuthoringTypeParams(options.helperPath, output, instantiateAuthoringFieldPreset(options.descriptor, values).descriptor.typeParams, options.codecLookup.descriptorFor(output.codecId)?.paramsSchema);\n\t\treturn options.build({\n\t\t\targs: values,\n\t\t\t...namedConstraintOptions ? { namedConstraintOptions } : {}\n\t\t});\n\t};\n}\n//#endregion\n//#region src/contract-dsl.ts\nfunction withGeneratorCall(state, phase, call) {\n\tif (state.generatorCalls?.[phase] !== void 0 || state.executionDefaults?.[phase] !== void 0) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `.${phase}() is called on a field that already generates a value ${phase === \"onCreate\" ? \"on create\" : \"on update\"}. Set each phase once, and do not combine .${phase}() with a field preset that sets it.`, { meta: {\n\t\treason: \"generator-phase-set-twice\",\n\t\tphase\n\t} });\n\treturn {\n\t\t...state,\n\t\tgeneratorCalls: {\n\t\t\t...state.generatorCalls,\n\t\t\t[phase]: call\n\t\t}\n\t};\n}\nfunction toColumnDefault(value) {\n\tconst expression = readSqlExpression(value);\n\tif (expression !== void 0) return sqlExpressionDefault(expression);\n\tif (isColumnDefault(value)) return value;\n\treturn {\n\t\tkind: \"literal\",\n\t\tvalue\n\t};\n}\nfunction sqlExpressionDefault(value) {\n\tconst reserved = reservedSqlDefaultText(value.text);\n\tif (reserved !== void 0) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `Write .default(${reserved}()) instead of sql\\`${reserved}()\\`; ${reserved}() is a Prisma default function, not raw SQL.`, { meta: {\n\t\treason: \"reserved-function\",\n\t\texpression: value.text\n\t} });\n\tconst unsafe = checkSqlDefaultText(value.text);\n\tif (unsafe !== void 0) throw contractError(\"CONTRACT.DEFAULT_INVALID\", unsafe, { meta: {\n\t\treason: \"unsafe-sql\",\n\t\texpression: value.text\n\t} });\n\treturn {\n\t\tkind: \"function\",\n\t\texpression: value.text\n\t};\n}\nvar ScalarFieldBuilder = class ScalarFieldBuilder {\n\tstate;\n\tconstructor(state) {\n\t\tthis.state = state;\n\t}\n\t/**\n\t* Returns the physical column name when `.column(name)` was called, or\n\t* `undefined` when the field uses the default (logical field name) mapping.\n\t* Used by cross-space FK lowering to stamp the physical column name onto\n\t* `TargetFieldRef.columnName` so FK target columns are resolved correctly.\n\t*/\n\tget physicalColumnName() {\n\t\treturn this.state.columnName;\n\t}\n\toptional() {\n\t\treturn new ScalarFieldBuilder(blindCast({\n\t\t\t...this.state,\n\t\t\tnullable: true\n\t\t}));\n\t}\n\tcolumn(name) {\n\t\treturn new ScalarFieldBuilder(blindCast({\n\t\t\t...this.state,\n\t\t\tcolumnName: name\n\t\t}));\n\t}\n\tmany(options) {\n\t\treturn new ScalarFieldBuilder(blindCast({\n\t\t\t...this.state,\n\t\t\tmany: { elementNullable: options?.elementsNullable === true }\n\t\t}));\n\t}\n\tdefault(value) {\n\t\treturn blindCast(new ScalarFieldBuilder({\n\t\t\t...this.state,\n\t\t\tdefault: toColumnDefault(value)\n\t\t}));\n\t}\n\t/** Generates the field's value in the client when a row is created without one, with a call from `gen`, such as `gen.uuid()`. */\n\tonCreate(call) {\n\t\treturn blindCast(new ScalarFieldBuilder(withGeneratorCall(this.state, \"onCreate\", call)));\n\t}\n\t/** Generates the field's value in the client every time a row is updated, with a call from `gen`, such as `gen.now()`. */\n\tonUpdate(call) {\n\t\treturn new ScalarFieldBuilder(withGeneratorCall(this.state, \"onUpdate\", call));\n\t}\n\t/**\n\t* @deprecated Write `.default(now())` or `.default(autoincrement())`, or `` .default(sql`...`) `` for any other SQL. Removed in 8.0.0.\n\t*/\n\tdefaultSql(expression) {\n\t\treturn blindCast(new ScalarFieldBuilder({\n\t\t\t...this.state,\n\t\t\tdefault: {\n\t\t\t\tkind: \"function\",\n\t\t\t\texpression\n\t\t\t}\n\t\t}));\n\t}\n\tid(options) {\n\t\treturn new ScalarFieldBuilder(blindCast({\n\t\t\t...this.state,\n\t\t\tid: options?.name ? { name: options.name } : {}\n\t\t}));\n\t}\n\tunique(options) {\n\t\treturn new ScalarFieldBuilder(blindCast({\n\t\t\t...this.state,\n\t\t\tunique: options?.name ? { name: options.name } : {}\n\t\t}));\n\t}\n\tsql(spec) {\n\t\tconst idSpec = \"id\" in spec ? spec.id : void 0;\n\t\tconst uniqueSpec = \"unique\" in spec ? spec.unique : void 0;\n\t\tif (idSpec && !this.state.id) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"field.sql({ id }) requires an existing inline .id(...) declaration.\");\n\t\tif (uniqueSpec && !this.state.unique) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"field.sql({ unique }) requires an existing inline .unique(...) declaration.\");\n\t\treturn new ScalarFieldBuilder(blindCast({\n\t\t\t...this.state,\n\t\t\t...spec.column ? { columnName: spec.column } : {},\n\t\t\t...idSpec ? { id: { name: idSpec.name } } : {},\n\t\t\t...uniqueSpec ? { unique: { name: uniqueSpec.name } } : {}\n\t\t}));\n\t}\n\tbuild() {\n\t\treturn this.state;\n\t}\n};\nvar EnumScalarFieldBuilder = class EnumScalarFieldBuilder extends ScalarFieldBuilder {\n\t#handle;\n\tconstructor(state, handle) {\n\t\tsuper(state);\n\t\tthis.#handle = handle;\n\t}\n\tdefault(value) {\n\t\treturn blindCast(new EnumScalarFieldBuilder({\n\t\t\t...this.build(),\n\t\t\tdefault: {\n\t\t\t\tkind: \"literal\",\n\t\t\t\tvalue\n\t\t\t}\n\t\t}, this.#handle));\n\t}\n\tdefaultSql(_expression) {\n\t\tthrow contractError(\"CONTRACT.DEFAULT_INVALID\", \"defaultSql is not available on an enum field; use .default(members.X) instead\", { meta: { reason: \"defaultSql-on-enum-field\" } });\n\t}\n};\nconst columnField = (descriptor) => new ScalarFieldBuilder({\n\tkind: \"scalar\",\n\tdescriptor,\n\tnullable: false,\n\tmany: false\n});\nfunction generatedField(spec) {\n\treturn new ScalarFieldBuilder({\n\t\tkind: \"scalar\",\n\t\tdescriptor: blindCast({\n\t\t\t...spec.type,\n\t\t\t...spec.typeParams ? { typeParams: spec.typeParams } : {}\n\t\t}),\n\t\tnullable: false,\n\t\tmany: false,\n\t\texecutionDefaults: { onCreate: spec.generated }\n\t});\n}\nfunction untypedNamedTypeField(typeRef) {\n\tif (isEnumTypeHandle(typeRef)) return new EnumScalarFieldBuilder(blindCast({\n\t\tkind: \"scalar\",\n\t\ttypeRef,\n\t\tnullable: false,\n\t\tmany: false\n\t}), typeRef);\n\treturn new ScalarFieldBuilder({\n\t\tkind: \"scalar\",\n\t\ttypeRef,\n\t\tnullable: false,\n\t\tmany: false\n\t});\n}\nconst namedTypeField = blindCast(untypedNamedTypeField);\nfunction buildFieldPreset(descriptor, args, namedConstraintOptions) {\n\tconst preset = instantiateAuthoringFieldPreset(descriptor, args);\n\treturn new ScalarFieldBuilder({\n\t\tkind: \"scalar\",\n\t\tdescriptor: preset.descriptor,\n\t\tnullable: preset.nullable,\n\t\tmany: false,\n\t\t...ifDefined(\"default\", preset.default),\n\t\t...ifDefined(\"executionDefaults\", preset.executionDefaults),\n\t\t...preset.id ? { id: namedConstraintOptions?.name ? { name: namedConstraintOptions.name } : {} } : {},\n\t\t...preset.unique ? { unique: namedConstraintOptions?.name ? { name: namedConstraintOptions.name } : {} } : {}\n\t});\n}\nvar RelationBuilder = class RelationBuilder {\n\tstate;\n\tconstructor(state) {\n\t\tthis.state = state;\n\t}\n\tsql(spec) {\n\t\tif (this.state.kind !== \"belongsTo\") throw contractError(\"CONTRACT.RELATION_INVALID\", \"relation.sql(...) is only supported for belongsTo relations.\", { meta: { relationKind: this.state.kind } });\n\t\treturn new RelationBuilder({\n\t\t\t...this.state,\n\t\t\tsql: spec\n\t\t});\n\t}\n\tbuild() {\n\t\treturn this.state;\n\t}\n};\nfunction normalizeFieldRefInput(input) {\n\treturn (Array.isArray(input) ? input : [input]).map((ref) => ref.fieldName);\n}\nfunction normalizeTargetFieldRefInput(input) {\n\tconst refs = Array.isArray(input) ? input : [input];\n\tconst [first] = refs;\n\tif (!first) throw contractError(\"CONTRACT.FOREIGN_KEY_INVALID\", \"Expected at least one target ref\", { meta: { reason: \"empty-target-refs\" } });\n\tif (refs.some((ref) => ref.modelName !== first.modelName)) throw contractError(\"CONTRACT.FOREIGN_KEY_INVALID\", \"All target refs in a foreign key must point to the same model\", { meta: {\n\t\tmismatch: \"modelName\",\n\t\tmodels: refs.map((ref) => ref.modelName)\n\t} });\n\tif (refs.some((ref) => ref.spaceId !== first.spaceId)) throw contractError(\"CONTRACT.FOREIGN_KEY_INVALID\", `All target refs in a compound foreign key must share the same spaceId (found mismatch: \"${first.spaceId ?? \"<local>\"}\" vs \"${refs.find((r) => r.spaceId !== first.spaceId)?.spaceId ?? \"<local>\"}\")`, { meta: {\n\t\tmismatch: \"spaceId\",\n\t\tfirst: first.spaceId,\n\t\tsecond: refs.find((r) => r.spaceId !== first.spaceId)?.spaceId\n\t} });\n\tif (refs.some((ref) => ref.namespaceId !== first.namespaceId)) throw contractError(\"CONTRACT.FOREIGN_KEY_INVALID\", \"All target refs in a compound foreign key must share the same namespaceId (found mismatch)\", { meta: { mismatch: \"namespaceId\" } });\n\tif (refs.some((ref) => ref.tableName !== first.tableName)) throw contractError(\"CONTRACT.FOREIGN_KEY_INVALID\", \"All target refs in a compound foreign key must share the same tableName (found mismatch)\", { meta: { mismatch: \"tableName\" } });\n\treturn {\n\t\tmodelName: first.modelName,\n\t\tfieldNames: refs.map((ref) => ref.columnName ?? ref.fieldName),\n\t\tsource: refs.some((ref) => ref.source === \"string\") ? \"string\" : \"token\",\n\t\tspaceId: first.spaceId,\n\t\tnamespaceId: first.namespaceId,\n\t\ttableName: first.tableName\n\t};\n}\nfunction createConstraintsDsl() {\n\tfunction ref(modelName, fieldName) {\n\t\treturn {\n\t\t\tkind: \"targetFieldRef\",\n\t\t\tsource: \"string\",\n\t\t\tmodelName,\n\t\t\tfieldName\n\t\t};\n\t}\n\tfunction id(fieldOrFields, options) {\n\t\treturn {\n\t\t\tkind: \"id\",\n\t\t\tfields: normalizeFieldRefInput(fieldOrFields),\n\t\t\t...options?.name ? { name: options.name } : {}\n\t\t};\n\t}\n\tfunction unique(fieldOrFields, options) {\n\t\treturn {\n\t\t\tkind: \"unique\",\n\t\t\tfields: normalizeFieldRefInput(fieldOrFields),\n\t\t\t...options?.name ? { name: options.name } : {}\n\t\t};\n\t}\n\tfunction index(fieldsOrOptions, options) {\n\t\tconst isExpressionForm = !Array.isArray(fieldsOrOptions) && typeof fieldsOrOptions === \"object\" && \"expression\" in fieldsOrOptions;\n\t\tconst opts = isExpressionForm ? fieldsOrOptions : options;\n\t\tconst carried = {\n\t\t\tkind: \"index\",\n\t\t\t...opts?.name !== void 0 ? { name: opts.name } : {},\n\t\t\t...opts?.map !== void 0 ? { map: opts.map } : {},\n\t\t\t...opts?.where !== void 0 ? { where: opts.where } : {},\n\t\t\t...opts?.unique !== void 0 ? { unique: opts.unique } : {},\n\t\t\t...opts?.type !== void 0 ? { type: opts.type } : {},\n\t\t\t...opts?.options !== void 0 ? { options: blindCast(opts.options) } : {}\n\t\t};\n\t\treturn isExpressionForm ? {\n\t\t\t...carried,\n\t\t\texpression: fieldsOrOptions.expression\n\t\t} : {\n\t\t\t...carried,\n\t\t\tfields: normalizeFieldRefInput(fieldsOrOptions)\n\t\t};\n\t}\n\tfunction foreignKey(fieldOrFields, target, options) {\n\t\tconst normalizedTarget = normalizeTargetFieldRefInput(target);\n\t\treturn {\n\t\t\tkind: \"fk\",\n\t\t\tfields: normalizeFieldRefInput(fieldOrFields),\n\t\t\ttargetModel: normalizedTarget.modelName,\n\t\t\ttargetFields: normalizedTarget.fieldNames,\n\t\t\ttargetSource: normalizedTarget.source,\n\t\t\t...normalizedTarget.spaceId !== void 0 ? { targetSpaceId: normalizedTarget.spaceId } : {},\n\t\t\t...normalizedTarget.namespaceId !== void 0 ? { targetNamespaceId: normalizedTarget.namespaceId } : {},\n\t\t\t...normalizedTarget.tableName !== void 0 ? { targetTableName: normalizedTarget.tableName } : {},\n\t\t\t...options?.name ? { name: options.name } : {},\n\t\t\t...options?.onDelete ? { onDelete: options.onDelete } : {},\n\t\t\t...options?.onUpdate ? { onUpdate: options.onUpdate } : {},\n\t\t\t...options?.constraint !== void 0 ? { constraint: options.constraint } : {},\n\t\t\t...options?.index !== void 0 ? { index: options.index } : {}\n\t\t};\n\t}\n\treturn {\n\t\tref,\n\t\tid,\n\t\tunique,\n\t\tindex,\n\t\tforeignKey\n\t};\n}\n/**\n* Declares an authored CHECK constraint for a model's `.sql({ checks: [...] })`.\n* Unlike `index()`, `check()` names no column tuple — the predicate is opaque\n* SQL — so it needs no field-ref context and is a plain top-level function\n* rather than a method on `constraints`.\n*/\nfunction check(input) {\n\treturn {\n\t\tkind: \"check\",\n\t\texpression: input.expression,\n\t\t...input.name !== void 0 ? { name: input.name } : {},\n\t\t...input.map !== void 0 ? { map: input.map } : {}\n\t};\n}\nfunction createFieldRefs(fields) {\n\tconst refs = {};\n\tfor (const fieldName of Object.keys(fields)) refs[fieldName] = {\n\t\tkind: \"columnRef\",\n\t\tfieldName\n\t};\n\treturn refs;\n}\nfunction createModelTokenRefs(modelName, fields, crossSpaceCoordinate) {\n\tconst refs = {};\n\tfor (const [fieldName, fieldBuilder] of Object.entries(fields)) {\n\t\tconst physicalColumn = crossSpaceCoordinate !== void 0 ? fieldBuilder.physicalColumnName : void 0;\n\t\trefs[fieldName] = {\n\t\t\tkind: \"targetFieldRef\",\n\t\t\tsource: \"token\",\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\t...crossSpaceCoordinate !== void 0 ? {\n\t\t\t\tspaceId: crossSpaceCoordinate.spaceId,\n\t\t\t\t...crossSpaceCoordinate.namespaceId !== void 0 ? { namespaceId: crossSpaceCoordinate.namespaceId } : {},\n\t\t\t\t...crossSpaceCoordinate.tableName !== void 0 ? { tableName: crossSpaceCoordinate.tableName } : {},\n\t\t\t\t...physicalColumn !== void 0 ? { columnName: physicalColumn } : {}\n\t\t\t} : {}\n\t\t};\n\t}\n\treturn refs;\n}\nfunction buildStageSpec(stageInput, context) {\n\tif (typeof stageInput === \"function\") return stageInput(context);\n\treturn stageInput;\n}\nfunction createAttributeConstraintsDsl() {\n\tconst constraints = createConstraintsDsl();\n\treturn {\n\t\tid: constraints.id,\n\t\tunique: constraints.unique\n\t};\n}\nfunction createSqlConstraintsDsl() {\n\tconst constraints = createConstraintsDsl();\n\treturn {\n\t\tindex: constraints.index,\n\t\tforeignKey: constraints.foreignKey,\n\t\tref: constraints.ref\n\t};\n}\nfunction createColumnRefs(fields) {\n\treturn createFieldRefs(fields);\n}\nfunction findDuplicateRelationName(existingRelations, nextRelations) {\n\treturn Object.keys(nextRelations).find((relationName) => Object.hasOwn(existingRelations, relationName));\n}\nvar ContractModelBuilder = class ContractModelBuilder {\n\tstageOne;\n\tattributesFactory;\n\tsqlFactory;\n\tspaceId;\n\ttableName;\n\trefs;\n\tconstructor(stageOne, attributesFactory, sqlFactory, spaceId, tableName) {\n\t\tthis.stageOne = stageOne;\n\t\tthis.attributesFactory = attributesFactory;\n\t\tthis.sqlFactory = sqlFactory;\n\t\tthis.spaceId = spaceId;\n\t\tthis.tableName = tableName;\n\t\tconst crossSpaceCoordinate = spaceId !== void 0 ? {\n\t\t\tspaceId,\n\t\t\t...stageOne.namespace !== void 0 ? { namespaceId: stageOne.namespace } : {},\n\t\t\t...tableName !== void 0 ? { tableName } : {}\n\t\t} : void 0;\n\t\tthis.refs = blindCast(stageOne.modelName ? createModelTokenRefs(stageOne.modelName, stageOne.fields, crossSpaceCoordinate) : void 0);\n\t}\n\tref(fieldName) {\n\t\tconst modelName = this.stageOne.modelName;\n\t\tif (!modelName) throw contractError(\"CONTRACT.MODEL_TOKEN_INVALID\", \"Model tokens require model(\\\"ModelName\\\", ...) before calling .ref(...)\");\n\t\treturn {\n\t\t\tkind: \"targetFieldRef\",\n\t\t\tsource: \"token\",\n\t\t\tmodelName,\n\t\t\tfieldName\n\t\t};\n\t}\n\trelations(relations) {\n\t\tconst duplicateRelationName = findDuplicateRelationName(this.stageOne.relations, relations);\n\t\tif (duplicateRelationName) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Model \"${this.stageOne.modelName ?? \"<anonymous>\"}\" already defines relation \"${duplicateRelationName}\".`, { meta: {\n\t\t\tkind: \"relation\",\n\t\t\tname: duplicateRelationName,\n\t\t\tmodelName: this.stageOne.modelName\n\t\t} });\n\t\treturn new ContractModelBuilder({\n\t\t\t...this.stageOne,\n\t\t\trelations: {\n\t\t\t\t...this.stageOne.relations,\n\t\t\t\t...relations\n\t\t\t}\n\t\t}, this.attributesFactory, this.sqlFactory, this.spaceId, this.tableName);\n\t}\n\tattributes(specOrFactory) {\n\t\treturn blindCast(new ContractModelBuilder(this.stageOne, specOrFactory, this.sqlFactory, this.spaceId, this.tableName));\n\t}\n\tsql(specOrFactory) {\n\t\tconst nextTableName = typeof specOrFactory !== \"function\" ? specOrFactory.table : this.tableName;\n\t\treturn blindCast(new ContractModelBuilder(this.stageOne, this.attributesFactory, specOrFactory, this.spaceId, nextTableName));\n\t}\n\tbuildAttributesSpec() {\n\t\tif (!this.attributesFactory) return;\n\t\treturn buildStageSpec(this.attributesFactory, {\n\t\t\tfields: createFieldRefs(this.stageOne.fields),\n\t\t\tconstraints: createAttributeConstraintsDsl()\n\t\t});\n\t}\n\tbuildSqlSpec() {\n\t\tif (!this.sqlFactory) return;\n\t\treturn buildStageSpec(this.sqlFactory, {\n\t\t\tcols: createColumnRefs(this.stageOne.fields),\n\t\t\tconstraints: createSqlConstraintsDsl()\n\t\t});\n\t}\n};\nfunction isLazyRelationModelName(value) {\n\treturn typeof value === \"object\" && value !== null && \"kind\" in value && value.kind === \"lazyRelationModelName\" && \"resolve\" in value && typeof value.resolve === \"function\";\n}\nfunction resolveNamedModelTokenName(token) {\n\tconst modelName = token.stageOne.modelName;\n\tif (!modelName) throw contractError(\"CONTRACT.MODEL_TOKEN_INVALID\", \"Relation targets require named model tokens. Use model(\\\"ModelName\\\", ...) before passing a token to rel.*(...).\");\n\treturn modelName;\n}\nfunction normalizeRelationModelSource(target) {\n\tif (typeof target === \"string\") return {\n\t\tkind: \"relationModelName\",\n\t\tsource: \"string\",\n\t\tmodelName: target\n\t};\n\tif (typeof target === \"function\") return {\n\t\tkind: \"lazyRelationModelName\",\n\t\tsource: \"lazyToken\",\n\t\tresolve: () => resolveNamedModelTokenName(target())\n\t};\n\treturn {\n\t\tkind: \"relationModelName\",\n\t\tsource: \"token\",\n\t\tmodelName: resolveNamedModelTokenName(target)\n\t};\n}\nfunction model(modelNameOrInput, maybeInput) {\n\tconst input = typeof modelNameOrInput === \"string\" ? maybeInput : modelNameOrInput;\n\tif (!input) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"model(\\\"ModelName\\\", ...) requires a model definition.\");\n\treturn new ContractModelBuilder({\n\t\t...typeof modelNameOrInput === \"string\" ? { modelName: modelNameOrInput } : {},\n\t\t...input.namespace !== void 0 ? { namespace: input.namespace } : {},\n\t\tfields: input.fields,\n\t\trelations: input.relations ?? {}\n\t});\n}\n/**\n* Factory for building a standalone branded extension model handle.\n*\n* Use this instead of `new ContractModelBuilder(…)` when constructing handles\n* for models that live in a foreign contract space (e.g. a Supabase extension\n* model referenced by a user's contract). The `spaceId` brands the returned\n* handle so `refs.<field>.spaceId` carries the foreign space identifier.\n*\n* @param name - The domain model name as declared in the foreign contract\n* (e.g. `'AuthUser'`, not a bare table alias like `'User'`).\n* @param input.namespace - The namespace within the foreign space (e.g. `'auth'`).\n* @param input.fields - Field definitions (use `field.column(…)`).\n* @param input.table - The physical table name in the foreign schema.\n* @param spaceId - The extension space identifier (e.g. `'supabase'`).\n*/\nfunction extensionModel(name, input, spaceId) {\n\treturn new ContractModelBuilder({\n\t\tmodelName: name,\n\t\tnamespace: input.namespace,\n\t\tfields: input.fields,\n\t\trelations: {}\n\t}, void 0, void 0, spaceId, input.table);\n}\nfunction isCrossSpaceHandle(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst rec = blindCast(value);\n\treturn typeof rec[\"spaceId\"] === \"string\" && typeof rec[\"stageOne\"] === \"object\" && rec[\"stageOne\"] !== null;\n}\nfunction belongsTo(toModel, options) {\n\tconst resolvedModel = typeof toModel === \"function\" ? toModel() : toModel;\n\tconst crossSpaceCoordinate = isCrossSpaceHandle(resolvedModel) ? {\n\t\tspaceId: resolvedModel.spaceId,\n\t\t...resolvedModel.tableName !== void 0 ? { tableName: resolvedModel.tableName } : {},\n\t\t...resolvedModel.stageOne.namespace !== void 0 ? { namespaceId: resolvedModel.stageOne.namespace } : {}\n\t} : void 0;\n\treturn new RelationBuilder({\n\t\tkind: \"belongsTo\",\n\t\ttoModel: normalizeRelationModelSource(toModel),\n\t\tfrom: options.from,\n\t\tto: options.to,\n\t\t...ifDefined(\"optional\", options.optional),\n\t\t...crossSpaceCoordinate !== void 0 ? crossSpaceCoordinate : {}\n\t});\n}\nfunction hasMany(toModel, options) {\n\treturn new RelationBuilder({\n\t\tkind: \"hasMany\",\n\t\ttoModel: normalizeRelationModelSource(toModel),\n\t\tby: options.by\n\t});\n}\nfunction hasOne(toModel, options) {\n\treturn new RelationBuilder({\n\t\tkind: \"hasOne\",\n\t\ttoModel: normalizeRelationModelSource(toModel),\n\t\tby: options.by\n\t});\n}\nfunction manyToMany(toModel, options) {\n\treturn new RelationBuilder({\n\t\tkind: \"manyToMany\",\n\t\ttoModel: normalizeRelationModelSource(toModel),\n\t\tthrough: normalizeRelationModelSource(options.through),\n\t\tfrom: options.from,\n\t\tto: options.to\n\t});\n}\nconst rel = {\n\tbelongsTo,\n\thasMany,\n\thasOne,\n\tmanyToMany\n};\nconst field = {\n\tcolumn: columnField,\n\tgenerated: generatedField,\n\tnamedType: namedTypeField\n};\nfunction isContractInput(value) {\n\tif (typeof value !== \"object\" || value === null || !(\"target\" in value) || !(\"family\" in value)) return false;\n\tconst target = value.target;\n\tconst family = value.family;\n\treturn typeof target === \"object\" && target !== null && \"kind\" in target && target.kind === \"target\" && typeof family === \"object\" && family !== null && \"kind\" in family && family.kind === \"family\";\n}\nfunction isRelationFieldArray(value) {\n\treturn Array.isArray(value);\n}\nfunction normalizeRelationFieldNames(value) {\n\tif (isRelationFieldArray(value)) return value;\n\treturn [value];\n}\nfunction resolveRelationModelName(value) {\n\tif (isLazyRelationModelName(value)) return value.resolve();\n\treturn value.modelName;\n}\nfunction applyNaming(name, strategy) {\n\tif (!strategy || strategy === \"identity\") return name;\n\tlet result = \"\";\n\tfor (let index = 0; index < name.length; index += 1) {\n\t\tconst char = name[index];\n\t\tif (!char) continue;\n\t\tconst lower = char.toLowerCase();\n\t\tif (char !== lower && index > 0) {\n\t\t\tconst prev = name[index - 1];\n\t\t\tconst next = name[index + 1];\n\t\t\tconst prevIsLower = !!prev && prev === prev.toLowerCase();\n\t\t\tconst nextIsLower = !!next && next === next.toLowerCase();\n\t\t\tif (prevIsLower || nextIsLower) result += \"_\";\n\t\t}\n\t\tresult += lower;\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/composed-authoring-helpers.ts\nfunction composeTypeNamespace(components) {\n\treturn composePackAuthoringNamespace(components, \"type\");\n}\nfunction composeFieldNamespace(components) {\n\treturn composePackAuthoringNamespace(components, \"field\");\n}\nfunction composeEntityNamespace(components) {\n\treturn composePackAuthoringNamespace(components, \"entityTypes\");\n}\n/**\n* Reserved top-level keys on the composed helpers surface — the\n* built-in `model` / `rel` helpers, the `field` / `type` / `gen` namespace\n* objects. Pack-contributed entity types are flattened to the same\n* top-level shape (e.g. `helpers.enum({...})`), so a pack cannot\n* contribute an entity type whose name collides with one of these\n* reserved keys without silently overwriting at runtime. Detect the\n* collision at compose time and fail loudly with a guidance message.\n*/\nconst RESERVED_HELPER_KEYS = [\n\t\"field\",\n\t\"model\",\n\t\"rel\",\n\t\"type\",\n\t\"gen\"\n];\nfunction assertNoBuiltInEntityCollisions(namespace) {\n\tconst collisions = Object.keys(namespace).filter((name) => RESERVED_HELPER_KEYS.includes(name));\n\tif (collisions.length > 0) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Pack-contributed entity type(s) ${collisions.map((c) => `\"${c}\"`).join(\", \")} collide with the reserved built-in helper key(s) on the composed helpers surface. Reserved keys: ${RESERVED_HELPER_KEYS.map((k) => `\"${k}\"`).join(\", \")}.`, { meta: {\n\t\tcollisions,\n\t\treservedKeys: RESERVED_HELPER_KEYS\n\t} });\n}\nfunction createComposedFieldHelpers(fieldNamespace, lookups) {\n\tconst helperNamespace = createFieldHelpersFromNamespace(fieldNamespace, ({ helperPath, descriptor }) => createFieldPresetHelper({\n\t\thelperPath,\n\t\tdescriptor,\n\t\tcodecLookup: lookups.codecLookup,\n\t\tdataTypes: lookups.dataTypes,\n\t\tbuild: ({ args, namedConstraintOptions }) => buildFieldPreset(descriptor, args, namedConstraintOptions)\n\t}));\n\tconst coreFieldHelpers = {\n\t\tcolumn: field.column,\n\t\tgenerated: field.generated,\n\t\tnamedType: field.namedType\n\t};\n\tconst coreHelperNames = new Set(Object.keys(coreFieldHelpers));\n\tfor (const helperName of Object.keys(helperNamespace)) if (coreHelperNames.has(helperName)) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Duplicate authoring field helper \"${helperName}\". Core field helpers reserve that name.`, { meta: { helperName } });\n\treturn {\n\t\t...coreFieldHelpers,\n\t\t...helperNamespace\n\t};\n}\nfunction createComposedAuthoringHelpers(options) {\n\tconst extensionValues = Object.values(options.extensions ?? {});\n\tconst components = [\n\t\toptions.family,\n\t\toptions.target,\n\t\t...extensionValues\n\t];\n\tconst typeNamespace = composeTypeNamespace(components);\n\tconst fieldNamespace = composeFieldNamespace(components);\n\tconst entityNamespace = composeEntityNamespace(components);\n\tassertNoCrossRegistryCollisions(typeNamespace, fieldNamespace, entityNamespace);\n\tassertNoBuiltInEntityCollisions(entityNamespace);\n\tconst { support } = assembleDataTypeSupport(components, (codecId) => options.codecLookup.descriptorFor(codecId)?.dataType);\n\tconst helperLookups = {\n\t\tcodecLookup: options.codecLookup,\n\t\tdataTypes: support\n\t};\n\treturn blindCast({\n\t\t...createEntityHelpersFromNamespace(entityNamespace, { ctx: {\n\t\t\tfamily: options.family.familyId,\n\t\t\ttarget: options.target.targetId,\n\t\t\tcodecLookup: options.codecLookup,\n\t\t\tdataTypeLookup: support.lookup\n\t\t} }),\n\t\tfield: createComposedFieldHelpers(fieldNamespace, helperLookups),\n\t\tmodel,\n\t\trel,\n\t\ttype: createTypeHelpersFromNamespace(typeNamespace, helperLookups),\n\t\tgen: createGeneratorHelpers([\n\t\t\toptions.family,\n\t\t\toptions.target,\n\t\t\t...extensionValues\n\t\t])\n\t});\n}\n//#endregion\n//#region src/contract-warnings.ts\nfunction hasNamedModelToken(models, modelName) {\n\treturn models[modelName]?.stageOne.modelName === modelName;\n}\nfunction formatFieldSelection(fieldNames) {\n\tif (fieldNames.length === 1) return `'${fieldNames[0]}'`;\n\treturn `[${fieldNames.map((fieldName) => `'${fieldName}'`).join(\", \")}]`;\n}\nfunction formatTokenFieldSelection(modelName, fieldNames) {\n\tif (fieldNames.length === 1) return `${modelName}.refs.${fieldNames[0]}`;\n\treturn `[${fieldNames.map((fieldName) => `${modelName}.refs.${fieldName}`).join(\", \")}]`;\n}\nfunction formatConstraintsRefCall(modelName, fieldNames) {\n\tif (fieldNames.length === 1) return `constraints.ref('${modelName}', '${fieldNames[0]}')`;\n\treturn `[${fieldNames.map((fieldName) => `constraints.ref('${modelName}', '${fieldName}')`).join(\", \")}]`;\n}\nfunction formatRelationModelDisplay(relationModel) {\n\tif (relationModel.kind === \"lazyRelationModelName\") return `() => ${relationModel.resolve()}`;\n\treturn relationModel.source === \"string\" ? `'${relationModel.modelName}'` : relationModel.modelName;\n}\nfunction formatRelationCall(relation, targetModelDisplay) {\n\tif (relation.kind === \"belongsTo\") return `rel.belongsTo(${targetModelDisplay}, { from: ${formatFieldSelection(normalizeRelationFieldNames(relation.from))}, to: ${formatFieldSelection(normalizeRelationFieldNames(relation.to))} })`;\n\tif (relation.kind === \"hasMany\" || relation.kind === \"hasOne\") {\n\t\tconst by = formatFieldSelection(normalizeRelationFieldNames(relation.by));\n\t\treturn `rel.${relation.kind}(${targetModelDisplay}, { by: ${by} })`;\n\t}\n\treturn `rel.manyToMany(${targetModelDisplay}, { through: ${formatRelationModelDisplay(relation.through)}, from: ${formatFieldSelection(normalizeRelationFieldNames(relation.from))}, to: ${formatFieldSelection(normalizeRelationFieldNames(relation.to))} })`;\n}\nfunction formatManyToManyCallWithThrough(relation, throughDisplay) {\n\treturn `rel.manyToMany(${formatRelationModelDisplay(relation.toModel)}, { through: ${throughDisplay}, from: ${formatFieldSelection(normalizeRelationFieldNames(relation.from))}, to: ${formatFieldSelection(normalizeRelationFieldNames(relation.to))} })`;\n}\nconst WARNING_BATCH_THRESHOLD = 5;\nfunction flushWarnings(warnings) {\n\tif (warnings.length === 0) return;\n\tif (warnings.length <= WARNING_BATCH_THRESHOLD) {\n\t\tfor (const message of warnings) process.emitWarning(message, { code: \"PN_CONTRACT_TYPED_FALLBACK_AVAILABLE\" });\n\t\treturn;\n\t}\n\tprocess.emitWarning(`${warnings.length} contract references use string fallbacks where typed alternatives are available. Use named model tokens and typed storage type refs for autocomplete and type safety.\n` + warnings.map((w) => ` - ${w}`).join(\"\\n\"), { code: \"PN_CONTRACT_TYPED_FALLBACK_AVAILABLE\" });\n}\nfunction formatFallbackWarning(location, current, suggested) {\n\treturn `Contract ${location} uses ${current}. Use ${suggested} when the named model token is available in the same contract to keep typed relation targets and model refs.`;\n}\nfunction emitTypedNamedTypeFallbackWarnings(models, storageTypes) {\n\tconst warnings = [];\n\tconst warnedFields = /* @__PURE__ */ new Set();\n\tfor (const [modelName, modelDefinition] of Object.entries(models)) for (const [fieldName, fieldBuilder] of Object.entries(modelDefinition.stageOne.fields)) {\n\t\tconst fieldState = fieldBuilder.build();\n\t\tif (typeof fieldState.typeRef !== \"string\" || !(fieldState.typeRef in storageTypes)) continue;\n\t\tconst warningKey = `${modelName}.${fieldName}`;\n\t\tif (warnedFields.has(warningKey)) continue;\n\t\twarnedFields.add(warningKey);\n\t\twarnings.push(`Contract field \"${modelName}.${fieldName}\" uses field.namedType('${fieldState.typeRef}'). Use field.namedType(types.${fieldState.typeRef}) when the storage type is declared in the same contract to keep autocomplete and typed local refs.`);\n\t}\n\tflushWarnings(warnings);\n}\nfunction emitTypedCrossModelFallbackWarnings(collection) {\n\tconst warnings = [];\n\tconst warnedKeys = /* @__PURE__ */ new Set();\n\tfor (const spec of collection.modelSpecs.values()) {\n\t\tfor (const [relationName, relationBuilder] of Object.entries(spec.relations)) {\n\t\t\tconst relation = relationBuilder.build();\n\t\t\tif (relation.toModel.kind === \"relationModelName\" && relation.toModel.source === \"string\" && hasNamedModelToken(collection.models, relation.toModel.modelName)) {\n\t\t\t\tconst warningKey = `${spec.modelName}.${relationName}.toModel`;\n\t\t\t\tif (!warnedKeys.has(warningKey)) {\n\t\t\t\t\twarnedKeys.add(warningKey);\n\t\t\t\t\tconst current = formatRelationCall(relation, `'${relation.toModel.modelName}'`);\n\t\t\t\t\tconst suggested = formatRelationCall(relation, relation.toModel.modelName);\n\t\t\t\t\twarnings.push(formatFallbackWarning(`relation \"${spec.modelName}.${relationName}\"`, current, suggested));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (relation.kind === \"manyToMany\" && relation.through.kind === \"relationModelName\" && relation.through.source === \"string\" && hasNamedModelToken(collection.models, relation.through.modelName)) {\n\t\t\t\tconst warningKey = `${spec.modelName}.${relationName}.through`;\n\t\t\t\tif (!warnedKeys.has(warningKey)) {\n\t\t\t\t\twarnedKeys.add(warningKey);\n\t\t\t\t\tconst current = formatManyToManyCallWithThrough(relation, `'${relation.through.modelName}'`);\n\t\t\t\t\tconst suggested = formatManyToManyCallWithThrough(relation, relation.through.modelName);\n\t\t\t\t\twarnings.push(formatFallbackWarning(`relation \"${spec.modelName}.${relationName}\"`, current, suggested));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const [foreignKeyIndex, foreignKey] of (spec.sqlSpec?.foreignKeys ?? []).entries()) {\n\t\t\tif (foreignKey.targetSource !== \"string\" || !hasNamedModelToken(collection.models, foreignKey.targetModel)) continue;\n\t\t\tconst warningKey = `${spec.modelName}.sql.foreignKeys.${foreignKeyIndex}`;\n\t\t\tif (warnedKeys.has(warningKey)) continue;\n\t\t\twarnedKeys.add(warningKey);\n\t\t\tconst current = formatConstraintsRefCall(foreignKey.targetModel, foreignKey.targetFields);\n\t\t\tconst suggested = formatTokenFieldSelection(foreignKey.targetModel, foreignKey.targetFields);\n\t\t\twarnings.push(formatFallbackWarning(`model \"${spec.modelName}\"`, `${current} in .sql(...)`, suggested));\n\t\t}\n\t}\n\tflushWarnings(warnings);\n}\n//#endregion\n//#region src/contract-lowering.ts\nfunction buildStorageTypeReverseLookup(storageTypes) {\n\tconst lookup = /* @__PURE__ */ new Map();\n\tfor (const [key, instance] of Object.entries(storageTypes)) lookup.set(instance, key);\n\treturn lookup;\n}\nfunction resolveFieldDescriptor(modelName, fieldName, fieldState, storageTypes, storageTypeReverseLookup) {\n\tif (\"descriptor\" in fieldState && fieldState.descriptor) return fieldState.descriptor;\n\tif (\"typeRef\" in fieldState && fieldState.typeRef) {\n\t\tif (isEnumTypeHandle(fieldState.typeRef)) return { codecId: fieldState.typeRef.codecId };\n\t\tconst typeRef = typeof fieldState.typeRef === \"string\" ? fieldState.typeRef : storageTypeReverseLookup.get(fieldState.typeRef);\n\t\tif (!typeRef) throw contractError(\"CONTRACT.TYPE_UNKNOWN\", `Field \"${modelName}.${fieldName}\" references a storage type instance that is not present in definition.types`, { meta: {\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\treason: \"instance-not-in-definition-types\"\n\t\t} });\n\t\tconst referencedType = storageTypes[typeRef];\n\t\tif (!referencedType) throw contractError(\"CONTRACT.TYPE_UNKNOWN\", `Field \"${modelName}.${fieldName}\" references unknown storage type \"${typeRef}\"`, { meta: {\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\ttypeRef\n\t\t} });\n\t\treturn {\n\t\t\tcodecId: referencedType.codecId,\n\t\t\ttypeRef\n\t\t};\n\t}\n\tthrow contractError(\"CONTRACT.TYPE_UNKNOWN\", `Field \"${modelName}.${fieldName}\" does not resolve to a storage descriptor`, { meta: {\n\t\tmodelName,\n\t\tfieldName,\n\t\treason: \"unresolved-storage-descriptor\"\n\t} });\n}\nfunction mapFieldNamesToColumnNames(modelName, fieldNames, fieldToColumn) {\n\treturn fieldNames.map((fieldName) => {\n\t\tconst columnName = fieldToColumn[fieldName];\n\t\tif (!columnName) throw contractError(\"CONTRACT.FIELD_UNKNOWN\", `Unknown field \"${modelName}.${fieldName}\" in contract definition`, { meta: {\n\t\t\tmodelName,\n\t\t\tfieldName\n\t\t} });\n\t\treturn columnName;\n\t});\n}\nfunction assertRelationFieldArity(params) {\n\tif (params.leftFields.length === params.rightFields.length) return;\n\tthrow contractError(\"CONTRACT.RELATION_INVALID\", `Relation \"${params.modelName}.${params.relationName}\" maps ${params.leftFields.length} ${params.leftLabel} field(s) to ${params.rightFields.length} ${params.rightLabel} field(s).`, { meta: {\n\t\tmodelName: params.modelName,\n\t\trelationName: params.relationName,\n\t\treason: \"field-count-mismatch\"\n\t} });\n}\nfunction resolveInlineIdConstraint(spec) {\n\tconst inlineIdFields = [];\n\tlet idName;\n\tfor (const [fieldName, fieldBuilder] of Object.entries(spec.fieldBuilders)) {\n\t\tconst fieldState = fieldBuilder.build();\n\t\tif (!fieldState.id) continue;\n\t\tinlineIdFields.push(fieldName);\n\t\tif (fieldState.id.name) idName = fieldState.id.name;\n\t}\n\tif (inlineIdFields.length === 0) return;\n\tif (inlineIdFields.length > 1) throw contractError(\"CONTRACT.IDENTITY_INVALID\", `Model \"${spec.modelName}\" marks multiple fields with .id(). Use .attributes(...) for compound identities.`, { meta: {\n\t\tmodelName: spec.modelName,\n\t\treason: \"multiple-inline-ids\",\n\t\tfields: inlineIdFields\n\t} });\n\tconst [inlineIdField] = inlineIdFields;\n\tif (!inlineIdField) return;\n\treturn {\n\t\tkind: \"id\",\n\t\tfields: [inlineIdField],\n\t\t...idName ? { name: idName } : {}\n\t};\n}\nfunction collectInlineUniqueConstraints(spec) {\n\tconst constraints = [];\n\tfor (const [fieldName, fieldBuilder] of Object.entries(spec.fieldBuilders)) {\n\t\tconst fieldState = fieldBuilder.build();\n\t\tif (!fieldState.unique) continue;\n\t\tconstraints.push({\n\t\t\tkind: \"unique\",\n\t\t\tfields: [fieldName],\n\t\t\t...fieldState.unique.name ? { name: fieldState.unique.name } : {}\n\t\t});\n\t}\n\treturn constraints;\n}\nfunction resolveModelIdConstraint(spec) {\n\tconst inlineId = resolveInlineIdConstraint(spec);\n\tconst attributeId = spec.attributesSpec?.id;\n\tif (inlineId && attributeId) throw contractError(\"CONTRACT.IDENTITY_INVALID\", `Model \"${spec.modelName}\" defines identity both inline and in .attributes(...). Pick one identity style.`, { meta: {\n\t\tmodelName: spec.modelName,\n\t\treason: \"inline-and-attributes\"\n\t} });\n\tconst resolvedId = attributeId ?? inlineId;\n\tif (resolvedId && resolvedId.fields.length === 0) throw contractError(\"CONTRACT.IDENTITY_INVALID\", `Model \"${spec.modelName}\" defines an empty identity. Add at least one field.`, { meta: {\n\t\tmodelName: spec.modelName,\n\t\treason: \"empty-identity\"\n\t} });\n\treturn resolvedId;\n}\nfunction resolveModelUniqueConstraints(spec) {\n\tconst attributeUniques = spec.attributesSpec?.uniques ?? [];\n\tfor (const unique of attributeUniques) if (unique.fields.length === 0) throw contractError(\"CONTRACT.CONSTRAINT_INVALID\", `Model \"${spec.modelName}\" defines an empty unique constraint. Add at least one field.`, { meta: { modelName: spec.modelName } });\n\treturn [...collectInlineUniqueConstraints(spec), ...attributeUniques];\n}\nfunction resolveRelationForeignKeys(spec, allSpecs) {\n\tconst foreignKeys = [];\n\tfor (const [relationName, relationBuilder] of Object.entries(spec.relations)) {\n\t\tconst relation = relationBuilder.build();\n\t\tif (relation.kind !== \"belongsTo\" || !relation.sql?.fk) continue;\n\t\tconst targetModelName = resolveRelationModelName(relation.toModel);\n\t\tif (relation.spaceId !== void 0) {\n\t\t\tconst fields = normalizeRelationFieldNames(relation.from);\n\t\t\tconst targetFields = normalizeRelationFieldNames(relation.to);\n\t\t\tassertRelationFieldArity({\n\t\t\t\tmodelName: spec.modelName,\n\t\t\t\trelationName,\n\t\t\t\tleftLabel: \"source\",\n\t\t\t\tleftFields: fields,\n\t\t\t\trightLabel: \"target\",\n\t\t\t\trightFields: targetFields\n\t\t\t});\n\t\t\tforeignKeys.push({\n\t\t\t\tkind: \"fk\",\n\t\t\t\tfields,\n\t\t\t\ttargetModel: targetModelName,\n\t\t\t\ttargetFields,\n\t\t\t\ttargetSpaceId: relation.spaceId,\n\t\t\t\t...relation.namespaceId !== void 0 ? { targetNamespaceId: relation.namespaceId } : {},\n\t\t\t\t...relation.tableName !== void 0 ? { targetTableName: relation.tableName } : {},\n\t\t\t\t...relation.sql.fk.name ? { name: relation.sql.fk.name } : {},\n\t\t\t\t...relation.sql.fk.onDelete ? { onDelete: relation.sql.fk.onDelete } : {},\n\t\t\t\t...relation.sql.fk.onUpdate ? { onUpdate: relation.sql.fk.onUpdate } : {},\n\t\t\t\t...relation.sql.fk.constraint !== void 0 ? { constraint: relation.sql.fk.constraint } : {},\n\t\t\t\t...relation.sql.fk.index !== void 0 ? { index: relation.sql.fk.index } : {}\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!allSpecs.has(targetModelName)) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `Relation \"${spec.modelName}.${relationName}\" references unknown model \"${targetModelName}\"`, { meta: {\n\t\t\tsourceModel: spec.modelName,\n\t\t\trelationName,\n\t\t\ttargetModel: targetModelName\n\t\t} });\n\t\tconst fields = normalizeRelationFieldNames(relation.from);\n\t\tconst targetFields = normalizeRelationFieldNames(relation.to);\n\t\tassertRelationFieldArity({\n\t\t\tmodelName: spec.modelName,\n\t\t\trelationName,\n\t\t\tleftLabel: \"source\",\n\t\t\tleftFields: fields,\n\t\t\trightLabel: \"target\",\n\t\t\trightFields: targetFields\n\t\t});\n\t\tforeignKeys.push({\n\t\t\tkind: \"fk\",\n\t\t\tfields,\n\t\t\ttargetModel: targetModelName,\n\t\t\ttargetFields,\n\t\t\t...relation.sql.fk.name ? { name: relation.sql.fk.name } : {},\n\t\t\t...relation.sql.fk.onDelete ? { onDelete: relation.sql.fk.onDelete } : {},\n\t\t\t...relation.sql.fk.onUpdate ? { onUpdate: relation.sql.fk.onUpdate } : {},\n\t\t\t...relation.sql.fk.constraint !== void 0 ? { constraint: relation.sql.fk.constraint } : {},\n\t\t\t...relation.sql.fk.index !== void 0 ? { index: relation.sql.fk.index } : {}\n\t\t});\n\t}\n\treturn foreignKeys;\n}\nfunction resolveRelationAnchorFields(spec) {\n\tconst idFields = spec.idConstraint?.fields;\n\tif (idFields && idFields.length > 0) return idFields;\n\tif (\"id\" in spec.fieldToColumn) return [\"id\"];\n\tthrow contractError(\"CONTRACT.IDENTITY_INVALID\", `Model \"${spec.modelName}\" needs an explicit id or an \"id\" field to anchor non-owning relations`, { meta: {\n\t\tmodelName: spec.modelName,\n\t\treason: \"missing-anchor-id\"\n\t} });\n}\nfunction belongsToNullable(relationName, declaredNullable, spec, fieldNames) {\n\tconst { nullable, contradiction } = resolveToOneRelationNullable({\n\t\tdeclaredNullable,\n\t\tlocalFieldNullability: fieldNames.map((fieldName) => spec.fieldBuilders[fieldName]?.build().nullable === true),\n\t\townsReference: true\n\t});\n\tif (contradiction !== void 0) throw contractError(\"CONTRACT.RELATION_INVALID\", toOneNullabilityContradictionMessage(`Relation \"${spec.modelName}.${relationName}\"`, contradiction), { meta: {\n\t\tmodelName: spec.modelName,\n\t\trelationName,\n\t\treason: \"to-one-nullability-mismatch\"\n\t} });\n\treturn nullable;\n}\nfunction lowerBelongsToRelation(relationName, relation, currentSpec, allSpecs, extensions) {\n\tconst targetModelName = resolveRelationModelName(relation.toModel);\n\tconst fromFields = normalizeRelationFieldNames(relation.from);\n\tconst toFields = normalizeRelationFieldNames(relation.to);\n\tassertRelationFieldArity({\n\t\tmodelName: currentSpec.modelName,\n\t\trelationName,\n\t\tleftLabel: \"source\",\n\t\tleftFields: fromFields,\n\t\trightLabel: \"target\",\n\t\trightFields: toFields\n\t});\n\tif (relation.spaceId !== void 0) {\n\t\tassertKnownExtensionPack(extensions, relation.spaceId, `Relation \"${currentSpec.modelName}.${relationName}\"`);\n\t\tconst parentColumns = mapFieldNamesToColumnNames(currentSpec.modelName, fromFields, currentSpec.fieldToColumn);\n\t\treturn {\n\t\t\tfieldName: relationName,\n\t\t\ttoModel: targetModelName,\n\t\t\ttoTable: relation.tableName,\n\t\t\tcardinality: \"N:1\",\n\t\t\tnullable: belongsToNullable(relationName, relation.optional, currentSpec, fromFields),\n\t\t\tspaceId: relation.spaceId,\n\t\t\t...relation.namespaceId !== void 0 ? { namespaceId: relation.namespaceId } : {},\n\t\t\ton: {\n\t\t\t\tparentTable: currentSpec.tableName,\n\t\t\t\tparentColumns,\n\t\t\t\tchildTable: relation.tableName,\n\t\t\t\tchildColumns: toFields\n\t\t\t}\n\t\t};\n\t}\n\tconst targetSpec = allSpecs.get(targetModelName);\n\tif (!targetSpec) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `Relation \"${currentSpec.modelName}.${relationName}\" references unknown model \"${targetModelName}\"`, { meta: {\n\t\tsourceModel: currentSpec.modelName,\n\t\trelationName,\n\t\ttargetModel: targetModelName\n\t} });\n\treturn {\n\t\tfieldName: relationName,\n\t\ttoModel: targetModelName,\n\t\ttoTable: targetSpec.tableName,\n\t\tcardinality: \"N:1\",\n\t\tnullable: belongsToNullable(relationName, relation.optional, currentSpec, fromFields),\n\t\ton: {\n\t\t\tparentTable: currentSpec.tableName,\n\t\t\tparentColumns: mapFieldNamesToColumnNames(currentSpec.modelName, fromFields, currentSpec.fieldToColumn),\n\t\t\tchildTable: targetSpec.tableName,\n\t\t\tchildColumns: mapFieldNamesToColumnNames(targetSpec.modelName, toFields, targetSpec.fieldToColumn)\n\t\t}\n\t};\n}\nfunction lowerHasOwnershipRelation(relationName, relation, currentSpec, allSpecs) {\n\tconst targetModelName = resolveRelationModelName(relation.toModel);\n\tconst targetSpec = allSpecs.get(targetModelName);\n\tif (!targetSpec) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `Relation \"${currentSpec.modelName}.${relationName}\" references unknown model \"${targetModelName}\"`, { meta: {\n\t\tsourceModel: currentSpec.modelName,\n\t\trelationName,\n\t\ttargetModel: targetModelName\n\t} });\n\tconst parentFields = resolveRelationAnchorFields(currentSpec);\n\tconst childFields = normalizeRelationFieldNames(relation.by);\n\tassertRelationFieldArity({\n\t\tmodelName: currentSpec.modelName,\n\t\trelationName,\n\t\tleftLabel: \"anchor\",\n\t\tleftFields: parentFields,\n\t\trightLabel: \"child\",\n\t\trightFields: childFields\n\t});\n\treturn {\n\t\tfieldName: relationName,\n\t\ttoModel: targetModelName,\n\t\ttoTable: targetSpec.tableName,\n\t\t...relation.kind === \"hasMany\" ? { cardinality: \"1:N\" } : {\n\t\t\tcardinality: \"1:1\",\n\t\t\tnullable: true\n\t\t},\n\t\ton: {\n\t\t\tparentTable: currentSpec.tableName,\n\t\t\tparentColumns: mapFieldNamesToColumnNames(currentSpec.modelName, parentFields, currentSpec.fieldToColumn),\n\t\t\tchildTable: targetSpec.tableName,\n\t\t\tchildColumns: mapFieldNamesToColumnNames(targetSpec.modelName, childFields, targetSpec.fieldToColumn)\n\t\t}\n\t};\n}\nfunction lowerManyToManyRelation(relationName, relation, currentSpec, allSpecs) {\n\tconst targetModelName = resolveRelationModelName(relation.toModel);\n\tconst targetSpec = allSpecs.get(targetModelName);\n\tif (!targetSpec) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `Relation \"${currentSpec.modelName}.${relationName}\" references unknown model \"${targetModelName}\"`, { meta: {\n\t\tsourceModel: currentSpec.modelName,\n\t\trelationName,\n\t\ttargetModel: targetModelName\n\t} });\n\tconst throughModelName = resolveRelationModelName(relation.through);\n\tconst throughSpec = allSpecs.get(throughModelName);\n\tif (!throughSpec) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `Relation \"${currentSpec.modelName}.${relationName}\" references unknown through model \"${throughModelName}\"`, { meta: {\n\t\tsourceModel: currentSpec.modelName,\n\t\trelationName,\n\t\ttargetModel: throughModelName\n\t} });\n\tconst currentAnchorFields = resolveRelationAnchorFields(currentSpec);\n\tconst targetAnchorFields = resolveRelationAnchorFields(targetSpec);\n\tconst throughFromFields = normalizeRelationFieldNames(relation.from);\n\tconst throughToFields = normalizeRelationFieldNames(relation.to);\n\tif (currentAnchorFields.length !== throughFromFields.length || targetAnchorFields.length !== throughToFields.length) throw contractError(\"CONTRACT.RELATION_INVALID\", `Relation \"${currentSpec.modelName}.${relationName}\" has mismatched many-to-many field counts.`, { meta: {\n\t\tmodelName: currentSpec.modelName,\n\t\trelationName,\n\t\treason: \"many-to-many-field-count-mismatch\"\n\t} });\n\treturn {\n\t\tfieldName: relationName,\n\t\ttoModel: targetModelName,\n\t\ttoTable: targetSpec.tableName,\n\t\tcardinality: \"N:M\",\n\t\tthrough: {\n\t\t\ttable: throughSpec.tableName,\n\t\t\t...ifDefined(\"namespaceId\", throughSpec.namespace),\n\t\t\tparentColumns: mapFieldNamesToColumnNames(throughSpec.modelName, throughFromFields, throughSpec.fieldToColumn),\n\t\t\tchildColumns: mapFieldNamesToColumnNames(throughSpec.modelName, throughToFields, throughSpec.fieldToColumn)\n\t\t},\n\t\ton: {\n\t\t\tparentTable: currentSpec.tableName,\n\t\t\tparentColumns: mapFieldNamesToColumnNames(currentSpec.modelName, currentAnchorFields, currentSpec.fieldToColumn),\n\t\t\tchildTable: throughSpec.tableName,\n\t\t\tchildColumns: mapFieldNamesToColumnNames(throughSpec.modelName, throughFromFields, throughSpec.fieldToColumn)\n\t\t}\n\t};\n}\nfunction resolveRelationNode(relationName, relation, currentSpec, allSpecs, extensions) {\n\tif (relation.kind === \"belongsTo\") return lowerBelongsToRelation(relationName, relation, currentSpec, allSpecs, extensions);\n\tif (relation.kind === \"hasMany\" || relation.kind === \"hasOne\") return lowerHasOwnershipRelation(relationName, relation, currentSpec, allSpecs);\n\treturn lowerManyToManyRelation(relationName, relation, currentSpec, allSpecs);\n}\nfunction lowerLocalForeignKeyNode(spec, targetSpec, foreignKey) {\n\treturn {\n\t\tcolumns: mapFieldNamesToColumnNames(spec.modelName, foreignKey.fields, spec.fieldToColumn),\n\t\treferences: {\n\t\t\tmodel: targetSpec.modelName,\n\t\t\ttable: targetSpec.tableName,\n\t\t\tcolumns: mapFieldNamesToColumnNames(targetSpec.modelName, foreignKey.targetFields, targetSpec.fieldToColumn)\n\t\t},\n\t\t...foreignKey.name ? { name: foreignKey.name } : {},\n\t\t...foreignKey.onDelete ? { onDelete: foreignKey.onDelete } : {},\n\t\t...foreignKey.onUpdate ? { onUpdate: foreignKey.onUpdate } : {},\n\t\t...foreignKey.constraint !== void 0 ? { constraint: foreignKey.constraint } : {},\n\t\t...foreignKey.index !== void 0 ? { index: foreignKey.index } : {}\n\t};\n}\nfunction lowerCrossSpaceForeignKeyNode(spec, foreignKey) {\n\tif (foreignKey.targetTableName === void 0) throw contractError(\"CONTRACT.FOREIGN_KEY_INVALID\", `Foreign key on \"${spec.modelName}\" references model \"${foreignKey.targetModel}\" in contract space \"${foreignKey.targetSpaceId}\" but the target table name is unknown: the handle's .sql() stage is a factory function, so its table cannot be read statically. Declare the target model's .sql() stage with a static object carrying \\`table\\`.`, { meta: {\n\t\tsourceModel: spec.modelName,\n\t\ttargetModel: foreignKey.targetModel,\n\t\tspaceId: foreignKey.targetSpaceId\n\t} });\n\treturn {\n\t\tcolumns: mapFieldNamesToColumnNames(spec.modelName, foreignKey.fields, spec.fieldToColumn),\n\t\treferences: {\n\t\t\tmodel: foreignKey.targetModel,\n\t\t\ttable: foreignKey.targetTableName,\n\t\t\tcolumns: foreignKey.targetFields,\n\t\t\t...foreignKey.targetNamespaceId !== void 0 ? { namespaceId: foreignKey.targetNamespaceId } : {},\n\t\t\tspaceId: foreignKey.targetSpaceId\n\t\t},\n\t\t...foreignKey.name ? { name: foreignKey.name } : {},\n\t\t...foreignKey.onDelete ? { onDelete: foreignKey.onDelete } : {},\n\t\t...foreignKey.onUpdate ? { onUpdate: foreignKey.onUpdate } : {},\n\t\t...foreignKey.constraint !== void 0 ? { constraint: foreignKey.constraint } : {},\n\t\t...foreignKey.index !== void 0 ? { index: foreignKey.index } : {}\n\t};\n}\nfunction assertKnownExtensionPack(extensions, spaceId, context) {\n\tif (extensions !== void 0 && Object.hasOwn(extensions, spaceId)) return;\n\tthrow contractError(\"CONTRACT.PACK_MISSING\", `${context} references contract space \"${spaceId}\" but \"${spaceId}\" is not declared in extensions. Add the pack to extensions.`, { meta: {\n\t\tspaceId,\n\t\tcontext\n\t} });\n}\nfunction resolveForeignKeyNodes(spec, allSpecs, extensions) {\n\tconst relationForeignKeys = resolveRelationForeignKeys(spec, allSpecs).map((foreignKey) => {\n\t\tif (foreignKey.targetSpaceId !== void 0) {\n\t\t\tassertKnownExtensionPack(extensions, foreignKey.targetSpaceId, `Relation-derived foreign key on \"${spec.modelName}\"`);\n\t\t\treturn lowerCrossSpaceForeignKeyNode(spec, {\n\t\t\t\t...foreignKey,\n\t\t\t\ttargetSpaceId: foreignKey.targetSpaceId\n\t\t\t});\n\t\t}\n\t\tconst targetSpec = allSpecs.get(foreignKey.targetModel);\n\t\tif (!targetSpec) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `Foreign key on \"${spec.modelName}\" references unknown model \"${foreignKey.targetModel}\"`, { meta: {\n\t\t\tsourceModel: spec.modelName,\n\t\t\ttargetModel: foreignKey.targetModel\n\t\t} });\n\t\treturn lowerLocalForeignKeyNode(spec, targetSpec, foreignKey);\n\t});\n\tconst sqlForeignKeys = (spec.sqlSpec?.foreignKeys ?? []).map((foreignKey) => {\n\t\tif (foreignKey.targetSpaceId !== void 0) {\n\t\t\tassertKnownExtensionPack(extensions, foreignKey.targetSpaceId, `Foreign key on \"${spec.modelName}\"`);\n\t\t\treturn lowerCrossSpaceForeignKeyNode(spec, {\n\t\t\t\t...foreignKey,\n\t\t\t\ttargetSpaceId: foreignKey.targetSpaceId\n\t\t\t});\n\t\t}\n\t\tconst targetSpec = allSpecs.get(foreignKey.targetModel);\n\t\tif (!targetSpec) throw contractError(\"CONTRACT.MODEL_UNKNOWN\", `Foreign key on \"${spec.modelName}\" references unknown model \"${foreignKey.targetModel}\"`, { meta: {\n\t\t\tsourceModel: spec.modelName,\n\t\t\ttargetModel: foreignKey.targetModel\n\t\t} });\n\t\treturn lowerLocalForeignKeyNode(spec, targetSpec, foreignKey);\n\t});\n\treturn [...relationForeignKeys, ...sqlForeignKeys];\n}\n/**\n* Resolves a deferred index expression's field refs the way the field-tuple form\n* resolves its columns, and pairs each with the codec the column stores through\n* so a renderer can refuse a column it cannot express.\n*/\nfunction resolveDeferredColumns(spec, fieldNames, fieldCodecIds) {\n\tconst columnNames = mapFieldNamesToColumnNames(spec.modelName, fieldNames, spec.fieldToColumn);\n\treturn fieldNames.map((fieldName, position) => {\n\t\tconst name = columnNames[position];\n\t\tconst codecId = fieldCodecIds[fieldName];\n\t\tif (name === void 0 || codecId === void 0) throw new InternalError(`Deferred index expression on \"${spec.modelName}\" resolved no column for field \"${fieldName}\"`);\n\t\treturn {\n\t\t\tname,\n\t\t\tcodecId\n\t\t};\n\t});\n}\n/**\n* The text of an index expression. A string has no `render`, and `'render' in` a string throws a\n* `TypeError`, so the `sql` value is recognized first and anything else is refused last.\n*/\nfunction indexExpressionText(spec, expression, fieldCodecIds, owner) {\n\tconst sqlExpression = readSqlExpression(expression);\n\tif (sqlExpression !== void 0) return sqlExpression.text;\n\tif (typeof expression === \"object\" && expression !== null && \"render\" in expression) return renderedSqlText(expression.render(resolveDeferredColumns(spec, expression.fields.map((ref) => ref.fieldName), fieldCodecIds)), `${owner} expression`);\n\treturn requireSqlExpression(expression, `${owner} expression`).text;\n}\nfunction renderedSqlText(rendered, what) {\n\ttry {\n\t\treturn new SqlExpression(rendered).text;\n\t} catch (cause) {\n\t\tif (!isStructuredError(cause) || cause.code !== \"CONTRACT.SQL_EXPRESSION_INVALID\") throw cause;\n\t\tthrow contractError(\"CONTRACT.SQL_EXPRESSION_INVALID\", `${what}: ${cause.message}`, {\n\t\t\tmeta: {\n\t\t\t\twhat,\n\t\t\t\t...cause.meta\n\t\t\t},\n\t\t\tcause\n\t\t});\n\t}\n}\nfunction constraintOwner(kind, modelName, constraint) {\n\tconst name = constraint.name ?? constraint.map;\n\treturn name === void 0 ? `${kind} on \"${modelName}\"` : `${kind} \"${name}\"`;\n}\n/** The fields an index covers, in order: its own, or those of its deferred expression. */\nfunction coveredFieldNames(index) {\n\tif (index.fields !== void 0) return index.fields;\n\tconst { expression } = index;\n\tif (expression === void 0 || isSqlExpression(expression) || typeof expression !== \"object\") return [];\n\treturn expression.fields.map((ref) => ref.fieldName);\n}\n/**\n* The generators a field's `.onCreate(...)` and `.onUpdate(...)` calls resolve to for its column, merged over the phases a field preset or `field.generated(...)` sets.\n*/\nfunction resolveGeneratorCalls(input) {\n\tconst { modelName, fieldName, fieldState, descriptor, generatorFunctions } = input;\n\tconst calls = fieldState.generatorCalls;\n\tif (calls === void 0) return fieldState.executionDefaults;\n\tconst typeParams = descriptor.typeParams ?? (descriptor.typeRef === void 0 ? void 0 : input.storageTypes[descriptor.typeRef]?.typeParams);\n\tconst column = {\n\t\tcodecId: descriptor.codecId,\n\t\ttypeParams,\n\t\tlength: input.columnLength(descriptor.codecId, typeParams)\n\t};\n\tconst phases = { ...fieldState.executionDefaults };\n\tfor (const phase of [\"onCreate\", \"onUpdate\"]) {\n\t\tconst call = calls[phase];\n\t\tif (call === void 0) continue;\n\t\tif (fieldState.many !== false) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `Field \"${modelName}.${fieldName}\" is a list and cannot use .${phase}(${call.name}()). Lists have no per-element generated values; remove .${phase}(...).`, { meta: {\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\tcodecId: column.codecId,\n\t\t\tfunction: call.name,\n\t\t\treason: \"generator-on-list\"\n\t\t} });\n\t\tconst resolution = generatorFunctions.resolve(call, column);\n\t\tif (resolution.ok) {\n\t\t\tphases[phase] = resolution.generator;\n\t\t\tcontinue;\n\t\t}\n\t\tconst meta = {\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\tcodecId: column.codecId,\n\t\t\tfunction: call.name\n\t\t};\n\t\tif (resolution.reason === \"unknown-function\") throw contractError(\"CONTRACT.DEFAULT_INVALID\", `Field \"${modelName}.${fieldName}\": no pack in the contract declares the generator function \"${call.name}\".`, { meta: {\n\t\t\t...meta,\n\t\t\treason: \"generator-unknown\"\n\t\t} });\n\t\tconst applying = generatorFunctions.functionsFor(column.codecId).map(({ name }) => `${name}()`);\n\t\tthrow contractError(\"CONTRACT.DEFAULT_INVALID\", resolution.reason === \"refused\" ? `Field \"${modelName}.${fieldName}\": ${resolution.message}` : `Field \"${modelName}.${fieldName}\": ${call.name}() does not apply to codec \"${column.codecId}\". ${applying.length === 0 ? \"No generator function applies to this codec.\" : `Functions that apply: ${applying.join(\", \")}.`}`, { meta: {\n\t\t\t...meta,\n\t\t\treason: \"generator-not-applicable\"\n\t\t} });\n\t}\n\treturn phases;\n}\nfunction resolveModelNode(spec, allSpecs, storageTypes, storageTypeReverseLookup, generatorFunctions, columnLength, extensions) {\n\tconst fields = [];\n\t/** Filled by the field loop below, read by a deferred index expression. */\n\tconst fieldCodecIds = {};\n\tfor (const [fieldName, fieldBuilder] of Object.entries(spec.fieldBuilders)) {\n\t\tconst fieldState = fieldBuilder.build();\n\t\tconst descriptor = resolveFieldDescriptor(spec.modelName, fieldName, fieldState, storageTypes, storageTypeReverseLookup);\n\t\tconst columnName = spec.fieldToColumn[fieldName];\n\t\tif (!columnName) throw new InternalError(`Column name resolution failed for \"${spec.modelName}.${fieldName}\"`);\n\t\tfieldCodecIds[fieldName] = descriptor.codecId;\n\t\tconst enumHandle = \"typeRef\" in fieldState && isEnumTypeHandle(fieldState.typeRef) ? fieldState.typeRef : void 0;\n\t\tconst executionDefaults = resolveGeneratorCalls({\n\t\t\tmodelName: spec.modelName,\n\t\t\tfieldName,\n\t\t\tfieldState,\n\t\t\tdescriptor,\n\t\t\tstorageTypes,\n\t\t\tgeneratorFunctions,\n\t\t\tcolumnLength\n\t\t});\n\t\tfields.push({\n\t\t\tfieldName,\n\t\t\tcolumnName,\n\t\t\tdescriptor,\n\t\t\tnullable: fieldState.nullable,\n\t\t\tmany: fieldState.many !== false,\n\t\t\t...fieldState.many !== false ? { elementNullable: fieldState.many.elementNullable } : {},\n\t\t\t...fieldState.default ? { default: fieldState.default } : {},\n\t\t\t...ifDefined(\"executionDefaults\", executionDefaults),\n\t\t\t...enumHandle !== void 0 ? { enumTypeHandle: enumHandle } : {}\n\t\t});\n\t}\n\tconst { idConstraint } = spec;\n\tconst uniques = resolveModelUniqueConstraints(spec).map((unique) => ({\n\t\tcolumns: mapFieldNamesToColumnNames(spec.modelName, unique.fields, spec.fieldToColumn),\n\t\t...unique.name ? { name: unique.name } : {}\n\t}));\n\tconst indexes = (spec.sqlSpec?.indexes ?? []).map((index) => {\n\t\tconst options = typeof index.options === \"function\" ? index.options(resolveDeferredColumns(spec, coveredFieldNames(index), fieldCodecIds)) : index.options;\n\t\tconst method = blindCast({\n\t\t\ttype: index.type,\n\t\t\toptions\n\t\t});\n\t\tconst owner = constraintOwner(\"Index\", spec.modelName, index);\n\t\tconst carried = {\n\t\t\twhere: index.where === void 0 ? void 0 : requireSqlExpression(index.where, `${owner} where`).text,\n\t\t\tunique: index.unique,\n\t\t\tname: index.name,\n\t\t\tmap: index.map,\n\t\t\t...method\n\t\t};\n\t\treturn index.expression !== void 0 ? {\n\t\t\t...carried,\n\t\t\texpression: indexExpressionText(spec, index.expression, fieldCodecIds, owner)\n\t\t} : {\n\t\t\t...carried,\n\t\t\tcolumns: mapFieldNamesToColumnNames(spec.modelName, index.fields ?? [], spec.fieldToColumn)\n\t\t};\n\t});\n\tconst checks = (spec.sqlSpec?.checks ?? []).map((authoredCheck) => ({\n\t\texpression: requireSqlExpression(authoredCheck.expression, `${constraintOwner(\"Check\", spec.modelName, authoredCheck)} expression`).text,\n\t\tname: authoredCheck.name,\n\t\tmap: authoredCheck.map\n\t}));\n\tconst foreignKeys = resolveForeignKeyNodes(spec, allSpecs, extensions);\n\tconst relations = Object.entries(spec.relations).map(([relationName, relationBuilder]) => resolveRelationNode(relationName, relationBuilder.build(), spec, allSpecs, extensions));\n\treturn {\n\t\tmodelName: spec.modelName,\n\t\ttableName: spec.tableName,\n\t\t...spec.namespace !== void 0 ? { namespaceId: spec.namespace } : {},\n\t\tfields,\n\t\t...idConstraint ? { id: {\n\t\t\tcolumns: mapFieldNamesToColumnNames(spec.modelName, idConstraint.fields, spec.fieldToColumn),\n\t\t\t...idConstraint.name ? { name: idConstraint.name } : {}\n\t\t} } : {},\n\t\t...uniques.length > 0 ? { uniques } : {},\n\t\t...indexes.length > 0 ? { indexes } : {},\n\t\t...checks.length > 0 ? { checks } : {},\n\t\t...foreignKeys.length > 0 ? { foreignKeys } : {},\n\t\t...relations.length > 0 ? { relations } : {},\n\t\t...ifDefined(\"control\", spec.sqlSpec?.control)\n\t};\n}\nfunction columnLengthOf(definition) {\n\tconst { codecLookup, dataTypeLookup } = definition;\n\treturn (codecId, typeParams) => {\n\t\tconst dataTypeId = codecLookup.descriptorFor(codecId)?.dataType;\n\t\treturn sqlColumnLength(dataTypeId === void 0 ? void 0 : dataTypeLookup.get(dataTypeId), typeParams);\n\t};\n}\nfunction collectRuntimeModelSpecs(definition) {\n\tconst storageTypes = { ...definition.types ?? {} };\n\tconst models = { ...definition.models ?? {} };\n\temitTypedNamedTypeFallbackWarnings(models, storageTypes);\n\tconst modelSpecs = /* @__PURE__ */ new Map();\n\tconst tableOwners = /* @__PURE__ */ new Map();\n\tfor (const [modelName, modelDefinition] of Object.entries(models)) {\n\t\tconst tokenModelName = modelDefinition.stageOne.modelName;\n\t\tif (tokenModelName && tokenModelName !== modelName) throw contractError(\"CONTRACT.MODEL_TOKEN_INVALID\", `Model token \"${tokenModelName}\" must be assigned to models.${tokenModelName}. Received models.${modelName}.`, { meta: {\n\t\t\ttokenModelName,\n\t\t\tassignedKey: modelName\n\t\t} });\n\t\tconst attributesSpec = modelDefinition.buildAttributesSpec();\n\t\tconst sqlSpec = modelDefinition.buildSqlSpec();\n\t\tconst tableName = sqlSpec?.table ?? applyNaming(modelName, definition.naming?.tables);\n\t\tconst namespaceId = modelDefinition.stageOne.namespace ?? definition.target.defaultNamespaceId;\n\t\tconst tableKey = JSON.stringify([namespaceId, tableName]);\n\t\tconst existingModel = tableOwners.get(tableKey);\n\t\tif (existingModel) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Models \"${existingModel}\" and \"${modelName}\" both map to table \"${tableName}\".`, { meta: {\n\t\t\tkind: \"table\",\n\t\t\tname: tableName,\n\t\t\tfirst: existingModel,\n\t\t\tsecond: modelName\n\t\t} });\n\t\ttableOwners.set(tableKey, modelName);\n\t\tconst fieldToColumn = {};\n\t\tconst columnOwners = /* @__PURE__ */ new Map();\n\t\tfor (const [fieldName, fieldBuilder] of Object.entries(modelDefinition.stageOne.fields)) {\n\t\t\tconst columnName = fieldBuilder.build().columnName ?? applyNaming(fieldName, definition.naming?.columns);\n\t\t\tconst existingField = columnOwners.get(columnName);\n\t\t\tif (existingField) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Model \"${modelName}\" maps both \"${existingField}\" and \"${fieldName}\" to column \"${columnName}\".`, { meta: {\n\t\t\t\tkind: \"column\",\n\t\t\t\tname: columnName,\n\t\t\t\tfirst: existingField,\n\t\t\t\tsecond: fieldName\n\t\t\t} });\n\t\t\tcolumnOwners.set(columnName, fieldName);\n\t\t\tfieldToColumn[fieldName] = columnName;\n\t\t}\n\t\tconst fieldBuilders = modelDefinition.stageOne.fields;\n\t\tconst idConstraint = resolveModelIdConstraint({\n\t\t\tmodelName,\n\t\t\tfieldBuilders,\n\t\t\tattributesSpec\n\t\t});\n\t\tmodelSpecs.set(modelName, {\n\t\t\tmodelName,\n\t\t\ttableName,\n\t\t\tnamespace: modelDefinition.stageOne.namespace,\n\t\t\tfieldBuilders,\n\t\t\tfieldToColumn,\n\t\t\trelations: modelDefinition.stageOne.relations,\n\t\t\tattributesSpec,\n\t\t\tsqlSpec,\n\t\t\tidConstraint\n\t\t});\n\t}\n\treturn {\n\t\tstorageTypes,\n\t\tmodels,\n\t\tmodelSpecs\n\t};\n}\nfunction lowerModels(collection, generatorFunctions, columnLength, extensions) {\n\temitTypedCrossModelFallbackWarnings(collection);\n\tconst storageTypeReverseLookup = buildStorageTypeReverseLookup(collection.storageTypes);\n\treturn Array.from(collection.modelSpecs.values()).map((spec) => resolveModelNode(spec, collection.modelSpecs, collection.storageTypes, storageTypeReverseLookup, generatorFunctions, columnLength, extensions));\n}\n/**\n* Kind-agnostic walk over the author-declared `entities` handle list:\n*\n* 1. Index the bound packs' `entityTypes` contributions by discriminator so\n* each handle's `entityKind` maps to the pack that registered it; a\n* handle whose kind no composed pack registers is an error naming the\n* kind.\n* 2. Resolve each handle's declared model refs (`handle.refs`, actual\n* model-handle objects) to storage table coordinates — identity against\n* the contract's `models` record first, then the handle's declared model\n* name against the build's model specs; never by re-deriving a table\n* name. A cross-space (extensionModel) handle resolves to its own\n* coordinate annotated with `spaceId`.\n* 3. Call each owning pack's batch lowering hook once with all of its\n* claimed handles, and fold the returned rows into the namespace-scoped\n* attachments (namespace → kind → key), rejecting two different entities\n* in one slot. The result becomes `ContractDefinition.attachedEntities`.\n*\n* No entity kind is named anywhere in this walk.\n*/\nfunction lowerPackEntityHandles(definition, modelSpecs) {\n\tconst entities = definition.entities;\n\tif (entities === void 0 || entities.length === 0) return void 0;\n\tconst components = [definition.target, ...Object.values(definition.extensions ?? {})];\n\tconst owningComponent = /* @__PURE__ */ new Map();\n\tconst walkEntityTypes = (namespace, component) => {\n\t\tfor (const value of Object.values(namespace)) if (isAuthoringEntityTypeDescriptor(value)) owningComponent.set(value.discriminator, component);\n\t\telse walkEntityTypes(value, component);\n\t};\n\tfor (const component of components) {\n\t\tconst entityTypes = component.authoring?.entityTypes;\n\t\tif (entityTypes !== void 0) walkEntityTypes(entityTypes, component);\n\t}\n\tconst defaultNamespaceId = definition.target.defaultNamespaceId;\n\tconst modelNamesByIdentity = /* @__PURE__ */ new Map();\n\tfor (const [modelName, modelBuilder] of Object.entries(definition.models ?? {})) modelNamesByIdentity.set(modelBuilder, modelName);\n\tconst coordinateOf = (modelName) => {\n\t\tconst spec = modelSpecs.get(modelName);\n\t\tif (spec === void 0) return void 0;\n\t\treturn {\n\t\t\tkind: \"resolved\",\n\t\t\tnamespaceId: spec.namespace ?? defaultNamespaceId,\n\t\t\ttableName: spec.tableName,\n\t\t\tmodelName\n\t\t};\n\t};\n\tconst declaredModelName = (value) => {\n\t\tif (typeof value !== \"object\" || value === null || !(\"stageOne\" in value)) return void 0;\n\t\tconst stageOne = value.stageOne;\n\t\tif (typeof stageOne !== \"object\" || stageOne === null || !(\"modelName\" in stageOne)) return;\n\t\treturn typeof stageOne.modelName === \"string\" ? stageOne.modelName : void 0;\n\t};\n\tconst resolveRef = (value) => {\n\t\tconst modelName = declaredModelName(value);\n\t\tif (isCrossSpaceHandle(value)) {\n\t\t\tconst tableName = value.tableName;\n\t\t\tconst namespaceId = value.stageOne.namespace;\n\t\t\tif (tableName !== void 0 && namespaceId !== void 0) return {\n\t\t\t\tkind: \"cross-space\",\n\t\t\t\tspaceId: value.spaceId,\n\t\t\t\tnamespaceId,\n\t\t\t\ttableName,\n\t\t\t\t...ifDefined(\"modelName\", modelName)\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tkind: \"unresolved\",\n\t\t\t\t...ifDefined(\"modelName\", modelName)\n\t\t\t};\n\t\t}\n\t\tconst identityName = modelNamesByIdentity.get(value);\n\t\treturn (identityName !== void 0 ? coordinateOf(identityName) : void 0) ?? (modelName !== void 0 ? coordinateOf(modelName) : void 0) ?? {\n\t\t\tkind: \"unresolved\",\n\t\t\t...ifDefined(\"modelName\", modelName)\n\t\t};\n\t};\n\tconst claimed = /* @__PURE__ */ new Map();\n\tfor (const handle of entities) {\n\t\tconst component = owningComponent.get(handle.entityKind);\n\t\tif (component === void 0) throw contractError(\"CONTRACT.ENTITY_KIND_UNKNOWN\", `defineContract: entities contains a handle with entityKind \"${handle.entityKind}\", which no composed pack registers. Compose a pack whose entityTypes contribution claims \"${handle.entityKind}\", or remove the handle.`, { meta: { entityKind: handle.entityKind } });\n\t\tconst refs = {};\n\t\tfor (const [refName, refValue] of Object.entries(handle.refs ?? {})) refs[refName] = resolveRef(refValue);\n\t\tconst forComponent = claimed.get(component) ?? [];\n\t\tforComponent.push({\n\t\t\thandle,\n\t\t\trefs\n\t\t});\n\t\tclaimed.set(component, forComponent);\n\t}\n\tconst pack = {};\n\tfor (const [component, handles] of claimed) {\n\t\tconst authoring = component.authoring;\n\t\tif (!providesEntityHandleLowering(authoring)) {\n\t\t\tconst kinds = [...new Set(handles.map((entry) => entry.handle.entityKind))].sort();\n\t\t\tthrow contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `defineContract: entityKind(s) ${kinds.map((kind) => `\"${kind}\"`).join(\", \")} are registered by a pack that does not implement entity-handle lowering (no lowerEntityHandles on its authoring contributions).`, { meta: {\n\t\t\t\tentityKinds: kinds,\n\t\t\t\treason: \"missing-lowerEntityHandles\"\n\t\t\t} });\n\t\t}\n\t\tfor (const row of authoring.lowerEntityHandles({\n\t\t\thandles,\n\t\t\tdefaultNamespaceId\n\t\t})) {\n\t\t\tconst forNamespace = pack[row.namespaceId] ?? {};\n\t\t\tpack[row.namespaceId] = forNamespace;\n\t\t\tconst forKind = forNamespace[row.entityKind] ?? {};\n\t\t\tforNamespace[row.entityKind] = forKind;\n\t\t\tconst existing = forKind[row.key];\n\t\t\tif (existing !== void 0 && existing !== row.entity) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `defineContract: two different \"${row.entityKind}\" entities named \"${row.key}\" in namespace \"${row.namespaceId}\" — pack-entity names must be unique per namespace.`, { meta: {\n\t\t\t\tkind: row.entityKind,\n\t\t\t\tname: row.key,\n\t\t\t\tnamespaceId: row.namespaceId\n\t\t\t} });\n\t\t\tforKind[row.key] = row.entity;\n\t\t}\n\t}\n\treturn pack;\n}\nfunction buildContractDefinition(definition) {\n\tconst collection = collectRuntimeModelSpecs(definition);\n\tconst models = lowerModels(collection, assembleGeneratorFunctions([\n\t\tdefinition.family,\n\t\tdefinition.target,\n\t\t...Object.values(definition.extensions ?? {})\n\t]), columnLengthOf(definition), definition.extensions);\n\tconst attachedEntities = lowerPackEntityHandles(definition, collection.modelSpecs);\n\treturn {\n\t\ttarget: definition.target,\n\t\t...ifDefined(\"defaultControlPolicy\", definition.defaultControlPolicy),\n\t\t...definition.extensions ? { extensions: definition.extensions } : {},\n\t\t...ifDefined(\"capabilities\", definition.adapter?.capabilities),\n\t\t...definition.storageHash ? { storageHash: definition.storageHash } : {},\n\t\t...definition.foreignKeyDefaults ? { foreignKeyDefaults: definition.foreignKeyDefaults } : {},\n\t\t...Object.keys(collection.storageTypes).length > 0 ? { storageTypes: collection.storageTypes } : {},\n\t\t...definition.namespaces ? { namespaces: definition.namespaces } : {},\n\t\twarnings: void 0,\n\t\tcreateNamespace: definition.createNamespace,\n\t\t...definition.enums && Object.keys(definition.enums).length > 0 ? { enums: definition.enums } : {},\n\t\t...attachedEntities && Object.keys(attachedEntities).length > 0 ? { attachedEntities } : {},\n\t\tmodels\n\t};\n}\n//#endregion\n//#region src/contract-builder.ts\nfunction validateTargetPackRef(family, target) {\n\tif (family.familyId !== \"sql\") throw contractError(\"CONTRACT.PACK_FAMILY_MISMATCH\", `defineContract only accepts SQL family packs. Received family \"${family.familyId}\".`, { meta: {\n\t\tpackId: family.id,\n\t\tpackFamilyId: family.familyId,\n\t\tcontractFamilyId: \"sql\"\n\t} });\n\tif (target.familyId !== family.familyId) throw contractError(\"CONTRACT.PACK_FAMILY_MISMATCH\", `target pack \"${target.id}\" targets family \"${target.familyId}\" but contract family is \"${family.familyId}\".`, { meta: {\n\t\tpackId: target.id,\n\t\tpackFamilyId: target.familyId,\n\t\tcontractFamilyId: family.familyId\n\t} });\n}\n/**\n* Per-target reserved namespace names enforced by `defineContract` for\n* SQL family contracts. Two categories:\n*\n* 1. **IR sentinels** (`__unbound__`, `__unspecified__`) — reserved on\n* every SQL target. The double-underscore decoration marks them as\n* framework-reserved coordinates; user code must not declare them\n* explicitly.\n* 2. **Target-specific PSL keywords** — Postgres reserves the bare\n* `unbound` identifier for the late-binding opt-in\n* (`namespace unbound { … }`) so the TS surface must reject it from\n* `defineContract({ namespaces })` lists. SQLite has no schema\n* concept and rejects every non-empty namespaces list outright;\n* callers should declare `namespaces: []` or omit the field.\n*/\nfunction validateNamespaceDeclarations(target, namespaces) {\n\tif (!namespaces) return;\n\tif (target.targetId === \"sqlite\" && namespaces.length > 0) throw contractError(\"CONTRACT.NAMESPACE_UNSUPPORTED\", `defineContract: SQLite contracts cannot declare namespaces (SQLite has no schema concept; emitted DDL is always unqualified). Received namespaces: [${namespaces.map((name) => `\"${name}\"`).join(\", \")}].`, { meta: {\n\t\tnamespaces,\n\t\ttargetId: target.targetId\n\t} });\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const namespace of namespaces) {\n\t\tif (namespace.length === 0) throw contractError(\"CONTRACT.NAMESPACE_INVALID\", \"defineContract: namespace names cannot be empty.\", { meta: {\n\t\t\tnamespace,\n\t\t\treason: \"empty\"\n\t\t} });\n\t\tif (namespace.trim().length === 0) throw contractError(\"CONTRACT.NAMESPACE_INVALID\", `defineContract: namespace name \"${namespace}\" cannot be whitespace-only.`, { meta: {\n\t\t\tnamespace,\n\t\t\treason: \"whitespace-only\"\n\t\t} });\n\t\tif (namespace === \"__unbound__\" || namespace === \"__unspecified__\") throw contractError(\"CONTRACT.NAMESPACE_INVALID\", `defineContract: namespace name \"${namespace}\" is a reserved IR sentinel and cannot appear in the declared namespaces list.`, { meta: {\n\t\t\tnamespace,\n\t\t\treason: \"reserved-ir-sentinel\"\n\t\t} });\n\t\tif (target.targetId === \"postgres\" && namespace === \"unbound\") throw contractError(\"CONTRACT.NAMESPACE_INVALID\", `defineContract: namespace name \"unbound\" is reserved by Postgres for the late-binding opt-in (use \\`namespace unbound { … }\\` in PSL instead of declaring it as a regular schema).`, { meta: {\n\t\t\tnamespace,\n\t\t\treason: \"reserved-by-postgres\"\n\t\t} });\n\t\tif (seen.has(namespace)) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `defineContract: namespaces list contains duplicate entry \"${namespace}\".`, { meta: {\n\t\t\tkind: \"namespace\",\n\t\t\tname: namespace\n\t\t} });\n\t\tseen.add(namespace);\n\t}\n}\n/**\n* Per-model `namespace` validation paired with\n* {@link validateNamespaceDeclarations}. Mirrors the reserved-name\n* rules so the per-model surface stays consistent with the contract-\n* level surface:\n*\n* - `__unbound__` / `__unspecified__` — reserved IR sentinels on\n* every SQL target.\n* - `unbound` on Postgres — reserved for the PSL\n* `namespace unbound { … }` opt-in.\n*\n* Additionally enforces that each per-model `namespace` either\n* references an entry in the contract's declared `namespaces` list or\n* names the Postgres late-binding keyword (`unbound`) — the latter is\n* not a \"declared namespace\" but is a legal opt-in only via PSL today,\n* so the TS surface also rejects it on the per-model side and points\n* authors at the PSL `namespace unbound { … }` block.\n*\n* The SQLite per-model `namespace` field is rejected outright (SQLite\n* has no schema concept).\n*/\nfunction validatePerModelNamespaces(target, namespaces, models) {\n\tconst declaredNamespaces = new Set(namespaces ?? []);\n\tfor (const [modelKey, modelBuilder] of Object.entries(models)) {\n\t\tconst perModelNamespace = modelBuilder.stageOne.namespace;\n\t\tif (perModelNamespace === void 0) continue;\n\t\tif (target.targetId === \"sqlite\") throw contractError(\"CONTRACT.NAMESPACE_UNSUPPORTED\", `defineContract: model \"${modelKey}\" sets \\`namespace: \"${perModelNamespace}\"\\` but the target is SQLite (SQLite has no schema concept; remove the per-model \\`namespace\\` field).`, { meta: {\n\t\t\tmodelKey,\n\t\t\tnamespace: perModelNamespace,\n\t\t\ttargetId: target.targetId\n\t\t} });\n\t\tif (perModelNamespace === \"__unbound__\" || perModelNamespace === \"__unspecified__\") throw contractError(\"CONTRACT.NAMESPACE_INVALID\", `defineContract: model \"${modelKey}\" sets \\`namespace: \"${perModelNamespace}\"\\` but that name is a reserved IR sentinel and cannot appear in user code.`, { meta: {\n\t\t\tmodelKey,\n\t\t\tnamespace: perModelNamespace,\n\t\t\treason: \"reserved-ir-sentinel\"\n\t\t} });\n\t\tif (target.targetId === \"postgres\" && perModelNamespace === \"unbound\") throw contractError(\"CONTRACT.NAMESPACE_INVALID\", `defineContract: model \"${modelKey}\" sets \\`namespace: \"unbound\"\\` but that name is reserved by Postgres for the late-binding opt-in (use \\`namespace unbound { … }\\` in PSL instead — there is no equivalent surface in the TS builder today).`, { meta: {\n\t\t\tmodelKey,\n\t\t\tnamespace: perModelNamespace,\n\t\t\treason: \"reserved-by-postgres\"\n\t\t} });\n\t\tif (!declaredNamespaces.has(perModelNamespace)) throw contractError(\"CONTRACT.NAMESPACE_UNKNOWN\", `defineContract: model \"${modelKey}\" references namespace \"${perModelNamespace}\" but that name does not appear in the contract's declared \\`namespaces\\` list.${declaredNamespaces.size > 0 ? ` Declared namespaces: [${[...declaredNamespaces].map((name) => `\"${name}\"`).join(\", \")}].` : \" The contract does not declare any namespaces; add `namespaces: [\\\"…\\\"]` to `defineContract` first.\"}`, { meta: {\n\t\t\tmodelKey,\n\t\t\tnamespace: perModelNamespace,\n\t\t\tdeclared: [...declaredNamespaces]\n\t\t} });\n\t}\n}\nfunction validateExtensionPackRefs(target, extensions) {\n\tif (!extensions) return;\n\tfor (const packRef of Object.values(extensions)) {\n\t\tif (packRef.kind !== \"extension\") throw contractError(\"CONTRACT.PACK_REF_INVALID\", `defineContract only accepts extension pack refs in extensions. Received kind \"${packRef.kind}\".`, { meta: {\n\t\t\tpackId: packRef.id,\n\t\t\tkind: packRef.kind\n\t\t} });\n\t\tif (packRef.familyId !== target.familyId) throw contractError(\"CONTRACT.PACK_FAMILY_MISMATCH\", `extension pack \"${packRef.id}\" targets family \"${packRef.familyId}\" but contract target family is \"${target.familyId}\".`, { meta: {\n\t\t\tpackId: packRef.id,\n\t\t\tpackFamilyId: packRef.familyId,\n\t\t\tcontractFamilyId: target.familyId\n\t\t} });\n\t\tif (packRef.targetId && packRef.targetId !== target.targetId) throw contractError(\"CONTRACT.PACK_TARGET_MISMATCH\", `extension pack \"${packRef.id}\" targets \"${packRef.targetId}\" but contract target is \"${target.targetId}\".`, { meta: {\n\t\t\tpackId: packRef.id,\n\t\t\tpackTargetId: packRef.targetId,\n\t\t\tcontractTargetId: target.targetId\n\t\t} });\n\t}\n}\nfunction buildContractFromDsl(definition) {\n\tvalidateTargetPackRef(definition.family, definition.target);\n\tvalidateExtensionPackRefs(definition.target, definition.extensions);\n\tvalidateNamespaceDeclarations(definition.target, definition.namespaces);\n\tvalidatePerModelNamespaces(definition.target, definition.namespaces, definition.models ?? {});\n\treturn blindCast(buildSqlContractFromDefinition(buildContractDefinition(definition), definition.codecLookup, definition.dataTypeLookup));\n}\n/** Implementation. */\nfunction buildBoundContract(family, target, definition, factory) {\n\tconst full = {\n\t\t...definition,\n\t\tfamily,\n\t\ttarget\n\t};\n\tif (factory !== void 0) {\n\t\tconst built = factory(createComposedAuthoringHelpers({\n\t\t\tfamily,\n\t\t\ttarget,\n\t\t\textensions: definition.extensions,\n\t\t\tcodecLookup: definition.codecLookup\n\t\t}));\n\t\tconst mergedEnums = {\n\t\t\t...definition.enums ?? {},\n\t\t\t...built.enums\n\t\t};\n\t\tconst mergedEntities = [...definition.entities ?? [], ...built.entities ?? []];\n\t\treturn buildContractFromDsl({\n\t\t\t...full,\n\t\t\t...ifDefined(\"types\", built.types),\n\t\t\t...ifDefined(\"models\", built.models),\n\t\t\t...ifDefined(\"enums\", Object.keys(mergedEnums).length > 0 ? mergedEnums : void 0),\n\t\t\t...ifDefined(\"entities\", mergedEntities.length > 0 ? mergedEntities : void 0)\n\t\t});\n\t}\n\treturn buildContractFromDsl(full);\n}\nfunction defineContract(definition, factory) {\n\tif (!isContractInput(definition)) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"defineContract expects a contract definition object. Define your contract with defineContract({ family, target, models, ... }).\");\n\tif (factory !== void 0) return buildBoundContract(definition.family, definition.target, definition, factory);\n\treturn buildBoundContract(definition.family, definition.target, definition);\n}\n//#endregion\n//#region src/default-functions.ts\n/** The database's current time, the same default PSL writes as `@default(now())`. */\nfunction now() {\n\treturn {\n\t\tkind: \"function\",\n\t\texpression: \"now()\"\n\t};\n}\n/** A database-assigned sequence value, the same default PSL writes as `@default(autoincrement())`. */\nfunction autoincrement() {\n\treturn {\n\t\tkind: \"function\",\n\t\texpression: \"autoincrement()\"\n\t};\n}\n//#endregion\nexport { applySqlSpecifierControlPolicy, autoincrement, bindEnumType, buildBoundContract, buildContractDefinition, buildSqlContractFromDefinition, check, createComposedAuthoringHelpers, defineContract, enumType, extensionModel, field, isValueObjectMember, member, model, now, rel, sql, storedAsListColumn };\n\n//# sourceMappingURL=contract-builder.mjs.map"],"mappings":"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"}
|