@prisma/orm-target-postgres 8.0.0-rc.16-dev.5 → 8.0.0-rc.16-dev.7
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/{adapter-BB0VVFW2.d.mts → adapter-BXHPMNAg.d.mts} +3 -3
- package/dist/{adapter-BB0VVFW2.d.mts.map → adapter-BXHPMNAg.d.mts.map} +1 -1
- package/dist/{adapter-RtS8vD8U-m4U_WTpQ.mjs → adapter-RtS8vD8U-CkJSaICZ.mjs} +5 -5
- package/dist/{adapter-RtS8vD8U-m4U_WTpQ.mjs.map → adapter-RtS8vD8U-CkJSaICZ.mjs.map} +1 -1
- package/dist/adapter.d.mts +7 -7
- package/dist/adapter.mjs +5 -5
- package/dist/adapter__adapter.d.mts +1 -1
- package/dist/adapter__adapter.mjs +2 -2
- package/dist/adapter__control.d.mts +2 -2
- package/dist/adapter__control.mjs +6 -6
- package/dist/adapter__runtime.d.mts +1 -1
- package/dist/adapter__runtime.mjs +4 -4
- package/dist/adapter__sql-renderer.d.mts +1 -1
- package/dist/adapter__sql-renderer.mjs +1 -1
- package/dist/adapter__types.d.mts +3 -3
- package/dist/{authoring-vHbPLrW4-BsHR7gUE.mjs → authoring-_2G2lsLt-VmVbrMPn.mjs} +5 -5
- package/dist/{authoring-vHbPLrW4-BsHR7gUE.mjs.map → authoring-_2G2lsLt-VmVbrMPn.mjs.map} +1 -1
- package/dist/{check-expressions-Dlt334zg-CV5Vkh3G.mjs → check-expressions-BaFrBceq-ChgvazEN.mjs} +14 -12
- package/dist/check-expressions-BaFrBceq-ChgvazEN.mjs.map +1 -0
- package/dist/{check-expressions-CBIgoKhV-D7oTR8lp.d.mts → check-expressions-CtTzM58x-CsWFEeul.d.mts} +6 -5
- package/dist/check-expressions-CtTzM58x-CsWFEeul.d.mts.map +1 -0
- package/dist/{codec-descriptor-CZAGhM_O-DK9auM7J.mjs → codec-descriptor-C5Ec_6Mw-CpacG1CL.mjs} +3 -2
- package/dist/codec-descriptor-C5Ec_6Mw-CpacG1CL.mjs.map +1 -0
- package/dist/{codec-helpers-D015Pvwa-DR7WMloQ.mjs → codec-helpers-D0ah5Wb8-wdJJZ_8s.mjs} +244 -3
- package/dist/codec-helpers-D0ah5Wb8-wdJJZ_8s.mjs.map +1 -0
- package/dist/{codec-registry-nSGjxm-H-BeUu5zV2.mjs → codec-registry-CKBDkxX7-Kw84Or3s.mjs} +5 -5
- package/dist/{codec-registry-nSGjxm-H-BeUu5zV2.mjs.map → codec-registry-CKBDkxX7-Kw84Or3s.mjs.map} +1 -1
- package/dist/{codec-type-map-DftCqvHU-BYkGKRZI.d.mts → codec-type-map-DueQFJ3a-DKLtMn3R.d.mts} +3 -3
- package/dist/{codec-type-map-DftCqvHU-BYkGKRZI.d.mts.map → codec-type-map-DueQFJ3a-DKLtMn3R.d.mts.map} +1 -1
- package/dist/codec-types-CY3pawL3.d.mts +2 -0
- package/dist/{codec-types-CHtW4cn_-ryYZXjOb.d.mts → codec-types-CYsrudBM-DcYPKpS1.d.mts} +4 -4
- package/dist/{codec-types-CHtW4cn_-ryYZXjOb.d.mts.map → codec-types-CYsrudBM-DcYPKpS1.d.mts.map} +1 -1
- package/dist/{codecs-DelwJv6h-CFbyTJIJ.mjs → codecs-BK3J4C0n-B8EnUXZf.mjs} +49 -37
- package/dist/codecs-BK3J4C0n-B8EnUXZf.mjs.map +1 -0
- package/dist/{codecs-Djhvng3f.d.mts → codecs-ChjCJY5k.d.mts} +2 -2
- package/dist/{codecs-Djhvng3f.d.mts.map → codecs-ChjCJY5k.d.mts.map} +1 -1
- package/dist/{codecs-CvG9lv7r-9RlHwf9Y.d.mts → codecs-y1gOMMt--DKWhYGN5.d.mts} +8 -2
- package/dist/codecs-y1gOMMt--DKWhYGN5.d.mts.map +1 -0
- package/dist/{contract-free-DaK6wmmo.mjs → contract-free-BMKFjlIG.mjs} +3 -3
- package/dist/{contract-free-DaK6wmmo.mjs.map → contract-free-BMKFjlIG.mjs.map} +1 -1
- package/dist/{control-CHqdVXHC.d.mts → control-D2JNE1Tz.d.mts} +3 -3
- package/dist/{control-CHqdVXHC.d.mts.map → control-D2JNE1Tz.d.mts.map} +1 -1
- package/dist/{control-YKrabf1Q.mjs → control-Ltn8Dzpi.mjs} +11 -11
- package/dist/{control-YKrabf1Q.mjs.map → control-Ltn8Dzpi.mjs.map} +1 -1
- package/dist/{control-adapter-Co30P4lH-B5euUoQ4.mjs → control-adapter-Co30P4lH-CpxXk5cz.mjs} +6 -6
- package/dist/{control-adapter-Co30P4lH-B5euUoQ4.mjs.map → control-adapter-Co30P4lH-CpxXk5cz.mjs.map} +1 -1
- package/dist/{control-policy-bwcdB78Y-DgRaWAzu.mjs → control-policy-DMOu5nnt-DslefUx9.mjs} +11 -10
- package/dist/control-policy-DMOu5nnt-DslefUx9.mjs.map +1 -0
- package/dist/{data-type-entries-DgKLUrqt-TKDikzti.mjs → data-type-entries-DoR61yeO-BB2cY7rI.mjs} +3 -3
- package/dist/{data-type-entries-DgKLUrqt-TKDikzti.mjs.map → data-type-entries-DoR61yeO-BB2cY7rI.mjs.map} +1 -1
- package/dist/{data-types-E1wms1_i.d.mts → data-types-BDkZIUMI.d.mts} +4 -2
- package/dist/{data-types-E1wms1_i.d.mts.map → data-types-BDkZIUMI.d.mts.map} +1 -1
- package/dist/{data-types-k3Ebk3kj-DWk3nh_k.mjs → data-types-DRkmmE9S-C5Q9oH4Q.mjs} +13 -4
- package/dist/data-types-DRkmmE9S-C5Q9oH4Q.mjs.map +1 -0
- package/dist/{ddl-C_vTj7b5-vyGLBKLo.mjs → ddl-D5hYRCTf-DRSajCVT.mjs} +3 -3
- package/dist/{ddl-C_vTj7b5-vyGLBKLo.mjs.map → ddl-D5hYRCTf-DRSajCVT.mjs.map} +1 -1
- package/dist/{default-normalizer-CrMBHF0W-BaUR4Ec8.mjs → default-normalizer-Bf_Fhv4v-CugGfLAe.mjs} +12 -7
- package/dist/default-normalizer-Bf_Fhv4v-CugGfLAe.mjs.map +1 -0
- package/dist/{descriptor-meta-ARufwwWW-DMQsPNAl.mjs → descriptor-meta-ARufwwWW-ChZm5Hg5.mjs} +3 -3
- package/dist/{descriptor-meta-ARufwwWW-DMQsPNAl.mjs.map → descriptor-meta-ARufwwWW-ChZm5Hg5.mjs.map} +1 -1
- package/dist/{descriptor-meta-BgOMP4hF-CfUJsgjc.mjs → descriptor-meta-WHc6Kv-m-BLzsaP0M.mjs} +8 -8
- package/dist/{descriptor-meta-BgOMP4hF-CfUJsgjc.mjs.map → descriptor-meta-WHc6Kv-m-BLzsaP0M.mjs.map} +1 -1
- package/dist/{descriptor-meta-runtime-CG2S236D-CUkzqeCr.mjs → descriptor-meta-runtime-iArZEoCE-GhLNDdg-.mjs} +3 -3
- package/dist/{descriptor-meta-runtime-CG2S236D-CUkzqeCr.mjs.map → descriptor-meta-runtime-iArZEoCE-GhLNDdg-.mjs.map} +1 -1
- package/dist/{diff-database-schema-zc7d2uxC-BVe8D7vG.mjs → diff-database-schema-DgAMDjHF-YATlptWC.mjs} +6 -6
- package/dist/{diff-database-schema-zc7d2uxC-BVe8D7vG.mjs.map → diff-database-schema-DgAMDjHF-YATlptWC.mjs.map} +1 -1
- package/dist/{full-text-D5pW25-Y.d.mts → full-text-CCqTEQ9y.d.mts} +2 -2
- package/dist/{full-text-D5pW25-Y.d.mts.map → full-text-CCqTEQ9y.d.mts.map} +1 -1
- package/dist/{full-text-index-expression-BpUM2Td6-2Q7y7DnO.mjs → full-text-index-expression-Bfp_xWhy-DtbLdkzv.mjs} +3 -3
- package/dist/{full-text-index-expression-BpUM2Td6-2Q7y7DnO.mjs.map → full-text-index-expression-Bfp_xWhy-DtbLdkzv.mjs.map} +1 -1
- package/dist/{full-text-parsers-BhjgmAe5-CyF7dp_b.d.mts → full-text-parsers-DrS_1B-x-BcAnBoQP.d.mts} +3 -3
- package/dist/{full-text-parsers-BhjgmAe5-CyF7dp_b.d.mts.map → full-text-parsers-DrS_1B-x-BcAnBoQP.d.mts.map} +1 -1
- package/dist/{infer-psl-contract-B5yExD61-Cmye68li.mjs → infer-psl-contract-D-3st5lU-DKQhhsut.mjs} +7 -7
- package/dist/{infer-psl-contract-B5yExD61-Cmye68li.mjs.map → infer-psl-contract-D-3st5lU-DKQhhsut.mjs.map} +1 -1
- package/dist/{issue-planner-pmBrIrEN.d.mts → issue-planner-DWRClmiP.d.mts} +2 -2
- package/dist/{issue-planner-pmBrIrEN.d.mts.map → issue-planner-DWRClmiP.d.mts.map} +1 -1
- package/dist/{migration-D189kh3f.d.mts → migration--J8vKZ8z.d.mts} +3 -3
- package/dist/{migration-D189kh3f.d.mts.map → migration--J8vKZ8z.d.mts.map} +1 -1
- package/dist/migration-PTHAY9Cv.mjs.map +1 -1
- package/dist/{op-factory-call-CqKUB1XP-CsEGx4Jd.d.mts → op-factory-call-BFnGNPJD-5vgAjFpd.d.mts} +44 -14
- package/dist/op-factory-call-BFnGNPJD-5vgAjFpd.d.mts.map +1 -0
- package/dist/{op-factory-call-DdXVWQlV-DzfLhTkh.mjs → op-factory-call-BbTtrII--CbCFZfSd.mjs} +124 -28
- package/dist/op-factory-call-BbTtrII--CbCFZfSd.mjs.map +1 -0
- package/dist/op-factory-call-CsuauFRs.d.mts +1 -0
- package/dist/{operation-types-Be5rdu14.d.mts → operation-types-CjJY7prP.d.mts} +2 -2
- package/dist/{operation-types-Be5rdu14.d.mts.map → operation-types-CjJY7prP.d.mts.map} +1 -1
- package/dist/{pack-DHV9zslZ.d.mts → pack-Bq9yq-OS.d.mts} +4 -4
- package/dist/{pack-DHV9zslZ.d.mts.map → pack-Bq9yq-OS.d.mts.map} +1 -1
- package/dist/{planner-CvUO8Zpn.d.mts → planner-B9c5vxQo.d.mts} +15 -8
- package/dist/planner-B9c5vxQo.d.mts.map +1 -0
- package/dist/{planner-ZmK0aNuY-Cak-8zwa.mjs → planner-_mo_t-l3-DPAQVG1x.mjs} +117 -23
- package/dist/planner-_mo_t-l3-DPAQVG1x.mjs.map +1 -0
- package/dist/{planner-ddl-builders-DRProi99-D0K5ZiD0.mjs → planner-ddl-builders-Y0_96xpe-BzugdEDO.mjs} +3 -3
- package/dist/{planner-ddl-builders-DRProi99-D0K5ZiD0.mjs.map → planner-ddl-builders-Y0_96xpe-BzugdEDO.mjs.map} +1 -1
- package/dist/{planner-identity-values-C1eV916m-D0p3EfYc.mjs → planner-identity-values-CRS2cQ6v-DakZeIQj.mjs} +3 -3
- package/dist/{planner-identity-values-C1eV916m-D0p3EfYc.mjs.map → planner-identity-values-CRS2cQ6v-DakZeIQj.mjs.map} +1 -1
- package/dist/{planner-produced-postgres-migration-BAWQ6iqr-C06XurYw.mjs → planner-produced-postgres-migration-BdWg8TP2-QE9uzt2K.mjs} +4 -4
- package/dist/{planner-produced-postgres-migration-BAWQ6iqr-C06XurYw.mjs.map → planner-produced-postgres-migration-BdWg8TP2-QE9uzt2K.mjs.map} +1 -1
- package/dist/planner-produced-postgres-migration-BqcWgPjb.d.mts +1 -0
- package/dist/{planner-produced-postgres-migration-DT3i_p3G-CyQUv3ac.d.mts → planner-produced-postgres-migration-Bw145mJT-qpLKF3Vf.d.mts} +3 -3
- package/dist/planner-produced-postgres-migration-Bw145mJT-qpLKF3Vf.d.mts.map +1 -0
- package/dist/{planner-sql-checks-rqOH8naU-B6xOE5lC.mjs → planner-sql-checks-DCGV2qdu-eaeFLtn8.mjs} +3 -3
- package/dist/{planner-sql-checks-rqOH8naU-B6xOE5lC.mjs.map → planner-sql-checks-DCGV2qdu-eaeFLtn8.mjs.map} +1 -1
- package/dist/{postgres-contract-view-B0KloSYp-Cbbl_pIv.mjs → postgres-contract-view-CL-YTH_3-Diah6i2a.mjs} +6 -6
- package/dist/{postgres-contract-view-B0KloSYp-Cbbl_pIv.mjs.map → postgres-contract-view-CL-YTH_3-Diah6i2a.mjs.map} +1 -1
- package/dist/{postgres-migration-e8UybR1y-C_m4i1jp.d.mts → postgres-migration-DVY2ALDJ-DTWECas_.d.mts} +36 -4
- package/dist/postgres-migration-DVY2ALDJ-DTWECas_.d.mts.map +1 -0
- package/dist/postgres-migration-DmczQSHT-DsWlow8L.mjs +1075 -0
- package/dist/postgres-migration-DmczQSHT-DsWlow8L.mjs.map +1 -0
- package/dist/{postgres-schema-AlEVkXXS-ZfXWYddl.mjs → postgres-schema-COkaqci7-C6JpiSha.mjs} +6 -6
- package/dist/postgres-schema-COkaqci7-C6JpiSha.mjs.map +1 -0
- package/dist/{prisma7-binding-GebhdAGS.mjs → prisma7-binding-CAzQh1rQ.mjs} +7 -7
- package/dist/{prisma7-binding-GebhdAGS.mjs.map → prisma7-binding-CAzQh1rQ.mjs.map} +1 -1
- package/dist/{prisma7-binding-FvF1AZxQ.d.mts → prisma7-binding-Dm34z6Fq.d.mts} +4 -4
- package/dist/{prisma7-binding-FvF1AZxQ.d.mts.map → prisma7-binding-Dm34z6Fq.d.mts.map} +1 -1
- package/dist/{render-ops-D2vJApKB-B281fzmn.mjs → render-ops-DaCy6StH-BgzbTE_9.mjs} +16 -9
- package/dist/render-ops-DaCy6StH-BgzbTE_9.mjs.map +1 -0
- package/dist/{resolve-ddl-schema-BthOWVjF-DuZ9iUh-.mjs → resolve-ddl-schema-DD69Bwve-e-BpAfFa.mjs} +3 -3
- package/dist/{resolve-ddl-schema-BthOWVjF-DuZ9iUh-.mjs.map → resolve-ddl-schema-DD69Bwve-e-BpAfFa.mjs.map} +1 -1
- package/dist/{runtime-aejvKbMy.d.mts → runtime-CNTEAZIz.d.mts} +2 -2
- package/dist/{runtime-aejvKbMy.d.mts.map → runtime-CNTEAZIz.d.mts.map} +1 -1
- package/dist/{sql-renderer-DT4IEOVi-CE0YIu9V.mjs → sql-renderer-DT4IEOVi-CBE8uTub.mjs} +2 -2
- package/dist/{sql-renderer-DT4IEOVi-CE0YIu9V.mjs.map → sql-renderer-DT4IEOVi-CBE8uTub.mjs.map} +1 -1
- package/dist/{sql-renderer-B1ZLRgUw.d.mts → sql-renderer-hQ3HTY-B.d.mts} +2 -2
- package/dist/{sql-renderer-B1ZLRgUw.d.mts.map → sql-renderer-hQ3HTY-B.d.mts.map} +1 -1
- package/dist/target.d.mts +21 -21
- package/dist/target.mjs +27 -27
- package/dist/target__codec-descriptor.mjs +1 -1
- package/dist/target__codec-types.d.mts +3 -3
- package/dist/target__codecs.d.mts +2 -2
- package/dist/target__codecs.mjs +2 -2
- package/dist/target__contract-free.mjs +3 -3
- package/dist/target__control.mjs +3 -3
- package/dist/target__data-types.d.mts +1 -1
- package/dist/target__data-types.mjs +2 -2
- package/dist/target__default-normalizer.mjs +1 -1
- package/dist/target__diff-database-schema.mjs +1 -1
- package/dist/target__full-text.d.mts +2 -2
- package/dist/target__issue-planner.d.mts +1 -1
- package/dist/target__issue-planner.mjs +1 -1
- package/dist/target__migration.d.mts +2 -2
- package/dist/target__migration.mjs +2 -2
- package/dist/target__op-factory-call.d.mts +3 -3
- package/dist/target__op-factory-call.mjs +2 -2
- package/dist/target__operation-types.d.mts +1 -1
- package/dist/target__pack.d.mts +1 -1
- package/dist/target__pack.mjs +1 -1
- package/dist/target__planner-ddl-builders.mjs +1 -1
- package/dist/target__planner-identity-values.mjs +1 -1
- package/dist/target__planner-produced-postgres-migration.d.mts +2 -2
- package/dist/target__planner-produced-postgres-migration.mjs +1 -1
- package/dist/target__planner-sql-checks.mjs +1 -1
- package/dist/target__planner.d.mts +1 -1
- package/dist/target__planner.mjs +2 -2
- package/dist/target__prisma7-binding.d.mts +1 -1
- package/dist/target__prisma7-binding.mjs +1 -1
- package/dist/target__render-ops.mjs +1 -1
- package/dist/target__runtime.mjs +3 -3
- package/dist/target__runtime.mjs.map +1 -1
- package/dist/target__schema-ir-annotations.mjs +1 -1
- package/dist/target__sql-utils.mjs +1 -1
- package/dist/target__types.d.mts +2 -2
- package/dist/target__types.mjs +2 -2
- package/dist/{types-D799eppJ.d.mts → types-BP1e5MBV.d.mts} +2 -2
- package/dist/{types-D799eppJ.d.mts.map → types-BP1e5MBV.d.mts.map} +1 -1
- package/dist/{types-D6lgKhE5-Cu48rrw9.d.mts → types-D6lgKhE5-DYkeCAjr.d.mts} +2 -2
- package/dist/{types-D6lgKhE5-Cu48rrw9.d.mts.map → types-D6lgKhE5-DYkeCAjr.d.mts.map} +1 -1
- package/dist/types-Dnrjripb.d.mts +2 -0
- package/package.json +9 -9
- package/dist/check-expressions-CBIgoKhV-D7oTR8lp.d.mts.map +0 -1
- package/dist/check-expressions-Dlt334zg-CV5Vkh3G.mjs.map +0 -1
- package/dist/codec-descriptor-CZAGhM_O-DK9auM7J.mjs.map +0 -1
- package/dist/codec-helpers-D015Pvwa-DR7WMloQ.mjs.map +0 -1
- package/dist/codec-types-DQUtpepT.d.mts +0 -2
- package/dist/codecs-CvG9lv7r-9RlHwf9Y.d.mts.map +0 -1
- package/dist/codecs-DelwJv6h-CFbyTJIJ.mjs.map +0 -1
- package/dist/control-policy-bwcdB78Y-DgRaWAzu.mjs.map +0 -1
- package/dist/data-types-k3Ebk3kj-DWk3nh_k.mjs.map +0 -1
- package/dist/default-normalizer-CrMBHF0W-BaUR4Ec8.mjs.map +0 -1
- package/dist/op-factory-call-CqKUB1XP-CsEGx4Jd.d.mts.map +0 -1
- package/dist/op-factory-call-D5UJ7cDi.d.mts +0 -1
- package/dist/op-factory-call-DdXVWQlV-DzfLhTkh.mjs.map +0 -1
- package/dist/planner-CvUO8Zpn.d.mts.map +0 -1
- package/dist/planner-ZmK0aNuY-Cak-8zwa.mjs.map +0 -1
- package/dist/planner-produced-postgres-migration-BI_aepPp.d.mts +0 -1
- package/dist/planner-produced-postgres-migration-DT3i_p3G-CyQUv3ac.d.mts.map +0 -1
- package/dist/postgres-migration-UVh2xeV0-DW8V_8aj.mjs +0 -596
- package/dist/postgres-migration-UVh2xeV0-DW8V_8aj.mjs.map +0 -1
- package/dist/postgres-migration-e8UybR1y-C_m4i1jp.d.mts.map +0 -1
- package/dist/postgres-schema-AlEVkXXS-ZfXWYddl.mjs.map +0 -1
- package/dist/render-ops-D2vJApKB-B281fzmn.mjs.map +0 -1
- package/dist/types-CdJszzhP.d.mts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer-psl-contract-B5yExD61-Cmye68li.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/infer-psl-contract-B5yExD61.mjs"],"sourcesContent":["import { S as PG_TEXT_CODEC_ID } from \"./codec-ids-Cb0yO-IS.mjs\";\nimport { s as postgresError } from \"./errors-DYyzTYzE.mjs\";\nimport { t as createPostgresBuiltinDataTypeLookup } from \"./data-types-k3Ebk3kj.mjs\";\nimport { t as postgresDataTypeEntries } from \"./data-type-entries-DgKLUrqt.mjs\";\nimport { t as POLICY_BLOCK_KEYWORDS } from \"./authoring-vHbPLrW4.mjs\";\nimport { t as postgresRenderCheckExpressions } from \"./check-expressions-Dlt334zg.mjs\";\nimport { t as parsePostgresDefault } from \"./default-normalizer-CrMBHF0W.mjs\";\nimport { escapePslString } from \"@internal/sql-contract/data-type-support\";\nimport { canonicalFormOf, codecForRef } from \"@internal/framework-components/codec\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { coordinateKey, elementCoordinates } from \"@internal/framework-components/ir\";\nimport { getAuthoringTypeConstructor, instantiateAuthoringTypeConstructor, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { NAME_THE_PSL_SOURCE_LOSES, isPslIdentifier } from \"@internal/psl-parser\";\nimport { composeCheckWirePrefix, computeCheckContentHash, computeIndexContentHash, formatWireName, parseWireName } from \"@internal/sql-schema-ir/naming\";\nimport { assertDefined } from \"@internal/utils/assertions\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { SqlSchemaIR, SqlTableIR, defaultInCanonicalForm } from \"@internal/sql-schema-ir/types\";\nimport { isInternalError } from \"@internal/utils/internal-error\";\nimport { buildChildRelationField, deriveRelationFieldName, inferRelations, toEnumName, toFieldName, toModelName } from \"@internal/family-sql/psl-infer\";\nimport { UNSPECIFIED_PSL_NAMESPACE_ID, makePslNamespace, makePslNamespaceEntries } from \"@internal/framework-components/psl-ast\";\nimport { parsePslPositionalArgs } from \"@internal/psl-parser/interpret\";\nimport { mapDefault, toEnumMemberName } from \"@internal/family-sql/psl-build\";\nimport { isColumnDefault } from \"@internal/contract/types\";\n//#region src/core/psl-build/existing-column-date-time-types.ts\n/** A contract written for an existing database reads every date and time column as PostgreSQL's text. */\nconst EXISTING_COLUMN_DATE_TIME_TYPES = {\n\ttimestamp: \"TimestampString\",\n\ttimestamptz: \"TimestamptzString\",\n\tdate: \"DateString\",\n\ttime: \"TimeString\",\n\ttimetz: \"Timetz\"\n};\n//#endregion\n//#region src/core/psl-build/postgres-type-map.ts\nconst POSTGRES_TO_PSL = {\n\ttext: \"String\",\n\tbool: \"Boolean\",\n\tboolean: \"Boolean\",\n\tint4: \"Int\",\n\tinteger: \"Int\",\n\tint8: \"BigInt\",\n\tbigint: \"BigInt\",\n\tfloat8: \"Float\",\n\t\"double precision\": \"Float\",\n\tjsonb: \"Jsonb\",\n\tbytea: \"Bytes\"\n};\nconst PRESERVED_NATIVE_TYPES = {\n\t\"character varying\": \"VarChar\",\n\tcharacter: \"Char\",\n\tchar: \"Char\",\n\tvarchar: \"VarChar\",\n\tuuid: \"Uuid\",\n\tinet: \"Inet\",\n\tint2: \"SmallInt\",\n\tsmallint: \"SmallInt\",\n\tfloat4: \"Real\",\n\treal: \"Real\",\n\tnumeric: \"Numeric\",\n\tdecimal: \"Numeric\",\n\ttimestamp: EXISTING_COLUMN_DATE_TIME_TYPES.timestamp,\n\t\"timestamp without time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.timestamp,\n\ttimestamptz: EXISTING_COLUMN_DATE_TIME_TYPES.timestamptz,\n\t\"timestamp with time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.timestamptz,\n\tdate: EXISTING_COLUMN_DATE_TIME_TYPES.date,\n\ttime: EXISTING_COLUMN_DATE_TIME_TYPES.time,\n\t\"time without time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.time,\n\ttimetz: EXISTING_COLUMN_DATE_TIME_TYPES.timetz,\n\t\"time with time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.timetz,\n\tjson: \"Json\"\n};\nconst PARAMETERIZED_NATIVE_TYPES = {\n\t\"character varying\": \"VarChar\",\n\tcharacter: \"Char\",\n\tchar: \"Char\",\n\tvarchar: \"VarChar\",\n\tnumeric: \"Numeric\",\n\tdecimal: \"Numeric\",\n\ttimestamp: EXISTING_COLUMN_DATE_TIME_TYPES.timestamp,\n\ttimestamptz: EXISTING_COLUMN_DATE_TIME_TYPES.timestamptz,\n\ttime: EXISTING_COLUMN_DATE_TIME_TYPES.time,\n\ttimetz: EXISTING_COLUMN_DATE_TIME_TYPES.timetz\n};\n[\n\t...Object.values(POSTGRES_TO_PSL),\n\t...Object.values(PRESERVED_NATIVE_TYPES),\n\t...Object.values(PARAMETERIZED_NATIVE_TYPES)\n];\nconst PARAMETERIZED_TYPE_PATTERN = /^(.+?)\\((.+)\\)$/;\nfunction getOwnMappingValue(map, key) {\n\treturn Object.hasOwn(map, key) ? map[key] : void 0;\n}\nfunction splitTypeParameterList(params) {\n\treturn params.split(\",\").map((part) => part.trim()).filter((part) => part.length > 0);\n}\nfunction createPostgresTypeMap(enumTypeNames) {\n\treturn { resolve(nativeType) {\n\t\tif (enumTypeNames?.has(nativeType)) return {\n\t\t\tpslType: { name: nativeType },\n\t\t\tnativeType\n\t\t};\n\t\tconst paramMatch = nativeType.match(PARAMETERIZED_TYPE_PATTERN);\n\t\tif (paramMatch) {\n\t\t\tconst [, baseType = nativeType, params = \"\"] = paramMatch;\n\t\t\tconst typeName = getOwnMappingValue(PARAMETERIZED_NATIVE_TYPES, baseType);\n\t\t\tif (typeName) return {\n\t\t\t\tpslType: {\n\t\t\t\t\tname: typeName,\n\t\t\t\t\targs: splitTypeParameterList(params)\n\t\t\t\t},\n\t\t\t\tnativeType,\n\t\t\t\ttypeParams: {\n\t\t\t\t\tbaseType,\n\t\t\t\t\tparams\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tconst preservedType = getOwnMappingValue(PRESERVED_NATIVE_TYPES, nativeType);\n\t\tif (preservedType) return {\n\t\t\tpslType: { name: preservedType },\n\t\t\tnativeType\n\t\t};\n\t\tconst pslType = getOwnMappingValue(POSTGRES_TO_PSL, nativeType);\n\t\tif (pslType) return {\n\t\t\tpslType: { name: pslType },\n\t\t\tnativeType\n\t\t};\n\t\treturn {\n\t\t\tunsupported: true,\n\t\t\tnativeType\n\t\t};\n\t} };\n}\n//#endregion\n//#region src/core/psl-build/psl-literals.ts\nconst SYNTHETIC_SPAN = {\n\tstart: {\n\t\toffset: 0,\n\t\tline: 1,\n\t\tcolumn: 1\n\t},\n\tend: {\n\t\toffset: 0,\n\t\tline: 1,\n\t\tcolumn: 1\n\t}\n};\nfunction buildSimpleConstraintFieldAttribute(name, constraintName) {\n\tif (constraintName === void 0) return buildAttribute(\"field\", name, []);\n\treturn buildAttribute(\"field\", name, [namedArg(\"map\", `\"${escapePslString(constraintName)}\"`)]);\n}\nfunction parseDefaultAttributeString(attributeText) {\n\treturn buildAttribute(\"field\", \"default\", [positionalArg(attributeText.replace(/^@default\\(/, \"\").replace(/\\)$/, \"\"))]);\n}\nfunction buildMapAttribute(target, mapName) {\n\treturn buildAttribute(target, \"map\", [positionalArg(`\"${escapePslString(mapName)}\"`)]);\n}\nfunction buildAttribute(target, name, args) {\n\treturn {\n\t\tkind: \"attribute\",\n\t\ttarget,\n\t\tname,\n\t\targs,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\nfunction positionalArg(value) {\n\treturn {\n\t\tkind: \"positional\",\n\t\tvalue,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\nfunction namedArg(name, value) {\n\treturn {\n\t\tkind: \"named\",\n\t\tname,\n\t\tvalue,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/infer-default-codec.ts\n/**\n* The codec reference `contract emit` builds for a column of `pslType`: the codec its type\n* constructor names, with the type parameters the call's arguments give. An enum column's default\n* is a member name, which is text either way, so it reads through the text codec.\n*/\nfunction inferredCodecRef(context, pslType, isEnum) {\n\tif (isEnum) return { codecId: PG_TEXT_CODEC_ID };\n\tconst descriptor = getAuthoringTypeConstructor(context.authoringContributions, [pslType.name]);\n\tif (descriptor === void 0) return void 0;\n\tconst args = parsePslPositionalArgs(descriptor.args ?? [], pslType.args ?? []);\n\tif (args === void 0) return void 0;\n\tvalidateAuthoringHelperArguments(pslType.name, descriptor.args, args);\n\tconst { codecId, typeParams } = instantiateAuthoringTypeConstructor(descriptor, args);\n\treturn {\n\t\tcodecId,\n\t\t...ifDefined(\"typeParams\", typeParams === void 0 ? void 0 : blindCast(typeParams))\n\t};\n}\n/**\n* The default checks for `context`. A default the codec refuses has no PSL literal, so the raw\n* expression prints instead of a schema `contract emit` would reject. A column whose codec cannot be\n* built with its type parameters is treated the same way. An `InternalError` is a bug, not a\n* refusal, so it passes through.\n*\n* A data type says which values its column takes, not that every codec of it accepts each one: the\n* temporal codecs represent types that cast from text but refuse `infinity`, which PostgreSQL stores\n* and reports verbatim.\n*/\nfunction inferredColumnDefaults(context) {\n\treturn {\n\t\tcodecOf(pslType, isEnum) {\n\t\t\ttry {\n\t\t\t\tconst ref = inferredCodecRef(context, pslType, isEnum);\n\t\t\t\treturn ref === void 0 ? void 0 : context.codecLookup.descriptorFor(ref.codecId);\n\t\t\t} catch (error) {\n\t\t\t\tif (isInternalError(error)) throw error;\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\treadsBack(value, pslType, isEnum, isList) {\n\t\t\tconst values = isList && Array.isArray(value) ? value : [value];\n\t\t\ttry {\n\t\t\t\tconst ref = inferredCodecRef(context, pslType, isEnum);\n\t\t\t\tconst codec = ref === void 0 ? void 0 : codecForRef(context.codecLookup, ref);\n\t\t\t\tif (codec === void 0) return false;\n\t\t\t\tfor (const element of values) codec.decodeJson(blindCast(element));\n\t\t\t\treturn true;\n\t\t\t} catch (error) {\n\t\t\t\tif (isInternalError(error)) throw error;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t};\n}\n/** For a table whose columns have no literal default, such as a many-to-many junction table. */\nconst noColumnDefaults = {\n\tcodecOf: () => void 0,\n\treadsBack: () => false\n};\n//#endregion\n//#region src/core/psl-build/unique-name.ts\n/** `desiredName`, or it with the lowest number from 2 up that makes it unused. */\nfunction createUniqueFieldName(desiredName, usedFieldNames) {\n\tif (!usedFieldNames.has(desiredName)) return desiredName;\n\tlet counter = 2;\n\twhile (usedFieldNames.has(`${desiredName}${counter}`)) counter++;\n\treturn `${desiredName}${counter}`;\n}\n//#endregion\n//#region src/core/psl-build/native-enum-block.ts\n/** One `native_enum <name> { … }` block, with `@@map` when the type name differs from the block name. */\nfunction buildNativeEnumBlock(name, typeName, values) {\n\tconst usedMemberNames = /* @__PURE__ */ new Set([NAME_THE_PSL_SOURCE_LOSES]);\n\treturn {\n\t\tkind: \"native_enum\",\n\t\tkeyword: \"native_enum\",\n\t\tname,\n\t\tparameters: Object.fromEntries(values.map((value) => {\n\t\t\tconst memberName = createUniqueFieldName(toEnumMemberName(value), usedMemberNames);\n\t\t\tusedMemberNames.add(memberName);\n\t\t\treturn [memberName, {\n\t\t\t\texpression: JSON.stringify(value),\n\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t}];\n\t\t})),\n\t\tblockAttributes: name === typeName ? [] : [{\n\t\t\tname: \"map\",\n\t\t\targs: [{\n\t\t\t\tkind: \"positional\",\n\t\t\t\tvalue: `\"${escapePslString(typeName)}\"`,\n\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t}],\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t}],\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/infer-names.ts\nfunction buildFieldNamesByTable(tables) {\n\tconst fieldNamesByTable = /* @__PURE__ */ new Map();\n\tfor (const table of Object.values(tables)) {\n\t\tconst assignmentOrder = [...Object.values(table.columns).map((column, index) => {\n\t\t\tconst { name, map } = toFieldName(column.name);\n\t\t\treturn {\n\t\t\t\tcolumnName: column.name,\n\t\t\t\tdesiredFieldName: name,\n\t\t\t\tfieldMap: map,\n\t\t\t\tindex\n\t\t\t};\n\t\t})].sort((left, right) => {\n\t\t\tconst mapComparison = Number(left.fieldMap !== void 0) - Number(right.fieldMap !== void 0);\n\t\t\tif (mapComparison !== 0) return mapComparison;\n\t\t\treturn left.index - right.index;\n\t\t});\n\t\tconst usedFieldNames = /* @__PURE__ */ new Set();\n\t\tconst tableFieldNames = /* @__PURE__ */ new Map();\n\t\tfor (const column of assignmentOrder) {\n\t\t\tconst fieldName = createUniqueFieldName(column.desiredFieldName, usedFieldNames);\n\t\t\tusedFieldNames.add(fieldName);\n\t\t\ttableFieldNames.set(column.columnName, {\n\t\t\t\tfieldName,\n\t\t\t\tfieldMap: column.fieldMap\n\t\t\t});\n\t\t}\n\t\tfieldNamesByTable.set(table.name, tableFieldNames);\n\t}\n\treturn fieldNamesByTable;\n}\nfunction resolveColumnFieldName(fieldNamesByTable, tableName, columnName) {\n\treturn fieldNamesByTable.get(tableName)?.get(columnName)?.fieldName ?? toFieldName(columnName).name;\n}\nfunction buildTopLevelNameMap(sources, normalize, kind, sourceKind) {\n\tconst results = /* @__PURE__ */ new Map();\n\tconst normalizedToSources = /* @__PURE__ */ new Map();\n\tfor (const source of sources) {\n\t\tconst normalized = normalize(source);\n\t\tresults.set(source, normalized);\n\t\tnormalizedToSources.set(normalized.name, [...normalizedToSources.get(normalized.name) ?? [], source]);\n\t}\n\tconst duplicates = [...normalizedToSources.entries()].filter(([, conflictingSources]) => conflictingSources.length > 1);\n\tif (duplicates.length > 0) throw postgresError(\"CONTRACT.NAME_DUPLICATE\", `PSL ${kind} name collisions detected:\\n${duplicates.map(([normalizedName, conflictingSources]) => `- ${kind} \"${normalizedName}\" from ${sourceKind}s ${conflictingSources.map((source) => `\"${source}\"`).join(\", \")}`).join(\"\\n\")}`, { meta: {\n\t\tkind,\n\t\tnames: duplicates.map(([normalizedName]) => normalizedName)\n\t} });\n\treturn results;\n}\nfunction topologicalSort(models, tables, modelNameMap) {\n\tconst modelByName = /* @__PURE__ */ new Map();\n\tfor (const model of models) modelByName.set(model.name, model);\n\tconst deps = /* @__PURE__ */ new Map();\n\tconst tableToModel = /* @__PURE__ */ new Map();\n\tfor (const tableName of Object.keys(tables)) {\n\t\tconst modelName = modelNameMap.get(tableName);\n\t\tassertDefined(modelName, `topologicalSort: no model name mapped for table \"${tableName}\"`);\n\t\ttableToModel.set(tableName, modelName);\n\t\tdeps.set(modelName, /* @__PURE__ */ new Set());\n\t}\n\tfor (const [tableName, table] of Object.entries(tables)) {\n\t\tconst modelName = tableToModel.get(tableName);\n\t\tassertDefined(modelName, `topologicalSort: no model name recorded for table \"${tableName}\"`);\n\t\tconst modelDeps = deps.get(modelName);\n\t\tassertDefined(modelDeps, `topologicalSort: no dependency set recorded for model \"${modelName}\"`);\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst refModelName = tableToModel.get(fk.referencedTable);\n\t\t\tif (refModelName && refModelName !== modelName) modelDeps.add(refModelName);\n\t\t}\n\t}\n\tconst result = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tconst visiting = /* @__PURE__ */ new Set();\n\tconst sortedNames = [...deps.keys()].sort();\n\tfunction visit(name) {\n\t\tif (visited.has(name)) return;\n\t\tif (visiting.has(name)) return;\n\t\tvisiting.add(name);\n\t\tconst nameDeps = deps.get(name);\n\t\tassertDefined(nameDeps, `topologicalSort: no dependency set recorded for model \"${name}\"`);\n\t\tconst sortedDeps = [...nameDeps].sort();\n\t\tfor (const dep of sortedDeps) visit(dep);\n\t\tvisiting.delete(name);\n\t\tvisited.add(name);\n\t\tconst model = modelByName.get(name);\n\t\tassertDefined(model, `topologicalSort: no model block recorded for \"${name}\"`);\n\t\tresult.push(model);\n\t}\n\tfor (const name of sortedNames) visit(name);\n\treturn result;\n}\n//#endregion\n//#region src/core/psl-infer/infer-enum-blocks.ts\nconst PSL_SCALAR_TYPE_NAMES = /* @__PURE__ */ new Set([\n\t\"String\",\n\t\"Boolean\",\n\t\"Int\",\n\t\"BigInt\",\n\t\"Float\",\n\t\"Decimal\",\n\t\"DateTime\",\n\t\"Json\",\n\t\"Bytes\"\n]);\n/**\n* Builds one `native_enum` extension-block AST node per introspected enum\n* definition. Block names go through the shared top-level transform\n* (`toEnumName`, intra-enum collisions throw like model collisions) and are\n* then reserved against the model names — an enum whose PSL name a model\n* already claims gets a numeric suffix, with `@@map` carrying the real type\n* name. Members print as explicit `member = \"value\"` pairs: the member name\n* is the sanitized value (deduplicated within the block), the JSON-encoded\n* value carries the truth verbatim.\n*/\nfunction buildNativeEnumBlocks(definitions, modelNames) {\n\tconst enumNames = buildTopLevelNameMap([...definitions.keys()].sort(), toEnumName, \"enum\", \"enum type\");\n\tconst usedTopLevelNames = new Set(PSL_SCALAR_TYPE_NAMES);\n\tfor (const result of modelNames.values()) usedTopLevelNames.add(result.name);\n\tconst enumNameMap = /* @__PURE__ */ new Map();\n\tconst enumBlocks = [];\n\tfor (const [typeName, result] of enumNames) {\n\t\tconst name = createUniqueFieldName(result.name, usedTopLevelNames);\n\t\tusedTopLevelNames.add(name);\n\t\tenumNameMap.set(typeName, name);\n\t\tenumBlocks.push(buildNativeEnumBlock(name, typeName, definitions.get(typeName) ?? []));\n\t}\n\treturn {\n\t\tenumNameMap,\n\t\tenumBlocks\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/infer-foreign-keys.ts\n/**\n* Coordinates every element a set of already-assembled contracts declare,\n* mapped to the {@link SqlDescribedContractSpace} that owns it and keyed by\n* the shared {@link coordinateKey} helper. `contract infer` uses this to omit\n* database elements a stack extension pack's contract space already\n* describes — reusing the same coordinate walk the contract-space aggregate\n* and cross-space collision check use (`elementCoordinates`), rather than a\n* bespoke per-entity-kind membership test — and, for a foreign key whose\n* referenced table an entry owns, to resolve the qualified cross-space\n* relation it describes.\n*/\nfunction describedContractOwners(describedContracts) {\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const entry of describedContracts) for (const coordinate of elementCoordinates(entry.contract.storage)) owners.set(coordinateKey(coordinate), entry);\n\treturn owners;\n}\nfunction resolveCrossSpaceTarget(owner, namespaceId, tableName) {\n\tconst domainNamespace = owner.contract.domain.namespaces[namespaceId];\n\tif (domainNamespace === void 0) return;\n\tfor (const [modelName, model] of Object.entries(domainNamespace.models)) {\n\t\tconst storage = blindCast(model.storage);\n\t\tif (storage.namespaceId !== namespaceId || storage.table !== tableName) continue;\n\t\tconst fieldNamesByColumn = /* @__PURE__ */ new Map();\n\t\tfor (const [fieldName, fieldStorage] of Object.entries(storage.fields)) fieldNamesByColumn.set(fieldStorage.column, { fieldName });\n\t\treturn {\n\t\t\tspaceId: owner.spaceId,\n\t\t\tnamespaceId,\n\t\t\tmodelName,\n\t\t\tfieldNamesByColumn\n\t\t};\n\t}\n}\n/**\n* Classifies every foreign key on a surviving table into one of three cases.\n* A foreign key that carries a `referencedSchema` is checked against the\n* pack-owned coordinates first, so a pack-owned target wins even when a local\n* table happens to share its bare name; only foreign keys with no owned\n* coordinate fall through to the local/dangling distinction.\n*\n* - **Cross-space**: `referencedSchema` is set and a described contract owns\n* the coordinate `(referencedSchema, 'table', referencedTable)`. The\n* referenced table is absent from the tree (omitted because the pack\n* describes it, or never introspected — `contract infer` walks a single\n* namespace). Removed from `foreignKeys` (so `inferRelations` never falls\n* back to a bare, unqualified table name for it) and replaced with a\n* `RelationField` qualified with the owning pack's space id and namespace\n* id. `owners` holds only pack-declared coordinates, so an app's own table\n* (e.g. `public.users`) is never owned and cannot be captured here.\n* - **Local**: not a pack-owned coordinate, and the referenced table survived\n* introspection — left untouched, `inferRelations` handles it as before.\n* - **Dangling**: not a pack-owned coordinate, and the referenced table is\n* neither in the tree nor owned by any described contract. Removed from\n* `foreignKeys`, keeping the scalar column, rather than emitting a relation\n* to a model that was never defined.\n*\n* A pack that owns the referenced coordinate but declares no domain model\n* mapped to it is malformed; that case throws rather than degrading to a\n* silent drop, which would contradict the dangling definition above.\n*/\nfunction resolveForeignKeys(tables, owners) {\n\tconst resultTables = {};\n\tconst extraRelationsByTable = /* @__PURE__ */ new Map();\n\tconst crossSpaceFieldNamesByTable = /* @__PURE__ */ new Map();\n\tconst danglingForeignKeysByTable = /* @__PURE__ */ new Map();\n\tfor (const [tableName, table] of Object.entries(tables)) {\n\t\tconst keptForeignKeys = [];\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tif (fk.referencedSchema !== void 0) {\n\t\t\t\tconst owner = owners.get(coordinateKey({\n\t\t\t\t\tnamespaceId: fk.referencedSchema,\n\t\t\t\t\tentityKind: \"table\",\n\t\t\t\t\tentityName: fk.referencedTable\n\t\t\t\t}));\n\t\t\t\tif (owner !== void 0) {\n\t\t\t\t\tconst target = resolveCrossSpaceTarget(owner, fk.referencedSchema, fk.referencedTable);\n\t\t\t\t\tif (target === void 0) throw postgresError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `contract infer: described contract space \"${owner.spaceId}\" owns storage coordinate \"${fk.referencedSchema}.${fk.referencedTable}\" but declares no domain model mapped to it. A pack that describes a table must also declare the domain model it maps to; this pack is malformed.`, { meta: {\n\t\t\t\t\t\tspaceId: owner.spaceId,\n\t\t\t\t\t\ttableName: fk.referencedTable\n\t\t\t\t\t} });\n\t\t\t\t\tif (!crossSpaceFieldNamesByTable.has(fk.referencedTable)) crossSpaceFieldNamesByTable.set(fk.referencedTable, target.fieldNamesByColumn);\n\t\t\t\t\tconst fieldName = deriveRelationFieldName(fk.columns, fk.referencedTable);\n\t\t\t\t\tconst optional = fk.columns.some((columnName) => table.columns[columnName]?.nullable ?? false);\n\t\t\t\t\tconst relationField = {\n\t\t\t\t\t\t...buildChildRelationField(fieldName, target.modelName, fk, optional, void 0, table),\n\t\t\t\t\t\ttypeNamespaceId: target.namespaceId,\n\t\t\t\t\t\ttypeContractSpaceId: target.spaceId\n\t\t\t\t\t};\n\t\t\t\t\tconst existingRelations = extraRelationsByTable.get(tableName);\n\t\t\t\t\tif (existingRelations) existingRelations.push(relationField);\n\t\t\t\t\telse extraRelationsByTable.set(tableName, [relationField]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (tables[fk.referencedTable] !== void 0) keptForeignKeys.push(fk);\n\t\t\telse {\n\t\t\t\tconst dangling = {\n\t\t\t\t\tcolumns: fk.columns,\n\t\t\t\t\treferencedSchema: fk.referencedSchema,\n\t\t\t\t\treferencedTable: fk.referencedTable\n\t\t\t\t};\n\t\t\t\tconst existingDangling = danglingForeignKeysByTable.get(tableName);\n\t\t\t\tif (existingDangling) existingDangling.push(dangling);\n\t\t\t\telse danglingForeignKeysByTable.set(tableName, [dangling]);\n\t\t\t}\n\t\t}\n\t\tresultTables[tableName] = keptForeignKeys.length === table.foreignKeys.length ? table : new SqlTableIR({\n\t\t\t...table,\n\t\t\tforeignKeys: keptForeignKeys\n\t\t});\n\t}\n\treturn {\n\t\ttables: resultTables,\n\t\textraRelationsByTable,\n\t\tcrossSpaceFieldNamesByTable,\n\t\tdanglingForeignKeysByTable\n\t};\n}\n/**\n* Explains a foreign key `resolveForeignKeys` dropped as dangling: the\n* database enforces it, but its target lives outside the introspected\n* schema, so infer has no model to point a relation at. The suggested fix\n* targets the common cause — an unconfigured extension pack's schema\n* (e.g. Supabase's `auth`).\n*/\nfunction buildDanglingForeignKeyWarning(danglingForeignKeys, fieldNamesByTable, tableName) {\n\treturn `Foreign key ${danglingForeignKeys.map((fk) => {\n\t\tconst fieldNames = fk.columns.map((columnName) => resolveColumnFieldName(fieldNamesByTable, tableName, columnName));\n\t\tconst target = fk.referencedSchema !== void 0 ? `${fk.referencedSchema}.${fk.referencedTable}` : fk.referencedTable;\n\t\treturn `\"${fieldNames.join(\", \")}\" -> \"${target}\"`;\n\t}).join(\", \")} exists in the database, but its target schema is outside the introspected scope, so no relation field was generated. If the target schema is described by an extension pack, add it to extensions and re-run infer.`;\n}\n//#endregion\n//#region src/core/psl-build/index-attributes.ts\nfunction buildModelConstraintAttribute(name, fields, constraintName) {\n\tconst args = [positionalArg(`[${fields.join(\", \")}]`)];\n\tif (constraintName !== void 0) args.push(namedArg(\"map\", `\"${escapePslString(constraintName)}\"`));\n\treturn buildAttribute(\"model\", name, args);\n}\n/**\n* The naming of a live index, re-detected rather than trusted: wire when the\n* live name parses as a wire name AND that hash recomputes from the\n* introspected content; otherwise exact.\n*/\nfunction detectIndexNaming(index) {\n\tconst parsed = parseWireName(index.name);\n\tconst recomputed = computeIndexContentHash({\n\t\t...index.columns !== void 0 ? { columns: index.columns } : {},\n\t\t...index.expression !== void 0 ? { expression: index.expression } : {},\n\t\t...index.where !== void 0 ? { where: index.where } : {},\n\t\tunique: index.unique,\n\t\t...index.type !== void 0 ? { type: index.type } : {},\n\t\t...index.options !== void 0 ? { options: index.options } : {}\n\t});\n\treturn parsed !== void 0 && parsed.hash === recomputed ? {\n\t\tkind: \"wire\",\n\t\tprefix: parsed.prefix\n\t} : { kind: \"exact\" };\n}\nfunction namingArg(naming, exactName) {\n\treturn naming.kind === \"wire\" ? namedArg(\"name\", `\"${escapePslString(naming.prefix)}\"`) : namedArg(\"map\", `\"${escapePslString(exactName)}\"`);\n}\n/**\n* Emits one `@@index` attribute at full fidelity, named as `naming` says;\n* without it, the naming is re-detected from the live name and content.\n*/\nfunction buildIndexAttribute(index, fieldNames, naming = detectIndexNaming(index)) {\n\tconst args = [];\n\tif (fieldNames !== void 0) args.push(positionalArg(`[${fieldNames.join(\", \")}]`));\n\telse {\n\t\tassertDefined(index.expression, `buildIndexAttribute: index \"${index.name}\" carries neither columns nor expression; SqlIndexIR enforces exactly one`);\n\t\targs.push(namedArg(\"expression\", `\"${escapePslString(index.expression)}\"`));\n\t}\n\targs.push(namingArg(naming, index.name));\n\tif (index.where !== void 0) args.push(namedArg(\"where\", `\"${escapePslString(index.where)}\"`));\n\tif (index.unique) args.push(namedArg(\"unique\", \"true\"));\n\tif (index.type !== void 0 || index.options !== void 0) args.push(namedArg(\"type\", `\"${escapePslString(index.type ?? \"btree\")}\"`));\n\tif (index.options !== void 0) {\n\t\tconst entries = Object.entries(index.options ?? {}).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([key, value]) => `${key}: \"${escapePslString(String(value))}\"`);\n\t\targs.push(namedArg(\"options\", `{ ${entries.join(\", \")} }`));\n\t}\n\treturn buildAttribute(\"model\", \"index\", args);\n}\n/**\n* Emits one `@@check` attribute, named as `naming` says. Without it, a live,\n* non-derived check is written in the `map:` form. Re-detecting `name:` is not\n* attempted there: the live expression is Postgres's own reprint, but a\n* wire-named check's hash was taken over the author's original text, so\n* recomputing the hash from the reprint would essentially never match. `map:`\n* plus the verbatim reprint is correct regardless — a reprint compared against\n* a later reprint of the same expression is stable, so the emitted contract\n* signs the live database with zero pending operations. `buildIntrospectedPolicyBlocks`\n* makes the same call for `@@map` on adopted RLS policies, for the same reason.\n*/\nfunction buildCheckAttribute(check, naming = { kind: \"exact\" }) {\n\treturn buildAttribute(\"model\", \"check\", [namedArg(\"expression\", `\"${escapePslString(check.expression)}\"`), namingArg(naming, check.name)]);\n}\n//#endregion\n//#region src/core/psl-infer/infer-model-blocks.ts\nfunction buildModel(table, typeMap, enumNameMap, fieldNamesByTable, defaultMapping, rawDefaultParser, columnDefaults, relationFields, danglingForeignKeys, rlsEnabled = false, policySkipNotes = []) {\n\tconst { name: modelName, map: mapName } = toModelName(table.name);\n\tconst fieldNameMap = fieldNamesByTable.get(table.name);\n\tconst pkColumns = new Set(table.primaryKey?.columns ?? []);\n\tconst isSinglePk = pkColumns.size === 1;\n\tconst singlePkConstraintName = isSinglePk ? table.primaryKey?.name : void 0;\n\tconst uniqueColumns = /* @__PURE__ */ new Map();\n\tfor (const unique of table.uniques) if (unique.columns.length === 1) {\n\t\tconst [columnName = \"\"] = unique.columns;\n\t\tconst existingConstraintName = uniqueColumns.get(columnName);\n\t\tif (!uniqueColumns.has(columnName) || existingConstraintName === void 0 && unique.name) uniqueColumns.set(columnName, unique.name);\n\t}\n\tconst derivedCheckNames = computeDerivedCheckNames(table);\n\tconst fields = [];\n\tfor (const column of Object.values(table.columns)) fields.push(buildScalarField(column, table, typeMap, enumNameMap, fieldNameMap, defaultMapping, rawDefaultParser, columnDefaults, pkColumns, isSinglePk, singlePkConstraintName, uniqueColumns, derivedCheckNames));\n\tconst usedFieldNames = new Set(fields.map((field) => field.name));\n\tfor (const rel of relationFields) fields.push(buildRelationField(rel, table.name, fieldNamesByTable, usedFieldNames));\n\tconst modelAttributes = [];\n\tif (table.primaryKey && table.primaryKey.columns.length > 1) {\n\t\tconst pkFieldNames = table.primaryKey.columns.map((columnName) => resolveColumnFieldName(fieldNamesByTable, table.name, columnName));\n\t\tmodelAttributes.push(buildModelConstraintAttribute(\"id\", pkFieldNames, table.primaryKey.name));\n\t}\n\tfor (const unique of table.uniques) if (unique.columns.length > 1) {\n\t\tconst uniqueFieldNames = unique.columns.map((columnName) => resolveColumnFieldName(fieldNamesByTable, table.name, columnName));\n\t\tmodelAttributes.push(buildModelConstraintAttribute(\"unique\", uniqueFieldNames, unique.name));\n\t}\n\tfor (const index of table.indexes) {\n\t\tconst indexFieldNames = index.columns?.map((columnName) => resolveColumnFieldName(fieldNamesByTable, table.name, columnName));\n\t\tmodelAttributes.push(buildIndexAttribute(index, indexFieldNames));\n\t}\n\tfor (const check of table.checks ?? []) if (!derivedCheckNames.has(check.name)) modelAttributes.push(buildCheckAttribute(check));\n\tif (mapName) modelAttributes.push(buildMapAttribute(\"model\", mapName));\n\tif (rlsEnabled) modelAttributes.push(buildAttribute(\"model\", \"rls\", []));\n\tconst warnings = [];\n\tif (!table.primaryKey) warnings.push(\"This table has no primary key in the database\");\n\tif (danglingForeignKeys.length > 0) warnings.push(buildDanglingForeignKeyWarning(danglingForeignKeys, fieldNamesByTable, table.name));\n\tconst commentLines = [...warnings.length > 0 ? [`// WARNING: ${warnings.join(\" \")}`] : [], ...policySkipNotes];\n\tconst comment = commentLines.length > 0 ? commentLines.join(\"\\n\") : void 0;\n\treturn {\n\t\tkind: \"model\",\n\t\tname: modelName,\n\t\tfields,\n\t\tattributes: modelAttributes,\n\t\tspan: SYNTHETIC_SPAN,\n\t\t...comment !== void 0 ? { comment } : {}\n\t};\n}\n/**\n* The live check names that are derived: a live check's name matches\n* `formatWireName(composeCheckWirePrefix(table, column, kind), computeCheckContentHash(expression))`\n* for some column of the table and some candidate `postgresRenderCheckExpressions`\n* would render for that column. Never by comparing expressions — the live\n* body is a Postgres reprint, never the authored text. One set serves both\n* the `@noCheck` waiver below and `@@check` exclusion in `buildModel`, so the\n* two decisions cannot drift apart.\n*\n* `membership` is unreachable here today: infer never emits domain enums\n* (`enumType()` is not inferred), so no inferred column has member values and\n* no membership check is ever derived. The day domain-enum inference exists,\n* its slice extends this by threading the column's member values through.\n*/\nfunction computeDerivedCheckNames(table) {\n\tconst liveCheckNames = new Set((table.checks ?? []).map((check) => check.name));\n\tconst derivedCheckNames = /* @__PURE__ */ new Set();\n\tfor (const column of Object.values(table.columns)) for (const candidate of postgresRenderCheckExpressions({\n\t\ttableName: table.name,\n\t\tcolumnName: column.name,\n\t\tmany: column.many === true,\n\t\tmemberValues: void 0\n\t})) {\n\t\tconst derivedName = formatWireName(composeCheckWirePrefix(table.name, column.name, candidate.kind), computeCheckContentHash(candidate.expression));\n\t\tif (liveCheckNames.has(derivedName)) derivedCheckNames.add(derivedName);\n\t}\n\treturn derivedCheckNames;\n}\nfunction buildScalarField(column, table, typeMap, enumNameMap, fieldNameMap, defaultMapping, rawDefaultParser, columnDefaults, pkColumns, isSinglePk, singlePkConstraintName, uniqueColumns, derivedCheckNames) {\n\tconst resolvedField = fieldNameMap?.get(column.name);\n\tconst fieldName = resolvedField?.fieldName ?? toFieldName(column.name).name;\n\tconst fieldMap = resolvedField?.fieldMap;\n\tconst resolution = typeMap.resolve(column.nativeType, table.annotations);\n\tif (\"unsupported\" in resolution) {\n\t\tconst attrs = [];\n\t\tif (fieldMap !== void 0) attrs.push(buildMapAttribute(\"field\", fieldMap));\n\t\treturn {\n\t\t\tkind: \"field\",\n\t\t\tname: fieldName,\n\t\t\ttypeName: `Unsupported(\"${escapePslString(resolution.nativeType)}\")`,\n\t\t\toptional: column.nullable,\n\t\t\tlist: column.many === true,\n\t\t\tattributes: attrs,\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t};\n\t}\n\tlet typeName = resolution.pslType.name;\n\tlet typeConstructor = resolution.pslType.args ? {\n\t\tkind: \"typeConstructor\",\n\t\tpath: [resolution.pslType.name],\n\t\targs: resolution.pslType.args.map(positionalArg),\n\t\tspan: SYNTHETIC_SPAN\n\t} : void 0;\n\tconst enumPslName = enumNameMap.get(column.nativeType);\n\tif (enumPslName) {\n\t\ttypeName = enumPslName;\n\t\ttypeConstructor = {\n\t\t\tkind: \"typeConstructor\",\n\t\t\tpath: [\"pg\", \"enum\"],\n\t\t\targs: [positionalArg(enumPslName)],\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t};\n\t}\n\tconst attributes = [];\n\tconst isId = isSinglePk && pkColumns.has(column.name);\n\tif (isId) attributes.push(buildSimpleConstraintFieldAttribute(\"id\", singlePkConstraintName));\n\tconst isEnumColumn = enumPslName !== void 0;\n\tconst defaultAttribute = inferDefaultAttribute(column, rawDefaultParser, {\n\t\t...defaultMapping,\n\t\t...ifDefined(\"columnCodec\", columnDefaults.codecOf(resolution.pslType, isEnumColumn)),\n\t\tlist: column.many === true\n\t}, (value) => columnDefaults.readsBack(value, resolution.pslType, isEnumColumn, column.many === true));\n\tif (defaultAttribute !== void 0) attributes.push(parseDefaultAttributeString(defaultAttribute));\n\tif (uniqueColumns.has(column.name) && !isId) {\n\t\tconst uniqueConstraintName = uniqueColumns.get(column.name);\n\t\tattributes.push(buildSimpleConstraintFieldAttribute(\"unique\", uniqueConstraintName));\n\t}\n\tif (column.many === true) {\n\t\tconst waivedKinds = postgresRenderCheckExpressions({\n\t\t\ttableName: table.name,\n\t\t\tcolumnName: column.name,\n\t\t\tmany: true,\n\t\t\tmemberValues: void 0\n\t\t}).filter((candidate) => !derivedCheckNames.has(formatWireName(composeCheckWirePrefix(table.name, column.name, candidate.kind), computeCheckContentHash(candidate.expression)))).map((candidate) => candidate.kind);\n\t\tif (waivedKinds.length > 0) attributes.push(buildAttribute(\"field\", \"noCheck\", waivedKinds.map(positionalArg)));\n\t}\n\tif (fieldMap !== void 0) attributes.push(buildMapAttribute(\"field\", fieldMap));\n\treturn {\n\t\tkind: \"field\",\n\t\tname: fieldName,\n\t\ttypeName,\n\t\t...ifDefined(\"typeConstructor\", typeConstructor),\n\t\toptional: column.nullable,\n\t\tlist: column.many === true,\n\t\tattributes,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n/**\n* A literal default prints as the PSL literal the column's data type takes. A literal that has no\n* such PSL literal prints as a `sql` tagged literal holding the expression Postgres reported.\n*/\nfunction inferDefaultAttribute(column, rawDefaultParser, defaultMapping, readsBack) {\n\tif (column.default === void 0 && column.resolvedDefault?.kind === \"function\" && column.resolvedDefault.expression === \"autoincrement()\") return \"@default(autoincrement())\";\n\tif (column.many === true && column.resolvedDefault?.kind === \"literal\") return Array.isArray(column.resolvedDefault.value) ? literalOrRawAttribute(column.resolvedDefault, column, defaultMapping, readsBack) : void 0;\n\tconst parsed = parseColumnDefault(column.default, column.nativeType, rawDefaultParser);\n\tif (parsed === void 0) return;\n\tif (parsed.kind === \"literal\") return literalOrRawAttribute(parsed, column, defaultMapping, readsBack);\n\treturn mappedAttribute(parsed, defaultMapping);\n}\n/**\n* A literal no data type the column takes writes, or that the column's codec does not read back,\n* has no PSL literal, so the raw database default prints instead.\n*/\nfunction literalOrRawAttribute(columnDefault, column, defaultMapping, readsBack) {\n\tconst printed = columnDefault.kind === \"literal\" ? {\n\t\tkind: \"literal\",\n\t\tvalue: defaultInCanonicalForm(columnDefault.value, defaultMapping.columnCodec === void 0 || defaultMapping.dataTypes === void 0 ? void 0 : canonicalFormOf(defaultMapping.columnCodec, defaultMapping.dataTypes.lookup), defaultMapping.list === true).value\n\t} : columnDefault;\n\tconst result = printed.kind === \"literal\" && !readsBack(printed.value) ? void 0 : mapDefault(printed, defaultMapping);\n\tif (result !== void 0) return result.attribute;\n\treturn typeof column.default === \"string\" ? mappedAttribute({\n\t\tkind: \"function\",\n\t\texpression: column.default\n\t}, defaultMapping) : void 0;\n}\nfunction mappedAttribute(columnDefault, defaultMapping) {\n\treturn mapDefault(columnDefault, defaultMapping)?.attribute;\n}\nfunction buildRelationField(rel, hostTableName, fieldNamesByTable, usedFieldNames) {\n\tconst fieldName = createUniqueFieldName(rel.fieldName, usedFieldNames);\n\tusedFieldNames.add(fieldName);\n\tconst args = [];\n\tif (rel.fields && rel.references) {\n\t\tif (rel.relationName) args.push(namedArg(\"name\", `\"${escapePslString(rel.relationName)}\"`));\n\t\targs.push(namedArg(\"fields\", `[${rel.fields.map((columnName) => resolveColumnFieldName(fieldNamesByTable, hostTableName, columnName)).join(\", \")}]`));\n\t\targs.push(namedArg(\"references\", `[${rel.references.map((columnName) => resolveColumnFieldName(fieldNamesByTable, rel.referencedTableName ?? \"\", columnName)).join(\", \")}]`));\n\t\tif (rel.onDelete) args.push(namedArg(\"onDelete\", rel.onDelete));\n\t\tif (rel.onUpdate) args.push(namedArg(\"onUpdate\", rel.onUpdate));\n\t\tif (rel.fkName) args.push(namedArg(\"map\", `\"${escapePslString(rel.fkName)}\"`));\n\t\tif (rel.index === false) args.push(namedArg(\"index\", \"false\"));\n\t} else if (rel.relationName) args.push(namedArg(\"name\", `\"${escapePslString(rel.relationName)}\"`));\n\tconst attrs = args.length > 0 ? [buildAttribute(\"field\", \"relation\", args)] : [];\n\treturn {\n\t\tkind: \"field\",\n\t\tname: fieldName,\n\t\ttypeName: rel.typeName,\n\t\t...ifDefined(\"typeNamespaceId\", rel.typeNamespaceId),\n\t\t...ifDefined(\"typeContractSpaceId\", rel.typeContractSpaceId),\n\t\toptional: rel.optional,\n\t\tlist: rel.list,\n\t\tattributes: attrs,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n/**\n* Resolves a `SqlColumnIR.default` value into a normalized {@link ColumnDefault}.\n*\n* `SqlSchemaIR` types the column default as `string` (a raw database default\n* expression). Some legacy fixtures and tests still pass already-normalized\n* `ColumnDefault` objects in the same slot, so we accept either shape\n* defensively at runtime.\n*/\nfunction parseColumnDefault(value, nativeType, rawDefaultParser) {\n\tif (typeof value === \"string\") return rawDefaultParser ? rawDefaultParser(value, nativeType) : void 0;\n\treturn isColumnDefault(value) ? value : void 0;\n}\n//#endregion\n//#region src/core/psl-infer/infer-policy-blocks.ts\n/** Replaces invalid character runs with `_`; prepends `_` when the first character is invalid. */\nfunction sanitizePolicyHead(raw) {\n\tlet head = raw.replace(/[^\\p{L}\\p{N}_-]+/gu, \"_\");\n\tif (!/^[\\p{L}_]/u.test(head)) head = `_${head}`;\n\treturn head;\n}\n/**\n* Builds one `policy_<operation>` block per introspected policy. Every\n* adopted policy is exact-named: a reprinted body never reliably re-hashes to\n* the live suffix, so `@@map` always carries the physical name and the head\n* is only an identifier. A policy granting to a role whose name is not a\n* legal identifier cannot be authored at all — role references have no\n* `@@map` escape — so it is skipped with a note.\n*/\nfunction buildIntrospectedPolicyBlocks(policiesByTable, modelNameMap, reservedHeads = /* @__PURE__ */ new Set()) {\n\tconst all = [];\n\tfor (const [tableName, policies] of policiesByTable) for (const policy of policies) all.push({\n\t\tpolicy,\n\t\ttableName\n\t});\n\tall.sort((a, b) => {\n\t\tif (a.policy.name !== b.policy.name) return a.policy.name < b.policy.name ? -1 : 1;\n\t\tif (a.tableName !== b.tableName) return a.tableName < b.tableName ? -1 : 1;\n\t\treturn a.policy.operation < b.policy.operation ? -1 : a.policy.operation > b.policy.operation ? 1 : 0;\n\t});\n\tconst usedHeads = new Set(reservedHeads);\n\tconst blocks = [];\n\tconst skipNotesByTable = /* @__PURE__ */ new Map();\n\tfor (const { policy, tableName } of all) {\n\t\tconst modelName = modelNameMap.get(tableName);\n\t\tassertDefined(modelName, `buildIntrospectedPolicyBlocks: policy \"${policy.name}\" targets table \"${tableName}\" with no emitted model; tables and policies come from the same introspection walk`);\n\t\tconst badRole = policy.roles.find((role) => !isPslIdentifier(role));\n\t\tif (badRole !== void 0) {\n\t\t\tconst notes = skipNotesByTable.get(tableName) ?? [];\n\t\t\tnotes.push(`// prisma: skipped policy \"${policy.name}\": role \"${badRole}\" is not a valid PSL identifier and role references cannot be escaped`);\n\t\t\tskipNotesByTable.set(tableName, notes);\n\t\t\tcontinue;\n\t\t}\n\t\tlet head = sanitizePolicyHead(parseWireName(policy.name)?.prefix ?? policy.name);\n\t\tif (usedHeads.has(head)) {\n\t\t\tlet n = 2;\n\t\t\twhile (usedHeads.has(`${head}_${n}`)) n += 1;\n\t\t\thead = `${head}_${n}`;\n\t\t}\n\t\tusedHeads.add(head);\n\t\tblocks.push({\n\t\t\tkind: \"policy\",\n\t\t\tkeyword: POLICY_BLOCK_KEYWORDS[policy.operation],\n\t\t\tname: head,\n\t\t\tparameters: {\n\t\t\t\ttarget: {\n\t\t\t\t\texpression: modelName,\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t},\n\t\t\t\troles: {\n\t\t\t\t\texpression: `[${policy.roles.join(\", \")}]`,\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t},\n\t\t\t\t...policy.using !== void 0 ? { using: {\n\t\t\t\t\texpression: JSON.stringify(policy.using),\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t} } : {},\n\t\t\t\t...policy.withCheck !== void 0 ? { withCheck: {\n\t\t\t\t\texpression: JSON.stringify(policy.withCheck),\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t} } : {},\n\t\t\t\t...policy.permissive ? {} : { permissive: {\n\t\t\t\t\texpression: \"false\",\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t} }\n\t\t\t},\n\t\t\tblockAttributes: [{\n\t\t\t\tname: \"map\",\n\t\t\t\targs: [{\n\t\t\t\t\tkind: \"positional\",\n\t\t\t\t\tvalue: `\"${escapePslString(policy.name)}\"`,\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t}],\n\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t}],\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t});\n\t}\n\treturn {\n\t\tblocks,\n\t\tskipNotesByTable\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/postgres-default-mapping.ts\nfunction createPostgresDefaultMapping() {\n\treturn { dataTypes: {\n\t\tentries: postgresDataTypeEntries(),\n\t\tlookup: createPostgresBuiltinDataTypeLookup()\n\t} };\n}\n//#endregion\n//#region src/core/psl-infer/infer-psl-contract.ts\n/**\n* Infers a PSL AST (for `printPsl`) from an introspected Postgres schema tree.\n*\n* Target-owned inference: it walks the `PostgresDatabaseSchemaNode` tree and\n* owns the Postgres dialect knowledge — the native type map and default map.\n* It reads raw defaults with `parsePostgresDefault`, the parser introspection\n* and verify use. Relation inference, name transforms, and generic default\n* mapping are shape-neutral utilities imported from the SQL family.\n*\n* The tree's tables (across its namespaces — `contract infer` introspects a\n* single live namespace) are gathered into the model set and emitted in one\n* bucket, alongside native-enum and RLS policy blocks. That bucket is named\n* after the introspected schema when the content needs a `namespace { … }`\n* wrap, and is the flat `UNSPECIFIED_PSL_NAMESPACE_ID` bucket otherwise. This\n* entry point emits nothing else, so its output is always exactly one bucket\n* and byte-identical to the prior flat inference. {@link buildPslDocumentAst}\n* can emit a second, always-flat bucket for content that must stay top-level\n* even under a wrap; no caller asks for one yet.\n*\n* `describedContracts` — the stack's extension packs' already-assembled\n* contracts, each paired with its space id — is consulted while gathering\n* tables: a table whose coordinate `(schemaName, 'table', tableName)` one of\n* those contracts already declares is omitted, before the duplicate-name\n* check below and before relation inference, so it cannot spuriously\n* collide with an app table and never contributes a bare relation field. A\n* surviving table's foreign key into an omitted, pack-owned table is not\n* dropped: {@link resolveForeignKeys} rewrites it into a relation qualified\n* with the pack's space id (`<spaceId>:<namespaceId>.<Model>`) instead.\n*/\nfunction inferPostgresPslContract(tree, context, describedContracts) {\n\tconst namespaces = Object.values(tree.namespaces);\n\tconst owners = describedContractOwners(describedContracts ?? []);\n\tconst enumDefinitions = /* @__PURE__ */ new Map();\n\tconst packOwnedEnumTypesByNamespace = /* @__PURE__ */ new Map();\n\tconst enumNamespaceNames = /* @__PURE__ */ new Set();\n\tfor (const namespace of namespaces) for (const { typeName, members } of namespace.nativeEnums) {\n\t\tconst owner = owners.get(coordinateKey({\n\t\t\tnamespaceId: namespace.schemaName,\n\t\t\tentityKind: \"native_enum\",\n\t\t\tentityName: typeName\n\t\t}));\n\t\tif (owner !== void 0) {\n\t\t\tconst owned = packOwnedEnumTypesByNamespace.get(namespace.schemaName) ?? /* @__PURE__ */ new Map();\n\t\t\towned.set(typeName, owner.spaceId);\n\t\t\towned.set(`${namespace.schemaName}.${typeName}`, owner.spaceId);\n\t\t\tpackOwnedEnumTypesByNamespace.set(namespace.schemaName, owned);\n\t\t\tcontinue;\n\t\t}\n\t\tenumDefinitions.set(typeName, members);\n\t\tenumNamespaceNames.add(namespace.schemaName);\n\t}\n\tconst tables = {};\n\tconst tableNamespaceNames = /* @__PURE__ */ new Set();\n\tconst rlsEnabledTables = /* @__PURE__ */ new Set();\n\tconst policiesByTable = /* @__PURE__ */ new Map();\n\tfor (const namespace of namespaces) {\n\t\tconst ownedEnumTypes = packOwnedEnumTypesByNamespace.get(namespace.schemaName);\n\t\tfor (const [tableName, table] of Object.entries(namespace.tables)) {\n\t\t\tif (owners.has(coordinateKey({\n\t\t\t\tnamespaceId: namespace.schemaName,\n\t\t\t\tentityKind: \"table\",\n\t\t\t\tentityName: tableName\n\t\t\t}))) continue;\n\t\t\tif (tables[tableName] !== void 0) throw postgresError(\"CONTRACT.INFER_UNSUPPORTED\", `contract infer: duplicate table name \"${tableName}\" across schemas is not yet supported (single-namespace PSL inference emits one flat bucket; multi-namespace \\`namespace { … }\\` output is a later slice).`, { meta: { tableName } });\n\t\t\tif (ownedEnumTypes !== void 0) for (const column of Object.values(table.columns)) {\n\t\t\t\tconst owningSpaceId = ownedEnumTypes.get(column.nativeType);\n\t\t\t\tif (owningSpaceId !== void 0) throw postgresError(\"CONTRACT.INFER_UNSUPPORTED\", `contract infer: column \"${tableName}\".\"${column.name}\" is typed by native enum type \"${column.nativeType}\", which extension pack space \"${owningSpaceId}\" already describes. A cross-space enum-typed column has no authorable PSL form yet; describe the table in that pack's contract or retype the column before re-running contract infer.`, { meta: {\n\t\t\t\t\ttableName,\n\t\t\t\t\tcolumnName: column.name\n\t\t\t\t} });\n\t\t\t}\n\t\t\ttables[tableName] = new SqlTableIR(table);\n\t\t\ttableNamespaceNames.add(namespace.schemaName);\n\t\t\tif (table.rlsEnabled) rlsEnabledTables.add(tableName);\n\t\t\tif (table.policies.length > 0) policiesByTable.set(tableName, table.policies);\n\t\t}\n\t}\n\tlet wrapNamespaceName;\n\tif (enumDefinitions.size > 0 || policiesByTable.size > 0) {\n\t\tconst contentNamespaces = /* @__PURE__ */ new Set([...enumNamespaceNames, ...tableNamespaceNames]);\n\t\tif (contentNamespaces.size > 1) throw postgresError(\"CONTRACT.INFER_UNSUPPORTED\", `contract infer: adopting native enums or RLS policies with content across multiple schemas is not yet supported (single-namespace PSL inference emits one \\`namespace { … }\\` block; multi-namespace output is a later slice). Schemas: ${[...contentNamespaces].sort().join(\", \")}.`, { meta: { schemas: [...contentNamespaces].sort() } });\n\t\twrapNamespaceName = [...contentNamespaces][0];\n\t}\n\tconst { tables: resolvedTables, extraRelationsByTable, crossSpaceFieldNamesByTable, danglingForeignKeysByTable } = resolveForeignKeys(tables, owners);\n\tconst schemaIR = new SqlSchemaIR({ tables: resolvedTables });\n\tconst enumTypeNames = new Set(enumDefinitions.keys());\n\tif (wrapNamespaceName !== void 0) for (const typeName of enumDefinitions.keys()) enumTypeNames.add(`${wrapNamespaceName}.${typeName}`);\n\tconst enumInfo = {\n\t\ttypeNames: enumTypeNames,\n\t\tdefinitions: enumDefinitions\n\t};\n\treturn buildPslDocumentAst(schemaIR, {\n\t\ttypeMap: createPostgresTypeMap(enumInfo.typeNames),\n\t\tdefaultMapping: createPostgresDefaultMapping(),\n\t\tparseRawDefault: parsePostgresDefault,\n\t\tcolumnDefaults: inferredColumnDefaults(context),\n\t\t...enumDefinitions.size > 0 ? { enumInfo } : {}\n\t}, {\n\t\textraRelationsByTable,\n\t\tcrossSpaceFieldNamesByTable,\n\t\tdanglingForeignKeysByTable\n\t}, wrapNamespaceName, {\n\t\trlsEnabledTables,\n\t\tpoliciesByTable\n\t});\n}\n/**\n* Builds the PSL document for one introspected schema.\n*\n* `namespaceName` wraps the output in `namespace <name> { … }`; omit it for\n* flat output. `topLevelExtensionBlocks` are declarations that must stay\n* top-level even when a wrap applies, such as a recovered domain enum — a\n* family `enum` inside a namespace is a hard diagnostic. They land in their\n* own always-flat bucket when a wrap applies, and in the single flat bucket\n* when none does; either way they print unwrapped.\n*\n* Their names are reserved before the policy blocks are built, so a policy\n* renames itself out of the way. Against the rest of the top-level scope — the\n* models, the native enums, PSL's scalar type names, and the other blocks in\n* the list — a clash throws instead: a block's name is its contract key\n* (`entries.valueSet[name]`, with no `@@map` escape), so it cannot be rewritten\n* here.\n*/\nfunction buildPslDocumentAst(schemaIR, options, foreignKeyExtras, namespaceName, rlsExtras, topLevelExtensionBlocks = []) {\n\tconst { typeMap, defaultMapping, parseRawDefault: rawDefaultParser } = options;\n\tconst { extraRelationsByTable, crossSpaceFieldNamesByTable, danglingForeignKeysByTable } = foreignKeyExtras;\n\tconst modelNames = buildTopLevelNameMap(Object.keys(schemaIR.tables), toModelName, \"model\", \"table\");\n\tconst modelNameMap = new Map([...modelNames].map(([tableName, result]) => [tableName, result.name]));\n\tconst { enumNameMap: bareEnumNameMap, enumBlocks } = buildNativeEnumBlocks(options.enumInfo?.definitions ?? /* @__PURE__ */ new Map(), modelNames);\n\tconst enumNameMap = new Map(bareEnumNameMap);\n\tif (namespaceName !== void 0) for (const [typeName, pslName] of bareEnumNameMap) enumNameMap.set(`${namespaceName}.${typeName}`, pslName);\n\tconst fieldNamesByTable = new Map([...crossSpaceFieldNamesByTable, ...buildFieldNamesByTable(schemaIR.tables)]);\n\tconst { relationsByTable } = inferRelations(schemaIR.tables, modelNameMap);\n\tconst policyEmission = buildIntrospectedPolicyBlocks(rlsExtras?.policiesByTable ?? /* @__PURE__ */ new Map(), modelNameMap, /* @__PURE__ */ new Set([\n\t\t...modelNameMap.values(),\n\t\t...bareEnumNameMap.values(),\n\t\t...topLevelExtensionBlocks.map((block) => block.name)\n\t]));\n\tconst claimedTopLevelNames = /* @__PURE__ */ new Set([\n\t\t...PSL_SCALAR_TYPE_NAMES,\n\t\t...modelNameMap.values(),\n\t\t...bareEnumNameMap.values()\n\t]);\n\tfor (const block of topLevelExtensionBlocks) {\n\t\tif (claimedTopLevelNames.has(block.name)) throw postgresError(\"CONTRACT.NAME_DUPLICATE\", `contract infer: recovered ${block.keyword} \"${block.name}\" collides with a model, a native enum, a PSL scalar type, or another recovered declaration of the same name. Rename the recovered declaration, or exclude it.`, { meta: {\n\t\t\tkind: block.keyword,\n\t\t\tname: block.name\n\t\t} });\n\t\tclaimedTopLevelNames.add(block.name);\n\t}\n\tconst models = [];\n\tfor (const table of Object.values(schemaIR.tables)) models.push(buildModel(table, typeMap, enumNameMap, fieldNamesByTable, defaultMapping, rawDefaultParser, options.columnDefaults, [...relationsByTable.get(table.name) ?? [], ...extraRelationsByTable.get(table.name) ?? []], danglingForeignKeysByTable.get(table.name) ?? [], rlsExtras?.rlsEnabledTables.has(table.name) ?? false, policyEmission.skipNotesByTable.get(table.name) ?? []));\n\tconst sortedModels = topologicalSort(models, schemaIR.tables, modelNameMap);\n\tconst separateTopLevelBucket = namespaceName !== void 0 && namespaceName !== UNSPECIFIED_PSL_NAMESPACE_ID && topLevelExtensionBlocks.length > 0;\n\tconst namespaces = [];\n\tif (separateTopLevelBucket) namespaces.push(makePslNamespace({\n\t\tkind: \"namespace\",\n\t\tname: UNSPECIFIED_PSL_NAMESPACE_ID,\n\t\tentries: makePslNamespaceEntries([], [], topLevelExtensionBlocks),\n\t\tspan: SYNTHETIC_SPAN\n\t}));\n\tnamespaces.push(makePslNamespace({\n\t\tkind: \"namespace\",\n\t\tname: namespaceName ?? UNSPECIFIED_PSL_NAMESPACE_ID,\n\t\tentries: makePslNamespaceEntries(sortedModels, [], [\n\t\t\t...separateTopLevelBucket ? [] : topLevelExtensionBlocks,\n\t\t\t...enumBlocks,\n\t\t\t...policyEmission.blocks\n\t\t]),\n\t\tspan: SYNTHETIC_SPAN\n\t}));\n\treturn {\n\t\tkind: \"document\",\n\t\tsourceId: \"<sql-schema-ir>\",\n\t\tnamespaces,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n//#endregion\nexport { buildIndexAttribute as a, noColumnDefaults as c, buildMapAttribute as d, namedArg as f, EXISTING_COLUMN_DATE_TIME_TYPES as g, createPostgresTypeMap as h, buildCheckAttribute as i, SYNTHETIC_SPAN as l, positionalArg as m, inferPostgresPslContract as n, buildModelConstraintAttribute as o, parseDefaultAttributeString as p, createPostgresDefaultMapping as r, buildNativeEnumBlock as s, buildPslDocumentAst as t, buildAttribute as u };\n\n//# sourceMappingURL=infer-psl-contract-B5yExD61.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infer-psl-contract-D-3st5lU-DKQhhsut.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/infer-psl-contract-D-3st5lU.mjs"],"sourcesContent":["import { S as PG_TEXT_CODEC_ID } from \"./codec-ids-Cb0yO-IS.mjs\";\nimport { s as postgresError } from \"./errors-DYyzTYzE.mjs\";\nimport { t as createPostgresBuiltinDataTypeLookup } from \"./data-types-DRkmmE9S.mjs\";\nimport { t as postgresDataTypeEntries } from \"./data-type-entries-DoR61yeO.mjs\";\nimport { t as POLICY_BLOCK_KEYWORDS } from \"./authoring-_2G2lsLt.mjs\";\nimport { t as postgresRenderCheckExpressions } from \"./check-expressions-BaFrBceq.mjs\";\nimport { t as parsePostgresDefault } from \"./default-normalizer-Bf_Fhv4v.mjs\";\nimport { escapePslString } from \"@internal/sql-contract/data-type-support\";\nimport { canonicalFormOf, codecForRef } from \"@internal/framework-components/codec\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { coordinateKey, elementCoordinates } from \"@internal/framework-components/ir\";\nimport { getAuthoringTypeConstructor, instantiateAuthoringTypeConstructor, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { NAME_THE_PSL_SOURCE_LOSES, isPslIdentifier } from \"@internal/psl-parser\";\nimport { composeCheckWirePrefix, computeCheckContentHash, computeIndexContentHash, formatWireName, parseWireName } from \"@internal/sql-schema-ir/naming\";\nimport { assertDefined } from \"@internal/utils/assertions\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { SqlSchemaIR, SqlTableIR, defaultInCanonicalForm } from \"@internal/sql-schema-ir/types\";\nimport { isInternalError } from \"@internal/utils/internal-error\";\nimport { buildChildRelationField, deriveRelationFieldName, inferRelations, toEnumName, toFieldName, toModelName } from \"@internal/family-sql/psl-infer\";\nimport { UNSPECIFIED_PSL_NAMESPACE_ID, makePslNamespace, makePslNamespaceEntries } from \"@internal/framework-components/psl-ast\";\nimport { parsePslPositionalArgs } from \"@internal/psl-parser/interpret\";\nimport { mapDefault, toEnumMemberName } from \"@internal/family-sql/psl-build\";\nimport { isColumnDefault } from \"@internal/contract/types\";\n//#region src/core/psl-build/existing-column-date-time-types.ts\n/** A contract written for an existing database reads every date and time column as PostgreSQL's text. */\nconst EXISTING_COLUMN_DATE_TIME_TYPES = {\n\ttimestamp: \"TimestampString\",\n\ttimestamptz: \"TimestamptzString\",\n\tdate: \"DateString\",\n\ttime: \"TimeString\",\n\ttimetz: \"Timetz\"\n};\n//#endregion\n//#region src/core/psl-build/postgres-type-map.ts\nconst POSTGRES_TO_PSL = {\n\ttext: \"String\",\n\tbool: \"Boolean\",\n\tboolean: \"Boolean\",\n\tint4: \"Int\",\n\tinteger: \"Int\",\n\tint8: \"BigInt\",\n\tbigint: \"BigInt\",\n\tfloat8: \"Float\",\n\t\"double precision\": \"Float\",\n\tjsonb: \"Jsonb\",\n\tbytea: \"Bytes\"\n};\nconst PRESERVED_NATIVE_TYPES = {\n\t\"character varying\": \"VarChar\",\n\tcharacter: \"Char\",\n\tchar: \"Char\",\n\tvarchar: \"VarChar\",\n\tuuid: \"Uuid\",\n\tinet: \"Inet\",\n\tint2: \"SmallInt\",\n\tsmallint: \"SmallInt\",\n\tfloat4: \"Real\",\n\treal: \"Real\",\n\tnumeric: \"Numeric\",\n\tdecimal: \"Numeric\",\n\ttimestamp: EXISTING_COLUMN_DATE_TIME_TYPES.timestamp,\n\t\"timestamp without time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.timestamp,\n\ttimestamptz: EXISTING_COLUMN_DATE_TIME_TYPES.timestamptz,\n\t\"timestamp with time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.timestamptz,\n\tdate: EXISTING_COLUMN_DATE_TIME_TYPES.date,\n\ttime: EXISTING_COLUMN_DATE_TIME_TYPES.time,\n\t\"time without time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.time,\n\ttimetz: EXISTING_COLUMN_DATE_TIME_TYPES.timetz,\n\t\"time with time zone\": EXISTING_COLUMN_DATE_TIME_TYPES.timetz,\n\tjson: \"Json\"\n};\nconst PARAMETERIZED_NATIVE_TYPES = {\n\t\"character varying\": \"VarChar\",\n\tcharacter: \"Char\",\n\tchar: \"Char\",\n\tvarchar: \"VarChar\",\n\tnumeric: \"Numeric\",\n\tdecimal: \"Numeric\",\n\ttimestamp: EXISTING_COLUMN_DATE_TIME_TYPES.timestamp,\n\ttimestamptz: EXISTING_COLUMN_DATE_TIME_TYPES.timestamptz,\n\ttime: EXISTING_COLUMN_DATE_TIME_TYPES.time,\n\ttimetz: EXISTING_COLUMN_DATE_TIME_TYPES.timetz\n};\n[\n\t...Object.values(POSTGRES_TO_PSL),\n\t...Object.values(PRESERVED_NATIVE_TYPES),\n\t...Object.values(PARAMETERIZED_NATIVE_TYPES)\n];\nconst PARAMETERIZED_TYPE_PATTERN = /^(.+?)\\((.+)\\)$/;\nfunction getOwnMappingValue(map, key) {\n\treturn Object.hasOwn(map, key) ? map[key] : void 0;\n}\nfunction splitTypeParameterList(params) {\n\treturn params.split(\",\").map((part) => part.trim()).filter((part) => part.length > 0);\n}\nfunction createPostgresTypeMap(enumTypeNames) {\n\treturn { resolve(nativeType) {\n\t\tif (enumTypeNames?.has(nativeType)) return {\n\t\t\tpslType: { name: nativeType },\n\t\t\tnativeType\n\t\t};\n\t\tconst paramMatch = nativeType.match(PARAMETERIZED_TYPE_PATTERN);\n\t\tif (paramMatch) {\n\t\t\tconst [, baseType = nativeType, params = \"\"] = paramMatch;\n\t\t\tconst typeName = getOwnMappingValue(PARAMETERIZED_NATIVE_TYPES, baseType);\n\t\t\tif (typeName) return {\n\t\t\t\tpslType: {\n\t\t\t\t\tname: typeName,\n\t\t\t\t\targs: splitTypeParameterList(params)\n\t\t\t\t},\n\t\t\t\tnativeType,\n\t\t\t\ttypeParams: {\n\t\t\t\t\tbaseType,\n\t\t\t\t\tparams\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tconst preservedType = getOwnMappingValue(PRESERVED_NATIVE_TYPES, nativeType);\n\t\tif (preservedType) return {\n\t\t\tpslType: { name: preservedType },\n\t\t\tnativeType\n\t\t};\n\t\tconst pslType = getOwnMappingValue(POSTGRES_TO_PSL, nativeType);\n\t\tif (pslType) return {\n\t\t\tpslType: { name: pslType },\n\t\t\tnativeType\n\t\t};\n\t\treturn {\n\t\t\tunsupported: true,\n\t\t\tnativeType\n\t\t};\n\t} };\n}\n//#endregion\n//#region src/core/psl-build/psl-literals.ts\nconst SYNTHETIC_SPAN = {\n\tstart: {\n\t\toffset: 0,\n\t\tline: 1,\n\t\tcolumn: 1\n\t},\n\tend: {\n\t\toffset: 0,\n\t\tline: 1,\n\t\tcolumn: 1\n\t}\n};\nfunction buildSimpleConstraintFieldAttribute(name, constraintName) {\n\tif (constraintName === void 0) return buildAttribute(\"field\", name, []);\n\treturn buildAttribute(\"field\", name, [namedArg(\"map\", `\"${escapePslString(constraintName)}\"`)]);\n}\nfunction parseDefaultAttributeString(attributeText) {\n\treturn buildAttribute(\"field\", \"default\", [positionalArg(attributeText.replace(/^@default\\(/, \"\").replace(/\\)$/, \"\"))]);\n}\nfunction buildMapAttribute(target, mapName) {\n\treturn buildAttribute(target, \"map\", [positionalArg(`\"${escapePslString(mapName)}\"`)]);\n}\nfunction buildAttribute(target, name, args) {\n\treturn {\n\t\tkind: \"attribute\",\n\t\ttarget,\n\t\tname,\n\t\targs,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\nfunction positionalArg(value) {\n\treturn {\n\t\tkind: \"positional\",\n\t\tvalue,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\nfunction namedArg(name, value) {\n\treturn {\n\t\tkind: \"named\",\n\t\tname,\n\t\tvalue,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/infer-default-codec.ts\n/**\n* The codec reference `contract emit` builds for a column of `pslType`: the codec its type\n* constructor names, with the type parameters the call's arguments give. An enum column's default\n* is a member name, which is text either way, so it reads through the text codec.\n*/\nfunction inferredCodecRef(context, pslType, isEnum) {\n\tif (isEnum) return { codecId: PG_TEXT_CODEC_ID };\n\tconst descriptor = getAuthoringTypeConstructor(context.authoringContributions, [pslType.name]);\n\tif (descriptor === void 0) return void 0;\n\tconst args = parsePslPositionalArgs(descriptor.args ?? [], pslType.args ?? []);\n\tif (args === void 0) return void 0;\n\tvalidateAuthoringHelperArguments(pslType.name, descriptor.args, args);\n\tconst { codecId, typeParams } = instantiateAuthoringTypeConstructor(descriptor, args);\n\treturn {\n\t\tcodecId,\n\t\t...ifDefined(\"typeParams\", typeParams === void 0 ? void 0 : blindCast(typeParams))\n\t};\n}\n/**\n* The default checks for `context`. A default the codec refuses has no PSL literal, so the raw\n* expression prints instead of a schema `contract emit` would reject. A column whose codec cannot be\n* built with its type parameters is treated the same way. An `InternalError` is a bug, not a\n* refusal, so it passes through.\n*\n* A data type says which values its column takes, not that every codec of it accepts each one: the\n* temporal codecs represent types that cast from text but refuse `infinity`, which PostgreSQL stores\n* and reports verbatim.\n*/\nfunction inferredColumnDefaults(context) {\n\treturn {\n\t\tcodecOf(pslType, isEnum) {\n\t\t\ttry {\n\t\t\t\tconst ref = inferredCodecRef(context, pslType, isEnum);\n\t\t\t\treturn ref === void 0 ? void 0 : context.codecLookup.descriptorFor(ref.codecId);\n\t\t\t} catch (error) {\n\t\t\t\tif (isInternalError(error)) throw error;\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\treadsBack(value, pslType, isEnum, isList) {\n\t\t\tconst values = isList && Array.isArray(value) ? value : [value];\n\t\t\ttry {\n\t\t\t\tconst ref = inferredCodecRef(context, pslType, isEnum);\n\t\t\t\tconst codec = ref === void 0 ? void 0 : codecForRef(context.codecLookup, ref);\n\t\t\t\tif (codec === void 0) return false;\n\t\t\t\tfor (const element of values) codec.decodeJson(blindCast(element));\n\t\t\t\treturn true;\n\t\t\t} catch (error) {\n\t\t\t\tif (isInternalError(error)) throw error;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t};\n}\n/** For a table whose columns have no literal default, such as a many-to-many junction table. */\nconst noColumnDefaults = {\n\tcodecOf: () => void 0,\n\treadsBack: () => false\n};\n//#endregion\n//#region src/core/psl-build/unique-name.ts\n/** `desiredName`, or it with the lowest number from 2 up that makes it unused. */\nfunction createUniqueFieldName(desiredName, usedFieldNames) {\n\tif (!usedFieldNames.has(desiredName)) return desiredName;\n\tlet counter = 2;\n\twhile (usedFieldNames.has(`${desiredName}${counter}`)) counter++;\n\treturn `${desiredName}${counter}`;\n}\n//#endregion\n//#region src/core/psl-build/native-enum-block.ts\n/** One `native_enum <name> { … }` block, with `@@map` when the type name differs from the block name. */\nfunction buildNativeEnumBlock(name, typeName, values) {\n\tconst usedMemberNames = /* @__PURE__ */ new Set([NAME_THE_PSL_SOURCE_LOSES]);\n\treturn {\n\t\tkind: \"native_enum\",\n\t\tkeyword: \"native_enum\",\n\t\tname,\n\t\tparameters: Object.fromEntries(values.map((value) => {\n\t\t\tconst memberName = createUniqueFieldName(toEnumMemberName(value), usedMemberNames);\n\t\t\tusedMemberNames.add(memberName);\n\t\t\treturn [memberName, {\n\t\t\t\texpression: JSON.stringify(value),\n\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t}];\n\t\t})),\n\t\tblockAttributes: name === typeName ? [] : [{\n\t\t\tname: \"map\",\n\t\t\targs: [{\n\t\t\t\tkind: \"positional\",\n\t\t\t\tvalue: `\"${escapePslString(typeName)}\"`,\n\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t}],\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t}],\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/infer-names.ts\nfunction buildFieldNamesByTable(tables) {\n\tconst fieldNamesByTable = /* @__PURE__ */ new Map();\n\tfor (const table of Object.values(tables)) {\n\t\tconst assignmentOrder = [...Object.values(table.columns).map((column, index) => {\n\t\t\tconst { name, map } = toFieldName(column.name);\n\t\t\treturn {\n\t\t\t\tcolumnName: column.name,\n\t\t\t\tdesiredFieldName: name,\n\t\t\t\tfieldMap: map,\n\t\t\t\tindex\n\t\t\t};\n\t\t})].sort((left, right) => {\n\t\t\tconst mapComparison = Number(left.fieldMap !== void 0) - Number(right.fieldMap !== void 0);\n\t\t\tif (mapComparison !== 0) return mapComparison;\n\t\t\treturn left.index - right.index;\n\t\t});\n\t\tconst usedFieldNames = /* @__PURE__ */ new Set();\n\t\tconst tableFieldNames = /* @__PURE__ */ new Map();\n\t\tfor (const column of assignmentOrder) {\n\t\t\tconst fieldName = createUniqueFieldName(column.desiredFieldName, usedFieldNames);\n\t\t\tusedFieldNames.add(fieldName);\n\t\t\ttableFieldNames.set(column.columnName, {\n\t\t\t\tfieldName,\n\t\t\t\tfieldMap: column.fieldMap\n\t\t\t});\n\t\t}\n\t\tfieldNamesByTable.set(table.name, tableFieldNames);\n\t}\n\treturn fieldNamesByTable;\n}\nfunction resolveColumnFieldName(fieldNamesByTable, tableName, columnName) {\n\treturn fieldNamesByTable.get(tableName)?.get(columnName)?.fieldName ?? toFieldName(columnName).name;\n}\nfunction buildTopLevelNameMap(sources, normalize, kind, sourceKind) {\n\tconst results = /* @__PURE__ */ new Map();\n\tconst normalizedToSources = /* @__PURE__ */ new Map();\n\tfor (const source of sources) {\n\t\tconst normalized = normalize(source);\n\t\tresults.set(source, normalized);\n\t\tnormalizedToSources.set(normalized.name, [...normalizedToSources.get(normalized.name) ?? [], source]);\n\t}\n\tconst duplicates = [...normalizedToSources.entries()].filter(([, conflictingSources]) => conflictingSources.length > 1);\n\tif (duplicates.length > 0) throw postgresError(\"CONTRACT.NAME_DUPLICATE\", `PSL ${kind} name collisions detected:\\n${duplicates.map(([normalizedName, conflictingSources]) => `- ${kind} \"${normalizedName}\" from ${sourceKind}s ${conflictingSources.map((source) => `\"${source}\"`).join(\", \")}`).join(\"\\n\")}`, { meta: {\n\t\tkind,\n\t\tnames: duplicates.map(([normalizedName]) => normalizedName)\n\t} });\n\treturn results;\n}\nfunction topologicalSort(models, tables, modelNameMap) {\n\tconst modelByName = /* @__PURE__ */ new Map();\n\tfor (const model of models) modelByName.set(model.name, model);\n\tconst deps = /* @__PURE__ */ new Map();\n\tconst tableToModel = /* @__PURE__ */ new Map();\n\tfor (const tableName of Object.keys(tables)) {\n\t\tconst modelName = modelNameMap.get(tableName);\n\t\tassertDefined(modelName, `topologicalSort: no model name mapped for table \"${tableName}\"`);\n\t\ttableToModel.set(tableName, modelName);\n\t\tdeps.set(modelName, /* @__PURE__ */ new Set());\n\t}\n\tfor (const [tableName, table] of Object.entries(tables)) {\n\t\tconst modelName = tableToModel.get(tableName);\n\t\tassertDefined(modelName, `topologicalSort: no model name recorded for table \"${tableName}\"`);\n\t\tconst modelDeps = deps.get(modelName);\n\t\tassertDefined(modelDeps, `topologicalSort: no dependency set recorded for model \"${modelName}\"`);\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tconst refModelName = tableToModel.get(fk.referencedTable);\n\t\t\tif (refModelName && refModelName !== modelName) modelDeps.add(refModelName);\n\t\t}\n\t}\n\tconst result = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tconst visiting = /* @__PURE__ */ new Set();\n\tconst sortedNames = [...deps.keys()].sort();\n\tfunction visit(name) {\n\t\tif (visited.has(name)) return;\n\t\tif (visiting.has(name)) return;\n\t\tvisiting.add(name);\n\t\tconst nameDeps = deps.get(name);\n\t\tassertDefined(nameDeps, `topologicalSort: no dependency set recorded for model \"${name}\"`);\n\t\tconst sortedDeps = [...nameDeps].sort();\n\t\tfor (const dep of sortedDeps) visit(dep);\n\t\tvisiting.delete(name);\n\t\tvisited.add(name);\n\t\tconst model = modelByName.get(name);\n\t\tassertDefined(model, `topologicalSort: no model block recorded for \"${name}\"`);\n\t\tresult.push(model);\n\t}\n\tfor (const name of sortedNames) visit(name);\n\treturn result;\n}\n//#endregion\n//#region src/core/psl-infer/infer-enum-blocks.ts\nconst PSL_SCALAR_TYPE_NAMES = /* @__PURE__ */ new Set([\n\t\"String\",\n\t\"Boolean\",\n\t\"Int\",\n\t\"BigInt\",\n\t\"Float\",\n\t\"Decimal\",\n\t\"DateTime\",\n\t\"Json\",\n\t\"Bytes\"\n]);\n/**\n* Builds one `native_enum` extension-block AST node per introspected enum\n* definition. Block names go through the shared top-level transform\n* (`toEnumName`, intra-enum collisions throw like model collisions) and are\n* then reserved against the model names — an enum whose PSL name a model\n* already claims gets a numeric suffix, with `@@map` carrying the real type\n* name. Members print as explicit `member = \"value\"` pairs: the member name\n* is the sanitized value (deduplicated within the block), the JSON-encoded\n* value carries the truth verbatim.\n*/\nfunction buildNativeEnumBlocks(definitions, modelNames) {\n\tconst enumNames = buildTopLevelNameMap([...definitions.keys()].sort(), toEnumName, \"enum\", \"enum type\");\n\tconst usedTopLevelNames = new Set(PSL_SCALAR_TYPE_NAMES);\n\tfor (const result of modelNames.values()) usedTopLevelNames.add(result.name);\n\tconst enumNameMap = /* @__PURE__ */ new Map();\n\tconst enumBlocks = [];\n\tfor (const [typeName, result] of enumNames) {\n\t\tconst name = createUniqueFieldName(result.name, usedTopLevelNames);\n\t\tusedTopLevelNames.add(name);\n\t\tenumNameMap.set(typeName, name);\n\t\tenumBlocks.push(buildNativeEnumBlock(name, typeName, definitions.get(typeName) ?? []));\n\t}\n\treturn {\n\t\tenumNameMap,\n\t\tenumBlocks\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/infer-foreign-keys.ts\n/**\n* Coordinates every element a set of already-assembled contracts declare,\n* mapped to the {@link SqlDescribedContractSpace} that owns it and keyed by\n* the shared {@link coordinateKey} helper. `contract infer` uses this to omit\n* database elements a stack extension pack's contract space already\n* describes — reusing the same coordinate walk the contract-space aggregate\n* and cross-space collision check use (`elementCoordinates`), rather than a\n* bespoke per-entity-kind membership test — and, for a foreign key whose\n* referenced table an entry owns, to resolve the qualified cross-space\n* relation it describes.\n*/\nfunction describedContractOwners(describedContracts) {\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const entry of describedContracts) for (const coordinate of elementCoordinates(entry.contract.storage)) owners.set(coordinateKey(coordinate), entry);\n\treturn owners;\n}\nfunction resolveCrossSpaceTarget(owner, namespaceId, tableName) {\n\tconst domainNamespace = owner.contract.domain.namespaces[namespaceId];\n\tif (domainNamespace === void 0) return;\n\tfor (const [modelName, model] of Object.entries(domainNamespace.models)) {\n\t\tconst storage = blindCast(model.storage);\n\t\tif (storage.namespaceId !== namespaceId || storage.table !== tableName) continue;\n\t\tconst fieldNamesByColumn = /* @__PURE__ */ new Map();\n\t\tfor (const [fieldName, fieldStorage] of Object.entries(storage.fields)) fieldNamesByColumn.set(fieldStorage.column, { fieldName });\n\t\treturn {\n\t\t\tspaceId: owner.spaceId,\n\t\t\tnamespaceId,\n\t\t\tmodelName,\n\t\t\tfieldNamesByColumn\n\t\t};\n\t}\n}\n/**\n* Classifies every foreign key on a surviving table into one of three cases.\n* A foreign key that carries a `referencedSchema` is checked against the\n* pack-owned coordinates first, so a pack-owned target wins even when a local\n* table happens to share its bare name; only foreign keys with no owned\n* coordinate fall through to the local/dangling distinction.\n*\n* - **Cross-space**: `referencedSchema` is set and a described contract owns\n* the coordinate `(referencedSchema, 'table', referencedTable)`. The\n* referenced table is absent from the tree (omitted because the pack\n* describes it, or never introspected — `contract infer` walks a single\n* namespace). Removed from `foreignKeys` (so `inferRelations` never falls\n* back to a bare, unqualified table name for it) and replaced with a\n* `RelationField` qualified with the owning pack's space id and namespace\n* id. `owners` holds only pack-declared coordinates, so an app's own table\n* (e.g. `public.users`) is never owned and cannot be captured here.\n* - **Local**: not a pack-owned coordinate, and the referenced table survived\n* introspection — left untouched, `inferRelations` handles it as before.\n* - **Dangling**: not a pack-owned coordinate, and the referenced table is\n* neither in the tree nor owned by any described contract. Removed from\n* `foreignKeys`, keeping the scalar column, rather than emitting a relation\n* to a model that was never defined.\n*\n* A pack that owns the referenced coordinate but declares no domain model\n* mapped to it is malformed; that case throws rather than degrading to a\n* silent drop, which would contradict the dangling definition above.\n*/\nfunction resolveForeignKeys(tables, owners) {\n\tconst resultTables = {};\n\tconst extraRelationsByTable = /* @__PURE__ */ new Map();\n\tconst crossSpaceFieldNamesByTable = /* @__PURE__ */ new Map();\n\tconst danglingForeignKeysByTable = /* @__PURE__ */ new Map();\n\tfor (const [tableName, table] of Object.entries(tables)) {\n\t\tconst keptForeignKeys = [];\n\t\tfor (const fk of table.foreignKeys) {\n\t\t\tif (fk.referencedSchema !== void 0) {\n\t\t\t\tconst owner = owners.get(coordinateKey({\n\t\t\t\t\tnamespaceId: fk.referencedSchema,\n\t\t\t\t\tentityKind: \"table\",\n\t\t\t\t\tentityName: fk.referencedTable\n\t\t\t\t}));\n\t\t\t\tif (owner !== void 0) {\n\t\t\t\t\tconst target = resolveCrossSpaceTarget(owner, fk.referencedSchema, fk.referencedTable);\n\t\t\t\t\tif (target === void 0) throw postgresError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `contract infer: described contract space \"${owner.spaceId}\" owns storage coordinate \"${fk.referencedSchema}.${fk.referencedTable}\" but declares no domain model mapped to it. A pack that describes a table must also declare the domain model it maps to; this pack is malformed.`, { meta: {\n\t\t\t\t\t\tspaceId: owner.spaceId,\n\t\t\t\t\t\ttableName: fk.referencedTable\n\t\t\t\t\t} });\n\t\t\t\t\tif (!crossSpaceFieldNamesByTable.has(fk.referencedTable)) crossSpaceFieldNamesByTable.set(fk.referencedTable, target.fieldNamesByColumn);\n\t\t\t\t\tconst fieldName = deriveRelationFieldName(fk.columns, fk.referencedTable);\n\t\t\t\t\tconst optional = fk.columns.some((columnName) => table.columns[columnName]?.nullable ?? false);\n\t\t\t\t\tconst relationField = {\n\t\t\t\t\t\t...buildChildRelationField(fieldName, target.modelName, fk, optional, void 0, table),\n\t\t\t\t\t\ttypeNamespaceId: target.namespaceId,\n\t\t\t\t\t\ttypeContractSpaceId: target.spaceId\n\t\t\t\t\t};\n\t\t\t\t\tconst existingRelations = extraRelationsByTable.get(tableName);\n\t\t\t\t\tif (existingRelations) existingRelations.push(relationField);\n\t\t\t\t\telse extraRelationsByTable.set(tableName, [relationField]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (tables[fk.referencedTable] !== void 0) keptForeignKeys.push(fk);\n\t\t\telse {\n\t\t\t\tconst dangling = {\n\t\t\t\t\tcolumns: fk.columns,\n\t\t\t\t\treferencedSchema: fk.referencedSchema,\n\t\t\t\t\treferencedTable: fk.referencedTable\n\t\t\t\t};\n\t\t\t\tconst existingDangling = danglingForeignKeysByTable.get(tableName);\n\t\t\t\tif (existingDangling) existingDangling.push(dangling);\n\t\t\t\telse danglingForeignKeysByTable.set(tableName, [dangling]);\n\t\t\t}\n\t\t}\n\t\tresultTables[tableName] = keptForeignKeys.length === table.foreignKeys.length ? table : new SqlTableIR({\n\t\t\t...table,\n\t\t\tforeignKeys: keptForeignKeys\n\t\t});\n\t}\n\treturn {\n\t\ttables: resultTables,\n\t\textraRelationsByTable,\n\t\tcrossSpaceFieldNamesByTable,\n\t\tdanglingForeignKeysByTable\n\t};\n}\n/**\n* Explains a foreign key `resolveForeignKeys` dropped as dangling: the\n* database enforces it, but its target lives outside the introspected\n* schema, so infer has no model to point a relation at. The suggested fix\n* targets the common cause — an unconfigured extension pack's schema\n* (e.g. Supabase's `auth`).\n*/\nfunction buildDanglingForeignKeyWarning(danglingForeignKeys, fieldNamesByTable, tableName) {\n\treturn `Foreign key ${danglingForeignKeys.map((fk) => {\n\t\tconst fieldNames = fk.columns.map((columnName) => resolveColumnFieldName(fieldNamesByTable, tableName, columnName));\n\t\tconst target = fk.referencedSchema !== void 0 ? `${fk.referencedSchema}.${fk.referencedTable}` : fk.referencedTable;\n\t\treturn `\"${fieldNames.join(\", \")}\" -> \"${target}\"`;\n\t}).join(\", \")} exists in the database, but its target schema is outside the introspected scope, so no relation field was generated. If the target schema is described by an extension pack, add it to extensions and re-run infer.`;\n}\n//#endregion\n//#region src/core/psl-build/index-attributes.ts\nfunction buildModelConstraintAttribute(name, fields, constraintName) {\n\tconst args = [positionalArg(`[${fields.join(\", \")}]`)];\n\tif (constraintName !== void 0) args.push(namedArg(\"map\", `\"${escapePslString(constraintName)}\"`));\n\treturn buildAttribute(\"model\", name, args);\n}\n/**\n* The naming of a live index, re-detected rather than trusted: wire when the\n* live name parses as a wire name AND that hash recomputes from the\n* introspected content; otherwise exact.\n*/\nfunction detectIndexNaming(index) {\n\tconst parsed = parseWireName(index.name);\n\tconst recomputed = computeIndexContentHash({\n\t\t...index.columns !== void 0 ? { columns: index.columns } : {},\n\t\t...index.expression !== void 0 ? { expression: index.expression } : {},\n\t\t...index.where !== void 0 ? { where: index.where } : {},\n\t\tunique: index.unique,\n\t\t...index.type !== void 0 ? { type: index.type } : {},\n\t\t...index.options !== void 0 ? { options: index.options } : {}\n\t});\n\treturn parsed !== void 0 && parsed.hash === recomputed ? {\n\t\tkind: \"wire\",\n\t\tprefix: parsed.prefix\n\t} : { kind: \"exact\" };\n}\nfunction namingArg(naming, exactName) {\n\treturn naming.kind === \"wire\" ? namedArg(\"name\", `\"${escapePslString(naming.prefix)}\"`) : namedArg(\"map\", `\"${escapePslString(exactName)}\"`);\n}\n/**\n* Emits one `@@index` attribute at full fidelity, named as `naming` says;\n* without it, the naming is re-detected from the live name and content.\n*/\nfunction buildIndexAttribute(index, fieldNames, naming = detectIndexNaming(index)) {\n\tconst args = [];\n\tif (fieldNames !== void 0) args.push(positionalArg(`[${fieldNames.join(\", \")}]`));\n\telse {\n\t\tassertDefined(index.expression, `buildIndexAttribute: index \"${index.name}\" carries neither columns nor expression; SqlIndexIR enforces exactly one`);\n\t\targs.push(namedArg(\"expression\", `\"${escapePslString(index.expression)}\"`));\n\t}\n\targs.push(namingArg(naming, index.name));\n\tif (index.where !== void 0) args.push(namedArg(\"where\", `\"${escapePslString(index.where)}\"`));\n\tif (index.unique) args.push(namedArg(\"unique\", \"true\"));\n\tif (index.type !== void 0 || index.options !== void 0) args.push(namedArg(\"type\", `\"${escapePslString(index.type ?? \"btree\")}\"`));\n\tif (index.options !== void 0) {\n\t\tconst entries = Object.entries(index.options ?? {}).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([key, value]) => `${key}: \"${escapePslString(String(value))}\"`);\n\t\targs.push(namedArg(\"options\", `{ ${entries.join(\", \")} }`));\n\t}\n\treturn buildAttribute(\"model\", \"index\", args);\n}\n/**\n* Emits one `@@check` attribute, named as `naming` says. Without it, a live,\n* non-derived check is written in the `map:` form. Re-detecting `name:` is not\n* attempted there: the live expression is Postgres's own reprint, but a\n* wire-named check's hash was taken over the author's original text, so\n* recomputing the hash from the reprint would essentially never match. `map:`\n* plus the verbatim reprint is correct regardless — a reprint compared against\n* a later reprint of the same expression is stable, so the emitted contract\n* signs the live database with zero pending operations. `buildIntrospectedPolicyBlocks`\n* makes the same call for `@@map` on adopted RLS policies, for the same reason.\n*/\nfunction buildCheckAttribute(check, naming = { kind: \"exact\" }) {\n\treturn buildAttribute(\"model\", \"check\", [namedArg(\"expression\", `\"${escapePslString(check.expression)}\"`), namingArg(naming, check.name)]);\n}\n//#endregion\n//#region src/core/psl-infer/infer-model-blocks.ts\nfunction buildModel(table, typeMap, enumNameMap, fieldNamesByTable, defaultMapping, rawDefaultParser, columnDefaults, relationFields, danglingForeignKeys, rlsEnabled = false, policySkipNotes = []) {\n\tconst { name: modelName, map: mapName } = toModelName(table.name);\n\tconst fieldNameMap = fieldNamesByTable.get(table.name);\n\tconst pkColumns = new Set(table.primaryKey?.columns ?? []);\n\tconst isSinglePk = pkColumns.size === 1;\n\tconst singlePkConstraintName = isSinglePk ? table.primaryKey?.name : void 0;\n\tconst uniqueColumns = /* @__PURE__ */ new Map();\n\tfor (const unique of table.uniques) if (unique.columns.length === 1) {\n\t\tconst [columnName = \"\"] = unique.columns;\n\t\tconst existingConstraintName = uniqueColumns.get(columnName);\n\t\tif (!uniqueColumns.has(columnName) || existingConstraintName === void 0 && unique.name) uniqueColumns.set(columnName, unique.name);\n\t}\n\tconst derivedCheckNames = computeDerivedCheckNames(table);\n\tconst fields = [];\n\tfor (const column of Object.values(table.columns)) fields.push(buildScalarField(column, table, typeMap, enumNameMap, fieldNameMap, defaultMapping, rawDefaultParser, columnDefaults, pkColumns, isSinglePk, singlePkConstraintName, uniqueColumns, derivedCheckNames));\n\tconst usedFieldNames = new Set(fields.map((field) => field.name));\n\tfor (const rel of relationFields) fields.push(buildRelationField(rel, table.name, fieldNamesByTable, usedFieldNames));\n\tconst modelAttributes = [];\n\tif (table.primaryKey && table.primaryKey.columns.length > 1) {\n\t\tconst pkFieldNames = table.primaryKey.columns.map((columnName) => resolveColumnFieldName(fieldNamesByTable, table.name, columnName));\n\t\tmodelAttributes.push(buildModelConstraintAttribute(\"id\", pkFieldNames, table.primaryKey.name));\n\t}\n\tfor (const unique of table.uniques) if (unique.columns.length > 1) {\n\t\tconst uniqueFieldNames = unique.columns.map((columnName) => resolveColumnFieldName(fieldNamesByTable, table.name, columnName));\n\t\tmodelAttributes.push(buildModelConstraintAttribute(\"unique\", uniqueFieldNames, unique.name));\n\t}\n\tfor (const index of table.indexes) {\n\t\tconst indexFieldNames = index.columns?.map((columnName) => resolveColumnFieldName(fieldNamesByTable, table.name, columnName));\n\t\tmodelAttributes.push(buildIndexAttribute(index, indexFieldNames));\n\t}\n\tfor (const check of table.checks ?? []) if (!derivedCheckNames.has(check.name)) modelAttributes.push(buildCheckAttribute(check));\n\tif (mapName) modelAttributes.push(buildMapAttribute(\"model\", mapName));\n\tif (rlsEnabled) modelAttributes.push(buildAttribute(\"model\", \"rls\", []));\n\tconst warnings = [];\n\tif (!table.primaryKey) warnings.push(\"This table has no primary key in the database\");\n\tif (danglingForeignKeys.length > 0) warnings.push(buildDanglingForeignKeyWarning(danglingForeignKeys, fieldNamesByTable, table.name));\n\tconst commentLines = [...warnings.length > 0 ? [`// WARNING: ${warnings.join(\" \")}`] : [], ...policySkipNotes];\n\tconst comment = commentLines.length > 0 ? commentLines.join(\"\\n\") : void 0;\n\treturn {\n\t\tkind: \"model\",\n\t\tname: modelName,\n\t\tfields,\n\t\tattributes: modelAttributes,\n\t\tspan: SYNTHETIC_SPAN,\n\t\t...comment !== void 0 ? { comment } : {}\n\t};\n}\n/**\n* The live check names that are derived: a live check's name matches\n* `formatWireName(composeCheckWirePrefix(table, column, kind), computeCheckContentHash(expression))`\n* for some column of the table and some candidate `postgresRenderCheckExpressions`\n* would render for that column. Never by comparing expressions — the live\n* body is a Postgres reprint, never the authored text. One set serves both\n* the `@noCheck` waiver below and `@@check` exclusion in `buildModel`, so the\n* two decisions cannot drift apart.\n*\n* `membership` is unreachable here today: infer never emits domain enums\n* (`enumType()` is not inferred), so no inferred column has member values and\n* no membership check is ever derived. The day domain-enum inference exists,\n* its slice extends this by threading the column's member values through.\n*/\nfunction computeDerivedCheckNames(table) {\n\tconst liveCheckNames = new Set((table.checks ?? []).map((check) => check.name));\n\tconst derivedCheckNames = /* @__PURE__ */ new Set();\n\tfor (const column of Object.values(table.columns)) for (const candidate of postgresRenderCheckExpressions({\n\t\ttableName: table.name,\n\t\tcolumnName: column.name,\n\t\tmany: column.many === true,\n\t\tmemberValues: void 0\n\t})) {\n\t\tconst derivedName = formatWireName(composeCheckWirePrefix(table.name, column.name, candidate.kind), computeCheckContentHash(candidate.expression));\n\t\tif (liveCheckNames.has(derivedName)) derivedCheckNames.add(derivedName);\n\t}\n\treturn derivedCheckNames;\n}\nfunction buildScalarField(column, table, typeMap, enumNameMap, fieldNameMap, defaultMapping, rawDefaultParser, columnDefaults, pkColumns, isSinglePk, singlePkConstraintName, uniqueColumns, derivedCheckNames) {\n\tconst resolvedField = fieldNameMap?.get(column.name);\n\tconst fieldName = resolvedField?.fieldName ?? toFieldName(column.name).name;\n\tconst fieldMap = resolvedField?.fieldMap;\n\tconst resolution = typeMap.resolve(column.nativeType, table.annotations);\n\tif (\"unsupported\" in resolution) {\n\t\tconst attrs = [];\n\t\tif (fieldMap !== void 0) attrs.push(buildMapAttribute(\"field\", fieldMap));\n\t\treturn {\n\t\t\tkind: \"field\",\n\t\t\tname: fieldName,\n\t\t\ttypeName: `Unsupported(\"${escapePslString(resolution.nativeType)}\")`,\n\t\t\toptional: column.nullable,\n\t\t\tlist: column.many === true,\n\t\t\tattributes: attrs,\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t};\n\t}\n\tlet typeName = resolution.pslType.name;\n\tlet typeConstructor = resolution.pslType.args ? {\n\t\tkind: \"typeConstructor\",\n\t\tpath: [resolution.pslType.name],\n\t\targs: resolution.pslType.args.map(positionalArg),\n\t\tspan: SYNTHETIC_SPAN\n\t} : void 0;\n\tconst enumPslName = enumNameMap.get(column.nativeType);\n\tif (enumPslName) {\n\t\ttypeName = enumPslName;\n\t\ttypeConstructor = {\n\t\t\tkind: \"typeConstructor\",\n\t\t\tpath: [\"pg\", \"enum\"],\n\t\t\targs: [positionalArg(enumPslName)],\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t};\n\t}\n\tconst attributes = [];\n\tconst isId = isSinglePk && pkColumns.has(column.name);\n\tif (isId) attributes.push(buildSimpleConstraintFieldAttribute(\"id\", singlePkConstraintName));\n\tconst isEnumColumn = enumPslName !== void 0;\n\tconst defaultAttribute = inferDefaultAttribute(column, rawDefaultParser, {\n\t\t...defaultMapping,\n\t\t...ifDefined(\"columnCodec\", columnDefaults.codecOf(resolution.pslType, isEnumColumn)),\n\t\tlist: column.many === true\n\t}, (value) => columnDefaults.readsBack(value, resolution.pslType, isEnumColumn, column.many === true));\n\tif (defaultAttribute !== void 0) attributes.push(parseDefaultAttributeString(defaultAttribute));\n\tif (uniqueColumns.has(column.name) && !isId) {\n\t\tconst uniqueConstraintName = uniqueColumns.get(column.name);\n\t\tattributes.push(buildSimpleConstraintFieldAttribute(\"unique\", uniqueConstraintName));\n\t}\n\tif (column.many === true) {\n\t\tconst waivedKinds = postgresRenderCheckExpressions({\n\t\t\ttableName: table.name,\n\t\t\tcolumnName: column.name,\n\t\t\tmany: true,\n\t\t\tmemberValues: void 0\n\t\t}).filter((candidate) => !derivedCheckNames.has(formatWireName(composeCheckWirePrefix(table.name, column.name, candidate.kind), computeCheckContentHash(candidate.expression)))).map((candidate) => candidate.kind);\n\t\tif (waivedKinds.length > 0) attributes.push(buildAttribute(\"field\", \"noCheck\", waivedKinds.map(positionalArg)));\n\t}\n\tif (fieldMap !== void 0) attributes.push(buildMapAttribute(\"field\", fieldMap));\n\treturn {\n\t\tkind: \"field\",\n\t\tname: fieldName,\n\t\ttypeName,\n\t\t...ifDefined(\"typeConstructor\", typeConstructor),\n\t\toptional: column.nullable,\n\t\tlist: column.many === true,\n\t\tattributes,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n/**\n* A literal default prints as the PSL literal the column's data type takes. A literal that has no\n* such PSL literal prints as a `sql` tagged literal holding the expression Postgres reported.\n*/\nfunction inferDefaultAttribute(column, rawDefaultParser, defaultMapping, readsBack) {\n\tif (column.default === void 0 && column.resolvedDefault?.kind === \"function\" && column.resolvedDefault.expression === \"autoincrement()\") return \"@default(autoincrement())\";\n\tif (column.many === true && column.resolvedDefault?.kind === \"literal\") return Array.isArray(column.resolvedDefault.value) ? literalOrRawAttribute(column.resolvedDefault, column, defaultMapping, readsBack) : void 0;\n\tconst parsed = parseColumnDefault(column.default, column.nativeType, rawDefaultParser);\n\tif (parsed === void 0) return;\n\tif (parsed.kind === \"literal\") return literalOrRawAttribute(parsed, column, defaultMapping, readsBack);\n\treturn mappedAttribute(parsed, defaultMapping);\n}\n/**\n* A literal no data type the column takes writes, or that the column's codec does not read back,\n* has no PSL literal, so the raw database default prints instead.\n*/\nfunction literalOrRawAttribute(columnDefault, column, defaultMapping, readsBack) {\n\tconst printed = columnDefault.kind === \"literal\" ? {\n\t\tkind: \"literal\",\n\t\tvalue: defaultInCanonicalForm(columnDefault.value, defaultMapping.columnCodec === void 0 || defaultMapping.dataTypes === void 0 ? void 0 : canonicalFormOf(defaultMapping.columnCodec, defaultMapping.dataTypes.lookup), defaultMapping.list === true).value\n\t} : columnDefault;\n\tconst result = printed.kind === \"literal\" && !readsBack(printed.value) ? void 0 : mapDefault(printed, defaultMapping);\n\tif (result !== void 0) return result.attribute;\n\treturn typeof column.default === \"string\" ? mappedAttribute({\n\t\tkind: \"function\",\n\t\texpression: column.default\n\t}, defaultMapping) : void 0;\n}\nfunction mappedAttribute(columnDefault, defaultMapping) {\n\treturn mapDefault(columnDefault, defaultMapping)?.attribute;\n}\nfunction buildRelationField(rel, hostTableName, fieldNamesByTable, usedFieldNames) {\n\tconst fieldName = createUniqueFieldName(rel.fieldName, usedFieldNames);\n\tusedFieldNames.add(fieldName);\n\tconst args = [];\n\tif (rel.fields && rel.references) {\n\t\tif (rel.relationName) args.push(namedArg(\"name\", `\"${escapePslString(rel.relationName)}\"`));\n\t\targs.push(namedArg(\"fields\", `[${rel.fields.map((columnName) => resolveColumnFieldName(fieldNamesByTable, hostTableName, columnName)).join(\", \")}]`));\n\t\targs.push(namedArg(\"references\", `[${rel.references.map((columnName) => resolveColumnFieldName(fieldNamesByTable, rel.referencedTableName ?? \"\", columnName)).join(\", \")}]`));\n\t\tif (rel.onDelete) args.push(namedArg(\"onDelete\", rel.onDelete));\n\t\tif (rel.onUpdate) args.push(namedArg(\"onUpdate\", rel.onUpdate));\n\t\tif (rel.fkName) args.push(namedArg(\"map\", `\"${escapePslString(rel.fkName)}\"`));\n\t\tif (rel.index === false) args.push(namedArg(\"index\", \"false\"));\n\t} else if (rel.relationName) args.push(namedArg(\"name\", `\"${escapePslString(rel.relationName)}\"`));\n\tconst attrs = args.length > 0 ? [buildAttribute(\"field\", \"relation\", args)] : [];\n\treturn {\n\t\tkind: \"field\",\n\t\tname: fieldName,\n\t\ttypeName: rel.typeName,\n\t\t...ifDefined(\"typeNamespaceId\", rel.typeNamespaceId),\n\t\t...ifDefined(\"typeContractSpaceId\", rel.typeContractSpaceId),\n\t\toptional: rel.optional,\n\t\tlist: rel.list,\n\t\tattributes: attrs,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n/**\n* Resolves a `SqlColumnIR.default` value into a normalized {@link ColumnDefault}.\n*\n* `SqlSchemaIR` types the column default as `string` (a raw database default\n* expression). Some legacy fixtures and tests still pass already-normalized\n* `ColumnDefault` objects in the same slot, so we accept either shape\n* defensively at runtime.\n*/\nfunction parseColumnDefault(value, nativeType, rawDefaultParser) {\n\tif (typeof value === \"string\") return rawDefaultParser ? rawDefaultParser(value, nativeType) : void 0;\n\treturn isColumnDefault(value) ? value : void 0;\n}\n//#endregion\n//#region src/core/psl-infer/infer-policy-blocks.ts\n/** Replaces invalid character runs with `_`; prepends `_` when the first character is invalid. */\nfunction sanitizePolicyHead(raw) {\n\tlet head = raw.replace(/[^\\p{L}\\p{N}_-]+/gu, \"_\");\n\tif (!/^[\\p{L}_]/u.test(head)) head = `_${head}`;\n\treturn head;\n}\n/**\n* Builds one `policy_<operation>` block per introspected policy. Every\n* adopted policy is exact-named: a reprinted body never reliably re-hashes to\n* the live suffix, so `@@map` always carries the physical name and the head\n* is only an identifier. A policy granting to a role whose name is not a\n* legal identifier cannot be authored at all — role references have no\n* `@@map` escape — so it is skipped with a note.\n*/\nfunction buildIntrospectedPolicyBlocks(policiesByTable, modelNameMap, reservedHeads = /* @__PURE__ */ new Set()) {\n\tconst all = [];\n\tfor (const [tableName, policies] of policiesByTable) for (const policy of policies) all.push({\n\t\tpolicy,\n\t\ttableName\n\t});\n\tall.sort((a, b) => {\n\t\tif (a.policy.name !== b.policy.name) return a.policy.name < b.policy.name ? -1 : 1;\n\t\tif (a.tableName !== b.tableName) return a.tableName < b.tableName ? -1 : 1;\n\t\treturn a.policy.operation < b.policy.operation ? -1 : a.policy.operation > b.policy.operation ? 1 : 0;\n\t});\n\tconst usedHeads = new Set(reservedHeads);\n\tconst blocks = [];\n\tconst skipNotesByTable = /* @__PURE__ */ new Map();\n\tfor (const { policy, tableName } of all) {\n\t\tconst modelName = modelNameMap.get(tableName);\n\t\tassertDefined(modelName, `buildIntrospectedPolicyBlocks: policy \"${policy.name}\" targets table \"${tableName}\" with no emitted model; tables and policies come from the same introspection walk`);\n\t\tconst badRole = policy.roles.find((role) => !isPslIdentifier(role));\n\t\tif (badRole !== void 0) {\n\t\t\tconst notes = skipNotesByTable.get(tableName) ?? [];\n\t\t\tnotes.push(`// prisma: skipped policy \"${policy.name}\": role \"${badRole}\" is not a valid PSL identifier and role references cannot be escaped`);\n\t\t\tskipNotesByTable.set(tableName, notes);\n\t\t\tcontinue;\n\t\t}\n\t\tlet head = sanitizePolicyHead(parseWireName(policy.name)?.prefix ?? policy.name);\n\t\tif (usedHeads.has(head)) {\n\t\t\tlet n = 2;\n\t\t\twhile (usedHeads.has(`${head}_${n}`)) n += 1;\n\t\t\thead = `${head}_${n}`;\n\t\t}\n\t\tusedHeads.add(head);\n\t\tblocks.push({\n\t\t\tkind: \"policy\",\n\t\t\tkeyword: POLICY_BLOCK_KEYWORDS[policy.operation],\n\t\t\tname: head,\n\t\t\tparameters: {\n\t\t\t\ttarget: {\n\t\t\t\t\texpression: modelName,\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t},\n\t\t\t\troles: {\n\t\t\t\t\texpression: `[${policy.roles.join(\", \")}]`,\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t},\n\t\t\t\t...policy.using !== void 0 ? { using: {\n\t\t\t\t\texpression: JSON.stringify(policy.using),\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t} } : {},\n\t\t\t\t...policy.withCheck !== void 0 ? { withCheck: {\n\t\t\t\t\texpression: JSON.stringify(policy.withCheck),\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t} } : {},\n\t\t\t\t...policy.permissive ? {} : { permissive: {\n\t\t\t\t\texpression: \"false\",\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t} }\n\t\t\t},\n\t\t\tblockAttributes: [{\n\t\t\t\tname: \"map\",\n\t\t\t\targs: [{\n\t\t\t\t\tkind: \"positional\",\n\t\t\t\t\tvalue: `\"${escapePslString(policy.name)}\"`,\n\t\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t\t}],\n\t\t\t\tspan: SYNTHETIC_SPAN\n\t\t\t}],\n\t\t\tspan: SYNTHETIC_SPAN\n\t\t});\n\t}\n\treturn {\n\t\tblocks,\n\t\tskipNotesByTable\n\t};\n}\n//#endregion\n//#region src/core/psl-infer/postgres-default-mapping.ts\nfunction createPostgresDefaultMapping() {\n\treturn { dataTypes: {\n\t\tentries: postgresDataTypeEntries(),\n\t\tlookup: createPostgresBuiltinDataTypeLookup()\n\t} };\n}\n//#endregion\n//#region src/core/psl-infer/infer-psl-contract.ts\n/**\n* Infers a PSL AST (for `printPsl`) from an introspected Postgres schema tree.\n*\n* Target-owned inference: it walks the `PostgresDatabaseSchemaNode` tree and\n* owns the Postgres dialect knowledge — the native type map and default map.\n* It reads raw defaults with `parsePostgresDefault`, the parser introspection\n* and verify use. Relation inference, name transforms, and generic default\n* mapping are shape-neutral utilities imported from the SQL family.\n*\n* The tree's tables (across its namespaces — `contract infer` introspects a\n* single live namespace) are gathered into the model set and emitted in one\n* bucket, alongside native-enum and RLS policy blocks. That bucket is named\n* after the introspected schema when the content needs a `namespace { … }`\n* wrap, and is the flat `UNSPECIFIED_PSL_NAMESPACE_ID` bucket otherwise. This\n* entry point emits nothing else, so its output is always exactly one bucket\n* and byte-identical to the prior flat inference. {@link buildPslDocumentAst}\n* can emit a second, always-flat bucket for content that must stay top-level\n* even under a wrap; no caller asks for one yet.\n*\n* `describedContracts` — the stack's extension packs' already-assembled\n* contracts, each paired with its space id — is consulted while gathering\n* tables: a table whose coordinate `(schemaName, 'table', tableName)` one of\n* those contracts already declares is omitted, before the duplicate-name\n* check below and before relation inference, so it cannot spuriously\n* collide with an app table and never contributes a bare relation field. A\n* surviving table's foreign key into an omitted, pack-owned table is not\n* dropped: {@link resolveForeignKeys} rewrites it into a relation qualified\n* with the pack's space id (`<spaceId>:<namespaceId>.<Model>`) instead.\n*/\nfunction inferPostgresPslContract(tree, context, describedContracts) {\n\tconst namespaces = Object.values(tree.namespaces);\n\tconst owners = describedContractOwners(describedContracts ?? []);\n\tconst enumDefinitions = /* @__PURE__ */ new Map();\n\tconst packOwnedEnumTypesByNamespace = /* @__PURE__ */ new Map();\n\tconst enumNamespaceNames = /* @__PURE__ */ new Set();\n\tfor (const namespace of namespaces) for (const { typeName, members } of namespace.nativeEnums) {\n\t\tconst owner = owners.get(coordinateKey({\n\t\t\tnamespaceId: namespace.schemaName,\n\t\t\tentityKind: \"native_enum\",\n\t\t\tentityName: typeName\n\t\t}));\n\t\tif (owner !== void 0) {\n\t\t\tconst owned = packOwnedEnumTypesByNamespace.get(namespace.schemaName) ?? /* @__PURE__ */ new Map();\n\t\t\towned.set(typeName, owner.spaceId);\n\t\t\towned.set(`${namespace.schemaName}.${typeName}`, owner.spaceId);\n\t\t\tpackOwnedEnumTypesByNamespace.set(namespace.schemaName, owned);\n\t\t\tcontinue;\n\t\t}\n\t\tenumDefinitions.set(typeName, members);\n\t\tenumNamespaceNames.add(namespace.schemaName);\n\t}\n\tconst tables = {};\n\tconst tableNamespaceNames = /* @__PURE__ */ new Set();\n\tconst rlsEnabledTables = /* @__PURE__ */ new Set();\n\tconst policiesByTable = /* @__PURE__ */ new Map();\n\tfor (const namespace of namespaces) {\n\t\tconst ownedEnumTypes = packOwnedEnumTypesByNamespace.get(namespace.schemaName);\n\t\tfor (const [tableName, table] of Object.entries(namespace.tables)) {\n\t\t\tif (owners.has(coordinateKey({\n\t\t\t\tnamespaceId: namespace.schemaName,\n\t\t\t\tentityKind: \"table\",\n\t\t\t\tentityName: tableName\n\t\t\t}))) continue;\n\t\t\tif (tables[tableName] !== void 0) throw postgresError(\"CONTRACT.INFER_UNSUPPORTED\", `contract infer: duplicate table name \"${tableName}\" across schemas is not yet supported (single-namespace PSL inference emits one flat bucket; multi-namespace \\`namespace { … }\\` output is a later slice).`, { meta: { tableName } });\n\t\t\tif (ownedEnumTypes !== void 0) for (const column of Object.values(table.columns)) {\n\t\t\t\tconst owningSpaceId = ownedEnumTypes.get(column.nativeType);\n\t\t\t\tif (owningSpaceId !== void 0) throw postgresError(\"CONTRACT.INFER_UNSUPPORTED\", `contract infer: column \"${tableName}\".\"${column.name}\" is typed by native enum type \"${column.nativeType}\", which extension pack space \"${owningSpaceId}\" already describes. A cross-space enum-typed column has no authorable PSL form yet; describe the table in that pack's contract or retype the column before re-running contract infer.`, { meta: {\n\t\t\t\t\ttableName,\n\t\t\t\t\tcolumnName: column.name\n\t\t\t\t} });\n\t\t\t}\n\t\t\ttables[tableName] = new SqlTableIR(table);\n\t\t\ttableNamespaceNames.add(namespace.schemaName);\n\t\t\tif (table.rlsEnabled) rlsEnabledTables.add(tableName);\n\t\t\tif (table.policies.length > 0) policiesByTable.set(tableName, table.policies);\n\t\t}\n\t}\n\tlet wrapNamespaceName;\n\tif (enumDefinitions.size > 0 || policiesByTable.size > 0) {\n\t\tconst contentNamespaces = /* @__PURE__ */ new Set([...enumNamespaceNames, ...tableNamespaceNames]);\n\t\tif (contentNamespaces.size > 1) throw postgresError(\"CONTRACT.INFER_UNSUPPORTED\", `contract infer: adopting native enums or RLS policies with content across multiple schemas is not yet supported (single-namespace PSL inference emits one \\`namespace { … }\\` block; multi-namespace output is a later slice). Schemas: ${[...contentNamespaces].sort().join(\", \")}.`, { meta: { schemas: [...contentNamespaces].sort() } });\n\t\twrapNamespaceName = [...contentNamespaces][0];\n\t}\n\tconst { tables: resolvedTables, extraRelationsByTable, crossSpaceFieldNamesByTable, danglingForeignKeysByTable } = resolveForeignKeys(tables, owners);\n\tconst schemaIR = new SqlSchemaIR({ tables: resolvedTables });\n\tconst enumTypeNames = new Set(enumDefinitions.keys());\n\tif (wrapNamespaceName !== void 0) for (const typeName of enumDefinitions.keys()) enumTypeNames.add(`${wrapNamespaceName}.${typeName}`);\n\tconst enumInfo = {\n\t\ttypeNames: enumTypeNames,\n\t\tdefinitions: enumDefinitions\n\t};\n\treturn buildPslDocumentAst(schemaIR, {\n\t\ttypeMap: createPostgresTypeMap(enumInfo.typeNames),\n\t\tdefaultMapping: createPostgresDefaultMapping(),\n\t\tparseRawDefault: parsePostgresDefault,\n\t\tcolumnDefaults: inferredColumnDefaults(context),\n\t\t...enumDefinitions.size > 0 ? { enumInfo } : {}\n\t}, {\n\t\textraRelationsByTable,\n\t\tcrossSpaceFieldNamesByTable,\n\t\tdanglingForeignKeysByTable\n\t}, wrapNamespaceName, {\n\t\trlsEnabledTables,\n\t\tpoliciesByTable\n\t});\n}\n/**\n* Builds the PSL document for one introspected schema.\n*\n* `namespaceName` wraps the output in `namespace <name> { … }`; omit it for\n* flat output. `topLevelExtensionBlocks` are declarations that must stay\n* top-level even when a wrap applies, such as a recovered domain enum — a\n* family `enum` inside a namespace is a hard diagnostic. They land in their\n* own always-flat bucket when a wrap applies, and in the single flat bucket\n* when none does; either way they print unwrapped.\n*\n* Their names are reserved before the policy blocks are built, so a policy\n* renames itself out of the way. Against the rest of the top-level scope — the\n* models, the native enums, PSL's scalar type names, and the other blocks in\n* the list — a clash throws instead: a block's name is its contract key\n* (`entries.valueSet[name]`, with no `@@map` escape), so it cannot be rewritten\n* here.\n*/\nfunction buildPslDocumentAst(schemaIR, options, foreignKeyExtras, namespaceName, rlsExtras, topLevelExtensionBlocks = []) {\n\tconst { typeMap, defaultMapping, parseRawDefault: rawDefaultParser } = options;\n\tconst { extraRelationsByTable, crossSpaceFieldNamesByTable, danglingForeignKeysByTable } = foreignKeyExtras;\n\tconst modelNames = buildTopLevelNameMap(Object.keys(schemaIR.tables), toModelName, \"model\", \"table\");\n\tconst modelNameMap = new Map([...modelNames].map(([tableName, result]) => [tableName, result.name]));\n\tconst { enumNameMap: bareEnumNameMap, enumBlocks } = buildNativeEnumBlocks(options.enumInfo?.definitions ?? /* @__PURE__ */ new Map(), modelNames);\n\tconst enumNameMap = new Map(bareEnumNameMap);\n\tif (namespaceName !== void 0) for (const [typeName, pslName] of bareEnumNameMap) enumNameMap.set(`${namespaceName}.${typeName}`, pslName);\n\tconst fieldNamesByTable = new Map([...crossSpaceFieldNamesByTable, ...buildFieldNamesByTable(schemaIR.tables)]);\n\tconst { relationsByTable } = inferRelations(schemaIR.tables, modelNameMap);\n\tconst policyEmission = buildIntrospectedPolicyBlocks(rlsExtras?.policiesByTable ?? /* @__PURE__ */ new Map(), modelNameMap, /* @__PURE__ */ new Set([\n\t\t...modelNameMap.values(),\n\t\t...bareEnumNameMap.values(),\n\t\t...topLevelExtensionBlocks.map((block) => block.name)\n\t]));\n\tconst claimedTopLevelNames = /* @__PURE__ */ new Set([\n\t\t...PSL_SCALAR_TYPE_NAMES,\n\t\t...modelNameMap.values(),\n\t\t...bareEnumNameMap.values()\n\t]);\n\tfor (const block of topLevelExtensionBlocks) {\n\t\tif (claimedTopLevelNames.has(block.name)) throw postgresError(\"CONTRACT.NAME_DUPLICATE\", `contract infer: recovered ${block.keyword} \"${block.name}\" collides with a model, a native enum, a PSL scalar type, or another recovered declaration of the same name. Rename the recovered declaration, or exclude it.`, { meta: {\n\t\t\tkind: block.keyword,\n\t\t\tname: block.name\n\t\t} });\n\t\tclaimedTopLevelNames.add(block.name);\n\t}\n\tconst models = [];\n\tfor (const table of Object.values(schemaIR.tables)) models.push(buildModel(table, typeMap, enumNameMap, fieldNamesByTable, defaultMapping, rawDefaultParser, options.columnDefaults, [...relationsByTable.get(table.name) ?? [], ...extraRelationsByTable.get(table.name) ?? []], danglingForeignKeysByTable.get(table.name) ?? [], rlsExtras?.rlsEnabledTables.has(table.name) ?? false, policyEmission.skipNotesByTable.get(table.name) ?? []));\n\tconst sortedModels = topologicalSort(models, schemaIR.tables, modelNameMap);\n\tconst separateTopLevelBucket = namespaceName !== void 0 && namespaceName !== UNSPECIFIED_PSL_NAMESPACE_ID && topLevelExtensionBlocks.length > 0;\n\tconst namespaces = [];\n\tif (separateTopLevelBucket) namespaces.push(makePslNamespace({\n\t\tkind: \"namespace\",\n\t\tname: UNSPECIFIED_PSL_NAMESPACE_ID,\n\t\tentries: makePslNamespaceEntries([], [], topLevelExtensionBlocks),\n\t\tspan: SYNTHETIC_SPAN\n\t}));\n\tnamespaces.push(makePslNamespace({\n\t\tkind: \"namespace\",\n\t\tname: namespaceName ?? UNSPECIFIED_PSL_NAMESPACE_ID,\n\t\tentries: makePslNamespaceEntries(sortedModels, [], [\n\t\t\t...separateTopLevelBucket ? [] : topLevelExtensionBlocks,\n\t\t\t...enumBlocks,\n\t\t\t...policyEmission.blocks\n\t\t]),\n\t\tspan: SYNTHETIC_SPAN\n\t}));\n\treturn {\n\t\tkind: \"document\",\n\t\tsourceId: \"<sql-schema-ir>\",\n\t\tnamespaces,\n\t\tspan: SYNTHETIC_SPAN\n\t};\n}\n//#endregion\nexport { buildIndexAttribute as a, noColumnDefaults as c, buildMapAttribute as d, namedArg as f, EXISTING_COLUMN_DATE_TIME_TYPES as g, createPostgresTypeMap as h, buildCheckAttribute as i, SYNTHETIC_SPAN as l, positionalArg as m, inferPostgresPslContract as n, buildModelConstraintAttribute as o, parseDefaultAttributeString as p, createPostgresDefaultMapping as r, buildNativeEnumBlock as s, buildPslDocumentAst as t, buildAttribute as u };\n\n//# sourceMappingURL=infer-psl-contract-D-3st5lU.mjs.map"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as PostgresOpFactoryCall } from "./op-factory-call-
|
|
1
|
+
import { j as PostgresOpFactoryCall } from "./op-factory-call-BFnGNPJD-5vgAjFpd.mjs";
|
|
2
2
|
import { SqlTypeLookups } from "@prisma/orm-family-sql/contract/data-type";
|
|
3
3
|
import { SqlStorage, StorageTypeInstance } from "@prisma/orm-family-sql/contract/types";
|
|
4
4
|
import { DiffableNode, SchemaDiffIssue } from "@prisma/orm-framework/components/control";
|
|
@@ -107,4 +107,4 @@ interface IssuePlannerOptions {
|
|
|
107
107
|
declare function planIssues(options: IssuePlannerOptions): Result<IssuePlannerValue, readonly SqlPlannerConflict[]>;
|
|
108
108
|
//#endregion
|
|
109
109
|
export { planIssues as n, coalesceSubtreeIssues as t };
|
|
110
|
-
//# sourceMappingURL=issue-planner-
|
|
110
|
+
//# sourceMappingURL=issue-planner-DWRClmiP.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-planner-
|
|
1
|
+
{"version":3,"file":"issue-planner-DWRClmiP.d.mts","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/issue-planner.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;UAmBU;WACC,YAAY,SAAS;WACrB,cAAc,SAAS;WACvB;WACA,YAAY,oBAAoB;;WAEhC,OAAO;WACP,cAAc,SAAS,eAAe;WACtC,QAAQ;WACR,QAAQ;WACR,qBAAqB,cAAc;;;;;;;;;KASzC,yBAAyB,iBAAiB,mBAAmB,SAAS;EACzE;EACA,iBAAiB;EACjB,gBAAgB;;;;;;;;EAQhB;;EAEA;;;;UAIQ;WACC,gBAAgB;;;;;;;;;;;iBAWV,sBAAsB,cAAc,eAAe,cAAc,iBAAiB,gBAAgB,oBAAoB,gBAAgB;UAC7I;WACC,iBAAiB;WACjB,YAAY,SAAS;WACrB,cAAc,SAAS;WACvB;WACA,YAAY,oBAAoB;;WAEhC,OAAO;WACP,cAAc,SAAS,eAAe;;;;;;;;WAQtC,SAAS;;;;;;WAMT,SAAS;;;;;WAKT,sBAAsB,cAAc;WACpC,sBAAsB;;;;;;;;;iBAShB,WAAW,SAAS,sBAAsB,OAAO,4BAA4B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./data-transform-Ck5FbyNO-BNE7QlAo.mjs";
|
|
2
|
-
import { A as Op$1 } from "./op-factory-call-
|
|
3
|
-
import "./postgres-migration-
|
|
2
|
+
import { A as Op$1 } from "./op-factory-call-BFnGNPJD-5vgAjFpd.mjs";
|
|
3
|
+
import "./postgres-migration-DVY2ALDJ-DTWECas_.mjs";
|
|
4
4
|
import { checkExpression, col as col$1, fn as fn$1, foreignKey, lit as lit$1, primaryKey, unique } from "@prisma/orm-family-sql/relational-core/contract-free";
|
|
5
5
|
import { placeholder } from "@prisma/orm-framework/errors/migration";
|
|
6
6
|
import { MigrationCLI } from "@prisma/orm-toolchain/cli/migration-cli";
|
|
@@ -22,4 +22,4 @@ declare function createExtension(extensionName: string): Op$1;
|
|
|
22
22
|
declare function rawSql(op: Op$1): Op$1;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { fn$1 as a, placeholder as c, unique as d, createExtension as i, primaryKey as l, checkExpression as n, foreignKey as o, col$1 as r, lit$1 as s, MigrationCLI as t, rawSql as u };
|
|
25
|
-
//# sourceMappingURL=migration
|
|
25
|
+
//# sourceMappingURL=migration--J8vKZ8z.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration
|
|
1
|
+
{"version":3,"file":"migration--J8vKZ8z.d.mts","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/migration.d.mts"],"mappings":";;;;;;;;iBAQiB,gBAAgB,wBAAwB;;;;;;;;;;;;;iBAaxC,OAAO,IAAI,OAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-PTHAY9Cv.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/migration.mjs"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"migration-PTHAY9Cv.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/migration.mjs"],"sourcesContent":["import { V as createExtension } from \"./op-factory-call-BbTtrII-.mjs\";\nimport { t as PostgresMigration } from \"./postgres-migration-DmczQSHT.mjs\";\nimport { t as dataTransform } from \"./data-transform-Bo32KRbq.mjs\";\nimport { checkExpression, col, fn, foreignKey, lit, primaryKey, unique } from \"@internal/sql-relational-core/contract-free\";\nimport { placeholder } from \"@internal/errors/migration\";\nimport { MigrationCLI } from \"@internal/cli/migration-cli\";\n//#region src/core/migrations/operations/raw.ts\n/**\n* Identity factory for an already-materialized `SqlMigrationPlanOperation`.\n*\n* The planner uses this via `liftOpToCall` to carry ops produced by SQL\n* family methods, codec control hooks, and component database dependencies\n* alongside migration IR without reverse-engineering them. Users writing\n* raw migrations can pass a full op shape directly — typically built by\n* composing SQL family helpers — to author a migration that bypasses the\n* structured call classes.\n*/\nfunction rawSql(op) {\n\treturn op;\n}\n//#endregion\nexport { PostgresMigration as Migration, MigrationCLI, checkExpression, col, createExtension, dataTransform, fn, foreignKey, lit, placeholder, primaryKey, rawSql, unique };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAS,OAAO,IAAI;CACnB,OAAO;AACR"}
|
package/dist/{op-factory-call-CqKUB1XP-CsEGx4Jd.d.mts → op-factory-call-BFnGNPJD-5vgAjFpd.d.mts}
RENAMED
|
@@ -9,7 +9,7 @@ import { MigrationOperationClass, OpFactoryCall } from "@prisma/orm-framework/co
|
|
|
9
9
|
import { SqlMigrationPlanOperation } from "@prisma/orm-family-sql/family/control";
|
|
10
10
|
import { ImportRequirement, TsExpression } from "@prisma/orm-framework/ts-render";
|
|
11
11
|
import { ExecuteRequestLowerer, Lowerer } from "@prisma/orm-family-sql/family/control-adapter";
|
|
12
|
-
//#region ../../../3-targets/3-targets/postgres/dist/op-factory-call-
|
|
12
|
+
//#region ../../../3-targets/3-targets/postgres/dist/op-factory-call-BFnGNPJD.d.mts
|
|
13
13
|
//#region src/core/migrations/operations/shared.d.ts
|
|
14
14
|
type Op$1 = SqlMigrationPlanOperation<PostgresPlanTargetDetails>;
|
|
15
15
|
/**
|
|
@@ -52,6 +52,8 @@ declare abstract class PostgresOpFactoryCallNode extends TsExpression implements
|
|
|
52
52
|
abstract readonly operationClass: MigrationOperationClass;
|
|
53
53
|
abstract readonly label: string;
|
|
54
54
|
abstract toOp(lowerer?: Lowerer): Op | Promise<Op>;
|
|
55
|
+
/** The operations this call lowers to, in order: one, unless the call carries companions. */
|
|
56
|
+
toOps(lowerer?: ExecuteRequestLowerer): readonly (Op | Promise<Op>)[];
|
|
55
57
|
importRequirements(): readonly ImportRequirement[];
|
|
56
58
|
protected freeze(): void;
|
|
57
59
|
}
|
|
@@ -79,6 +81,8 @@ declare class DropTableCall extends PostgresOpFactoryCallNode {
|
|
|
79
81
|
renderTypeScript(): string;
|
|
80
82
|
importRequirements(): readonly ImportRequirement[];
|
|
81
83
|
}
|
|
84
|
+
/** A rename a table or column rename carries for an object whose name derives from the old name. */
|
|
85
|
+
type RenameCompanionCall = RenameConstraintCall | RenameIndexCall;
|
|
82
86
|
declare class RenameTableCall extends PostgresOpFactoryCallNode {
|
|
83
87
|
readonly factoryName: "renameTable";
|
|
84
88
|
readonly operationClass: "widening";
|
|
@@ -87,7 +91,13 @@ declare class RenameTableCall extends PostgresOpFactoryCallNode {
|
|
|
87
91
|
/** The new name: the table's contract-side identity after the rename. */
|
|
88
92
|
readonly tableName: string;
|
|
89
93
|
readonly label: string;
|
|
90
|
-
|
|
94
|
+
/**
|
|
95
|
+
* The renames of objects whose names derive from the table name. They run after the table rename
|
|
96
|
+
* and are never rendered on their own.
|
|
97
|
+
*/
|
|
98
|
+
readonly companions: readonly RenameCompanionCall[];
|
|
99
|
+
constructor(schemaName: string, oldTableName: string, tableName: string, companions: readonly RenameCompanionCall[]);
|
|
100
|
+
toOps(lowerer?: ExecuteRequestLowerer): readonly (Op | Promise<Op>)[];
|
|
91
101
|
toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
|
|
92
102
|
renderTypeScript(): string;
|
|
93
103
|
importRequirements(): readonly ImportRequirement[];
|
|
@@ -104,6 +114,26 @@ declare class AddColumnCall extends PostgresOpFactoryCallNode {
|
|
|
104
114
|
renderTypeScript(): string;
|
|
105
115
|
importRequirements(): readonly ImportRequirement[];
|
|
106
116
|
}
|
|
117
|
+
declare class RenameColumnCall extends PostgresOpFactoryCallNode {
|
|
118
|
+
readonly factoryName: "renameColumn";
|
|
119
|
+
readonly operationClass: "widening";
|
|
120
|
+
readonly schemaName: string;
|
|
121
|
+
readonly tableName: string;
|
|
122
|
+
readonly oldColumnName: string;
|
|
123
|
+
/** The new name: the column's contract-side identity after the rename. */
|
|
124
|
+
readonly columnName: string;
|
|
125
|
+
readonly label: string;
|
|
126
|
+
/**
|
|
127
|
+
* The renames of objects whose names derive from the column name. They run after the column
|
|
128
|
+
* rename and are never rendered on their own.
|
|
129
|
+
*/
|
|
130
|
+
readonly companions: readonly RenameCompanionCall[];
|
|
131
|
+
constructor(schemaName: string, tableName: string, oldColumnName: string, columnName: string, companions: readonly RenameCompanionCall[]);
|
|
132
|
+
toOps(lowerer?: ExecuteRequestLowerer): readonly (Op | Promise<Op>)[];
|
|
133
|
+
toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
|
|
134
|
+
renderTypeScript(): string;
|
|
135
|
+
importRequirements(): readonly ImportRequirement[];
|
|
136
|
+
}
|
|
107
137
|
declare class DropColumnCall extends PostgresOpFactoryCallNode {
|
|
108
138
|
readonly factoryName: "dropColumn";
|
|
109
139
|
readonly operationClass: "destructive";
|
|
@@ -174,7 +204,7 @@ declare class SetDefaultCall extends PostgresOpFactoryCallNode {
|
|
|
174
204
|
}
|
|
175
205
|
declare class DropDefaultCall extends PostgresOpFactoryCallNode {
|
|
176
206
|
readonly factoryName: "dropDefault";
|
|
177
|
-
readonly operationClass: "
|
|
207
|
+
readonly operationClass: "widening";
|
|
178
208
|
readonly schemaName: string;
|
|
179
209
|
readonly tableName: string;
|
|
180
210
|
readonly columnName: string;
|
|
@@ -277,7 +307,7 @@ declare class AddForeignKeyCall extends PostgresOpFactoryCallNode {
|
|
|
277
307
|
}
|
|
278
308
|
declare class DropConstraintCall extends PostgresOpFactoryCallNode {
|
|
279
309
|
readonly factoryName: "dropConstraint";
|
|
280
|
-
readonly operationClass: "
|
|
310
|
+
readonly operationClass: "widening";
|
|
281
311
|
readonly schemaName: string;
|
|
282
312
|
readonly tableName: string;
|
|
283
313
|
readonly constraintName: string;
|
|
@@ -318,7 +348,7 @@ declare class AddCheckConstraintCall extends PostgresOpFactoryCallNode {
|
|
|
318
348
|
}
|
|
319
349
|
declare class DropCheckConstraintCall extends PostgresOpFactoryCallNode {
|
|
320
350
|
readonly factoryName: "dropCheckConstraint";
|
|
321
|
-
readonly operationClass: "
|
|
351
|
+
readonly operationClass: "widening";
|
|
322
352
|
readonly schemaName: string;
|
|
323
353
|
readonly tableName: string;
|
|
324
354
|
readonly constraintName: string;
|
|
@@ -363,7 +393,7 @@ declare class RenameIndexCall extends PostgresOpFactoryCallNode {
|
|
|
363
393
|
}
|
|
364
394
|
declare class DropIndexCall extends PostgresOpFactoryCallNode {
|
|
365
395
|
readonly factoryName: "dropIndex";
|
|
366
|
-
readonly operationClass: "
|
|
396
|
+
readonly operationClass: "widening";
|
|
367
397
|
readonly schemaName: string;
|
|
368
398
|
readonly tableName: string;
|
|
369
399
|
readonly indexName: string;
|
|
@@ -428,7 +458,7 @@ declare class CreateNativeEnumTypeCall extends PostgresOpFactoryCallNode {
|
|
|
428
458
|
}
|
|
429
459
|
declare class DropNativeEnumTypeCall extends PostgresOpFactoryCallNode {
|
|
430
460
|
readonly factoryName: "dropNativeEnumType";
|
|
431
|
-
readonly operationClass: "
|
|
461
|
+
readonly operationClass: "widening";
|
|
432
462
|
readonly schemaName: string;
|
|
433
463
|
readonly typeName: string;
|
|
434
464
|
readonly label: string;
|
|
@@ -463,7 +493,7 @@ declare class AddNativeEnumValueCall extends PostgresOpFactoryCallNode {
|
|
|
463
493
|
/**
|
|
464
494
|
* A planner-generated data-transform stub. `checkSlot` and `runSlot` name
|
|
465
495
|
* the unfilled authoring slots that the rendered `migration.ts` will expose
|
|
466
|
-
* to the user via `placeholder("…")` calls. `toOp()` always
|
|
496
|
+
* to the user via `placeholder("…")` calls. `toOp()` always rejects with
|
|
467
497
|
* `MIGRATION.UNFILLED_PLACEHOLDER`: the planner cannot lower a stubbed transform to a runtime
|
|
468
498
|
* op — the user must fill the rendered `migration.ts` and re-emit.
|
|
469
499
|
*/
|
|
@@ -474,7 +504,7 @@ declare class DataTransformCall extends PostgresOpFactoryCallNode {
|
|
|
474
504
|
readonly checkSlot: string;
|
|
475
505
|
readonly runSlot: string;
|
|
476
506
|
constructor(label: string, checkSlot: string, runSlot: string, operationClass?: MigrationOperationClass);
|
|
477
|
-
toOp(): Op
|
|
507
|
+
toOp(): Promise<Op>;
|
|
478
508
|
renderTypeScript(): string;
|
|
479
509
|
importRequirements(): readonly ImportRequirement[];
|
|
480
510
|
}
|
|
@@ -492,7 +522,7 @@ declare class CreatePostgresRlsPolicyCall extends PostgresOpFactoryCallNode {
|
|
|
492
522
|
}
|
|
493
523
|
declare class DropPostgresRlsPolicyCall extends PostgresOpFactoryCallNode {
|
|
494
524
|
readonly factoryName: "dropRlsPolicy";
|
|
495
|
-
readonly operationClass: "
|
|
525
|
+
readonly operationClass: "widening";
|
|
496
526
|
readonly schemaName: string;
|
|
497
527
|
readonly tableName: string;
|
|
498
528
|
readonly policyName: string;
|
|
@@ -515,7 +545,7 @@ declare class EnableRowLevelSecurityCall extends PostgresOpFactoryCallNode {
|
|
|
515
545
|
}
|
|
516
546
|
declare class DisableRowLevelSecurityCall extends PostgresOpFactoryCallNode {
|
|
517
547
|
readonly factoryName: "disableRowLevelSecurity";
|
|
518
|
-
readonly operationClass: "
|
|
548
|
+
readonly operationClass: "widening";
|
|
519
549
|
readonly schemaName: string;
|
|
520
550
|
readonly tableName: string;
|
|
521
551
|
readonly label: string;
|
|
@@ -537,7 +567,7 @@ declare class RenamePostgresRlsPolicyCall extends PostgresOpFactoryCallNode {
|
|
|
537
567
|
renderTypeScript(): string;
|
|
538
568
|
importRequirements(): readonly ImportRequirement[];
|
|
539
569
|
}
|
|
540
|
-
type PostgresOpFactoryCall = CreateTableCall | DropTableCall | RenameTableCall | AddColumnCall | DropColumnCall | AlterColumnTypeCall | SetNotNullCall | DropNotNullCall | SetDefaultCall | DropDefaultCall | AddNotNullColumnDirectCall | AddNotNullColumnWithTempDefaultCall | AddPrimaryKeyCall | AddForeignKeyCall | AddUniqueCall | AddCheckConstraintCall | RenameConstraintCall | DropCheckConstraintCall | CreateIndexCall | RenameIndexCall | DropIndexCall | DropConstraintCall | RawSqlCall | CreateExtensionCall | CreateSchemaCall | CreateNativeEnumTypeCall | DropNativeEnumTypeCall | AddNativeEnumValueCall | CreatePostgresRlsPolicyCall | DropPostgresRlsPolicyCall | EnableRowLevelSecurityCall | DisableRowLevelSecurityCall | RenamePostgresRlsPolicyCall | DataTransformCall;
|
|
570
|
+
type PostgresOpFactoryCall = CreateTableCall | DropTableCall | RenameTableCall | AddColumnCall | RenameColumnCall | DropColumnCall | AlterColumnTypeCall | SetNotNullCall | DropNotNullCall | SetDefaultCall | DropDefaultCall | AddNotNullColumnDirectCall | AddNotNullColumnWithTempDefaultCall | AddPrimaryKeyCall | AddForeignKeyCall | AddUniqueCall | AddCheckConstraintCall | RenameConstraintCall | DropCheckConstraintCall | CreateIndexCall | RenameIndexCall | DropIndexCall | DropConstraintCall | RawSqlCall | CreateExtensionCall | CreateSchemaCall | CreateNativeEnumTypeCall | DropNativeEnumTypeCall | AddNativeEnumValueCall | CreatePostgresRlsPolicyCall | DropPostgresRlsPolicyCall | EnableRowLevelSecurityCall | DisableRowLevelSecurityCall | RenamePostgresRlsPolicyCall | DataTransformCall;
|
|
541
571
|
//#endregion
|
|
542
|
-
export { Op$1 as A, DropIndexCall as C, DropTableCall as D, DropPostgresRlsPolicyCall as E,
|
|
543
|
-
//# sourceMappingURL=op-factory-call-
|
|
572
|
+
export { Op$1 as A, SetNotNullCall as B, DropIndexCall as C, DropTableCall as D, DropPostgresRlsPolicyCall as E, RenameConstraintCall as F, RenameIndexCall as I, RenamePostgresRlsPolicyCall as L, RawSqlCall as M, RenamableConstraintKind as N, EnableRowLevelSecurityCall as O, RenameColumnCall as P, RenameTableCall as R, DropDefaultCall as S, DropNotNullCall as T, DataTransformCall as _, AddNotNullColumnWithTempDefaultCall as a, DropColumnCall as b, AlterColumnTypeCall as c, CreateIndexCall as d, CreateIndexExtras as f, CreateTableCall as g, CreateSchemaCall as h, AddNativeEnumValueCall as i, PostgresOpFactoryCall as j, ForeignKeySpec as k, AlterColumnTypeOptions as l, CreatePostgresRlsPolicyCall as m, AddColumnCall as n, AddPrimaryKeyCall as o, CreateNativeEnumTypeCall as p, AddForeignKeyCall as r, AddUniqueCall as s, AddCheckConstraintCall as t, CreateExtensionCall as u, DisableRowLevelSecurityCall as v, DropNativeEnumTypeCall as w, DropConstraintCall as x, DropCheckConstraintCall as y, SetDefaultCall as z };
|
|
573
|
+
//# sourceMappingURL=op-factory-call-BFnGNPJD-5vgAjFpd.d.mts.map
|