@prisma/orm-family-sql 8.0.0-rc.14-dev.29 → 8.0.0-rc.14-dev.31
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/{aggregate-descriptor-registry-CJF2KxUb.mjs → aggregate-descriptor-registry-B3RG0Zom.mjs} +2 -2
- package/dist/{aggregate-descriptor-registry-CJF2KxUb.mjs.map → aggregate-descriptor-registry-B3RG0Zom.mjs.map} +1 -1
- package/dist/{ast-dPjHeaNs.d.mts → ast-BUbHXpzG.d.mts} +7 -105
- package/dist/ast-BUbHXpzG.d.mts.map +1 -0
- package/dist/ast-CQZn-6Wd.mjs +310 -0
- package/dist/ast-CQZn-6Wd.mjs.map +1 -0
- package/dist/{authoring-entity-types-CZ-vdwYS-BfyaoH53.d.mts → authoring-entity-types-CZ-vdwYS-C25VGQVB.d.mts} +2 -2
- package/dist/{authoring-entity-types-CZ-vdwYS-BfyaoH53.d.mts.map → authoring-entity-types-CZ-vdwYS-C25VGQVB.d.mts.map} +1 -1
- package/dist/{authoring-type-constructors-DIyheCzv-BSrAEZsD.mjs → authoring-type-constructors-dihiQslc-hldmqa1r.mjs} +22 -28
- package/dist/authoring-type-constructors-dihiQslc-hldmqa1r.mjs.map +1 -0
- package/dist/builder.d.mts +2 -2
- package/dist/builder__runtime.d.mts +6 -6
- package/dist/builder__runtime.mjs +3 -3
- package/dist/builder__types.d.mts +2 -2
- package/dist/{codec-descriptor-registry-u6_e6WfA.mjs → codec-descriptor-registry-BW0REwkz.mjs} +2 -11
- package/dist/{codec-descriptor-registry-u6_e6WfA.mjs.map → codec-descriptor-registry-BW0REwkz.mjs.map} +1 -1
- package/dist/{config-types-DNRmpGNL.mjs → config-types-ump1oN82.mjs} +8 -4
- package/dist/config-types-ump1oN82.mjs.map +1 -0
- package/dist/{contract-builder-Br5TlHMh.d.mts → contract-builder-BXxFihYc.d.mts} +16 -11
- package/dist/contract-builder-BXxFihYc.d.mts.map +1 -0
- package/dist/{contract-builder-C3MYW38z.mjs → contract-builder-CQvwPGAW.mjs} +29 -24
- package/dist/contract-builder-CQvwPGAW.mjs.map +1 -0
- package/dist/contract-emitter.d.mts +1 -1
- package/dist/contract-emitter.mjs +1 -1
- package/dist/contract-prisma7__provider.d.mts +2 -1
- package/dist/contract-prisma7__provider.d.mts.map +1 -1
- package/dist/contract-prisma7__provider.mjs +16 -9
- package/dist/contract-prisma7__provider.mjs.map +1 -1
- 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 +2 -2
- package/dist/contract-psl__attribute-specs.mjs +1 -1
- package/dist/contract-psl__provider.mjs +2 -2
- package/dist/contract-psl__provider.mjs.map +1 -1
- package/dist/contract-ts.d.mts +1 -1
- package/dist/contract-ts.mjs +3 -3
- package/dist/contract-ts__config-types.mjs +1 -1
- package/dist/contract-ts__contract-builder.d.mts +1 -1
- package/dist/contract-ts__contract-builder.mjs +2 -2
- package/dist/contract.d.mts +5 -3
- package/dist/contract.mjs +11 -8
- package/dist/contract__data-type-support.d.mts +2 -0
- package/dist/contract__data-type-support.mjs +2 -0
- package/dist/contract__data-type.d.mts +2 -0
- package/dist/contract__data-type.mjs +3 -0
- package/dist/contract__entity-kinds.mjs +1 -1
- package/dist/contract__factories.mjs +1 -1
- package/dist/contract__sql-expression.d.mts +1 -1
- package/dist/contract__sql-expression.mjs +1 -1
- package/dist/contract__types.mjs +3 -3
- package/dist/contract__validators.d.mts +1 -1
- package/dist/contract__validators.mjs +2 -2
- package/dist/{control-BYOcSVih.mjs → control-BYT1Lgtm.mjs} +76 -117
- package/dist/control-BYT1Lgtm.mjs.map +1 -0
- package/dist/{control-DL9y6GfG.d.mts → control-Bpk8PtSL.d.mts} +40 -128
- package/dist/control-Bpk8PtSL.d.mts.map +1 -0
- package/dist/{control-adapter-WoXvPNj4-D64oWh9I.d.mts → control-adapter-BVN98SzR-C-H_T7s-.d.mts} +8 -20
- package/dist/control-adapter-BVN98SzR-C-H_T7s-.d.mts.map +1 -0
- package/dist/control-adapter-DSGwSagr.d.mts +1 -0
- package/dist/data-type-CAPmGXg9.mjs +297 -0
- package/dist/data-type-CAPmGXg9.mjs.map +1 -0
- package/dist/data-type-CpqSDmR_.d.mts +113 -0
- package/dist/data-type-CpqSDmR_.d.mts.map +1 -0
- package/dist/data-type-support-B_Dr1cxB.d.mts +92 -0
- package/dist/data-type-support-B_Dr1cxB.d.mts.map +1 -0
- package/dist/{ast-5hifzBHC.mjs → data-type-support-rpD1jyZd.mjs} +6 -329
- package/dist/data-type-support-rpD1jyZd.mjs.map +1 -0
- package/dist/{db-DLjWu9-f-BjAFEKe9.d.mts → db-DLjWu9-f-T8QbxDGY.d.mts} +6 -6
- package/dist/{db-DLjWu9-f-BjAFEKe9.d.mts.map → db-DLjWu9-f-T8QbxDGY.d.mts.map} +1 -1
- package/dist/{ddl-types-B48YmQSt-DLCUHORB.d.mts → ddl-types-BUqZdoZK-vyWnW2PW.d.mts} +3 -3
- package/dist/{ddl-types-B48YmQSt-DLCUHORB.d.mts.map → ddl-types-BUqZdoZK-vyWnW2PW.d.mts.map} +1 -1
- package/dist/{derived-checks-C_y1rk6O-DwCaGICl.mjs → derived-checks-CILnJKoa-D42YRW01.mjs} +48 -25
- package/dist/derived-checks-CILnJKoa-D42YRW01.mjs.map +1 -0
- package/dist/diff-B16bL_IR.mjs.map +1 -1
- package/dist/{diff-CJI5hKWL.d.mts → diff-BsHizC0z.d.mts} +6 -6
- package/dist/{diff-CJI5hKWL.d.mts.map → diff-BsHizC0z.d.mts.map} +1 -1
- package/dist/{dist-BdePIXOu.mjs → dist-C_HYPisk.mjs} +3 -3
- package/dist/{dist-BdePIXOu.mjs.map → dist-C_HYPisk.mjs.map} +1 -1
- package/dist/{entity-kinds-ChX-owgJ-DqGkW6Dq.mjs → entity-kinds-BNQFeECV-BOJmOArY.mjs} +4 -4
- package/dist/{entity-kinds-ChX-owgJ-DqGkW6Dq.mjs.map → entity-kinds-BNQFeECV-BOJmOArY.mjs.map} +1 -1
- package/dist/{expression-n9sdM2RA.d.mts → expression-Bf_MkeQS.d.mts} +3 -3
- package/dist/{expression-n9sdM2RA.d.mts.map → expression-Bf_MkeQS.d.mts.map} +1 -1
- package/dist/{expression-vAEOvq7J.mjs → expression-Bv8X6-Qg.mjs} +2 -2
- package/dist/{expression-vAEOvq7J.mjs.map → expression-Bv8X6-Qg.mjs.map} +1 -1
- package/dist/{factories-BnzIZxE1.mjs → factories-D6haP7by.mjs} +2 -2
- package/dist/{factories-BnzIZxE1.mjs.map → factories-D6haP7by.mjs.map} +1 -1
- package/dist/family.d.mts +13 -13
- package/dist/family.mjs +7 -7
- package/dist/family__control-adapter.d.mts +2 -2
- package/dist/family__control.d.mts +5 -5
- package/dist/family__control.mjs +4 -4
- package/dist/family__diff.d.mts +3 -3
- package/dist/family__diff.mjs +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__pack.mjs.map +1 -1
- package/dist/family__psl-build.d.mts +2 -2
- package/dist/family__psl-build.mjs +1 -1
- package/dist/family__psl-infer.d.mts +1 -1
- package/dist/family__verify.mjs +1 -1
- package/dist/{index-BoQtw7lz.d.mts → index-D2ho4por.d.mts} +9 -9
- package/dist/{index-BoQtw7lz.d.mts.map → index-D2ho4por.d.mts.map} +1 -1
- package/dist/index-type-validation-COH4d78M.mjs.map +1 -1
- package/dist/{interpreter-C8cP92FD-BfjuQvb1.mjs → interpreter-CDflex9x-Bx84tcl5.mjs} +33 -29
- package/dist/interpreter-CDflex9x-Bx84tcl5.mjs.map +1 -0
- package/dist/{middleware-CuGBptK0-xrXqWhc7.d.mts → middleware-BtMX6nSF-DUnzMyGl.d.mts} +3 -3
- package/dist/{middleware-CuGBptK0-xrXqWhc7.d.mts.map → middleware-BtMX6nSF-DUnzMyGl.d.mts.map} +1 -1
- package/dist/middleware-pBMsszaq.d.mts +1 -0
- package/dist/{migration-CSEh4QPu.d.mts → migration-oet2BBxc.d.mts} +2 -2
- package/dist/{migration-CSEh4QPu.d.mts.map → migration-oet2BBxc.d.mts.map} +1 -1
- package/dist/numeral-text-Cqu87pVe-DJCqBaSC.mjs +20 -0
- package/dist/numeral-text-Cqu87pVe-DJCqBaSC.mjs.map +1 -0
- package/dist/orm-client.d.mts +101 -58
- package/dist/orm-client.d.mts.map +1 -1
- package/dist/orm-client.mjs +32 -368
- package/dist/orm-client.mjs.map +1 -1
- package/dist/{pack-C3mqZevM.d.mts → pack-C-JTs3HQ.d.mts} +2 -16
- package/dist/pack-C-JTs3HQ.d.mts.map +1 -0
- package/dist/plan-BbkBYyGR.d.mts +2 -0
- package/dist/{plan-B7g2kDfQ-Dth0BeTe.d.mts → plan-BlQITcbP-DvbDlHXA.d.mts} +3 -3
- package/dist/plan-BlQITcbP-DvbDlHXA.d.mts.map +1 -0
- package/dist/{prepared-statement-Cv54gpY_-DbHPSN5Q.d.mts → prepared-statement-Cv54gpY_-dg9Qr8sK.d.mts} +14 -14
- package/dist/{prepared-statement-Cv54gpY_-DbHPSN5Q.d.mts.map → prepared-statement-Cv54gpY_-dg9Qr8sK.d.mts.map} +1 -1
- package/dist/{psl-build-zkIJwkdq.mjs → psl-build-B6nw6MAM.mjs} +18 -17
- package/dist/psl-build-B6nw6MAM.mjs.map +1 -0
- package/dist/{psl-build-BnM1ZTyK.d.mts → psl-build-BrW7lQMO.d.mts} +2 -2
- package/dist/psl-build-BrW7lQMO.d.mts.map +1 -0
- package/dist/{psl-column-resolution-sNpXQygQ-BBo4tqwO.d.mts → psl-column-resolution-BegCa1-t-BJJ9WB1c.d.mts} +4 -5
- package/dist/psl-column-resolution-BegCa1-t-BJJ9WB1c.d.mts.map +1 -0
- package/dist/{psl-field-resolution-_o74AUE4-C-vTNklI.mjs → psl-field-resolution-CKMm6Gx0-CdzpWIV5.mjs} +69 -17
- package/dist/psl-field-resolution-CKMm6Gx0-CdzpWIV5.mjs.map +1 -0
- package/dist/{psl-infer-BwbmOInx.d.mts → psl-infer-DzH2Khty.d.mts} +4 -4
- package/dist/{psl-infer-BwbmOInx.d.mts.map → psl-infer-DzH2Khty.d.mts.map} +1 -1
- package/dist/query-lane-context-CLtywrTY.d.mts +1 -0
- package/dist/{query-lane-context-BSmWfohZ-Jn0AbOQt.d.mts → query-lane-context-OSV9X636-CcPv1TZj.d.mts} +6 -10
- package/dist/query-lane-context-OSV9X636-CcPv1TZj.d.mts.map +1 -0
- package/dist/relational-core.d.mts +12 -12
- package/dist/relational-core.mjs +4 -4
- package/dist/relational-core__aggregate-descriptor-registry.d.mts +1 -1
- package/dist/relational-core__aggregate-descriptor-registry.mjs +1 -1
- package/dist/relational-core__ast.d.mts +4 -4
- package/dist/relational-core__ast.mjs +3 -3
- package/dist/relational-core__codec-descriptor-registry.d.mts +2 -2
- package/dist/relational-core__codec-descriptor-registry.mjs +1 -1
- package/dist/relational-core__contract-free.d.mts +4 -2
- package/dist/relational-core__contract-free.d.mts.map +1 -1
- package/dist/relational-core__contract-free.mjs +10 -4
- package/dist/relational-core__contract-free.mjs.map +1 -1
- package/dist/relational-core__expression.d.mts +1 -1
- package/dist/relational-core__expression.mjs +1 -1
- 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 +2 -2
- package/dist/relational-core__types.d.mts +2 -2
- package/dist/runtime.d.mts +4 -4
- package/dist/runtime.mjs +6 -6
- package/dist/runtime__internal__prepared-query.d.mts +1 -1
- package/dist/{schema-differ-DpG_gnur-CUh9eZM-.d.mts → schema-differ-DpG_gnur-if2KDxZC.d.mts} +3 -3
- package/dist/{schema-differ-DpG_gnur-CUh9eZM-.d.mts.map → schema-differ-DpG_gnur-if2KDxZC.d.mts.map} +1 -1
- package/dist/schema-ir.d.mts +2 -2
- package/dist/schema-ir.mjs +1 -1
- package/dist/schema-ir__types.d.mts +3 -3
- package/dist/schema-ir__types.mjs +1 -1
- package/dist/{schema-verify-Xmpe1PGb-Bcd_2avJ.mjs → schema-verify-lPfqY_aE-CZCO8my1.mjs} +32 -6
- package/dist/schema-verify-lPfqY_aE-CZCO8my1.mjs.map +1 -0
- package/dist/{serialized-index-B5X7s-oX-CVs8-5Rw.mjs → serialized-index-BeGqqsrC-PymnV1h-.mjs} +3 -3
- package/dist/{serialized-index-B5X7s-oX-CVs8-5Rw.mjs.map → serialized-index-BeGqqsrC-PymnV1h-.mjs.map} +1 -1
- package/dist/{sql-contract-serializer-C90xg7_q-C_Okh4NM.mjs → sql-contract-serializer-C90xg7_q-4UVEMTWO.mjs} +5 -5
- package/dist/{sql-contract-serializer-C90xg7_q-C_Okh4NM.mjs.map → sql-contract-serializer-C90xg7_q-4UVEMTWO.mjs.map} +1 -1
- package/dist/{sql-execution-plan-Db0j752I-dJ-JGxbD.d.mts → sql-execution-plan-CV6K4o9N-DAIvJbkb.d.mts} +3 -3
- package/dist/sql-execution-plan-CV6K4o9N-DAIvJbkb.d.mts.map +1 -0
- package/dist/{sql-expression-BXx0Ilj-.mjs → sql-expression-D7GsLgDM.mjs} +2 -2
- package/dist/{sql-expression-BXx0Ilj-.mjs.map → sql-expression-D7GsLgDM.mjs.map} +1 -1
- package/dist/{sql-expression-D_hbJOgM.d.mts → sql-expression-DE_MTt3T.d.mts} +2 -2
- package/dist/{sql-expression-D_hbJOgM.d.mts.map → sql-expression-DE_MTt3T.d.mts.map} +1 -1
- package/dist/{storage-table-ADhJ4Imk-CwcQVFXC.mjs → storage-table-BwwDKQkD-BN9cZrGX.mjs} +2 -2
- package/dist/{storage-table-ADhJ4Imk-CwcQVFXC.mjs.map → storage-table-BwwDKQkD-BN9cZrGX.mjs.map} +1 -1
- package/dist/{type-map-DpfnXzun-DZaSuJXh.d.mts → type-map-DmIbL4o--BfPMblbZ.d.mts} +4 -4
- package/dist/type-map-DmIbL4o--BfPMblbZ.d.mts.map +1 -0
- package/dist/{types-BPi4d3WI-D8PIEqBU.mjs → types-BLnsGaJf-m-qTW3ox.mjs} +3 -3
- package/dist/{types-BPi4d3WI-D8PIEqBU.mjs.map → types-BLnsGaJf-m-qTW3ox.mjs.map} +1 -1
- package/dist/{types-ByKpjyVh-CtYwWrbL.d.mts → types-CcGO_LSh-BKHiJvvA.d.mts} +8 -26
- package/dist/types-CcGO_LSh-BKHiJvvA.d.mts.map +1 -0
- package/dist/{types-Z-l6gAVD.mjs → types-Cn4JEguu.mjs} +2 -2
- package/dist/{types-Z-l6gAVD.mjs.map → types-Cn4JEguu.mjs.map} +1 -1
- package/dist/{types-DAoMCSPl-D2ajBTpK.mjs → types-CyPuXMTn-pumFirZ6.mjs} +4 -7
- package/dist/types-CyPuXMTn-pumFirZ6.mjs.map +1 -0
- package/dist/types-DZA5xxDT.d.mts +1 -0
- package/dist/{types-BzpC_V7p-DyBYmK1f.d.mts → types-Da1Y_OI7-BPyFwdFU.d.mts} +4 -43
- package/dist/types-Da1Y_OI7-BPyFwdFU.d.mts.map +1 -0
- package/dist/{types-BGHABElw-C5dqoVCg.d.mts → types-DpwLgzPO-Cb9nQ-Wt.d.mts} +6 -6
- package/dist/{types-BGHABElw-C5dqoVCg.d.mts.map → types-DpwLgzPO-Cb9nQ-Wt.d.mts.map} +1 -1
- package/dist/{types-Yui2yFf6-DYiGm9ET.d.mts → types-Dskga3R1-BtXuRmbf.d.mts} +3 -3
- package/dist/{types-Yui2yFf6-DYiGm9ET.d.mts.map → types-Dskga3R1-BtXuRmbf.d.mts.map} +1 -1
- package/dist/types-QvcS13Qc.d.mts +1 -0
- package/dist/{validators-D1wQns12.d.mts → validators-B-4g3vwP.d.mts} +2 -2
- package/dist/{validators-D1wQns12.d.mts.map → validators-B-4g3vwP.d.mts.map} +1 -1
- package/dist/{validators-Cx6UXIBf.mjs → validators-IGdAEEIM.mjs} +4 -4
- package/dist/{validators-Cx6UXIBf.mjs.map → validators-IGdAEEIM.mjs.map} +1 -1
- package/dist/{verify-BVk5bjdH-BXgGLM2U.mjs → verify-BVk5bjdH-dq5M4iIh.mjs} +2 -2
- package/dist/{verify-BVk5bjdH-BXgGLM2U.mjs.map → verify-BVk5bjdH-dq5M4iIh.mjs.map} +1 -1
- package/package.json +20 -18
- package/dist/ast-5hifzBHC.mjs.map +0 -1
- package/dist/ast-dPjHeaNs.d.mts.map +0 -1
- package/dist/authoring-type-constructors-DIyheCzv-BSrAEZsD.mjs.map +0 -1
- package/dist/config-types-DNRmpGNL.mjs.map +0 -1
- package/dist/contract-builder-Br5TlHMh.d.mts.map +0 -1
- package/dist/contract-builder-C3MYW38z.mjs.map +0 -1
- package/dist/control-BYOcSVih.mjs.map +0 -1
- package/dist/control-DL9y6GfG.d.mts.map +0 -1
- package/dist/control-adapter-C1hjk3Ic.d.mts +0 -1
- package/dist/control-adapter-WoXvPNj4-D64oWh9I.d.mts.map +0 -1
- package/dist/derived-checks-C_y1rk6O-DwCaGICl.mjs.map +0 -1
- package/dist/interpreter-C8cP92FD-BfjuQvb1.mjs.map +0 -1
- package/dist/middleware-CN4vQuOi.d.mts +0 -1
- package/dist/pack-C3mqZevM.d.mts.map +0 -1
- package/dist/plan-B7g2kDfQ-Dth0BeTe.d.mts.map +0 -1
- package/dist/plan-CrKSowWJ.d.mts +0 -2
- package/dist/psl-build-BnM1ZTyK.d.mts.map +0 -1
- package/dist/psl-build-zkIJwkdq.mjs.map +0 -1
- package/dist/psl-column-resolution-sNpXQygQ-BBo4tqwO.d.mts.map +0 -1
- package/dist/psl-field-resolution-_o74AUE4-C-vTNklI.mjs.map +0 -1
- package/dist/query-lane-context-BSmWfohZ-Jn0AbOQt.d.mts.map +0 -1
- package/dist/query-lane-context-DWdmmnrN.d.mts +0 -1
- package/dist/schema-verify-Xmpe1PGb-Bcd_2avJ.mjs.map +0 -1
- package/dist/sql-execution-plan-Db0j752I-dJ-JGxbD.d.mts.map +0 -1
- package/dist/type-map-DpfnXzun-DZaSuJXh.d.mts.map +0 -1
- package/dist/types-ByKpjyVh-CtYwWrbL.d.mts.map +0 -1
- package/dist/types-BzpC_V7p-DyBYmK1f.d.mts.map +0 -1
- package/dist/types-CQBRYgDW.d.mts +0 -1
- package/dist/types-DAoMCSPl-D2ajBTpK.mjs.map +0 -1
- package/dist/types-DdTdsdMn.d.mts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators-Cx6UXIBf.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/validators.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { a as ColumnDefaultFunctionSchema, c as ForeignKeyReferenceSchema, d as IndexSchema, f as ReferentialActionSchema, i as CheckConstraintSchema, l as ForeignKeySchema, m as StorageValueSetSchema, o as ColumnDefaultLiteralSchema, p as StorageTableSchema, s as ColumnDefaultSchema, t as composeSqlEntityKinds, u as ForeignKeySourceSchema } from \"./entity-kinds-ChX-owgJ.mjs\";\nimport { computeCheckContentHash, computeIndexContentHash } from \"@internal/sql-schema-ir/naming\";\nimport { isPlainRecord } from \"@internal/framework-components/ir\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { type } from \"arktype\";\nimport { ContractExecutionSectionSchema, CrossReferenceSchema } from \"@internal/contract/types\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { validateContractDomain } from \"@internal/contract/validate-domain\";\n//#region src/default-sql-body.ts\nconst UNSAFE_DEFAULT_BODY = /;|--|\\/\\*|\\$\\$|\\bSELECT\\b/i;\n/** Returns undefined when the body may be rendered as `DEFAULT (<body>)`, else the reason. */\nfunction checkSqlDefaultBody(body) {\n\treturn UNSAFE_DEFAULT_BODY.test(body) ? \"Default SQL must not contain semicolons, SQL comment tokens, dollar-quoting, or subqueries.\" : void 0;\n}\n/**\n* Names the Prisma default function a raw SQL body spells exactly, ignoring surrounding whitespace. The planners treat the contract expressions `now()` and `autoincrement()` as those functions, so a raw body with that text would not be used as written.\n*/\nfunction reservedSqlDefaultBody(body) {\n\tswitch (body.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\tnativeType: \"string\",\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/**\n* Any entries entity that declares both a `tableName` and a physical `name`\n* (e.g. a target's RLS policy entities) shares one physical-name space per\n* table: two such entries of one kind on the same table would collide as\n* DDL (`CREATE POLICY \"<name>\" ON <table>` fails on the second), while the\n* same name on different tables is legal. Structural — no entry-kind\n* vocabulary; `table` entries are keyed by name already and are excluded.\n*/\nfunction validateTableScopedEntryNames(storage, errors) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) {\n\t\tif (!isPlainRecord(ns.entries)) continue;\n\t\tfor (const [entriesKind, slot] of Object.entries(ns.entries)) {\n\t\t\tif (entriesKind === \"table\" || !isPlainRecord(slot)) continue;\n\t\t\tconst seen = /* @__PURE__ */ new Map();\n\t\t\tfor (const entity of Object.values(slot)) {\n\t\t\t\tif (typeof entity !== \"object\" || entity === null) continue;\n\t\t\t\tconst record = blindCast(entity);\n\t\t\t\tconst name = record[\"name\"];\n\t\t\t\tconst tableName = record[\"tableName\"];\n\t\t\t\tif (typeof name !== \"string\" || typeof tableName !== \"string\") continue;\n\t\t\t\tconst key = JSON.stringify([tableName, name]);\n\t\t\t\tseen.set(key, (seen.get(key) ?? 0) + 1);\n\t\t\t\tif (seen.get(key) === 2) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": ${entriesKind} \"${name}\" is declared multiple times`);\n\t\t\t}\n\t\t}\n\t}\n}\nfunction eachStorageTable(storage) {\n\treturn Object.entries(storage.namespaces).flatMap(([namespaceId, ns]) => Object.entries(ns.entries[\"table\"] ?? {}).map(([tableName, table]) => ({\n\t\tnamespaceId,\n\t\ttableName,\n\t\ttable\n\t})));\n}\nfunction findDuplicateValue(values) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const value of values) {\n\t\tif (seen.has(value)) return value;\n\t\tseen.add(value);\n\t}\n}\n/** A column may appear at most once in one index's element tuple. */\nfunction rejectRepeatedIndexColumns(indexes, coordinate, errors) {\n\tfor (const index of indexes) {\n\t\tconst duplicateColumn = findDuplicateValue(index.columns ?? []);\n\t\tif (duplicateColumn !== void 0) errors.push(`${coordinate}: index contains duplicate column \"${duplicateColumn}\"`);\n\t}\n}\n/**\n* Two wire-named indexes with the same content are one index written twice —\n* the content hash is their identity, so neither spelling can survive. An\n* exact-named index is identified by its name instead, so content twins under\n* two names are legal and a repeated name is rejected by the named-object\n* check.\n*/\nfunction rejectDuplicateWireNamedIndexContent(indexes, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const index of indexes) {\n\t\tif (index.prefix === void 0) continue;\n\t\tconst content = computeIndexContentHash(index);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate index definition on columns [${(index.columns ?? []).join(\", \")}]`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\n/**\n* Two wire-named checks with the same predicate are one check written twice —\n* the content hash is their identity, so neither spelling can survive, and\n* whitespace variants of one predicate collapse onto the same hash. An\n* exact-named check is identified by its name instead, so content twins under\n* two names are legal (the legacy shape a database adopts from) and a repeated\n* name is rejected by the named-object check.\n*/\nfunction rejectDuplicateWireNamedCheckContent(checks, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const check of checks) {\n\t\tif (check.prefix === void 0) continue;\n\t\tconst content = computeCheckContentHash(check.expression);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate check constraint definition (expression \"${check.expression}\")`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\nfunction isContractFieldType(value) {\n\tif (!isPlainRecord(value)) return false;\n\tconst kind = value[\"kind\"];\n\tif (kind === \"scalar\") {\n\t\tif (typeof value[\"codecId\"] !== \"string\") return false;\n\t\tconst typeParams = value[\"typeParams\"];\n\t\tif (typeParams !== void 0 && !isPlainRecord(typeParams)) return false;\n\t\treturn true;\n\t}\n\tif (kind === \"valueObject\") return typeof value[\"name\"] === \"string\";\n\tif (kind === \"union\") {\n\t\tconst members = value[\"members\"];\n\t\tif (!Array.isArray(members)) return false;\n\t\treturn members.every((m) => isContractFieldType(m));\n\t}\n\treturn false;\n}\nconst ModelFieldSchema = type({\n\t\"+\": \"reject\",\n\tnullable: \"boolean\",\n\ttype: type(\"unknown\").narrow((value, ctx) => isContractFieldType(value) ? true : ctx.mustBe(\"scalar, valueObject, or union field type\")),\n\tmany: type(\"false\").or({\n\t\t\"+\": \"reject\",\n\t\telementNullable: \"boolean\"\n\t}).default(false),\n\t\"dict?\": \"true\",\n\t\"valueSet?\": DomainEnumRefSchema\n});\nconst ModelStorageSchema = type({\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tfields: type({ \"[string]\": type({\n\t\tcolumn: \"string\",\n\t\t\"codecId?\": \"string\",\n\t\t\"nullable?\": \"boolean\"\n\t}) })\n});\nconst ContractRelationThroughSchema = type({\n\t\"+\": \"reject\",\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tparentColumns: type.string.array().readonly(),\n\tchildColumns: type.string.array().readonly(),\n\ttargetColumns: type.string.array().readonly()\n});\nconst ContractRelationOnSchema = type({\n\t\"+\": \"reject\",\n\tlocalFields: type.string.array().readonly(),\n\ttargetFields: type.string.array().readonly()\n});\nconst ContractManyToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'N:M'\",\n\ton: ContractRelationOnSchema,\n\tthrough: ContractRelationThroughSchema\n});\nconst ContractToOneRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | 'N:1'\",\n\t\"nullable?\": \"boolean\",\n\ton: ContractRelationOnSchema\n});\nconst ContractToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:N'\",\n\ton: ContractRelationOnSchema\n});\nconst ContractReferenceRelationSchema = ContractManyToManyRelationSchema.or(ContractToOneRelationSchema).or(ContractToManyRelationSchema);\nconst ContractEmbedRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | '1:N'\"\n});\nconst ContractRelationSchema = ContractReferenceRelationSchema.or(ContractEmbedRelationSchema);\nconst ModelSchema = type({\n\tstorage: ModelStorageSchema,\n\t\"fields?\": type({ \"[string]\": ModelFieldSchema }),\n\t\"relations?\": type({ \"[string]\": ContractRelationSchema }),\n\t\"discriminator?\": \"unknown\",\n\t\"variants?\": \"unknown\",\n\t\"base?\": CrossReferenceSchema,\n\t\"owner?\": \"string\"\n});\nconst ContractMetaSchema = type({ \"[string]\": \"unknown\" });\n/**\n* Builds the full SQL contract schema. The storage subtree threads\n* pack contributions through {@link createSqlStorageSchema}; the rest\n* of the contract envelope is family-shared.\n*/\nfunction createSqlContractSchema(kinds) {\n\tconst storage = createSqlStorageSchema(kinds);\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\ttarget: \"string\",\n\t\ttargetFamily: \"'sql'\",\n\t\t\"coreHash?\": \"string\",\n\t\tprofileHash: \"string\",\n\t\t\"capabilities?\": \"Record<string, Record<string, boolean>>\",\n\t\t\"extensions?\": \"Record<string, unknown>\",\n\t\t\"meta?\": ContractMetaSchema,\n\t\t\"defaultControlPolicy?\": ControlPolicySchema,\n\t\t\"roots?\": type({ \"[string]\": CrossReferenceSchema }),\n\t\tdomain: type({ namespaces: type({ \"[string]\": type({\n\t\t\tmodels: type({ \"[string]\": ModelSchema }),\n\t\t\t\"valueObjects?\": type({ \"[string]\": type({ fields: type({ \"[string]\": ModelFieldSchema }) }) }),\n\t\t\t\"enum?\": type({ \"[string]\": ContractEnumSchema })\n\t\t}) }) }),\n\t\tstorage,\n\t\t\"execution?\": ContractExecutionSectionSchema\n\t});\n}\nconst SqlContractSchema = createSqlContractSchema(DEFAULT_SQL_KINDS);\n/**\n* Validates the structural shape of SqlStorage using Arktype. Pure\n* structural check: namespace IR is never materialized here (that needs\n* a target concretion via the serializer hydration path), so this throws\n* on invalid input and constructs nothing.\n*\n* @param value - The storage value to validate\n* @throws Error if the storage structure is invalid\n*/\nfunction validateStorage(value) {\n\tconst result = StorageSchema(value);\n\tif (result instanceof type.errors) {\n\t\tconst errors = result.map((p) => p.message);\n\t\tthrow contractError(\"CONTRACT.VALIDATION_FAILED\", `Storage validation failed: ${errors.join(\"; \")}`, { meta: { errors } });\n\t}\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 contractResult = contractSchema(value);\n\tif (contractResult instanceof type.errors) throw new ContractValidationError(`Contract structural validation failed: ${contractResult.map((p) => p.message).join(\"; \")}`, \"structural\");\n\treturn blindCast(contractResult);\n}\n/**\n* Validates semantic constraints on SqlStorage that cannot be expressed in Arktype schemas.\n*\n* Returns an array of human-readable error strings. Empty array = valid.\n*\n* Currently checks:\n* - duplicate named primary key / unique / index / foreign key objects within a table\n* - duplicate unique, index, or foreign key declarations within a table\n* - duplicate columns within primary key / unique / index definitions\n* - nullable columns in primary key definitions\n* - `setNull` referential action on a non-nullable FK column (would fail at runtime)\n* - `setDefault` referential action on a non-nullable FK column without a DEFAULT (would fail at runtime)\n*/\nfunction validateStorageSemantics(storage) {\n\tconst errors = [];\n\tvalidateTableScopedEntryNames(storage, errors);\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst namedObjects = /* @__PURE__ */ new Map();\n\t\tconst registerNamedObject = (kind, name) => {\n\t\t\tif (!name) return;\n\t\t\tnamedObjects.set(name, [...namedObjects.get(name) ?? [], kind]);\n\t\t};\n\t\tregisterNamedObject(\"primary key\", table.primaryKey?.name);\n\t\tfor (const unique of table.uniques) registerNamedObject(\"unique constraint\", unique.name);\n\t\tfor (const index of table.indexes) registerNamedObject(\"index\", index.name);\n\t\tfor (const fk of table.foreignKeys) registerNamedObject(\"foreign key\", fk.name);\n\t\tfor (const check of table.checks ?? []) registerNamedObject(\"check constraint\", check.name);\n\t\tfor (const [name, kinds] of namedObjects) if (kinds.length > 1) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": named object \"${name}\" is declared multiple times (${kinds.join(\", \")})`);\n\t\tif (table.primaryKey) {\n\t\t\tconst duplicateColumn = findDuplicateValue(table.primaryKey.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tfor (const columnName of table.primaryKey.columns) if (table.columns[columnName]?.nullable === true) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key column \"${columnName}\" is nullable; primary key columns must be NOT NULL`);\n\t\t}\n\t\tconst seenUniqueDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const unique of table.uniques) {\n\t\t\tconst duplicateColumn = findDuplicateValue(unique.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": unique constraint contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tconst signature = JSON.stringify({ columns: unique.columns });\n\t\t\tif (seenUniqueDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate unique constraint definition on columns [${unique.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenUniqueDefinitions.add(signature);\n\t\t}\n\t\tconst tableCoordinate = `Namespace \"${namespaceId}\" table \"${tableName}\"`;\n\t\trejectRepeatedIndexColumns(table.indexes, tableCoordinate, errors);\n\t\trejectDuplicateWireNamedIndexContent(table.indexes, tableCoordinate, errors);\n\t\tconst seenForeignKeyDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst signature = JSON.stringify({\n\t\t\t\tsource: fk.source,\n\t\t\t\ttarget: fk.target,\n\t\t\t\tonDelete: fk.onDelete ?? null,\n\t\t\t\tonUpdate: fk.onUpdate ?? null\n\t\t\t});\n\t\t\tif (seenForeignKeyDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate foreign key definition on columns [${fk.source.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenForeignKeyDefinitions.add(signature);\n\t\t}\n\t\tfor (const fk of table.foreignKeys) for (const colName of fk.source.columns) {\n\t\t\tconst column = table.columns[colName];\n\t\t\tif (!column) continue;\n\t\t\tif (fk.onDelete === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onUpdate === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onDelete === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t\tif (fk.onUpdate === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t}\n\t\trejectDuplicateWireNamedCheckContent(table.checks ?? [], tableCoordinate, errors);\n\t}\n\treturn errors;\n}\n/**\n* SQL storage logical-consistency checks: every model.storage.table\n* resolves to a real table, every model.storage.fields[*].column\n* resolves to a real column, and value-object fields land on JSON-native\n* columns. 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\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\tconst JSON_NATIVE_TYPES = /* @__PURE__ */ new Set([\"json\", \"jsonb\"]);\n\t\tfor (const [fieldName, domainField] of Object.entries(model.fields ?? {})) {\n\t\t\tif (domainField.type?.kind !== \"valueObject\") continue;\n\t\t\tconst storageField = modelStorage.fields[fieldName];\n\t\t\tif (!storageField) continue;\n\t\t\tconst column = table.columns[storageField.column];\n\t\t\tif (!column) continue;\n\t\t\tif (!JSON_NATIVE_TYPES.has(column.nativeType)) throw new ContractValidationError(`Model \"${qualifiedName}\" field \"${fieldName}\" is a value object but storage column \"${storageField.column}\" has nativeType \"${column.nativeType}\" (expected json or jsonb)`, \"storage\");\n\t\t}\n\t}\n}\n/**\n* Cross-table consistency checks for SQL storage: primary key, unique,\n* index, and foreign key column references resolve to real columns;\n* NOT NULL columns don't carry a literal `null` default; FK column\n* counts match their referenced columns. Throws on the first mismatch.\n*/\nfunction validateSqlStorageConsistency(contract) {\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(contract.storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\tif (table.primaryKey) {\n\t\t\tfor (const colName of table.primaryKey.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" primaryKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t}\n\t\tfor (const unique of table.uniques) for (const colName of unique.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" unique constraint references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const index of table.indexes) for (const colName of index.columns ?? []) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" index references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const [colName, column] of Object.entries(table.columns)) if (!column.nullable && column.default?.kind === \"literal\" && column.default.value === null) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" column \"${colName}\" is NOT NULL but has a literal null default`, \"storage\");\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tif (fk.source.namespaceId !== namespaceId || fk.source.tableName !== tableName) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" contains foreignKey with mismatched source coordinates (${fk.source.namespaceId}.${fk.source.tableName})`, \"storage\");\n\t\t\tfor (const colName of fk.source.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t\tif (fk.target.spaceId === void 0) {\n\t\t\t\tconst referencedRaw = contract.storage.namespaces[fk.target.namespaceId]?.entries.table?.[fk.target.tableName];\n\t\t\t\tif (referencedRaw === void 0) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent table \"${fk.target.namespaceId}.${fk.target.tableName}\"`, \"storage\");\n\t\t\t\tconst referencedTable = blindCast(referencedRaw);\n\t\t\t\tconst referencedColumnNames = new Set(Object.keys(referencedTable.columns));\n\t\t\t\tfor (const colName of fk.target.columns) if (!referencedColumnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\" in table \"${fk.target.tableName}\"`, \"storage\");\n\t\t\t}\n\t\t\tif (fk.source.columns.length !== fk.target.columns.length) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey column count (${fk.source.columns.length}) does not match referenced column count (${fk.target.columns.length})`, \"storage\");\n\t\t}\n\t}\n}\n/**\n* Full SQL contract validation: structural (arktype) +\n* framework-shared domain + SQL storage logical-consistency + SQL\n* storage semantic + model ↔ storage reference checks. Throws\n* `ContractValidationError` on the first failure. Returns the\n* validated flat-data shape; IR class hydration happens in the SPI\n* base on top of this helper.\n*/\nfunction validateSqlContractFully(value, options) {\n\tconst validated = validateSqlContractStructure(typeof value === \"object\" && value !== null ? (() => {\n\t\tconst { schemaVersion: _, _generated: _g, ...rest } = blindCast(value);\n\t\treturn rest;\n\t})() : value, options?.contractSchema ?? SqlContractSchema);\n\tvalidateContractDomain({\n\t\troots: validated.roots,\n\t\tdomain: validated.domain\n\t});\n\tvalidateSqlStorageConsistency(validated);\n\tconst semanticErrors = validateStorageSemantics(validated.storage);\n\tif (semanticErrors.length > 0) throw new ContractValidationError(`Contract semantic validation failed: ${semanticErrors.join(\"; \")}`, \"storage\");\n\tvalidateModelStorageReferences(validated);\n\tvalidateRelationThroughConsistency(validated);\n\tvalidateToOneRelationNullabilityAgainstStorage(validated);\n\treturn validated;\n}\n/**\n* A same-space to-one relation that states `nullable` must agree with its local FK columns:\n* nullable exactly when one of them is nullable (a column that cannot be resolved counts as\n* nullable). A relation without the flag is left to hydration, which derives it the same way.\n*/\nfunction validateToOneRelationNullabilityAgainstStorage(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) {\n\t\tconst storage = blindCast(model.storage);\n\t\tfor (const [relationName, relation] of Object.entries(model.relations)) {\n\t\t\tif (!(\"on\" in relation && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\") && relation.to.space === void 0) || relation.nullable === void 0) continue;\n\t\t\tconst location = `Relation \"${relationName}\" on model \"${namespaceId}:${modelName}\"`;\n\t\t\tconst { ownsForeignKey, columns } = resolveSqlToOneRelationStorage(contract, storage, relation);\n\t\t\tif (!ownsForeignKey) {\n\t\t\t\tif (relation.nullable) continue;\n\t\t\t\tthrow new ContractValidationError(`${location} is required but does not own the foreign key, so nothing in storage guarantees the related row exists`, \"storage\");\n\t\t\t}\n\t\t\tconst anyNullable = columns.some((column) => column.nullable);\n\t\t\tif (relation.nullable === anyNullable) continue;\n\t\t\tconst columnList = columns.filter((column) => column.nullable !== relation.nullable).map((column) => `\"${column.name}\"`).join(\", \");\n\t\t\tthrow new ContractValidationError(relation.nullable ? `${location} is nullable but every local FK column is NOT NULL (columns ${columnList})` : `${location} is required but a local FK column is nullable (columns ${columnList})`, \"storage\");\n\t\t}\n\t}\n}\n/** Storage column lookup for through-consistency validation. */\nfunction lookupStorageColumn(contract, namespaceId, tableName, columnName) {\n\tconst rawTable = contract.storage.namespaces[namespaceId]?.entries.table?.[tableName];\n\tif (rawTable === void 0) return;\n\treturn blindCast(rawTable).columns[columnName];\n}\n/**\n* Two storage columns share a type when their `nativeType` and `typeParams`\n* match. The contract is canonicalized, so `typeParams` key order is stable and\n* a JSON comparison is exact. `codecId` and `nullable` are intentionally not\n* compared: they do not change the database-level type that governs a join.\n*/\nfunction sameStorageType(a, b) {\n\treturn a.nativeType === b.nativeType && JSON.stringify(a.typeParams ?? null) === JSON.stringify(b.typeParams ?? null);\n}\nfunction describeColumnType(column) {\n\treturn column.typeParams === void 0 ? column.nativeType : `${column.nativeType} ${JSON.stringify(column.typeParams)}`;\n}\n/**\n* Validates one side of an N:M join: the junction columns and the model\n* columns they pair against positionally must be equal in number, exist in\n* their tables, and share the same storage type (`nativeType` + `typeParams`).\n* The junction's storage foreign keys already guarantee this for user-declared\n* FK constraints, but `through` is a logical descriptor never tied to them by\n* the rest of validation — and the TS builder accepts explicit join columns\n* without requiring a junction FK at all — so this checks the columns directly\n* against storage, one path regardless of how the junction was authored.\n*\n* Joined columns must be the *same* storage type, not merely compatible:\n* relying on implicit conversion (e.g. `text`↔`character`) is unsafe on writes\n* — `character(n)` space-padding makes such coercions non-associative — and no\n* ADR sanctions heterogeneous junction columns. Equality is the conservative\n* default; it can be relaxed deliberately if a real use case ever appears.\n*/\nfunction validateThroughJoinSide(input) {\n\tconst fail = (detail) => new ContractValidationError(`Many-to-many relation \"${input.qualifiedName}\" ${detail}`, \"storage\");\n\tif (input.junctionColumns.length !== input.modelColumns.length) throw fail(`pairs ${input.junctionColumnsLabel} (${input.junctionColumns.length}) with ${input.modelColumnsLabel} (${input.modelColumns.length}) of differing length; they join positionally and must match.`);\n\tfor (const [index, junctionColumnName] of input.junctionColumns.entries()) {\n\t\tconst modelColumnRef = input.modelColumns[index];\n\t\tif (modelColumnRef === void 0) continue;\n\t\tconst junctionColumn = lookupStorageColumn(input.contract, input.junctionNamespaceId, input.junctionTable, junctionColumnName);\n\t\tif (junctionColumn === void 0) throw fail(`${input.junctionColumnsLabel} references column \"${junctionColumnName}\" absent from junction table \"${input.junctionNamespaceId}.${input.junctionTable}\".`);\n\t\tconst model = input.model;\n\t\tif (model === void 0) continue;\n\t\tlet modelColumnName = modelColumnRef;\n\t\tif (model.fieldToColumn !== void 0) {\n\t\t\tconst mapped = model.fieldToColumn[modelColumnRef];\n\t\t\tif (mapped === void 0) throw fail(`${input.modelColumnsLabel} references field \"${modelColumnRef}\" absent from model on table \"${model.namespaceId}.${model.table}\".`);\n\t\t\tmodelColumnName = mapped.column;\n\t\t}\n\t\tconst modelColumn = lookupStorageColumn(input.contract, model.namespaceId, model.table, modelColumnName);\n\t\tif (modelColumn === void 0) throw fail(`${input.modelColumnsLabel} references column \"${modelColumnName}\" absent from table \"${model.namespaceId}.${model.table}\".`);\n\t\tif (!sameStorageType(junctionColumn, modelColumn)) throw fail(`joins \"${input.junctionTable}.${junctionColumnName}\" (${describeColumnType(junctionColumn)}) with \"${model.table}.${modelColumnName}\" (${describeColumnType(modelColumn)}) of differing storage type; junction columns must match the type of the column they reference.`);\n\t}\n}\n/**\n* Validates that every N:M relation's `through` descriptor is consistent with\n* the storage columns it joins: both join sides match in column count,\n* reference columns that exist in their tables, and pair columns of the same\n* storage type. Without this, a `through` that disagrees with storage surfaces\n* as a silently wrong JOIN at query time rather than a validation error here.\n*/\nfunction validateRelationThroughConsistency(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) for (const [relationName, relation] of Object.entries(model.relations)) {\n\t\tif (relation.cardinality !== \"N:M\") continue;\n\t\tconst qualifiedName = `${namespaceId}.${modelName}.${relationName}`;\n\t\tconst { on, through } = relation;\n\t\tconst modelStorage = blindCast(model.storage);\n\t\tvalidateThroughJoinSide({\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: on.localFields,\n\t\t\tmodelColumnsLabel: \"on.localFields\",\n\t\t\tmodel: {\n\t\t\t\tnamespaceId,\n\t\t\t\ttable: modelStorage.table,\n\t\t\t\tfieldToColumn: modelStorage.fields\n\t\t\t},\n\t\t\tjunctionColumns: through.parentColumns,\n\t\t\tjunctionColumnsLabel: \"through.parentColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t\tconst targetModel = relation.to.space === void 0 ? contract.domain.namespaces[relation.to.namespace]?.models[relation.to.model] : void 0;\n\t\tconst targetModelSide = targetModel === void 0 ? void 0 : {\n\t\t\tnamespaceId: relation.to.namespace,\n\t\t\ttable: blindCast(targetModel.storage).table\n\t\t};\n\t\tvalidateThroughJoinSide({\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: through.targetColumns,\n\t\t\tmodelColumnsLabel: \"through.targetColumns\",\n\t\t\t...ifDefined(\"model\", targetModelSide),\n\t\t\tjunctionColumns: through.childColumns,\n\t\t\tjunctionColumnsLabel: \"through.childColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t}\n}\n//#endregion\nexport { CheckConstraintSchema, ColumnDefaultFunctionSchema, ColumnDefaultLiteralSchema, ColumnDefaultSchema, ContractEnumSchema, ForeignKeyReferenceSchema, ForeignKeySchema, ForeignKeySourceSchema, IndexSchema, ReferentialActionSchema, StorageTableSchema, StorageValueSetSchema, checkSqlDefaultBody, createNamespaceEntrySchema, createSqlContractSchema, createSqlStorageSchema, reservedSqlDefaultBody, resolveSqlToOneRelationStorage, validateModel, validateModelStorageReferences, validateSqlContractFully, validateSqlStorageConsistency, validateStorage, validateStorageSemantics };\n\n//# sourceMappingURL=validators.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validators-IGdAEEIM.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/validators.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { a as ColumnDefaultFunctionSchema, c as ForeignKeyReferenceSchema, d as IndexSchema, f as ReferentialActionSchema, i as CheckConstraintSchema, l as ForeignKeySchema, m as StorageValueSetSchema, o as ColumnDefaultLiteralSchema, p as StorageTableSchema, s as ColumnDefaultSchema, t as composeSqlEntityKinds, u as ForeignKeySourceSchema } from \"./entity-kinds-BNQFeECV.mjs\";\nimport { computeCheckContentHash, computeIndexContentHash } from \"@internal/sql-schema-ir/naming\";\nimport { isPlainRecord } from \"@internal/framework-components/ir\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { type } from \"arktype\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { ContractExecutionSectionSchema, CrossReferenceSchema } from \"@internal/contract/types\";\nimport { validateContractDomain } from \"@internal/contract/validate-domain\";\n//#region src/default-sql-body.ts\nconst UNSAFE_DEFAULT_BODY = /;|--|\\/\\*|\\$\\$|\\bSELECT\\b/i;\n/** Returns undefined when the body may be rendered as `DEFAULT (<body>)`, else the reason. */\nfunction checkSqlDefaultBody(body) {\n\treturn UNSAFE_DEFAULT_BODY.test(body) ? \"Default SQL must not contain semicolons, SQL comment tokens, dollar-quoting, or subqueries.\" : void 0;\n}\n/**\n* Names the Prisma default function a raw SQL body spells exactly, ignoring surrounding whitespace. The planners treat the contract expressions `now()` and `autoincrement()` as those functions, so a raw body with that text would not be used as written.\n*/\nfunction reservedSqlDefaultBody(body) {\n\tswitch (body.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\tnativeType: \"string\",\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/**\n* Any entries entity that declares both a `tableName` and a physical `name`\n* (e.g. a target's RLS policy entities) shares one physical-name space per\n* table: two such entries of one kind on the same table would collide as\n* DDL (`CREATE POLICY \"<name>\" ON <table>` fails on the second), while the\n* same name on different tables is legal. Structural — no entry-kind\n* vocabulary; `table` entries are keyed by name already and are excluded.\n*/\nfunction validateTableScopedEntryNames(storage, errors) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) {\n\t\tif (!isPlainRecord(ns.entries)) continue;\n\t\tfor (const [entriesKind, slot] of Object.entries(ns.entries)) {\n\t\t\tif (entriesKind === \"table\" || !isPlainRecord(slot)) continue;\n\t\t\tconst seen = /* @__PURE__ */ new Map();\n\t\t\tfor (const entity of Object.values(slot)) {\n\t\t\t\tif (typeof entity !== \"object\" || entity === null) continue;\n\t\t\t\tconst record = blindCast(entity);\n\t\t\t\tconst name = record[\"name\"];\n\t\t\t\tconst tableName = record[\"tableName\"];\n\t\t\t\tif (typeof name !== \"string\" || typeof tableName !== \"string\") continue;\n\t\t\t\tconst key = JSON.stringify([tableName, name]);\n\t\t\t\tseen.set(key, (seen.get(key) ?? 0) + 1);\n\t\t\t\tif (seen.get(key) === 2) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": ${entriesKind} \"${name}\" is declared multiple times`);\n\t\t\t}\n\t\t}\n\t}\n}\nfunction eachStorageTable(storage) {\n\treturn Object.entries(storage.namespaces).flatMap(([namespaceId, ns]) => Object.entries(ns.entries[\"table\"] ?? {}).map(([tableName, table]) => ({\n\t\tnamespaceId,\n\t\ttableName,\n\t\ttable\n\t})));\n}\nfunction findDuplicateValue(values) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const value of values) {\n\t\tif (seen.has(value)) return value;\n\t\tseen.add(value);\n\t}\n}\n/** A column may appear at most once in one index's element tuple. */\nfunction rejectRepeatedIndexColumns(indexes, coordinate, errors) {\n\tfor (const index of indexes) {\n\t\tconst duplicateColumn = findDuplicateValue(index.columns ?? []);\n\t\tif (duplicateColumn !== void 0) errors.push(`${coordinate}: index contains duplicate column \"${duplicateColumn}\"`);\n\t}\n}\n/**\n* Two wire-named indexes with the same content are one index written twice —\n* the content hash is their identity, so neither spelling can survive. An\n* exact-named index is identified by its name instead, so content twins under\n* two names are legal and a repeated name is rejected by the named-object\n* check.\n*/\nfunction rejectDuplicateWireNamedIndexContent(indexes, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const index of indexes) {\n\t\tif (index.prefix === void 0) continue;\n\t\tconst content = computeIndexContentHash(index);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate index definition on columns [${(index.columns ?? []).join(\", \")}]`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\n/**\n* Two wire-named checks with the same predicate are one check written twice —\n* the content hash is their identity, so neither spelling can survive, and\n* whitespace variants of one predicate collapse onto the same hash. An\n* exact-named check is identified by its name instead, so content twins under\n* two names are legal (the legacy shape a database adopts from) and a repeated\n* name is rejected by the named-object check.\n*/\nfunction rejectDuplicateWireNamedCheckContent(checks, coordinate, errors) {\n\tconst seenContent = /* @__PURE__ */ new Set();\n\tfor (const check of checks) {\n\t\tif (check.prefix === void 0) continue;\n\t\tconst content = computeCheckContentHash(check.expression);\n\t\tif (seenContent.has(content)) {\n\t\t\terrors.push(`${coordinate}: duplicate check constraint definition (expression \"${check.expression}\")`);\n\t\t\tcontinue;\n\t\t}\n\t\tseenContent.add(content);\n\t}\n}\nfunction isContractFieldType(value) {\n\tif (!isPlainRecord(value)) return false;\n\tconst kind = value[\"kind\"];\n\tif (kind === \"scalar\") {\n\t\tif (typeof value[\"codecId\"] !== \"string\") return false;\n\t\tconst typeParams = value[\"typeParams\"];\n\t\tif (typeParams !== void 0 && !isPlainRecord(typeParams)) return false;\n\t\treturn true;\n\t}\n\tif (kind === \"valueObject\") return typeof value[\"name\"] === \"string\";\n\tif (kind === \"union\") {\n\t\tconst members = value[\"members\"];\n\t\tif (!Array.isArray(members)) return false;\n\t\treturn members.every((m) => isContractFieldType(m));\n\t}\n\treturn false;\n}\nconst ModelFieldSchema = type({\n\t\"+\": \"reject\",\n\tnullable: \"boolean\",\n\ttype: type(\"unknown\").narrow((value, ctx) => isContractFieldType(value) ? true : ctx.mustBe(\"scalar, valueObject, or union field type\")),\n\tmany: type(\"false\").or({\n\t\t\"+\": \"reject\",\n\t\telementNullable: \"boolean\"\n\t}).default(false),\n\t\"dict?\": \"true\",\n\t\"valueSet?\": DomainEnumRefSchema\n});\nconst ModelStorageSchema = type({\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tfields: type({ \"[string]\": type({\n\t\tcolumn: \"string\",\n\t\t\"codecId?\": \"string\",\n\t\t\"nullable?\": \"boolean\"\n\t}) })\n});\nconst ContractRelationThroughSchema = type({\n\t\"+\": \"reject\",\n\ttable: \"string\",\n\tnamespaceId: \"string\",\n\tparentColumns: type.string.array().readonly(),\n\tchildColumns: type.string.array().readonly(),\n\ttargetColumns: type.string.array().readonly()\n});\nconst ContractRelationOnSchema = type({\n\t\"+\": \"reject\",\n\tlocalFields: type.string.array().readonly(),\n\ttargetFields: type.string.array().readonly()\n});\nconst ContractManyToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'N:M'\",\n\ton: ContractRelationOnSchema,\n\tthrough: ContractRelationThroughSchema\n});\nconst ContractToOneRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | 'N:1'\",\n\t\"nullable?\": \"boolean\",\n\ton: ContractRelationOnSchema\n});\nconst ContractToManyRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:N'\",\n\ton: ContractRelationOnSchema\n});\nconst ContractReferenceRelationSchema = ContractManyToManyRelationSchema.or(ContractToOneRelationSchema).or(ContractToManyRelationSchema);\nconst ContractEmbedRelationSchema = type({\n\t\"+\": \"reject\",\n\tto: CrossReferenceSchema,\n\tcardinality: \"'1:1' | '1:N'\"\n});\nconst ContractRelationSchema = ContractReferenceRelationSchema.or(ContractEmbedRelationSchema);\nconst ModelSchema = type({\n\tstorage: ModelStorageSchema,\n\t\"fields?\": type({ \"[string]\": ModelFieldSchema }),\n\t\"relations?\": type({ \"[string]\": ContractRelationSchema }),\n\t\"discriminator?\": \"unknown\",\n\t\"variants?\": \"unknown\",\n\t\"base?\": CrossReferenceSchema,\n\t\"owner?\": \"string\"\n});\nconst ContractMetaSchema = type({ \"[string]\": \"unknown\" });\n/**\n* Builds the full SQL contract schema. The storage subtree threads\n* pack contributions through {@link createSqlStorageSchema}; the rest\n* of the contract envelope is family-shared.\n*/\nfunction createSqlContractSchema(kinds) {\n\tconst storage = createSqlStorageSchema(kinds);\n\treturn type({\n\t\t\"+\": \"reject\",\n\t\ttarget: \"string\",\n\t\ttargetFamily: \"'sql'\",\n\t\t\"coreHash?\": \"string\",\n\t\tprofileHash: \"string\",\n\t\t\"capabilities?\": \"Record<string, Record<string, boolean>>\",\n\t\t\"extensions?\": \"Record<string, unknown>\",\n\t\t\"meta?\": ContractMetaSchema,\n\t\t\"defaultControlPolicy?\": ControlPolicySchema,\n\t\t\"roots?\": type({ \"[string]\": CrossReferenceSchema }),\n\t\tdomain: type({ namespaces: type({ \"[string]\": type({\n\t\t\tmodels: type({ \"[string]\": ModelSchema }),\n\t\t\t\"valueObjects?\": type({ \"[string]\": type({ fields: type({ \"[string]\": ModelFieldSchema }) }) }),\n\t\t\t\"enum?\": type({ \"[string]\": ContractEnumSchema })\n\t\t}) }) }),\n\t\tstorage,\n\t\t\"execution?\": ContractExecutionSectionSchema\n\t});\n}\nconst SqlContractSchema = createSqlContractSchema(DEFAULT_SQL_KINDS);\n/**\n* Validates the structural shape of SqlStorage using Arktype. Pure\n* structural check: namespace IR is never materialized here (that needs\n* a target concretion via the serializer hydration path), so this throws\n* on invalid input and constructs nothing.\n*\n* @param value - The storage value to validate\n* @throws Error if the storage structure is invalid\n*/\nfunction validateStorage(value) {\n\tconst result = StorageSchema(value);\n\tif (result instanceof type.errors) {\n\t\tconst errors = result.map((p) => p.message);\n\t\tthrow contractError(\"CONTRACT.VALIDATION_FAILED\", `Storage validation failed: ${errors.join(\"; \")}`, { meta: { errors } });\n\t}\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 contractResult = contractSchema(value);\n\tif (contractResult instanceof type.errors) throw new ContractValidationError(`Contract structural validation failed: ${contractResult.map((p) => p.message).join(\"; \")}`, \"structural\");\n\treturn blindCast(contractResult);\n}\n/**\n* Validates semantic constraints on SqlStorage that cannot be expressed in Arktype schemas.\n*\n* Returns an array of human-readable error strings. Empty array = valid.\n*\n* Currently checks:\n* - duplicate named primary key / unique / index / foreign key objects within a table\n* - duplicate unique, index, or foreign key declarations within a table\n* - duplicate columns within primary key / unique / index definitions\n* - nullable columns in primary key definitions\n* - `setNull` referential action on a non-nullable FK column (would fail at runtime)\n* - `setDefault` referential action on a non-nullable FK column without a DEFAULT (would fail at runtime)\n*/\nfunction validateStorageSemantics(storage) {\n\tconst errors = [];\n\tvalidateTableScopedEntryNames(storage, errors);\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst namedObjects = /* @__PURE__ */ new Map();\n\t\tconst registerNamedObject = (kind, name) => {\n\t\t\tif (!name) return;\n\t\t\tnamedObjects.set(name, [...namedObjects.get(name) ?? [], kind]);\n\t\t};\n\t\tregisterNamedObject(\"primary key\", table.primaryKey?.name);\n\t\tfor (const unique of table.uniques) registerNamedObject(\"unique constraint\", unique.name);\n\t\tfor (const index of table.indexes) registerNamedObject(\"index\", index.name);\n\t\tfor (const fk of table.foreignKeys) registerNamedObject(\"foreign key\", fk.name);\n\t\tfor (const check of table.checks ?? []) registerNamedObject(\"check constraint\", check.name);\n\t\tfor (const [name, kinds] of namedObjects) if (kinds.length > 1) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": named object \"${name}\" is declared multiple times (${kinds.join(\", \")})`);\n\t\tif (table.primaryKey) {\n\t\t\tconst duplicateColumn = findDuplicateValue(table.primaryKey.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tfor (const columnName of table.primaryKey.columns) if (table.columns[columnName]?.nullable === true) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": primary key column \"${columnName}\" is nullable; primary key columns must be NOT NULL`);\n\t\t}\n\t\tconst seenUniqueDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const unique of table.uniques) {\n\t\t\tconst duplicateColumn = findDuplicateValue(unique.columns);\n\t\t\tif (duplicateColumn !== void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": unique constraint contains duplicate column \"${duplicateColumn}\"`);\n\t\t\tconst signature = JSON.stringify({ columns: unique.columns });\n\t\t\tif (seenUniqueDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate unique constraint definition on columns [${unique.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenUniqueDefinitions.add(signature);\n\t\t}\n\t\tconst tableCoordinate = `Namespace \"${namespaceId}\" table \"${tableName}\"`;\n\t\trejectRepeatedIndexColumns(table.indexes, tableCoordinate, errors);\n\t\trejectDuplicateWireNamedIndexContent(table.indexes, tableCoordinate, errors);\n\t\tconst seenForeignKeyDefinitions = /* @__PURE__ */ new Set();\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst signature = JSON.stringify({\n\t\t\t\tsource: fk.source,\n\t\t\t\ttarget: fk.target,\n\t\t\t\tonDelete: fk.onDelete ?? null,\n\t\t\t\tonUpdate: fk.onUpdate ?? null\n\t\t\t});\n\t\t\tif (seenForeignKeyDefinitions.has(signature)) {\n\t\t\t\terrors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": duplicate foreign key definition on columns [${fk.source.columns.join(\", \")}]`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenForeignKeyDefinitions.add(signature);\n\t\t}\n\t\tfor (const fk of table.foreignKeys) for (const colName of fk.source.columns) {\n\t\t\tconst column = table.columns[colName];\n\t\t\tif (!column) continue;\n\t\t\tif (fk.onDelete === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onUpdate === \"setNull\" && !column.nullable) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setNull on foreign key column \"${colName}\" which is NOT NULL`);\n\t\t\tif (fk.onDelete === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onDelete setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t\tif (fk.onUpdate === \"setDefault\" && !column.nullable && column.default === void 0) errors.push(`Namespace \"${namespaceId}\" table \"${tableName}\": onUpdate setDefault on foreign key column \"${colName}\" which is NOT NULL and has no DEFAULT`);\n\t\t}\n\t\trejectDuplicateWireNamedCheckContent(table.checks ?? [], tableCoordinate, errors);\n\t}\n\treturn errors;\n}\n/**\n* SQL storage logical-consistency checks: every model.storage.table\n* resolves to a real table, every model.storage.fields[*].column\n* resolves to a real column, and value-object fields land on JSON-native\n* columns. 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\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\tconst JSON_NATIVE_TYPES = /* @__PURE__ */ new Set([\"json\", \"jsonb\"]);\n\t\tfor (const [fieldName, domainField] of Object.entries(model.fields ?? {})) {\n\t\t\tif (domainField.type?.kind !== \"valueObject\") continue;\n\t\t\tconst storageField = modelStorage.fields[fieldName];\n\t\t\tif (!storageField) continue;\n\t\t\tconst column = table.columns[storageField.column];\n\t\t\tif (!column) continue;\n\t\t\tif (!JSON_NATIVE_TYPES.has(column.nativeType)) throw new ContractValidationError(`Model \"${qualifiedName}\" field \"${fieldName}\" is a value object but storage column \"${storageField.column}\" has nativeType \"${column.nativeType}\" (expected json or jsonb)`, \"storage\");\n\t\t}\n\t}\n}\n/**\n* Cross-table consistency checks for SQL storage: primary key, unique,\n* index, and foreign key column references resolve to real columns;\n* NOT NULL columns don't carry a literal `null` default; FK column\n* counts match their referenced columns. Throws on the first mismatch.\n*/\nfunction validateSqlStorageConsistency(contract) {\n\tfor (const { namespaceId, tableName, table: rawTable } of eachStorageTable(contract.storage)) {\n\t\tconst table = blindCast(rawTable);\n\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\tif (table.primaryKey) {\n\t\t\tfor (const colName of table.primaryKey.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" primaryKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t}\n\t\tfor (const unique of table.uniques) for (const colName of unique.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" unique constraint references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const index of table.indexes) for (const colName of index.columns ?? []) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" index references non-existent column \"${colName}\"`, \"storage\");\n\t\tfor (const [colName, column] of Object.entries(table.columns)) if (!column.nullable && column.default?.kind === \"literal\" && column.default.value === null) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" column \"${colName}\" is NOT NULL but has a literal null default`, \"storage\");\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tif (fk.source.namespaceId !== namespaceId || fk.source.tableName !== tableName) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" contains foreignKey with mismatched source coordinates (${fk.source.namespaceId}.${fk.source.tableName})`, \"storage\");\n\t\t\tfor (const colName of fk.source.columns) if (!columnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\"`, \"storage\");\n\t\t\tif (fk.target.spaceId === void 0) {\n\t\t\t\tconst referencedRaw = contract.storage.namespaces[fk.target.namespaceId]?.entries.table?.[fk.target.tableName];\n\t\t\t\tif (referencedRaw === void 0) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent table \"${fk.target.namespaceId}.${fk.target.tableName}\"`, \"storage\");\n\t\t\t\tconst referencedTable = blindCast(referencedRaw);\n\t\t\t\tconst referencedColumnNames = new Set(Object.keys(referencedTable.columns));\n\t\t\t\tfor (const colName of fk.target.columns) if (!referencedColumnNames.has(colName)) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey references non-existent column \"${colName}\" in table \"${fk.target.tableName}\"`, \"storage\");\n\t\t\t}\n\t\t\tif (fk.source.columns.length !== fk.target.columns.length) throw new ContractValidationError(`Namespace \"${namespaceId}\" table \"${tableName}\" foreignKey column count (${fk.source.columns.length}) does not match referenced column count (${fk.target.columns.length})`, \"storage\");\n\t\t}\n\t}\n}\n/**\n* Full SQL contract validation: structural (arktype) +\n* framework-shared domain + SQL storage logical-consistency + SQL\n* storage semantic + model ↔ storage reference checks. Throws\n* `ContractValidationError` on the first failure. Returns the\n* validated flat-data shape; IR class hydration happens in the SPI\n* base on top of this helper.\n*/\nfunction validateSqlContractFully(value, options) {\n\tconst validated = validateSqlContractStructure(typeof value === \"object\" && value !== null ? (() => {\n\t\tconst { schemaVersion: _, _generated: _g, ...rest } = blindCast(value);\n\t\treturn rest;\n\t})() : value, options?.contractSchema ?? SqlContractSchema);\n\tvalidateContractDomain({\n\t\troots: validated.roots,\n\t\tdomain: validated.domain\n\t});\n\tvalidateSqlStorageConsistency(validated);\n\tconst semanticErrors = validateStorageSemantics(validated.storage);\n\tif (semanticErrors.length > 0) throw new ContractValidationError(`Contract semantic validation failed: ${semanticErrors.join(\"; \")}`, \"storage\");\n\tvalidateModelStorageReferences(validated);\n\tvalidateRelationThroughConsistency(validated);\n\tvalidateToOneRelationNullabilityAgainstStorage(validated);\n\treturn validated;\n}\n/**\n* A same-space to-one relation that states `nullable` must agree with its local FK columns:\n* nullable exactly when one of them is nullable (a column that cannot be resolved counts as\n* nullable). A relation without the flag is left to hydration, which derives it the same way.\n*/\nfunction validateToOneRelationNullabilityAgainstStorage(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) {\n\t\tconst storage = blindCast(model.storage);\n\t\tfor (const [relationName, relation] of Object.entries(model.relations)) {\n\t\t\tif (!(\"on\" in relation && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\") && relation.to.space === void 0) || relation.nullable === void 0) continue;\n\t\t\tconst location = `Relation \"${relationName}\" on model \"${namespaceId}:${modelName}\"`;\n\t\t\tconst { ownsForeignKey, columns } = resolveSqlToOneRelationStorage(contract, storage, relation);\n\t\t\tif (!ownsForeignKey) {\n\t\t\t\tif (relation.nullable) continue;\n\t\t\t\tthrow new ContractValidationError(`${location} is required but does not own the foreign key, so nothing in storage guarantees the related row exists`, \"storage\");\n\t\t\t}\n\t\t\tconst anyNullable = columns.some((column) => column.nullable);\n\t\t\tif (relation.nullable === anyNullable) continue;\n\t\t\tconst columnList = columns.filter((column) => column.nullable !== relation.nullable).map((column) => `\"${column.name}\"`).join(\", \");\n\t\t\tthrow new ContractValidationError(relation.nullable ? `${location} is nullable but every local FK column is NOT NULL (columns ${columnList})` : `${location} is required but a local FK column is nullable (columns ${columnList})`, \"storage\");\n\t\t}\n\t}\n}\n/** Storage column lookup for through-consistency validation. */\nfunction lookupStorageColumn(contract, namespaceId, tableName, columnName) {\n\tconst rawTable = contract.storage.namespaces[namespaceId]?.entries.table?.[tableName];\n\tif (rawTable === void 0) return;\n\treturn blindCast(rawTable).columns[columnName];\n}\n/**\n* Two storage columns share a type when their `nativeType` and `typeParams`\n* match. The contract is canonicalized, so `typeParams` key order is stable and\n* a JSON comparison is exact. `codecId` and `nullable` are intentionally not\n* compared: they do not change the database-level type that governs a join.\n*/\nfunction sameStorageType(a, b) {\n\treturn a.nativeType === b.nativeType && JSON.stringify(a.typeParams ?? null) === JSON.stringify(b.typeParams ?? null);\n}\nfunction describeColumnType(column) {\n\treturn column.typeParams === void 0 ? column.nativeType : `${column.nativeType} ${JSON.stringify(column.typeParams)}`;\n}\n/**\n* Validates one side of an N:M join: the junction columns and the model\n* columns they pair against positionally must be equal in number, exist in\n* their tables, and share the same storage type (`nativeType` + `typeParams`).\n* The junction's storage foreign keys already guarantee this for user-declared\n* FK constraints, but `through` is a logical descriptor never tied to them by\n* the rest of validation — and the TS builder accepts explicit join columns\n* without requiring a junction FK at all — so this checks the columns directly\n* against storage, one path regardless of how the junction was authored.\n*\n* Joined columns must be the *same* storage type, not merely compatible:\n* relying on implicit conversion (e.g. `text`↔`character`) is unsafe on writes\n* — `character(n)` space-padding makes such coercions non-associative — and no\n* ADR sanctions heterogeneous junction columns. Equality is the conservative\n* default; it can be relaxed deliberately if a real use case ever appears.\n*/\nfunction validateThroughJoinSide(input) {\n\tconst fail = (detail) => new ContractValidationError(`Many-to-many relation \"${input.qualifiedName}\" ${detail}`, \"storage\");\n\tif (input.junctionColumns.length !== input.modelColumns.length) throw fail(`pairs ${input.junctionColumnsLabel} (${input.junctionColumns.length}) with ${input.modelColumnsLabel} (${input.modelColumns.length}) of differing length; they join positionally and must match.`);\n\tfor (const [index, junctionColumnName] of input.junctionColumns.entries()) {\n\t\tconst modelColumnRef = input.modelColumns[index];\n\t\tif (modelColumnRef === void 0) continue;\n\t\tconst junctionColumn = lookupStorageColumn(input.contract, input.junctionNamespaceId, input.junctionTable, junctionColumnName);\n\t\tif (junctionColumn === void 0) throw fail(`${input.junctionColumnsLabel} references column \"${junctionColumnName}\" absent from junction table \"${input.junctionNamespaceId}.${input.junctionTable}\".`);\n\t\tconst model = input.model;\n\t\tif (model === void 0) continue;\n\t\tlet modelColumnName = modelColumnRef;\n\t\tif (model.fieldToColumn !== void 0) {\n\t\t\tconst mapped = model.fieldToColumn[modelColumnRef];\n\t\t\tif (mapped === void 0) throw fail(`${input.modelColumnsLabel} references field \"${modelColumnRef}\" absent from model on table \"${model.namespaceId}.${model.table}\".`);\n\t\t\tmodelColumnName = mapped.column;\n\t\t}\n\t\tconst modelColumn = lookupStorageColumn(input.contract, model.namespaceId, model.table, modelColumnName);\n\t\tif (modelColumn === void 0) throw fail(`${input.modelColumnsLabel} references column \"${modelColumnName}\" absent from table \"${model.namespaceId}.${model.table}\".`);\n\t\tif (!sameStorageType(junctionColumn, modelColumn)) throw fail(`joins \"${input.junctionTable}.${junctionColumnName}\" (${describeColumnType(junctionColumn)}) with \"${model.table}.${modelColumnName}\" (${describeColumnType(modelColumn)}) of differing storage type; junction columns must match the type of the column they reference.`);\n\t}\n}\n/**\n* Validates that every N:M relation's `through` descriptor is consistent with\n* the storage columns it joins: both join sides match in column count,\n* reference columns that exist in their tables, and pair columns of the same\n* storage type. Without this, a `through` that disagrees with storage surfaces\n* as a silently wrong JOIN at query time rather than a validation error here.\n*/\nfunction validateRelationThroughConsistency(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) for (const [relationName, relation] of Object.entries(model.relations)) {\n\t\tif (relation.cardinality !== \"N:M\") continue;\n\t\tconst qualifiedName = `${namespaceId}.${modelName}.${relationName}`;\n\t\tconst { on, through } = relation;\n\t\tconst modelStorage = blindCast(model.storage);\n\t\tvalidateThroughJoinSide({\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: on.localFields,\n\t\t\tmodelColumnsLabel: \"on.localFields\",\n\t\t\tmodel: {\n\t\t\t\tnamespaceId,\n\t\t\t\ttable: modelStorage.table,\n\t\t\t\tfieldToColumn: modelStorage.fields\n\t\t\t},\n\t\t\tjunctionColumns: through.parentColumns,\n\t\t\tjunctionColumnsLabel: \"through.parentColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t\tconst targetModel = relation.to.space === void 0 ? contract.domain.namespaces[relation.to.namespace]?.models[relation.to.model] : void 0;\n\t\tconst targetModelSide = targetModel === void 0 ? void 0 : {\n\t\t\tnamespaceId: relation.to.namespace,\n\t\t\ttable: blindCast(targetModel.storage).table\n\t\t};\n\t\tvalidateThroughJoinSide({\n\t\t\tcontract,\n\t\t\tqualifiedName,\n\t\t\tmodelColumns: through.targetColumns,\n\t\t\tmodelColumnsLabel: \"through.targetColumns\",\n\t\t\t...ifDefined(\"model\", targetModelSide),\n\t\t\tjunctionColumns: through.childColumns,\n\t\t\tjunctionColumnsLabel: \"through.childColumns\",\n\t\t\tjunctionNamespaceId: through.namespaceId,\n\t\t\tjunctionTable: through.table\n\t\t});\n\t}\n}\n//#endregion\nexport { CheckConstraintSchema, ColumnDefaultFunctionSchema, ColumnDefaultLiteralSchema, ColumnDefaultSchema, ContractEnumSchema, ForeignKeyReferenceSchema, ForeignKeySchema, ForeignKeySourceSchema, IndexSchema, ReferentialActionSchema, StorageTableSchema, StorageValueSetSchema, checkSqlDefaultBody, createNamespaceEntrySchema, createSqlContractSchema, createSqlStorageSchema, reservedSqlDefaultBody, resolveSqlToOneRelationStorage, validateModel, validateModelStorageReferences, validateSqlContractFully, validateSqlStorageConsistency, validateStorage, validateStorageSemantics };\n\n//# sourceMappingURL=validators.mjs.map"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as sqlFamilyError } from "./errors-B5g0xWro-mWH2C07F.mjs";
|
|
2
|
-
import { type } from "arktype";
|
|
3
2
|
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
3
|
+
import { type } from "arktype";
|
|
4
4
|
//#region ../../../2-sql/9-family/dist/verify-BVk5bjdH.mjs
|
|
5
5
|
const MetaSchema = type({ "[string]": "unknown" });
|
|
6
6
|
function parseMeta(meta) {
|
|
@@ -93,4 +93,4 @@ function collectSupportedCodecTypeIds(descriptors) {
|
|
|
93
93
|
//#endregion
|
|
94
94
|
export { parseContractMarkerRow as n, collectSupportedCodecTypeIds as t };
|
|
95
95
|
|
|
96
|
-
//# sourceMappingURL=verify-BVk5bjdH-
|
|
96
|
+
//# sourceMappingURL=verify-BVk5bjdH-dq5M4iIh.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-BVk5bjdH-
|
|
1
|
+
{"version":3,"file":"verify-BVk5bjdH-dq5M4iIh.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/verify-BVk5bjdH.mjs"],"sourcesContent":["import { t as sqlFamilyError } from \"./errors-B5g0xWro.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { type } from \"arktype\";\n//#region src/core/verify.ts\nconst MetaSchema = type({ \"[string]\": \"unknown\" });\nfunction parseMeta(meta) {\n\tif (meta === null || meta === void 0) return {};\n\tlet parsed;\n\tif (typeof meta === \"string\") try {\n\t\tparsed = JSON.parse(meta);\n\t} catch {\n\t\treturn {};\n\t}\n\telse parsed = meta;\n\tconst result = MetaSchema(parsed);\n\tif (result instanceof type.errors) return {};\n\treturn blindCast(result);\n}\n/**\n* SQLite stores `contract_json` as TEXT, so the wire shape is a JSON string;\n* Postgres uses `jsonb` and returns an already-parsed value. Normalize both\n* here so `ContractMarkerRecord.contractJson` is always the structured form.\n*/\nfunction parseContractJson(value) {\n\tif (value === null || value === void 0) return null;\n\tif (typeof value !== \"string\") return blindCast(value);\n\ttry {\n\t\treturn blindCast(JSON.parse(value));\n\t} catch {\n\t\treturn null;\n\t}\n}\nconst ContractMarkerRowSchema = type({\n\tcore_hash: \"string\",\n\tprofile_hash: \"string\",\n\t\"contract_json?\": \"unknown | null\",\n\t\"canonical_version?\": \"number | null\",\n\t\"updated_at?\": \"Date | string\",\n\t\"app_tag?\": \"string | null\",\n\t\"meta?\": \"unknown | null\",\n\tinvariants: type(\"string\").array()\n});\n/**\n* Parses a contract marker row from database query result.\n* This is SQL-specific parsing logic (handles SQL row structure with snake_case columns).\n*/\nfunction parseContractMarkerRow(row) {\n\tconst result = ContractMarkerRowSchema(row);\n\tif (result instanceof type.errors) {\n\t\tconst messages = result.map((p) => p.message).join(\"; \");\n\t\tthrow sqlFamilyError(\"CONTRACT.MARKER_ROW_CORRUPT\", `Invalid contract marker row: ${messages}`, {\n\t\t\twhy: \"The contract marker row read from the database does not match the expected marker shape.\",\n\t\t\tfix: \"Re-sign the database with `prisma db sign`, or repair the marker table.\",\n\t\t\tnextActions: [{\n\t\t\t\tkind: \"run-command\",\n\t\t\t\tlabel: \"Re-sign the database\",\n\t\t\t\tcommand: \"{bin} db sign\"\n\t\t\t}, {\n\t\t\t\tkind: \"user-choice\",\n\t\t\t\tlabel: \"Repair the marker table by hand\",\n\t\t\t\treason: messages\n\t\t\t}],\n\t\t\tmeta: { issues: messages }\n\t\t});\n\t}\n\tconst updatedAt = result.updated_at ? result.updated_at instanceof Date ? result.updated_at : new Date(result.updated_at) : /* @__PURE__ */ new Date();\n\treturn {\n\t\tstorageHash: result.core_hash,\n\t\tprofileHash: result.profile_hash,\n\t\tcontractJson: parseContractJson(result.contract_json),\n\t\tcanonicalVersion: result.canonical_version ?? null,\n\t\tupdatedAt,\n\t\tappTag: result.app_tag ?? null,\n\t\tmeta: parseMeta(result.meta),\n\t\tinvariants: result.invariants\n\t};\n}\n/**\n* Collects supported codec type IDs from adapter and extension manifests.\n* Returns a sorted, unique array of type IDs that are declared in the manifests.\n* This enables coverage checks by comparing contract column types against supported types.\n*\n* Note: This extracts type IDs from manifest type imports, not from runtime codec registries.\n* The manifests declare which codec types are available, but the actual type IDs\n* are defined in the codec-types TypeScript modules that are imported.\n*\n* For MVP, we return an empty array since extracting type IDs from TypeScript modules\n* would require runtime evaluation or static analysis. This can be enhanced later.\n*/\nfunction collectSupportedCodecTypeIds(descriptors) {\n\treturn [];\n}\n//#endregion\nexport { parseContractMarkerRow as n, collectSupportedCodecTypeIds as t };\n\n//# sourceMappingURL=verify-BVk5bjdH.mjs.map"],"mappings":";;;;AAIA,MAAM,aAAa,KAAK,EAAE,YAAY,UAAU,CAAC;AACjD,SAAS,UAAU,MAAM;CACxB,IAAI,SAAS,QAAQ,SAAS,KAAK,GAAG,OAAO,CAAC;CAC9C,IAAI;CACJ,IAAI,OAAO,SAAS,UAAU,IAAI;EACjC,SAAS,KAAK,MAAM,IAAI;CACzB,QAAQ;EACP,OAAO,CAAC;CACT;MACK,SAAS;CACd,MAAM,SAAS,WAAW,MAAM;CAChC,IAAI,kBAAkB,KAAK,QAAQ,OAAO,CAAC;CAC3C,OAAO,UAAU,MAAM;AACxB;;;;;;AAMA,SAAS,kBAAkB,OAAO;CACjC,IAAI,UAAU,QAAQ,UAAU,KAAK,GAAG,OAAO;CAC/C,IAAI,OAAO,UAAU,UAAU,OAAO,UAAU,KAAK;CACrD,IAAI;EACH,OAAO,UAAU,KAAK,MAAM,KAAK,CAAC;CACnC,QAAQ;EACP,OAAO;CACR;AACD;AACA,MAAM,0BAA0B,KAAK;CACpC,WAAW;CACX,cAAc;CACd,kBAAkB;CAClB,sBAAsB;CACtB,eAAe;CACf,YAAY;CACZ,SAAS;CACT,YAAY,KAAK,QAAQ,CAAC,CAAC,MAAM;AAClC,CAAC;;;;;AAKD,SAAS,uBAAuB,KAAK;CACpC,MAAM,SAAS,wBAAwB,GAAG;CAC1C,IAAI,kBAAkB,KAAK,QAAQ;EAClC,MAAM,WAAW,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI;EACvD,MAAM,eAAe,+BAA+B,gCAAgC,YAAY;GAC/F,KAAK;GACL,KAAK;GACL,aAAa,CAAC;IACb,MAAM;IACN,OAAO;IACP,SAAS;GACV,GAAG;IACF,MAAM;IACN,OAAO;IACP,QAAQ;GACT,CAAC;GACD,MAAM,EAAE,QAAQ,SAAS;EAC1B,CAAC;CACF;CACA,MAAM,YAAY,OAAO,aAAa,OAAO,sBAAsB,OAAO,OAAO,aAAa,IAAI,KAAK,OAAO,UAAU,oBAAoB,IAAI,KAAK;CACrJ,OAAO;EACN,aAAa,OAAO;EACpB,aAAa,OAAO;EACpB,cAAc,kBAAkB,OAAO,aAAa;EACpD,kBAAkB,OAAO,qBAAqB;EAC9C;EACA,QAAQ,OAAO,WAAW;EAC1B,MAAM,UAAU,OAAO,IAAI;EAC3B,YAAY,OAAO;CACpB;AACD;;;;;;;;;;;;;AAaA,SAAS,6BAA6B,aAAa;CAClD,OAAO,CAAC;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma/orm-family-sql",
|
|
3
|
-
"version": "8.0.0-rc.14-dev.
|
|
3
|
+
"version": "8.0.0-rc.14-dev.31",
|
|
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.14-dev.
|
|
13
|
-
"@prisma/orm-toolchain": "8.0.0-rc.14-dev.
|
|
12
|
+
"@prisma/orm-framework": "8.0.0-rc.14-dev.31",
|
|
13
|
+
"@prisma/orm-toolchain": "8.0.0-rc.14-dev.31",
|
|
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.14-dev.
|
|
23
|
-
"@internal/sql-builder": "8.0.0-rc.14-dev.
|
|
24
|
-
"@internal/sql-contract": "8.0.0-rc.14-dev.
|
|
25
|
-
"@internal/sql-contract-emitter": "8.0.0-rc.14-dev.
|
|
26
|
-
"@internal/sql-contract-prisma7": "8.0.0-rc.14-dev.
|
|
27
|
-
"@internal/sql-contract-psl": "8.0.0-rc.14-dev.
|
|
28
|
-
"@internal/sql-contract-ts": "8.0.0-rc.14-dev.
|
|
29
|
-
"@internal/sql-errors": "8.0.0-rc.14-dev.
|
|
30
|
-
"@internal/sql-operations": "8.0.0-rc.14-dev.
|
|
31
|
-
"@internal/sql-orm-client": "8.0.0-rc.14-dev.
|
|
32
|
-
"@internal/sql-relational-core": "8.0.0-rc.14-dev.
|
|
33
|
-
"@internal/sql-runtime": "8.0.0-rc.14-dev.
|
|
34
|
-
"@internal/sql-schema-ir": "8.0.0-rc.14-dev.
|
|
35
|
-
"@repo/tsconfig": "8.0.0-rc.14-dev.
|
|
36
|
-
"@repo/tsdown": "8.0.0-rc.14-dev.
|
|
22
|
+
"@internal/family-sql": "8.0.0-rc.14-dev.31",
|
|
23
|
+
"@internal/sql-builder": "8.0.0-rc.14-dev.31",
|
|
24
|
+
"@internal/sql-contract": "8.0.0-rc.14-dev.31",
|
|
25
|
+
"@internal/sql-contract-emitter": "8.0.0-rc.14-dev.31",
|
|
26
|
+
"@internal/sql-contract-prisma7": "8.0.0-rc.14-dev.31",
|
|
27
|
+
"@internal/sql-contract-psl": "8.0.0-rc.14-dev.31",
|
|
28
|
+
"@internal/sql-contract-ts": "8.0.0-rc.14-dev.31",
|
|
29
|
+
"@internal/sql-errors": "8.0.0-rc.14-dev.31",
|
|
30
|
+
"@internal/sql-operations": "8.0.0-rc.14-dev.31",
|
|
31
|
+
"@internal/sql-orm-client": "8.0.0-rc.14-dev.31",
|
|
32
|
+
"@internal/sql-relational-core": "8.0.0-rc.14-dev.31",
|
|
33
|
+
"@internal/sql-runtime": "8.0.0-rc.14-dev.31",
|
|
34
|
+
"@internal/sql-schema-ir": "8.0.0-rc.14-dev.31",
|
|
35
|
+
"@repo/tsconfig": "8.0.0-rc.14-dev.31",
|
|
36
|
+
"@repo/tsdown": "8.0.0-rc.14-dev.31",
|
|
37
37
|
"tsdown": "0.22.14",
|
|
38
38
|
"typescript": "5.9.3"
|
|
39
39
|
},
|
|
@@ -53,6 +53,8 @@
|
|
|
53
53
|
"./contract/authored-check-naming": "./dist/contract__authored-check-naming.mjs",
|
|
54
54
|
"./contract/canonicalization-hooks": "./dist/contract__canonicalization-hooks.mjs",
|
|
55
55
|
"./contract/contract-view": "./dist/contract__contract-view.mjs",
|
|
56
|
+
"./contract/data-type": "./dist/contract__data-type.mjs",
|
|
57
|
+
"./contract/data-type-support": "./dist/contract__data-type-support.mjs",
|
|
56
58
|
"./contract/entity-handle-lowering-hook": "./dist/contract__entity-handle-lowering-hook.mjs",
|
|
57
59
|
"./contract/entity-kinds": "./dist/contract__entity-kinds.mjs",
|
|
58
60
|
"./contract/factories": "./dist/contract__factories.mjs",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast-5hifzBHC.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/ast.mjs"],"sourcesContent":["import { A as PreparedParamRef, B as isAggregateFn, C as LiteralExpr, D as OrExpr, E as OperationExpr, F as SubqueryExpr, G as queryAstKinds, H as isOrderByNulls, I as TableSource, K as whereExprKinds, L as UpdateAst, M as RawExpr, N as RawQueryAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as isQueryAst, V as isOrderByDirection, W as isWhereExpr, _ as InsertAst, a as CastExpr, b as JsonArrayAggExpr, c as DeleteAst, d as DoUpdateSetConflictAction, f as EqColJoinOn, g as IdentifierRef, h as FunctionSource, i as CaseExpr, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, m as FunctionCallExpr, n as AndExpr, o as ColumnRef, p as ExistsExpr, q as frozenCodecRef, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, u as DoNothingConflictAction, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst, z as aggregateFnNames } from \"../types-BPi4d3WI.mjs\";\nimport { a as DdlColumn, c as ForeignKeyConstraint, d as PrimaryKeyConstraint, f as UniqueConstraint, i as CheckExpressionConstraint, l as FunctionColumnDefault, n as opaqueSql, o as DdlColumnDefault, p as isDdlNode, r as renderOpaqueSql, s as DdlNode, t as OpaqueSql, u as LiteralColumnDefault } from \"../opaque-sql-CwvHZSr8.mjs\";\nimport { n as compact, t as collectOrderedParamRefs } from \"../util-DQQgv2j1.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { CodecDescriptorTemplateImpl, CodecImpl, SAFE_INTEGER_RANGE, codecForRef, column, decodeJsonFloat, decodeJsonInteger, decodeJsonString, encodeJsonFloat, isNonFiniteText } from \"@internal/framework-components/codec\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { InternalError, isInternalError } from \"@internal/utils/internal-error\";\nimport { withoutTrailing } from \"@internal/utils/text\";\nimport { type } from \"arktype\";\n//#region src/ast/data-type-support.ts\nconst INTEGER_TEXT = /^-?\\d+$/;\nconst DECIMAL_TEXT = /^-?\\d+\\.\\d+$/;\nconst DECIMAL_NUMERAL = /^(-?)0*(\\d+)(\\.\\d+)?$/;\n/** Whether `text` is a whole number or a decimal as a contract source writes one. */\nfunction isNumeralText(text) {\n\treturn INTEGER_TEXT.test(text) || DECIMAL_TEXT.test(text);\n}\n/**\n* A written numeral as the contract stores it. Leading zeros and the sign of zero never change a\n* number, so they go; trailing zeros stay, because a type without a scale keeps them.\n*/\nfunction canonicalNumeralText(text) {\n\tconst numeral = DECIMAL_NUMERAL.exec(text);\n\tif (numeral === null) return text;\n\tconst [, sign = \"\", whole = \"\", fraction = \"\"] = numeral;\n\tconst digits = `${whole}${fraction}`;\n\treturn /^[0.]+$/.test(digits) ? digits : `${sign}${digits}`;\n}\n/**\n* A number as a contract source writes it: no exponent, because no schema language has that syntax,\n* so the decimal point moves to where the exponent puts it. A non-finite number is its own word.\n*/\nfunction numeralText(value) {\n\tconst [coefficient = \"\", exponent] = String(value).split(\"e\");\n\tif (exponent === void 0) return coefficient;\n\tconst sign = coefficient.startsWith(\"-\") ? \"-\" : \"\";\n\tconst [whole = \"\", fraction = \"\"] = coefficient.slice(sign.length).split(\".\");\n\tconst digits = `${whole}${fraction}`;\n\tconst point = whole.length + Number(exponent);\n\tif (point <= 0) return `${sign}0.${\"0\".repeat(-point)}${digits}`;\n\tif (point >= digits.length) return `${sign}${digits}${\"0\".repeat(point - digits.length)}`;\n\treturn `${sign}${digits.slice(0, point)}.${digits.slice(point)}`;\n}\n/**\n* The canonical form of a 64-bit integer type: digit text. A database reads an integer default back as a number when it is a safe integer, so a safe integer reads as its digit text too; any other number may already have lost digits and is refused.\n*/\nconst integerTextCanonicalForm = (value) => {\n\tif (typeof value === \"number\" && Number.isSafeInteger(value)) return numeralText(value);\n\tif (typeof value === \"string\" && INTEGER_TEXT.test(value)) return BigInt(value).toString();\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", `Expected digit text or a safe integer, got ${JSON.stringify(value)}.`, {\n\t\twhy: \"A 64-bit integer type stores its value as digit text, and a number past the safe integer range may already have lost digits.\",\n\t\tfix: \"Write the value as digit text.\"\n\t});\n};\n/** A string as a contract source writes it, with the escapes its string reader resolves. */\nfunction escapePslString(value) {\n\treturn value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\");\n}\n/** The range of a signed integer of `bits` bits. */\nfunction signedRange(bits) {\n\tconst half = 2n ** (BigInt(bits) - 1n);\n\treturn {\n\t\tmin: -half,\n\t\tmax: half - 1n\n\t};\n}\n/**\n* The classifier one target's plain-number authoring entry carries: it reads the digits and says\n* which of the target's types the value is, in that type's canonical form. `undefined` means no\n* type of this target holds the number.\n*/\nfunction createNumberClassifier(spec) {\n\tconst as = (classification, value) => classification === void 0 ? void 0 : {\n\t\ttype: classification.type,\n\t\tvalue\n\t};\n\treturn (text) => {\n\t\tif (isNonFiniteText(text)) return as(spec.words, spec.words?.form === \"number\" ? Number(text) : text);\n\t\tif (DECIMAL_TEXT.test(text)) {\n\t\t\tconst canonical = canonicalNumeralText(text);\n\t\t\treturn as(spec.fraction, spec.fraction?.form === \"number\" ? Number(canonical) : canonical);\n\t\t}\n\t\tif (!INTEGER_TEXT.test(text)) return void 0;\n\t\tconst digits = BigInt(text);\n\t\tconst classification = spec.integers.find(({ min, max }) => digits >= min && digits <= max) ?? spec.largerWhole;\n\t\treturn as(classification, classification?.form === \"number\" ? Number(digits) : digits.toString());\n\t};\n}\n/**\n* Read a JSON body into the document it holds.\n*\n* `JSON.parse` reads a numeral too large for a double as `Infinity`, and `JSON.stringify` writes\n* that back as `null`, so a document holding one would not be the document stored; it is refused\n* here instead, naming where the number is.\n*/\nfunction parseJsonBody(text) {\n\tlet value;\n\ttry {\n\t\tvalue = JSON.parse(text);\n\t} catch (error) {\n\t\tthrow structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", error instanceof Error ? error.message : String(error), {\n\t\t\twhy: \"The body is not a JSON document.\",\n\t\t\tfix: \"Write a JSON document.\"\n\t\t});\n\t}\n\tconst overflowed = nonFiniteNumberIn(value, \"\");\n\tif (overflowed !== void 0) throw structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", `${overflowed.path} is ${overflowed.value}, which JSON cannot write back: the number in the text is outside the range a JSON number holds.`, {\n\t\twhy: \"JSON.parse reads a numeral too large for a double as Infinity, which JSON.stringify writes back as null.\",\n\t\tfix: \"Write a number JSON can hold, or write it as text.\"\n\t});\n\treturn value;\n}\n/** Write a document as the body of a JSON literal. */\nfunction printJsonBody(value) {\n\treturn JSON.stringify(value);\n}\nfunction nonFiniteNumberIn(value, path) {\n\tif (typeof value === \"number\") return Number.isFinite(value) ? void 0 : {\n\t\tpath: path === \"\" ? \"The value\" : path,\n\t\tvalue\n\t};\n\tif (Array.isArray(value)) {\n\t\tfor (const [index, element] of value.entries()) {\n\t\t\tconst found = nonFiniteNumberIn(element, `${path}[${index}]`);\n\t\t\tif (found !== void 0) return found;\n\t\t}\n\t\treturn;\n\t}\n\tif (typeof value === \"object\" && value !== null) for (const [key, member] of Object.entries(value)) {\n\t\tconst found = nonFiniteNumberIn(member, path === \"\" ? key : `${path}.${key}`);\n\t\tif (found !== void 0) return found;\n\t}\n}\n//#endregion\n//#region src/ast/date-time-canonical-form.ts\n/**\n* The reader the SQL targets build the canonical form of each date and time type with; ADR 254\n* states the forms and the text it reads.\n*/\nconst SHAPES = {\n\tdate: {\n\t\tdescription: \"a date\",\n\t\tplural: \"dates\",\n\t\texample: \"2024-01-01\",\n\t\tdate: true,\n\t\ttime: false,\n\t\toffset: false\n\t},\n\ttime: {\n\t\tdescription: \"a time of day\",\n\t\tplural: \"times of day\",\n\t\texample: \"12:34:56\",\n\t\tdate: false,\n\t\ttime: true,\n\t\toffset: false\n\t},\n\ttimeWithOffset: {\n\t\tdescription: \"a time of day with a UTC offset\",\n\t\tplural: \"times of day with a UTC offset\",\n\t\texample: \"12:34:56+02:00\",\n\t\tdate: false,\n\t\ttime: true,\n\t\toffset: true\n\t},\n\tdateTime: {\n\t\tdescription: \"a date and time\",\n\t\tplural: \"dates and times\",\n\t\texample: \"2024-01-01T12:34:56\",\n\t\tdate: true,\n\t\ttime: true,\n\t\toffset: false\n\t},\n\tinstant: {\n\t\tdescription: \"a date and time with a UTC offset\",\n\t\tplural: \"instants\",\n\t\texample: \"2024-01-01T12:34:56Z\",\n\t\tdate: true,\n\t\ttime: true,\n\t\toffset: true\n\t}\n};\nconst DATE_PREFIX = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})/;\nconst TIME_PREFIX = /^(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d+))?)?/;\nconst OFFSET = /^([+-])(\\d{2})(?::(\\d{2})(?::(\\d{2}))?)?$/;\nconst MAX_FRACTION_DIGITS = 6;\nconst FRACTION_UNITS = {\n\t3: \"milliseconds\",\n\t6: \"microseconds\"\n};\nconst SECONDS_PER_DAY = 86400;\nconst MIDNIGHT = {\n\thour: 0,\n\tminute: 0,\n\tsecond: 0,\n\tfraction: \"\"\n};\nfunction refused(message) {\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", message, {\n\t\twhy: \"A date or time type stores one canonical form for each value (ADR 254).\",\n\t\tfix: \"Write text the type holds, as the message shows.\"\n\t});\n}\nfunction isLeapYear(year) {\n\treturn year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nfunction daysInMonth(year, month) {\n\tif (month === 2) return isLeapYear(year) ? 29 : 28;\n\treturn [\n\t\t4,\n\t\t6,\n\t\t9,\n\t\t11\n\t].includes(month) ? 30 : 31;\n}\n/** Days from 1970-01-01 to a date of the proleptic Gregorian calendar, with year 0 as 1 BC. */\nfunction daysFromCivil({ year, month, day }) {\n\tconst shifted = month <= 2 ? year - 1 : year;\n\tconst era = Math.floor(shifted / 400);\n\tconst yearOfEra = shifted - era * 400;\n\tconst dayOfYear = Math.floor((153 * (month + (month > 2 ? -3 : 9)) + 2) / 5) + day - 1;\n\tconst dayOfEra = yearOfEra * 365 + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100) + dayOfYear;\n\treturn era * 146097 + dayOfEra - 719468;\n}\nfunction civilFromDays(days) {\n\tconst shifted = days + 719468;\n\tconst era = Math.floor(shifted / 146097);\n\tconst dayOfEra = shifted - era * 146097;\n\tconst yearOfEra = Math.floor((dayOfEra - Math.floor(dayOfEra / 1460) + Math.floor(dayOfEra / 36524) - Math.floor(dayOfEra / 146096)) / 365);\n\tconst dayOfYear = dayOfEra - (365 * yearOfEra + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100));\n\tconst monthIndex = Math.floor((5 * dayOfYear + 2) / 153);\n\tconst day = dayOfYear - Math.floor((153 * monthIndex + 2) / 5) + 1;\n\tconst month = monthIndex < 10 ? monthIndex + 3 : monthIndex - 9;\n\treturn {\n\t\tyear: yearOfEra + era * 400 + (month <= 2 ? 1 : 0),\n\t\tmonth,\n\t\tday\n\t};\n}\nfunction pad(value, width = 2) {\n\treturn String(value).padStart(width, \"0\");\n}\nfunction yearText(year) {\n\tif (year >= 0 && year <= 9999) return pad(year, 4);\n\treturn `${year < 0 ? \"-\" : \"+\"}${pad(Math.abs(year), 6)}`;\n}\nfunction dateText(date) {\n\treturn `${yearText(date.year)}-${pad(date.month)}-${pad(date.day)}`;\n}\nfunction timeText(time) {\n\tconst fraction = time.fraction.replace(/0+$/, \"\");\n\treturn `${pad(time.hour)}:${pad(time.minute)}:${pad(time.second)}${fraction === \"\" ? \"\" : `.${fraction}`}`;\n}\nfunction offsetText(seconds) {\n\tif (seconds === 0) return \"Z\";\n\tconst magnitude = Math.abs(seconds);\n\tconst rest = magnitude % 60;\n\treturn `${seconds < 0 ? \"-\" : \"+\"}${pad(Math.floor(magnitude / 3600))}:${pad(Math.floor(magnitude / 60) % 60)}${rest === 0 ? \"\" : `:${pad(rest)}`}`;\n}\n/**\n* The fields of an ISO 8601 date, time, or date and time, or `undefined` when the text is not one.\n* Ranges are checked by the caller, which words the refusal.\n*/\nfunction readWritten(text) {\n\tlet rest = text;\n\tlet date;\n\tlet timeFollows = true;\n\tconst dateMatch = DATE_PREFIX.exec(rest);\n\tif (dateMatch !== null) {\n\t\tconst [whole, yearDigits = \"\", month = \"\", day = \"\"] = dateMatch;\n\t\tif (yearDigits === \"-000000\") return void 0;\n\t\tdate = {\n\t\t\tyear: Number(yearDigits),\n\t\t\tmonth: Number(month),\n\t\t\tday: Number(day)\n\t\t};\n\t\trest = rest.slice(whole.length);\n\t\ttimeFollows = /^[Tt ]/.test(rest);\n\t\tif (timeFollows) rest = rest.slice(1);\n\t}\n\tlet time;\n\tlet fractionDigits = 0;\n\tif (timeFollows) {\n\t\tconst timeMatch = TIME_PREFIX.exec(rest);\n\t\tif (timeMatch === null) return void 0;\n\t\tconst [whole, hour = \"\", minute = \"\", second = \"00\", fraction = \"\"] = timeMatch;\n\t\ttime = {\n\t\t\thour: Number(hour),\n\t\t\tminute: Number(minute),\n\t\t\tsecond: Number(second),\n\t\t\tfraction\n\t\t};\n\t\tfractionDigits = fraction.length;\n\t\trest = rest.slice(whole.length);\n\t}\n\tlet offsetSeconds;\n\tif (rest === \"Z\" || rest === \"z\") offsetSeconds = 0;\n\telse if (rest !== \"\") {\n\t\tconst offset = OFFSET.exec(rest);\n\t\tif (offset === null) return void 0;\n\t\tconst [, sign, hours = \"\", minutes = \"00\", seconds = \"00\"] = offset;\n\t\tif (Number(minutes) > 59 || Number(seconds) > 59) return void 0;\n\t\tconst magnitude = Number(hours) * 3600 + Number(minutes) * 60 + Number(seconds);\n\t\toffsetSeconds = sign === \"-\" ? -magnitude : magnitude;\n\t}\n\treturn {\n\t\tdate,\n\t\ttime,\n\t\toffsetSeconds,\n\t\tfractionDigits\n\t};\n}\nfunction withFraction(example, digits) {\n\treturn example.replace(/(\\d{2}:\\d{2}:\\d{2})/, `$1.${\"123456\".slice(0, digits)}`);\n}\n/** The value with an instant moved to UTC. */\nfunction normalized(written, shape) {\n\tconst clock = written.time ?? MIDNIGHT;\n\tconst offsetSeconds = written.offsetSeconds ?? 0;\n\tif (written.date === void 0 || shape !== \"instant\") return {\n\t\tdate: written.date,\n\t\ttime: clock,\n\t\toffsetSeconds\n\t};\n\tconst utc = daysFromCivil(written.date) * SECONDS_PER_DAY + clock.hour * 3600 + clock.minute * 60 + clock.second - offsetSeconds;\n\tconst days = Math.floor(utc / SECONDS_PER_DAY);\n\tconst secondOfDay = utc - days * SECONDS_PER_DAY;\n\treturn {\n\t\tdate: civilFromDays(days),\n\t\ttime: {\n\t\t\thour: Math.floor(secondOfDay / 3600),\n\t\t\tminute: Math.floor(secondOfDay / 60) % 60,\n\t\t\tsecond: secondOfDay % 60,\n\t\t\tfraction: clock.fraction\n\t\t},\n\t\toffsetSeconds: 0\n\t};\n}\nfunction position(value) {\n\tconst { time } = value;\n\treturn [\n\t\tvalue.date === void 0 ? 0 : daysFromCivil(value.date),\n\t\ttime.hour * 3600 + time.minute * 60 + time.second,\n\t\ttime.fraction.padEnd(MAX_FRACTION_DIGITS, \"0\")\n\t];\n}\nfunction isBefore(left, right) {\n\tif (left[0] !== right[0]) return left[0] < right[0];\n\tif (left[1] !== right[1]) return left[1] < right[1];\n\treturn left[2] < right[2];\n}\nfunction printed(value, shape) {\n\tconst { date, time, offsetSeconds } = value;\n\tif (date === void 0) return shape === \"timeWithOffset\" ? `${timeText(time)}${offsetText(offsetSeconds)}` : timeText(time);\n\tif (shape === \"date\") return dateText(date);\n\tif (shape === \"dateTime\") return `${dateText(date)}T${timeText(time)}`;\n\treturn `${dateText(date)}T${timeText(time)}Z`;\n}\n/** The position of a range bound, which the data type declares in canonical form. */\nfunction boundPosition(text, shape) {\n\tconst written = readWritten(text);\n\tif (written === void 0) throw new InternalError(`The range bound \"${text}\" is not in canonical form.`);\n\treturn position(normalized(written, shape));\n}\n/**\n* The canonical form of written date or time text, or a refusal with a message that says what is\n* wrong and shows text the type holds. `written` is the text as its author wrote it, which the\n* message shows, when a target rewrote it into ISO 8601 before calling this.\n*/\nfunction canonicalDateTime(text, options, written = text) {\n\tconst shape = SHAPES[options.shape];\n\tconst { dataTypeId: id } = options;\n\tconst parts = readWritten(text);\n\tif (parts === void 0) refused(`${id} cannot read \"${written}\". Write ${shape.description}, as in \"${shape.example}\".`);\n\tif (parts.date !== void 0 && !shape.date) refused(`${id} holds a time of day without a date, but \"${written}\" has a date. Write the time alone, as in \"${shape.example}\".`);\n\tif (parts.date === void 0 && shape.date) refused(shape.time ? `${id} holds ${shape.description}, but \"${written}\" has no date. Write the date too, as in \"${shape.example}\".` : `${id} holds a date, and \"${written}\" is a time of day. Write a date, as in \"${shape.example}\".`);\n\tif (parts.time !== void 0 && !shape.time) refused(`${id} holds a date without a time of day, but \"${written}\" has a time. Write the date alone, as in \"${shape.example}\".`);\n\tif (parts.time === void 0 && shape.offset) refused(`${id} holds ${shape.description}, but \"${written}\" has no time of day. Write the time too, as in \"${shape.example}\".`);\n\tif (parts.offsetSeconds !== void 0 && !shape.offset) refused(`${id} holds no UTC offset, but \"${written}\" has one. Leave it out, as in \"${shape.example}\".`);\n\tif (parts.offsetSeconds === void 0 && shape.offset) refused(`${id} needs a UTC offset, but \"${written}\" has none. Add Z for UTC or an offset such as +02:00, as in \"${shape.example}\".`);\n\tconst maxFractionDigits = options.maxFractionDigits ?? MAX_FRACTION_DIGITS;\n\tif (parts.fractionDigits > maxFractionDigits) refused(`\"${written}\" has ${parts.fractionDigits} digits after the decimal point, but ${id} holds ${FRACTION_UNITS[maxFractionDigits]}, so at most ${maxFractionDigits}. Round it, as in \"${withFraction(shape.example, maxFractionDigits)}\".`);\n\tconst { date, time } = parts;\n\tif (date !== void 0 && (date.month < 1 || date.month > 12 || date.day < 1 || date.day > daysInMonth(date.year, date.month))) refused(`\"${written}\" is not a date that exists. Write a real date, as in \"${shape.example}\".`);\n\tif (time !== void 0 && (time.hour > 23 || time.minute > 59 || time.second > 59)) refused(`\"${written}\" is not a time of day that exists: hours run from 00 to 23, and minutes and seconds from 00 to 59. Write one, as in \"${shape.example}\".`);\n\tconst offsetLimit = options.maxOffsetHours ?? 23;\n\tif (parts.offsetSeconds !== void 0 && Math.abs(parts.offsetSeconds) >= (offsetLimit + 1) * 3600) refused(`\"${written}\" has a UTC offset outside -${pad(offsetLimit)}:59 to +${pad(offsetLimit)}:59, which ${id} does not hold. Write a smaller offset, as in \"${shape.example}\".`);\n\tconst value = normalized(parts, options.shape);\n\tconst { range } = options;\n\tif (range !== void 0) {\n\t\tconst at = position(value);\n\t\tif (isBefore(at, boundPosition(range.earliest, options.shape)) || isBefore(boundPosition(range.latest, options.shape), at)) refused(`${id} holds ${shape.plural} from ${range.earliest} to ${range.latest}, and \"${written}\" is outside them.`);\n\t}\n\treturn printed(value, options.shape);\n}\n//#endregion\n//#region src/ast/ddl-default.ts\n/**\n* Reads a column's literal default with the column's codec, built with its type parameters, and encodes it for the DDL renderer to inline. `undefined` when no codec descriptor has the column's codec id, so the renderer inlines the value as written.\n*\n* A `Date` is the one authored value JSON has no notation for, so it is encoded as it is. A `null` the codec refuses is SQL NULL, because SQL NULL has no stored form of its own; a codec that reads `null` (a JSON codec) makes it the JSON value null. Any other value the codec refuses is a `CONTRACT.DEFAULT_INVALID` naming the column.\n*/\nasync function encodeLiteralDefault(codecLookup, codecRef, value, where) {\n\tconst codec = codecForRef(codecLookup, codecRef);\n\tif (codec === void 0) return void 0;\n\tif (value instanceof Date) return {\n\t\tkind: \"wire\",\n\t\twire: await codec.encode(value, {})\n\t};\n\treturn encodeWithCodec(codec, value, (cause) => refusedDefault(where, codecRef.codecId, value, void 0, cause));\n}\n/**\n* Reads and encodes each element of a list column's literal default with the column's codec, as {@link encodeLiteralDefault} does a single value, so a `null` element the codec refuses is SQL NULL. `undefined` when no codec descriptor has the column's codec id. An element the codec refuses is a `CONTRACT.DEFAULT_INVALID` naming the column and the element's 1-based position.\n*/\nasync function encodeListLiteralDefault(codecLookup, codecRef, elements, where) {\n\tconst codec = codecForRef(codecLookup, codecRef);\n\tif (codec === void 0) return void 0;\n\treturn Promise.all(elements.map((element, index) => encodeWithCodec(codec, element, (cause) => refusedDefault(where, codecRef.codecId, element, index + 1, cause))));\n}\nasync function encodeWithCodec(codec, value, refused) {\n\tlet decoded;\n\ttry {\n\t\tdecoded = codec.decodeJson(value);\n\t} catch (error) {\n\t\tif (isInternalError(error)) throw error;\n\t\tif (value === null) return { kind: \"sql-null\" };\n\t\tthrow refused(error);\n\t}\n\treturn {\n\t\tkind: \"wire\",\n\t\twire: await codec.encode(decoded, {})\n\t};\n}\nfunction refusedDefault(where, codecId, value, elementPosition, cause) {\n\tconst reason = cause instanceof Error ? cause.message : String(cause);\n\tconst subject = elementPosition === void 0 ? \"default\" : `default (element ${elementPosition})`;\n\treturn structuredError(\"CONTRACT.DEFAULT_INVALID\", `Column \"${where.table}\".\"${where.column}\" has a ${subject} its codec ${codecId} refuses: ${reason}`, {\n\t\twhy: \"A contract.json that an earlier version emitted, or a migration.ts it planned, can hold a default that this version's codec refuses, and so can either file after a hand edit.\",\n\t\tfix: \"If contract.json holds the default, emit the contract again with this version, and correct the default in the contract source if emit refuses it. If a migration.ts sets it, correct it in that file.\",\n\t\tcause,\n\t\tmeta: {\n\t\t\ttable: where.table,\n\t\t\tcolumn: where.column,\n\t\t\tcodecId,\n\t\t\tvalue,\n\t\t\t...ifDefined(\"elementPosition\", elementPosition),\n\t\t\treason: \"codec-refused-default\"\n\t\t}\n\t});\n}\n//#endregion\n//#region src/ast/json-value-projection.ts\nvar JsonValueProjection = class {\n\tvalue;\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n\tfold(folder) {\n\t\treturn this.value.fold(folder);\n\t}\n\tcollectColumnRefs() {\n\t\treturn this.value.collectColumnRefs();\n\t}\n\tcollectParamRefs() {\n\t\treturn this.value.collectParamRefs();\n\t}\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nvar CodecJsonValueProjection = class CodecJsonValueProjection extends JsonValueProjection {\n\tkind = \"codec\";\n\tcodec;\n\tconstructor(value, codec) {\n\t\tsuper(value);\n\t\tthis.codec = frozenCodecRef(codec);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.codec(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new CodecJsonValueProjection(this.value.rewrite(rewriter), this.codec);\n\t}\n};\nvar NativeJsonValueProjection = class NativeJsonValueProjection extends JsonValueProjection {\n\tkind = \"native\";\n\tconstructor(value) {\n\t\tsuper(value);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.native(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new NativeJsonValueProjection(this.value.rewrite(rewriter));\n\t}\n};\nvar JsonDocumentProjection = class JsonDocumentProjection extends JsonValueProjection {\n\tkind = \"document\";\n\tconstructor(value) {\n\t\tsuper(value);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.document(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JsonDocumentProjection(this.value.rewrite(rewriter));\n\t}\n};\n//#endregion\n//#region src/ast/sql-codec-helpers.ts\n/**\n* Shared encode/decode/render constants and codec id literals for the five SQL base codecs (`sql/char@1`, `sql/varchar@1`, `sql/int@1`, `sql/float@1`, `sql/text@1`).\n*\n* The codec implementations live in `sql-codecs.ts` (TML-2357). This module retains only the conversion helpers + emit-path renderers the codec methods compose with — keeping a single source of truth for non-trivial conversions while the codec methods provide the framework-required `Promise<…>` boundary.\n*/\nconst SQL_CHAR_CODEC_ID = \"sql/char@1\";\nconst SQL_VARCHAR_CODEC_ID = \"sql/varchar@1\";\nconst SQL_INT_CODEC_ID = \"sql/int@1\";\nconst SQL_FLOAT_CODEC_ID = \"sql/float@1\";\nconst SQL_TEXT_CODEC_ID = \"sql/text@1\";\nconst sqlCharEncode = (value) => value;\n/** A `character` value as the database returns it, without the spaces that pad it to its length. Only spaces pad it, so a trailing tab or newline is part of the value. */\nconst sqlCharDecode = (wire) => withoutTrailing(wire, \" \");\nconst sqlCharRenderOutputType = (typeParams) => {\n\tconst length = typeParams.length;\n\tif (length === void 0) return void 0;\n\tif (typeof length !== \"number\" || !Number.isFinite(length) || !Number.isInteger(length)) throw structuredError(\"RUNTIME.TYPE_PARAMS_INVALID\", `renderOutputType: expected integer \"length\" in typeParams for Char, got ${String(length)}`, { meta: {\n\t\tcodec: SQL_CHAR_CODEC_ID,\n\t\tparam: \"length\",\n\t\treceived: String(length)\n\t} });\n\treturn `Char<${length}>`;\n};\nconst sqlVarcharEncode = (value) => value;\nconst sqlVarcharDecode = (wire) => wire;\nconst sqlVarcharRenderOutputType = (typeParams) => {\n\tconst length = typeParams.length;\n\tif (length === void 0) return void 0;\n\tif (typeof length !== \"number\" || !Number.isFinite(length) || !Number.isInteger(length)) throw structuredError(\"RUNTIME.TYPE_PARAMS_INVALID\", `renderOutputType: expected integer \"length\" in typeParams for Varchar, got ${String(length)}`, { meta: {\n\t\tcodec: SQL_VARCHAR_CODEC_ID,\n\t\tparam: \"length\",\n\t\treceived: String(length)\n\t} });\n\treturn `Varchar<${length}>`;\n};\nconst sqlIntEncode = (value) => value;\nconst sqlIntDecode = (wire) => wire;\nconst sqlFloatEncode = (value) => value;\nconst sqlFloatDecode = (wire) => wire;\nconst sqlTextEncode = (value) => value;\nconst sqlTextDecode = (wire) => wire;\n//#endregion\n//#region src/ast/sql-codecs.ts\nconst lengthParamsSchema = type({ \"length?\": \"number.integer > 0\" });\nvar SqlTextCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlTextEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlTextDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn decodeJsonString(this.id, json);\n\t}\n};\nvar SqlTextDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_TEXT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"text\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlTextCodec(this);\n\t}\n};\nconst sqlTextDescriptor = new SqlTextDescriptor();\nconst sqlTextColumn = () => column(sqlTextDescriptor.factory(), sqlTextDescriptor.codecId, void 0, \"text\");\nvar SqlIntCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlIntEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlIntDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn decodeJsonInteger(this.id, json, SAFE_INTEGER_RANGE);\n\t}\n};\nvar SqlIntDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_INT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"numeric\"\n\t];\n\ttargetTypes = [\"int\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlIntCodec(this);\n\t}\n};\nconst sqlIntDescriptor = new SqlIntDescriptor();\nconst sqlIntColumn = () => column(sqlIntDescriptor.factory(), sqlIntDescriptor.codecId, void 0, \"int\");\nvar SqlFloatCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlFloatEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlFloatDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn encodeJsonFloat(value);\n\t}\n\tdecodeJson(json) {\n\t\treturn decodeJsonFloat(this.id, json);\n\t}\n};\nvar SqlFloatDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_FLOAT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"numeric\"\n\t];\n\ttargetTypes = [\"float\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlFloatCodec(this);\n\t}\n};\nconst sqlFloatDescriptor = new SqlFloatDescriptor();\nconst sqlFloatColumn = () => column(sqlFloatDescriptor.factory(), sqlFloatDescriptor.codecId, void 0, \"float\");\nvar SqlCharCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlCharEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlCharDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn decodeJsonString(this.id, json);\n\t}\n};\nvar SqlCharDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_CHAR_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"char\"];\n\tparamsSchema = lengthParamsSchema;\n\trenderOutputType(params) {\n\t\treturn sqlCharRenderOutputType(params);\n\t}\n\tfactory(_params) {\n\t\treturn () => new SqlCharCodec(this);\n\t}\n};\nconst sqlCharDescriptor = new SqlCharDescriptor();\nconst sqlCharColumn = (params = {}) => column(sqlCharDescriptor.factory(params), sqlCharDescriptor.codecId, params, \"char\");\nvar SqlVarcharCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlVarcharEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlVarcharDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn decodeJsonString(this.id, json);\n\t}\n};\nvar SqlVarcharDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_VARCHAR_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"varchar\"];\n\tparamsSchema = lengthParamsSchema;\n\trenderOutputType(params) {\n\t\treturn sqlVarcharRenderOutputType(params);\n\t}\n\tfactory(_params) {\n\t\treturn () => new SqlVarcharCodec(this);\n\t}\n};\nconst sqlVarcharDescriptor = new SqlVarcharDescriptor();\nconst sqlVarcharColumn = (params = {}) => column(sqlVarcharDescriptor.factory(params), sqlVarcharDescriptor.codecId, params, \"varchar\");\n//#endregion\nexport { AggregateExpr, AndExpr, BinaryExpr, CaseExpr, CastExpr, CheckExpressionConstraint, CodecJsonValueProjection, ColumnRef, DdlColumn, DdlColumnDefault, DdlNode, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ForeignKeyConstraint, FunctionCallExpr, FunctionColumnDefault, FunctionSource, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectExpr, ListExpression, LiteralColumnDefault, LiteralExpr, NativeJsonValueProjection, NotExpr, NullCheckExpr, OpaqueSql, OperationExpr, OrExpr, OrderByItem, ParamRef, PreparedParamRef, PrimaryKeyConstraint, ProjectionItem, RawExpr, RawQueryAst, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UniqueConstraint, UpdateAst, WindowFuncExpr, aggregateFnNames, canonicalDateTime, canonicalNumeralText, collectOrderedParamRefs, compact, createNumberClassifier, encodeListLiteralDefault, encodeLiteralDefault, escapePslString, frozenCodecRef, integerTextCanonicalForm, isAggregateFn, isDdlNode, isNumeralText, isOrderByDirection, isOrderByNulls, isQueryAst, isWhereExpr, numeralText, opaqueSql, parseJsonBody, printJsonBody, queryAstKinds, renderOpaqueSql, signedRange, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDescriptor, sqlFloatEncode, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, whereExprKinds };\n\n//# sourceMappingURL=ast.mjs.map"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast-dPjHeaNs.d.mts","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/ast.d.mts"],"mappings":";;;;;;;;KAOK;;;;;;;KAOA;WACM;WACA,QAAQ;;WAER;;WAEA;;UAED,eAAe,gBAAgB,gBAAgB;WAC9C;WACA,QAAQ;WACR,cAAc;;;;EAIvB,WAAW,WAAW,eAAe,QAAQ;;UAErC,eAAe;WACd,UAAU;WACV;;KAEN,QAAQ,eAAe,qBAAqB,QAAQ,qBAAqB,KAAK,KAAK,SAAS,eAAe,eAAe;;;;UAIrH,QAAQ,eAAe,qBAAqB,QAAQ;WACnD,SAAS;EAClB,MAAM,KAAK,KAAK,SAAS,eAAe,aAAa;;;;;iBAKtC,cAAc;;;;;iBAKd,qBAAqB;;;;;iBAKrB,YAAY;;;;cAIf,0BAA0B;;iBAEvB,gBAAgB;;UAEvB;WACC,MAAM;WACN;;;UAGD,oBAAoB;WACnB;WACA;;;iBAGM,YAAY;WAClB;WACA;;UAED;;WAEC,mBAAmB;;WAEnB,cAAc;;WAEd,WAAW;;WAEX,QAAQ;;;;;;;iBAOF,uBAAuB,MAAM,wBAAwB;WAC3D,MAAM;WACN,OAAO;;;;;;;;;iBASD,cAAc,eAAe;;iBAE7B,cAAc,OAAO;;;;;;;;KAQjC;UACK;WACC,OAAO;;WAEP;;WAEA;;WAEA;;WAEA;aACE;aACA;;;;;;;;iBAQI,kBAAkB,cAAc,SAAS,0BAA0B;;;;KAI/E;WACM;;WAEA;WACA;;;UAGD;WACC;WACA;;;;;;;iBAOM,qBAAqB,aAAa,KAAK,8CAA8C,UAAU,YAAU,OAAO,gCAAgC,OAAO,uBAAuB,QAAQ;;;;iBAItL,yBAAyB,aAAa,KAAK,8CAA8C,UAAU,YAAU,mBAAmB,aAAa,OAAO,uBAAuB,iBAAiB;;;;;;;;cAQ/L;cACA;cACA;cACA;cACA;cACA,gBAAgB;;cAEhB,gBAAgB;cAChB,0BAA0B;WAC7B;;cAEG,mBAAmB;cACnB,mBAAmB;cACnB,6BAA6B;WAChC;;cAEG,eAAe;cACf,eAAe;cACf,iBAAiB;cACjB,iBAAiB;cACjB,gBAAgB;cAChB,gBAAgB;;;KAGzB;WACM;;cAEG,qBAAqB,iBAAiB;EAClD,OAAO,eAAe,MAAM,mBAAqB;EACjD,OAAO,cAAc,MAAM,mBAAqB;EAChD,WAAW,gBAAgB;EAC3B,WAAW,MAAM;;cAEL,0BAA0B;WAC7B;WACA;WACA;WACA;EACT,YAAY,KAAK,yBAAyB;;cAE9B,mBAAmB;cACnB,oEAAoE,WAAW;cAC/E,oBAAoB,iBAAiB;EACjD,OAAO,eAAe,MAAM,mBAAqB;EACjD,OAAO,cAAc,MAAM,mBAAqB;EAChD,WAAW,gBAAgB;EAC3B,WAAW,MAAM;;cAEL,yBAAyB;WAC5B;WACA;WACA;WACA;EACT,YAAY,KAAK,yBAAyB;;cAE9B,kBAAkB;cAClB,mEAAmE,WAAW;cAC9E,sBAAsB,iBAAiB;EACnD,OAAO,eAAe,MAAM,mBAAqB;EACjD,OAAO,cAAc,MAAM,mBAAqB;EAChD,WAAW,gBAAgB;EAC3B,WAAW,MAAM;;cAEL,2BAA2B;WAC9B;WACA;WACA;WACA;EACT,YAAY,KAAK,yBAAyB;;cAE9B,oBAAoB;cACpB,qEAAqE,WAAW;cAChF,qBAAqB,iBAAiB;EAClD,OAAO,eAAe,MAAM,mBAAqB;EACjD,OAAO,cAAc,MAAM,mBAAqB;EAChD,WAAW,gBAAgB;EAC3B,WAAW,MAAM;;cAEL,0BAA0B,4BAA4B;WACzD;WACA;WACA;WACA,cAAc,iBAAiB;EACxC,iBAAiB,QAAQ;EACzB,QAAQ,SAAS,gBAAgB,KAAK,yBAAyB;;cAEnD,mBAAmB;cACnB,gBAAgB,SAAS,gEAAgE,WAAW,cAAc;cAClH,wBAAwB,iBAAiB;EACrD,OAAO,eAAe,MAAM,mBAAqB;EACjD,OAAO,cAAc,MAAM,mBAAqB;EAChD,WAAW,gBAAgB;EAC3B,WAAW,MAAM;;cAEL,6BAA6B,4BAA4B;WAC5D;WACA;WACA;WACA,cAAc,iBAAiB;EACxC,iBAAiB,QAAQ;EACzB,QAAQ,SAAS,gBAAgB,KAAK,yBAAyB;;cAEnD,sBAAsB;cACtB,mBAAmB,SAAS,gEAAgE,WAAW,iBAAiB;;;iBAGrH,QAAQ,UAAU,yBAAyB,GAAG,IAAI;;;;;;;;;;;iBAWlD,wBAAwB,KAAK,cAAc,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authoring-type-constructors-DIyheCzv-BSrAEZsD.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/authoring-type-constructors-DIyheCzv.mjs"],"sourcesContent":["import { readEnumBlockMembers, resolveEnumCodecId } from \"@internal/framework-components/authoring\";\nimport { blockAttribute, jsonValue, mapBlock, str } from \"@internal/psl-parser\";\nimport { enumType } from \"@internal/sql-contract-ts/contract-builder\";\n//#region src/core/authoring-entity-types.ts\nfunction sqlFamilyEnumSpec() {\n\treturn mapBlock({\n\t\tvalue: {\n\t\t\ttype: jsonValue(),\n\t\t\tdocumentation: \"The stored member value; a bare member stores its own name.\"\n\t\t},\n\t\tallowBare: true\n\t});\n}\nconst sqlFamilyEntityTypes = { enum: {\n\tkind: \"entity\",\n\tdiscriminator: \"enum\",\n\toutput: { factory: (block, ctx) => {\n\t\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\t\tconst diagnostics = ctx.diagnostics;\n\t\tconst resolved = resolveEnumCodecId(block, ctx);\n\t\tif (resolved === void 0) return;\n\t\tconst { codecId, codecSpan } = resolved;\n\t\tconst nativeType = ctx.codecLookup?.targetTypesFor(codecId)?.[0];\n\t\tif (nativeType === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type references unknown codec \"${codecId}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst codec = ctx.codecLookup?.get(codecId);\n\t\tif (codec === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type codec \"${codecId}\" resolves in targetTypesFor but is absent from codecLookup.get`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst members = readEnumBlockMembers(block, codecId, codec, ctx);\n\t\tif (members === void 0) return void 0;\n\t\treturn enumType(block.name, {\n\t\t\tcodecId,\n\t\t\tnativeType\n\t\t}, ...members);\n\t} }\n} };\nconst enumTypeBlockAttribute = blockAttribute(\"type\", {\n\tdocumentation: \"Selects the storage codec for this enum.\",\n\tpositional: [{\n\t\tkey: \"codecId\",\n\t\ttype: str(),\n\t\tdocumentation: \"The fully qualified codec identifier used to store enum values.\"\n\t}]\n});\nconst sqlFamilyPslBlockDescriptors = { enum: {\n\tkind: \"pslBlock\",\n\tkeyword: \"enum\",\n\tdocumentation: \"Defines an enum with named values and an inferred or explicitly selected storage codec.\",\n\tdiscriminator: \"enum\",\n\tname: { required: true },\n\tspec: sqlFamilyEnumSpec,\n\tattributes: { type: () => enumTypeBlockAttribute }\n} };\n//#endregion\n//#region src/core/authoring-field-presets.ts\n/**\n* Family-level SQL authoring field presets.\n*\n* Only presets whose codec IDs align with the ID generator metadata live here\n* (see `@internal/ids`). These presets are target-agnostic because the\n* generator metadata fixes their codec/native-type to `sql/char@1`\n* (`character`) regardless of target, and the PSL interpreter lets the\n* generator override the scalar descriptor.\n*\n* The `uuidString` / `id.uuidv4String` / `id.uuidv7String` presets store UUID\n* values as `character(36)` — portable across all SQL targets. For a native\n* Postgres `uuid` column use `uuidNative` / `id.uuidv4Native` /\n* `id.uuidv7Native` from `@internal/target-postgres`.\n*\n* Scalar presets that map to target-specific codecs (e.g. `text`, `int`,\n* `boolean`, `dateTime`) are contributed by the target pack (see\n* `postgresAuthoringFieldPresets` in `@internal/target-postgres`) so the\n* TS callback surface and the PSL scalar surface lower to byte-identical\n* contracts for the active target.\n*/\nconst CHARACTER_CODEC_ID = \"sql/char@1\";\nconst CHARACTER_NATIVE_TYPE = \"character\";\nconst nanoidOptionsArgument = {\n\tkind: \"object\",\n\toptional: true,\n\tproperties: { size: {\n\t\tkind: \"number\",\n\t\toptional: true,\n\t\tinteger: true,\n\t\tminimum: 2,\n\t\tmaximum: 255\n\t} }\n};\nconst sqlFamilyAuthoringFieldPresets = {\n\tuuidString: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\ttypeParams: { length: 36 }\n\t\t}\n\t},\n\tulid: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\ttypeParams: { length: 26 }\n\t\t}\n\t},\n\tnanoid: {\n\t\tkind: \"fieldPreset\",\n\t\targs: [nanoidOptionsArgument],\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\ttypeParams: { length: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0,\n\t\t\t\tpath: [\"size\"],\n\t\t\t\tdefault: 21\n\t\t\t} }\n\t\t}\n\t},\n\tcuid2: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\ttypeParams: { length: 24 }\n\t\t}\n\t},\n\tksuid: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\ttypeParams: { length: 27 }\n\t\t}\n\t},\n\tid: {\n\t\tuuidv4String: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\t\ttypeParams: { length: 36 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv4\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tuuidv7String: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\t\ttypeParams: { length: 36 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv7\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tulid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\t\ttypeParams: { length: 26 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"ulid\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tnanoid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\targs: [nanoidOptionsArgument],\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\t\ttypeParams: { length: {\n\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\tindex: 0,\n\t\t\t\t\tpath: [\"size\"],\n\t\t\t\t\tdefault: 21\n\t\t\t\t} },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"nanoid\",\n\t\t\t\t\tparams: { size: {\n\t\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\t\tindex: 0,\n\t\t\t\t\t\tpath: [\"size\"]\n\t\t\t\t\t} }\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tcuid2: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\t\ttypeParams: { length: 24 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"cuid2\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tksuid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\tnativeType: CHARACTER_NATIVE_TYPE,\n\t\t\t\ttypeParams: { length: 27 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"ksuid\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t}\n\t}\n};\n//#endregion\n//#region src/core/authoring-type-constructors.ts\nconst sqlFamilyAuthoringTypes = { sql: { String: {\n\tkind: \"typeConstructor\",\n\tdocumentation: \"Variable-length text with a required maximum character length.\",\n\targs: [{\n\t\tkind: \"number\",\n\t\tname: \"length\",\n\t\tinteger: true,\n\t\tminimum: 1,\n\t\tmaximum: 10485760\n\t}],\n\toutput: {\n\t\tcodecId: \"sql/varchar@1\",\n\t\tnativeType: \"character varying\",\n\t\ttypeParams: { length: {\n\t\t\tkind: \"arg\",\n\t\t\tindex: 0\n\t\t} }\n\t}\n} } };\n//#endregion\nexport { sqlFamilyPslBlockDescriptors as i, sqlFamilyAuthoringFieldPresets as n, sqlFamilyEntityTypes as r, sqlFamilyAuthoringTypes as t };\n\n//# sourceMappingURL=authoring-type-constructors-DIyheCzv.mjs.map"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-types-DNRmpGNL.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-ts/dist/config-types.mjs"],"sourcesContent":["import { i as contractError, n as buildSqlContractFromDefinition, t as applySqlSpecifierControlPolicy } from \"./derived-checks-C_y1rk6O.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { pathToFileURL } from \"node:url\";\nimport { ok } from \"@internal/utils/result\";\nimport { extname } from \"pathe\";\n//#region src/config-types.ts\n/**\n* Derives the emit output path from the TS contract input so artefacts land\n* colocated with the source (e.g. `prisma/contract.ts` →\n* `prisma/contract.json`). Mirrors the same default-derivation logic in\n* `@internal/sql-contract-psl/provider`.\n*/\nfunction defaultOutputFromContractPath(contractPath) {\n\tconst ext = extname(contractPath);\n\tif (ext.length === 0) return `${contractPath}.json`;\n\treturn `${contractPath.slice(0, -ext.length)}.json`;\n}\nfunction emptyContract(options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => {\n\t\t\t\treturn ok(applySqlSpecifierControlPolicy(buildSqlContractFromDefinition({\n\t\t\t\t\twarnings: void 0,\n\t\t\t\t\ttarget: options.target,\n\t\t\t\t\tcreateNamespace: options.createNamespace,\n\t\t\t\t\tmodels: []\n\t\t\t\t}), options.defaultControlPolicy, options.createNamespace));\n\t\t\t}\n\t\t},\n\t\t...ifDefined(\"output\", options.output)\n\t};\n}\nfunction typescriptContract(contract, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => ok(options === void 0 ? contract : applySqlSpecifierControlPolicy(contract, options.defaultControlPolicy, options.createNamespace))\n\t\t},\n\t\t...ifDefined(\"output\", output)\n\t};\n}\nfunction typescriptContractFromPath(contractPath, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tinputs: [contractPath],\n\t\t\tload: async (context) => {\n\t\t\t\tconst [absolutePath] = context.resolvedInputs;\n\t\t\t\tif (absolutePath === void 0) throw new InternalError(\"typescriptContractFromPath: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.\");\n\t\t\t\tconst mod = await import(pathToFileURL(absolutePath).href);\n\t\t\t\tconst contract = mod.default ?? mod.contract;\n\t\t\t\tif (contract === void 0) throw contractError(\"CONTRACT.MODULE_EXPORT_MISSING\", `typescriptContractFromPath: module at \"${absolutePath}\" has no \"default\" or \"contract\" export.`, { meta: { path: absolutePath } });\n\t\t\t\treturn ok(options === void 0 ? contract : applySqlSpecifierControlPolicy(contract, options.defaultControlPolicy, options.createNamespace));\n\t\t\t}\n\t\t},\n\t\toutput: output ?? defaultOutputFromContractPath(contractPath)\n\t};\n}\n//#endregion\nexport { emptyContract, typescriptContract, typescriptContractFromPath };\n\n//# sourceMappingURL=config-types.mjs.map"],"mappings":";;;;;;;;;;;;;AAaA,SAAS,8BAA8B,cAAc;CACpD,MAAM,MAAM,QAAQ,YAAY;CAChC,IAAI,IAAI,WAAW,GAAG,OAAO,GAAG,aAAa;CAC7C,OAAO,GAAG,aAAa,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE;AAC9C;AACA,SAAS,cAAc,SAAS;CAC/B,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY;IACjB,OAAO,GAAG,+BAA+B,+BAA+B;KACvE,UAAU,KAAK;KACf,QAAQ,QAAQ;KAChB,iBAAiB,QAAQ;KACzB,QAAQ,CAAC;IACV,CAAC,GAAG,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;GAC3D;EACD;EACA,GAAG,UAAU,UAAU,QAAQ,MAAM;CACtC;AACD;AACA,SAAS,mBAAmB,UAAU,QAAQ,SAAS;CACtD,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY,GAAG,YAAY,KAAK,IAAI,WAAW,+BAA+B,UAAU,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;EACrJ;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD;AACA,SAAS,2BAA2B,cAAc,QAAQ,SAAS;CAClE,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,QAAQ,CAAC,YAAY;GACrB,MAAM,OAAO,YAAY;IACxB,MAAM,CAAC,gBAAgB,QAAQ;IAC/B,IAAI,iBAAiB,KAAK,GAAG,MAAM,IAAI,cAAc,2HAA2H;IAChL,MAAM,MAAM,MAAM,OAAO,cAAc,YAAY,CAAC,CAAC;IACrD,MAAM,WAAW,IAAI,WAAW,IAAI;IACpC,IAAI,aAAa,KAAK,GAAG,MAAM,cAAc,kCAAkC,0CAA0C,aAAa,2CAA2C,EAAE,MAAM,EAAE,MAAM,aAAa,EAAE,CAAC;IACjN,OAAO,GAAG,YAAY,KAAK,IAAI,WAAW,+BAA+B,UAAU,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;GAC1I;EACD;EACA,QAAQ,UAAU,8BAA8B,YAAY;CAC7D;AACD"}
|